diff --git a/.gitignore b/.gitignore index de1e9f6f1..95f4d7f85 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ UserInterfaceState.xcuserstate # Tools, notes, outputs __*.* __* +.vs/ .vscode/ coverage/ diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json deleted file mode 100644 index f8b488856..000000000 --- a/.vs/ProjectSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "CurrentProjectSetting": null -} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json deleted file mode 100644 index 4cdeb6e59..000000000 --- a/.vs/VSWorkspaceState.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ExpandedNodes": [ - "" - ], - "SelectedNode": "\\dist", - "PreviewInSolutionExplorer": false -} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite deleted file mode 100644 index 948dd810a..000000000 Binary files a/.vs/slnx.sqlite and /dev/null differ diff --git a/.vs/solutions-components/v15/.suo b/.vs/solutions-components/v15/.suo deleted file mode 100644 index de9b66129..000000000 Binary files a/.vs/solutions-components/v15/.suo and /dev/null differ diff --git a/CHANGELOG.md b/CHANGELOG.md index 91ab1c0f5..b15680f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,109 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] +## [0.6.46] - Nov 1st 2023 + +## [0.6.45] - Oct 31st 2023 + +## [0.6.44] - Oct 30th 2023 +* Improved support for creating address labels from related records + +## [0.6.43] - Oct 26th 2023 + +## [0.6.42] - Oct 26th 2023 + +## [0.6.41] - Oct 25th 2023 + +## [0.6.40] - Oct 24th 2023 + +## [0.6.39] - Oct 24th 2023 + +## [0.6.38] - Oct 23rd 2023 + +## [0.6.37] - Oct 23rd 2023 + +## [0.6.36] - Oct 20th 2023 + +## [0.6.35] - Oct 19th 2023 + +## [0.6.34] - Oct 17th 2023 + +## [0.6.33] - Oct 13th 2023 + +## [0.6.32] - Oct 12th 2023 + +## [0.6.31] - Oct 11th 2023 + +## [0.6.30] - Oct 11th 2023 + +## [0.6.29] - Oct 11th 2023 + +## [0.6.28] - Oct 5th 2023 + +## [0.6.27] - Oct 5th 2023 + +## [0.6.26] - Oct 4th 2023 + +## [0.6.25] - Oct 3rd 2023 + +## [0.6.24] - Oct 3rd 2023 + +## [0.6.23] - Oct 2nd 2023 + +## [0.6.22] - Sept 29th 2023 + +## [0.6.21] - Sept 28th 2023 + +## [0.6.20] - Sept 28th 2023 + +## [0.6.19] - Sept 28th 2023 + +## [0.6.18] - Sept 27th 2023 + +## [0.6.17] - Sept 26th 2023 + +## [0.6.16] - Sept 25th 2023 + +## [0.6.15] - Sept 21st 2023 + +## [0.6.14] - Sept 20th 2023 + +## [0.6.13] - Sept 14th 2023 + +## [0.6.12] - Sept 12th 2023 + +## [0.6.11] - Sept 8th 2023 + +## [0.6.10] - Sept 7th 2023 + +## [0.6.9] - Aug 31st 2023 + +## [0.6.8] - Aug 25th 2023 + +## [0.6.7] - Aug 21st 2023 + +## [0.6.6] - Aug 18th 2023 + +## [0.6.5] - Aug 17th 2023 + +## [0.6.4] - Aug 9th 2023 + +## [0.6.3] - Aug 3rd 2023 + +## [0.6.2] - June 15th 2023 + +## [0.6.1] - June 14th 2023 + +## [0.6.0] - June 13th 2023 + +## [0.5.20] - June 7th 2023 + +## [0.5.19] - June 6th 2023 + +## [0.5.18] - May 31st 2023 + +## [0.5.17] - May 30th 2023 + ## [0.5.16] - May 25th 2023 ## [0.5.15] - May 24th 2023 @@ -166,4 +269,55 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm [0.5.14]: https://github.com/Esri/solution.js/compare/v0.5.13...v0.5.14 "v0.5.14" [0.5.15]: https://github.com/Esri/solution.js/compare/v0.5.14...v0.5.15 "v0.5.15" [0.5.16]: https://github.com/Esri/solution.js/compare/v0.5.15...v0.5.16 "v0.5.16" -[Unreleased]: https://github.com/Esri/solution.js/compare/v0.5.15...HEAD "Unreleased Changes" +[0.5.17]: https://github.com/Esri/solution.js/compare/v0.5.16...v0.5.17 "v0.5.17" +[0.5.18]: https://github.com/Esri/solution.js/compare/v0.5.17...v0.5.18 "v0.5.18" +[0.5.19]: https://github.com/Esri/solution.js/compare/v0.5.18...v0.5.19 "v0.5.19" +[0.5.20]: https://github.com/Esri/solution.js/compare/v0.5.19...v0.5.20 "v0.5.20" +[0.6.0]: https://github.com/Esri/solution.js/compare/v0.5.20...v0.6.0 "v0.6.0" +[0.6.1]: https://github.com/Esri/solution.js/compare/v0.6.0...v0.6.1 "v0.6.1" +[0.6.2]: https://github.com/Esri/solution.js/compare/v0.6.1...v0.6.2 "v0.6.2" +[0.6.3]: https://github.com/Esri/solution.js/compare/v0.6.2...v0.6.3 "v0.6.3" +[0.6.4]: https://github.com/Esri/solution.js/compare/v0.6.3...v0.6.4 "v0.6.4" +[0.6.5]: https://github.com/Esri/solution.js/compare/v0.6.4...v0.6.5 "v0.6.5" +[0.6.6]: https://github.com/Esri/solution.js/compare/v0.6.5...v0.6.6 "v0.6.6" +[0.6.7]: https://github.com/Esri/solution.js/compare/v0.6.6...v0.6.7 "v0.6.7" +[0.6.8]: https://github.com/Esri/solution.js/compare/v0.6.7...v0.6.8 "v0.6.8" +[0.6.9]: https://github.com/Esri/solution.js/compare/v0.6.8...v0.6.9 "v0.6.9" +[0.6.10]: https://github.com/Esri/solution.js/compare/v0.6.9...v0.6.10 "v0.6.10" +[0.6.11]: https://github.com/Esri/solution.js/compare/v0.6.10...v0.6.11 "v0.6.11" +[0.6.12]: https://github.com/Esri/solution.js/compare/v0.6.11...v0.6.12 "v0.6.12" +[0.6.13]: https://github.com/Esri/solution.js/compare/v0.6.12...v0.6.13 "v0.6.13" +[0.6.14]: https://github.com/Esri/solution.js/compare/v0.6.13...v0.6.14 "v0.6.14" +[0.6.15]: https://github.com/Esri/solution.js/compare/v0.6.14...v0.6.15 "v0.6.15" +[0.6.16]: https://github.com/Esri/solution.js/compare/v0.6.15...v0.6.16 "v0.6.16" +[0.6.17]: https://github.com/Esri/solution.js/compare/v0.6.16...v0.6.17 "v0.6.17" +[0.6.18]: https://github.com/Esri/solution.js/compare/v0.6.17...v0.6.18 "v0.6.18" +[0.6.19]: https://github.com/Esri/solution.js/compare/v0.6.18...v0.6.19 "v0.6.19" +[0.6.20]: https://github.com/Esri/solution.js/compare/v0.6.19...v0.6.20 "v0.6.20" +[0.6.21]: https://github.com/Esri/solution.js/compare/v0.6.20...v0.6.21 "v0.6.21" +[0.6.22]: https://github.com/Esri/solution.js/compare/v0.6.21...v0.6.22 "v0.6.22" +[0.6.23]: https://github.com/Esri/solution.js/compare/v0.6.22...v0.6.23 "v0.6.23" +[0.6.24]: https://github.com/Esri/solution.js/compare/v0.6.23...v0.6.24 "v0.6.24" +[0.6.25]: https://github.com/Esri/solution.js/compare/v0.6.24...v0.6.25 "v0.6.25" +[0.6.26]: https://github.com/Esri/solution.js/compare/v0.6.25...v0.6.26 "v0.6.26" +[0.6.27]: https://github.com/Esri/solution.js/compare/v0.6.26...v0.6.27 "v0.6.27" +[0.6.28]: https://github.com/Esri/solution.js/compare/v0.6.27...v0.6.28 "v0.6.28" +[0.6.29]: https://github.com/Esri/solution.js/compare/v0.6.28...v0.6.29 "v0.6.29" +[0.6.30]: https://github.com/Esri/solution.js/compare/v0.6.29...v0.6.30 "v0.6.30" +[0.6.31]: https://github.com/Esri/solution.js/compare/v0.6.30...v0.6.31 "v0.6.31" +[0.6.32]: https://github.com/Esri/solution.js/compare/v0.6.31...v0.6.32 "v0.6.32" +[0.6.33]: https://github.com/Esri/solution.js/compare/v0.6.32...v0.6.33 "v0.6.33" +[0.6.34]: https://github.com/Esri/solution.js/compare/v0.6.33...v0.6.34 "v0.6.34" +[0.6.35]: https://github.com/Esri/solution.js/compare/v0.6.34...v0.6.35 "v0.6.35" +[0.6.36]: https://github.com/Esri/solution.js/compare/v0.6.35...v0.6.36 "v0.6.36" +[0.6.37]: https://github.com/Esri/solution.js/compare/v0.6.36...v0.6.37 "v0.6.37" +[0.6.38]: https://github.com/Esri/solution.js/compare/v0.6.37...v0.6.38 "v0.6.38" +[0.6.39]: https://github.com/Esri/solution.js/compare/v0.6.38...v0.6.39 "v0.6.39" +[0.6.40]: https://github.com/Esri/solution.js/compare/v0.6.39...v0.6.40 "v0.6.40" +[0.6.41]: https://github.com/Esri/solution.js/compare/v0.6.40...v0.6.41 "v0.6.41" +[0.6.42]: https://github.com/Esri/solution.js/compare/v0.6.41...v0.6.42 "v0.6.42" +[0.6.43]: https://github.com/Esri/solution.js/compare/v0.6.42...v0.6.43 "v0.6.43" +[0.6.44]: https://github.com/Esri/solution.js/compare/v0.6.43...v0.6.44 "v0.6.44" +[0.6.45]: https://github.com/Esri/solution.js/compare/v0.6.44...v0.6.45 "v0.6.45" +[0.6.46]: https://github.com/Esri/solution.js/compare/v0.6.45...v0.6.46 "v0.6.46" +[Unreleased]: https://github.com/Esri/solution.js/compare/v0.6.46...HEAD "Unreleased Changes" diff --git a/README.md b/README.md index 12ae11334..29d1c3eea 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [npm-img]: https://img.shields.io/npm/v/@esri/solutions-components.svg?style=round-square&color=blue [npm-url]: https://www.npmjs.com/package/@esri/solutions-components -[travis-img]: https://img.shields.io/travis/Esri/solutions-components/develop.svg +[travis-img]: https://img.shields.io/travis/com/Esri/solutions-components/develop.svg [travis-url]: https://travis-ci.org/Esri/solutions-components [license-img]: https://img.shields.io/badge/license-Apache%202.0-blue.svg [license-url]: #license diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 000000000..127bec4bb --- /dev/null +++ b/babel.config.json @@ -0,0 +1,16 @@ +{ + "filename": ["src/assets/arcgis-pdf-creator/*.js", "src/components/**/*.tsx?", "src/utils/**/*.tsx?"], + "targets": "> 0.25%, not dead", + "presets": [ + [ + "es2015", + { + "modules": false + } + ], + ["@babel/preset-env", { + "esmodules": true + }], + "@babel/preset-typescript" + ] +} diff --git a/package-lock.json b/package-lock.json index adfec79fa..035f51c63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,68 +1,80 @@ { "name": "@esri/solutions-components", - "version": "0.5.16", + "version": "0.6.46", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@esri/solutions-components", - "version": "0.5.16", + "version": "0.6.46", "license": "Apache-2.0", "dependencies": { + "@esri/arcgis-rest-auth": "^3.4.2", + "@esri/arcgis-rest-feature-layer": "^3.4.2", + "@esri/arcgis-rest-portal": "^3.4.2", + "@esri/arcgis-rest-request": "^3.4.2", + "@esri/arcgis-rest-service-admin": "^3.4.2", + "@esri/calcite-components": "^1.9.0", "@esri/hub-common": "^12.37.1", "@esri/hub-initiatives": "^12.4.1", "@esri/hub-sites": "^12.6.0", "@esri/hub-teams": "^12.4.1", + "@esri/solution-common": "^5.0.9", "@pdf-lib/fontkit": "^1.1.1", - "@stencil/core": "^2.20.0", "focus-trap": "7.2.0", "jspdf": "^2.5.1", "minimist": "^1.2.6", "pdf-lib": "^1.17.1" }, "devDependencies": { + "@babel/core": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/preset-typescript": "^7.23.2", + "@babel/types": "^7.23.0", "@esri/eslint-plugin-calcite-components": "^0.2.2", "@esri/solution-common": "3.0.1", - "@stencil/postcss": "^2.1.0", - "@stencil/sass": "^2.0.0", - "@stencil/store": "^2.0.1", - "@types/arcgis-js-api": "^4.26.0-next", - "@types/jest": "^27.5.2", + "@stencil-community/postcss": "^2.2.0", + "@stencil/core": "^4.7.0", + "@stencil/sass": "^3.0.7", + "@stencil/store": "^2.0.11", + "@types/arcgis-js-api": "^4.27.0", + "@types/autoprefixer": "^10.2.0", + "@types/jest": "^27.0.3", "@types/node": "^16.11.11", - "@types/puppeteer": "^5.4.2", "@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/parser": "^5.39.0", - "autoprefixer": "10.4.4", - "caniuse-lite": "^1.0.30001412", + "autoprefixer": "^10.4.4", + "babel-jest": "^29.7.0", "dotenv": "^10.0.0", - "eslint": "^8.11.0", + "eslint": "^8.47.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-jest": "25.3.0", "eslint-plugin-prettier": "4.0.0", "eslint-plugin-react": "7.27.1", "eslint-plugin-unicorn": "39.0.0", - "esri-loader": "3.4.0", + "esri-loader": "^3.7.0", "form-request-submit-polyfill": "^2.0.0", "gh-release": "^6.0.3", - "jest": "^27.5.1", - "jest-cli": "^27.5.1", + "jest": "^29.7.0", + "jest-cli": "^29.7.0", "pify": "^5.0.0", "prettier": "2.4.1", - "puppeteer": "^13.5.1", + "puppeteer": "^21.3.1", "react": "^18.2.0", "rimraf": "^3.0.2", "tailwindcss": "3.0.23", "ts-node": "^10.9.1", "tslib": "^2.4.0", "typescript": "^4.8.4" - }, - "peerDependencies": { - "@esri/arcgis-rest-auth": "^3.4.2", - "@esri/arcgis-rest-feature-layer": "^3.4.2", - "@esri/arcgis-rest-portal": "^3.4.2", - "@esri/arcgis-rest-request": "^3.4.2", - "@esri/arcgis-rest-service-admin": "^3.4.2", - "@esri/calcite-components": "^1.0.7" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { @@ -79,47 +91,119 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "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.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -130,9 +214,9 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -175,13 +259,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -202,17 +287,70 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@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.0" + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@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" @@ -221,162 +359,305 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "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-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@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-define-polyfill-provider/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@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.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.18.6" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@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.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@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.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.20.2" + "@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.npmjs.org/@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.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@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.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@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.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -455,9 +736,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", - "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -466,6 +747,50 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.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.npmjs.org/@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-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -502,15 +827,84 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" }, - "peerDependencies": { + "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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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" } }, @@ -526,6 +920,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -598,6 +1007,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "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.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", @@ -614,12 +1038,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -628,1100 +1052,1258 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "@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/runtime/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@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/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@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": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@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": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@esri/arcgis-html-sanitizer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-3.0.1.tgz", - "integrity": "sha512-cwZJwsYCJZwtBQU2AmaiIVFg5nZcVwInPYja1/OgC9iKYO+ytZRoc5h+0S9/ygbFNoS8Nd0RX9A85stLX/BgiA==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dev": true, "dependencies": { - "xss": "1.0.13" + "@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/@esri/arcgis-html-sanitizer/node_modules/xss": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", - "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" }, "engines": { - "node": ">= 0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/arcgis-rest-auth": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-auth/-/arcgis-rest-auth-3.5.0.tgz", - "integrity": "sha512-EeKfGxSLEI2KvGE2FvN+kYDR+a7RWLf+uNzsYDXWK/8wOYrtj+lh091NHxgHU/Fd+NDoAcHSoTSPCCEpgS0Gsg==", - "deprecated": "Development work on ArcGIS REST JS 3.x has ceased. This packages funtionality has moved to @esri/arcgis-rest-request at 4.x.x https://developers.arcgis.com/arcgis-rest-js/release-notes/upgrade-v3-v4/.", - "peer": true, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", + "dev": true, "dependencies": { - "@esri/arcgis-rest-types": "^3.5.0", - "tslib": "^1.13.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-request": "^3.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/arcgis-rest-auth/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, - "node_modules/@esri/arcgis-rest-feature-layer": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-feature-layer/-/arcgis-rest-feature-layer-3.5.0.tgz", - "integrity": "sha512-+qjJnwPaYYNQqce20FF1iNvQ1BeFVue6ka8MnDu4BNhSeyw9OKD2WoI1pXfKVkSHpXTHeQIfyMVLC7/nFNja8g==", - "deprecated": "Development work on ArcGIS REST JS 3.x has ceased. This packages funtionality has moved to @esri/arcgis-rest-feature-service at 4.x.x https://developers.arcgis.com/arcgis-rest-js/release-notes/upgrade-v3-v4/.", - "peer": true, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, "dependencies": { - "@esri/arcgis-rest-types": "^3.5.0", - "tslib": "^1.13.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^3.0.0", - "@esri/arcgis-rest-request": "^3.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/arcgis-rest-feature-layer/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, - "node_modules/@esri/arcgis-rest-portal": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-portal/-/arcgis-rest-portal-3.5.0.tgz", - "integrity": "sha512-rrl/eUWOxdA5Y0MDYuvCopwNkf8loIfVIE4j1kGRTIz32n4uqdhb38sYKd2X4JK8QW67vyKq0SqxMSIYOHGXQg==", - "peer": true, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, "dependencies": { - "@esri/arcgis-rest-types": "^3.5.0", - "tslib": "^1.13.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^3.0.0", - "@esri/arcgis-rest-request": "^3.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/arcgis-rest-portal/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, - "node_modules/@esri/arcgis-rest-request": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-request/-/arcgis-rest-request-3.5.0.tgz", - "integrity": "sha512-FlI32b2EF/SlJeGe8GZtVqIlvHDxI18bgIB2vQINi9fAC07F1Jg3JMglDTDSl8CCYS/9cYp62n7lWPUwmvn/xQ==", - "peer": true, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "dev": true, "dependencies": { - "tslib": "^1.10.0" + "@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/@esri/arcgis-rest-request/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, - "node_modules/@esri/arcgis-rest-service-admin": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-service-admin/-/arcgis-rest-service-admin-3.5.0.tgz", - "integrity": "sha512-gZzqb0I9kAyIIx2bBTU070QSEd5CV7C0vyd5IBWZOJqgkvA4Yf/LOPCMZ2s/+y2jF+4B1vRMGjpInovvfEk9Rw==", - "deprecated": "Development work on ArcGIS REST JS 3.x has ceased. This packages funtionality has moved to @esri/arcgis-rest-feature-service at 4.x.x https://developers.arcgis.com/arcgis-rest-js/release-notes/upgrade-v3-v4/.", - "peer": true, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, "dependencies": { - "@esri/arcgis-rest-types": "^3.5.0", - "tslib": "^1.13.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^3.0.0", - "@esri/arcgis-rest-portal": "^3.0.0", - "@esri/arcgis-rest-request": "^3.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/arcgis-rest-service-admin/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, - "node_modules/@esri/arcgis-rest-types": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-types/-/arcgis-rest-types-3.6.0.tgz", - "integrity": "sha512-t6QWdVNmqB9OloYAvVWYNjvqlnrXs/m0nCRNwPGt3ZiAPXn5CpkpSn2UD6LPqGp6vPxKG81lbFQvwCw9az4qIg==", - "peer": true - }, - "node_modules/@esri/calcite-components": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-1.2.0.tgz", - "integrity": "sha512-IAMOcnN9KxwjGVl2HqTvYEo7I18DAs4R03/jcDICumwqVI3jzzlfbTpBuLNvxLN1gMMTIHQe35Rf2tPWTOOBDA==", - "peer": true, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dev": true, "dependencies": { - "@floating-ui/dom": "1.2.1", - "@stencil/core": "2.22.3", - "@types/color": "3.0.3", - "color": "4.2.3", - "focus-trap": "7.4.0", - "form-request-submit-polyfill": "2.0.0", - "lodash-es": "4.17.21", - "sortablejs": "1.15.0" + "@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/@esri/calcite-components/node_modules/focus-trap": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.0.tgz", - "integrity": "sha512-yI7FwUqU4TVb+7t6PaQ3spT/42r/KLEi8mtdGoQo2li/kFzmu9URmalTvw7xCCJtSOyhBxscvEAmvjeN9iHARg==", - "peer": true, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "dev": true, "dependencies": { - "tabbable": "^6.1.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/eslint-plugin-calcite-components": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@esri/eslint-plugin-calcite-components/-/eslint-plugin-calcite-components-0.2.2.tgz", - "integrity": "sha512-vmnJ8ogPdEiqq9iyRVJM/YhGMLqzbId35RqN3dS0mj4LWB3USIYMRbLqxtSHlxeWtOD4g6psdSj6eF4oWTXfuQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "dependencies": { - "stencil-eslint-core": "~0.3.1", - "tsutils": "~3.21.0" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=8.9.0" + "node": ">=6.9.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.8.0", - "eslint": "^8" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/hub-common": { - "version": "12.37.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-12.37.1.tgz", - "integrity": "sha512-9gIxzIOo5dRFThk3A5Vkwzqxb1MMLZEKLAY2h0pYahu0hFP3nJpGLA65ODUduFiqnLrCOFUxgPd7qQkCthrSQA==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dev": true, "dependencies": { - "abab": "^2.0.5", - "adlib": "^3.0.8", - "ajv": "^6.12.6", - "fast-xml-parser": "^3.21.0", - "json-schema-typed": "^7.0.3", - "jsonapi-typescript": "^0.1.3", - "tslib": "^1.13.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^2.14.0 || 3", - "@esri/arcgis-rest-feature-layer": "^3.2.0", - "@esri/arcgis-rest-portal": "^2.18.0 || 3", - "@esri/arcgis-rest-request": "^2.14.0 || 3", - "@esri/arcgis-rest-types": "^2.15.0 || 3" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/hub-common/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@esri/hub-initiatives": { - "version": "12.4.1", - "resolved": "https://registry.npmjs.org/@esri/hub-initiatives/-/hub-initiatives-12.4.1.tgz", - "integrity": "sha512-RFYpFlS5D78cJThWhnl+qn93jeOMgoCa7U8KkET+2LW7L+Tg71ZvF2BnsPh0A5qo9fD4aQ/i6tBFxuuFqveJQw==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, "dependencies": { - "tslib": "^1.13.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^2.13.0 || 3", - "@esri/arcgis-rest-portal": "^2.13.0 || 3", - "@esri/arcgis-rest-request": "^2.13.0 || 3", - "@esri/hub-common": "^12.4.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/hub-initiatives/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@esri/hub-sites": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@esri/hub-sites/-/hub-sites-12.6.0.tgz", - "integrity": "sha512-qEdhNIQkkL+zwS0Z7hxNQhbqL/dYBBU3MSDktiXk41/6l23IznjcLdNmtqrDez/qEggbjL1Ed4MXQt1BLswRNQ==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "dev": true, "dependencies": { - "tslib": "^1.13.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^2.13.0 || 3", - "@esri/arcgis-rest-portal": "^2.19.0 || 3", - "@esri/arcgis-rest-request": "^2.13.0 || 3", - "@esri/hub-common": "^12.4.0", - "@esri/hub-initiatives": "^12.4.0", - "@esri/hub-teams": "^12.4.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/hub-sites/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@esri/hub-teams": { - "version": "12.4.1", - "resolved": "https://registry.npmjs.org/@esri/hub-teams/-/hub-teams-12.4.1.tgz", - "integrity": "sha512-olnDzWCPueH5olrlmXGqJRaiLhjBLrX+H4AbxTGmM267Wb5GOEuVdiQqOf3POOAvA8OXCIowFDMwuqZzMS0jaw==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, "dependencies": { - "tslib": "^1.13.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "^2.13.0 || 3", - "@esri/arcgis-rest-portal": "^2.15.0 || 3", - "@esri/arcgis-rest-request": "^2.13.0 || 3", - "@esri/arcgis-rest-types": "^2.13.0 || 3", - "@esri/hub-common": "^12.4.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/hub-teams/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@esri/solution-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@esri/solution-common/-/solution-common-3.0.1.tgz", - "integrity": "sha512-5x4kNcfIsuWzpxqZahCm3HkldL3KaNS7LMrH8AwVooqPpZIgIToP6swrO9frl+fiC5YBH21AcM+BAcVnc9KmvA==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", "dev": true, "dependencies": { - "@esri/arcgis-html-sanitizer": "3.0.1", - "@esri/hub-common": "^12.37.1", - "@esri/hub-initiatives": "^12.4.1", - "@esri/hub-sites": "^12.6.0", - "@esri/hub-teams": "^12.4.1", - "@types/lodash.isplainobject": "^4.0.7", - "adlib": "3.0.7", - "jszip": "3.10.1", - "lodash.isplainobject": "^4.0.6", - "tslib": "1.14.1", - "xss": "^1.0.14" + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@esri/arcgis-rest-auth": "~3.5.0", - "@esri/arcgis-rest-feature-layer": "~3.5.0", - "@esri/arcgis-rest-portal": "~3.5.0", - "@esri/arcgis-rest-request": "~3.5.0", - "@esri/arcgis-rest-service-admin": "~3.5.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esri/solution-common/node_modules/adlib": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/adlib/-/adlib-3.0.7.tgz", - "integrity": "sha512-74ylfcwB7+fu+jqN6e3mBJrAWhWHI5l8icUKh8IhNhmezetLRaMBrxQKJZ+GgyrNxyW+0M12eUirY1RJ5HhWKg==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", "dev": true, "dependencies": { - "esm": "^3.2.25" + "@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/@esri/solution-common/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@floating-ui/core": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.5.tgz", - "integrity": "sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ==", - "peer": true - }, - "node_modules/@floating-ui/dom": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz", - "integrity": "sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==", - "peer": true, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", + "dev": true, "dependencies": { - "@floating-ui/core": "^1.2.1" + "@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/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@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": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" }, "engines": { - "node": ">=6" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@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": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@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": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@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": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", + "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", "dev": true, "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@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/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "node_modules/@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", "dev": true, "dependencies": { - "eslint-scope": "5.1.1" + "@babel/compat-data": "^7.23.2", + "@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.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@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.23.0", + "@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.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@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.23.0", + "@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.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@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": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/preset-typescript": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", + "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-typescript": "^7.22.15" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "regenerator-runtime": "^0.13.11" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "node_modules/@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "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/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" + "@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/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@octokit/types": "^6.40.0" + "@jridgewell/trace-mapping": "0.3.9" }, - "peerDependencies": { - "@octokit/core": ">=2" + "engines": { + "node": ">=12" } }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "@octokit/core": ">=3" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "node_modules/@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", "dev": true, - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", "dev": true, - "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "node_modules/@esri/arcgis-html-sanitizer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-3.0.1.tgz", + "integrity": "sha512-cwZJwsYCJZwtBQU2AmaiIVFg5nZcVwInPYja1/OgC9iKYO+ytZRoc5h+0S9/ygbFNoS8Nd0RX9A85stLX/BgiA==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^12.11.0" + "xss": "1.0.13" } }, - "node_modules/@pdf-lib/fontkit": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@pdf-lib/fontkit/-/fontkit-1.1.1.tgz", - "integrity": "sha512-KjMd7grNapIWS/Dm0gvfHEilSyAmeLvrEGVcqLGi0VYebuqqzTbgF29efCx7tvx+IEbG3zQciRSWl3GkUSvjZg==", + "node_modules/@esri/arcgis-html-sanitizer/node_modules/xss": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", + "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", + "dev": true, "dependencies": { - "pako": "^1.0.6" + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/@pdf-lib/standard-fonts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", - "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "node_modules/@esri/arcgis-rest-auth": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-auth/-/arcgis-rest-auth-3.5.0.tgz", + "integrity": "sha512-EeKfGxSLEI2KvGE2FvN+kYDR+a7RWLf+uNzsYDXWK/8wOYrtj+lh091NHxgHU/Fd+NDoAcHSoTSPCCEpgS0Gsg==", + "deprecated": "Development work on ArcGIS REST JS 3.x has ceased. This packages funtionality has moved to @esri/arcgis-rest-request at 4.x.x https://developers.arcgis.com/arcgis-rest-js/release-notes/upgrade-v3-v4/.", "dependencies": { - "pako": "^1.0.6" + "@esri/arcgis-rest-types": "^3.5.0", + "tslib": "^1.13.0" + }, + "peerDependencies": { + "@esri/arcgis-rest-request": "^3.0.0" } }, - "node_modules/@pdf-lib/upng": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", - "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "node_modules/@esri/arcgis-rest-auth/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/arcgis-rest-feature-layer": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-feature-layer/-/arcgis-rest-feature-layer-3.5.0.tgz", + "integrity": "sha512-+qjJnwPaYYNQqce20FF1iNvQ1BeFVue6ka8MnDu4BNhSeyw9OKD2WoI1pXfKVkSHpXTHeQIfyMVLC7/nFNja8g==", + "deprecated": "Development work on ArcGIS REST JS 3.x has ceased. This packages funtionality has moved to @esri/arcgis-rest-feature-service at 4.x.x https://developers.arcgis.com/arcgis-rest-js/release-notes/upgrade-v3-v4/.", "dependencies": { - "pako": "^1.0.10" + "@esri/arcgis-rest-types": "^3.5.0", + "tslib": "^1.13.0" + }, + "peerDependencies": { + "@esri/arcgis-rest-auth": "^3.0.0", + "@esri/arcgis-rest-request": "^3.0.0" } }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/@esri/arcgis-rest-feature-layer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/arcgis-rest-portal": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-portal/-/arcgis-rest-portal-3.5.0.tgz", + "integrity": "sha512-rrl/eUWOxdA5Y0MDYuvCopwNkf8loIfVIE4j1kGRTIz32n4uqdhb38sYKd2X4JK8QW67vyKq0SqxMSIYOHGXQg==", + "dependencies": { + "@esri/arcgis-rest-types": "^3.5.0", + "tslib": "^1.13.0" + }, + "peerDependencies": { + "@esri/arcgis-rest-auth": "^3.0.0", + "@esri/arcgis-rest-request": "^3.0.0" } }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, + "node_modules/@esri/arcgis-rest-portal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/arcgis-rest-request": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-request/-/arcgis-rest-request-3.5.0.tgz", + "integrity": "sha512-FlI32b2EF/SlJeGe8GZtVqIlvHDxI18bgIB2vQINi9fAC07F1Jg3JMglDTDSl8CCYS/9cYp62n7lWPUwmvn/xQ==", "dependencies": { - "type-detect": "4.0.8" + "tslib": "^1.10.0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, + "node_modules/@esri/arcgis-rest-request/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/arcgis-rest-service-admin": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-service-admin/-/arcgis-rest-service-admin-3.5.0.tgz", + "integrity": "sha512-gZzqb0I9kAyIIx2bBTU070QSEd5CV7C0vyd5IBWZOJqgkvA4Yf/LOPCMZ2s/+y2jF+4B1vRMGjpInovvfEk9Rw==", + "deprecated": "Development work on ArcGIS REST JS 3.x has ceased. This packages funtionality has moved to @esri/arcgis-rest-feature-service at 4.x.x https://developers.arcgis.com/arcgis-rest-js/release-notes/upgrade-v3-v4/.", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@esri/arcgis-rest-types": "^3.5.0", + "tslib": "^1.13.0" + }, + "peerDependencies": { + "@esri/arcgis-rest-auth": "^3.0.0", + "@esri/arcgis-rest-portal": "^3.0.0", + "@esri/arcgis-rest-request": "^3.0.0" } }, - "node_modules/@stencil/core": { + "node_modules/@esri/arcgis-rest-service-admin/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/arcgis-rest-types": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-types/-/arcgis-rest-types-3.6.0.tgz", + "integrity": "sha512-t6QWdVNmqB9OloYAvVWYNjvqlnrXs/m0nCRNwPGt3ZiAPXn5CpkpSn2UD6LPqGp6vPxKG81lbFQvwCw9az4qIg==" + }, + "node_modules/@esri/calcite-components": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-1.9.0.tgz", + "integrity": "sha512-TF9hTZkCmlRMQAPwPbZWuIU/7+Xl7yJ8q6MSAHhRITwIFP8XfOAHhlpb/GpLVzbFooefaoFcBVMxOP2+238ABg==", + "dependencies": { + "@floating-ui/dom": "1.5.3", + "@stencil/core": "2.22.3", + "@types/color": "3.0.4", + "color": "4.2.3", + "composed-offset-position": "0.0.4", + "dayjs": "1.11.10", + "focus-trap": "7.5.2", + "form-request-submit-polyfill": "2.0.0", + "lodash-es": "4.17.21", + "sortablejs": "1.15.0", + "timezone-groups": "0.5.0" + } + }, + "node_modules/@esri/calcite-components/node_modules/@stencil/core": { "version": "2.22.3", "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==", @@ -1733,1848 +2315,3665 @@ "npm": ">=6.0.0" } }, - "node_modules/@stencil/postcss": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stencil/postcss/-/postcss-2.1.0.tgz", - "integrity": "sha512-/e4TYEXErGaHxH0ocg620YqEMLuMLpK/Wg4MJsiJglrLZCZhU4XCX1N0SwxaIOUbEZ1Zh+AqQ++yMI92ilndEA==", - "dev": true, + "node_modules/@esri/calcite-components/node_modules/focus-trap": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "dependencies": { - "autoprefixer": "^10.3.6", - "postcss": "~8.3.8" - }, - "peerDependencies": { - "@stencil/core": ">=2.0.0" + "tabbable": "^6.2.0" } }, - "node_modules/@stencil/postcss/node_modules/postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", - "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", + "node_modules/@esri/eslint-plugin-calcite-components": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@esri/eslint-plugin-calcite-components/-/eslint-plugin-calcite-components-0.2.2.tgz", + "integrity": "sha512-vmnJ8ogPdEiqq9iyRVJM/YhGMLqzbId35RqN3dS0mj4LWB3USIYMRbLqxtSHlxeWtOD4g6psdSj6eF4oWTXfuQ==", "dev": true, "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" + "stencil-eslint-core": "~0.3.1", + "tsutils": "~3.21.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=8.9.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "peerDependencies": { + "@typescript-eslint/parser": "^5.8.0", + "eslint": "^8" } }, - "node_modules/@stencil/postcss/node_modules/source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/@esri/hub-common": { + "version": "12.37.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-12.37.1.tgz", + "integrity": "sha512-9gIxzIOo5dRFThk3A5Vkwzqxb1MMLZEKLAY2h0pYahu0hFP3nJpGLA65ODUduFiqnLrCOFUxgPd7qQkCthrSQA==", + "dependencies": { + "abab": "^2.0.5", + "adlib": "^3.0.8", + "ajv": "^6.12.6", + "fast-xml-parser": "^3.21.0", + "json-schema-typed": "^7.0.3", + "jsonapi-typescript": "^0.1.3", + "tslib": "^1.13.0" + }, + "peerDependencies": { + "@esri/arcgis-rest-auth": "^2.14.0 || 3", + "@esri/arcgis-rest-feature-layer": "^3.2.0", + "@esri/arcgis-rest-portal": "^2.18.0 || 3", + "@esri/arcgis-rest-request": "^2.14.0 || 3", + "@esri/arcgis-rest-types": "^2.15.0 || 3" } }, - "node_modules/@stencil/sass": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-2.0.3.tgz", - "integrity": "sha512-ypS+0f6bJH2qXqrNAHirlYOWFax+qKKOIePLs7cu4LfKFr4ZVJSGRFBdgaeRrZMUhJWnhjV6io2uDldhrQhnMg==", - "dev": true, + "node_modules/@esri/hub-common/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/hub-initiatives": { + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/@esri/hub-initiatives/-/hub-initiatives-12.4.1.tgz", + "integrity": "sha512-RFYpFlS5D78cJThWhnl+qn93jeOMgoCa7U8KkET+2LW7L+Tg71ZvF2BnsPh0A5qo9fD4aQ/i6tBFxuuFqveJQw==", + "dependencies": { + "tslib": "^1.13.0" + }, "peerDependencies": { - "@stencil/core": ">=2.0.0 || >=3.0.0-beta.0" + "@esri/arcgis-rest-auth": "^2.13.0 || 3", + "@esri/arcgis-rest-portal": "^2.13.0 || 3", + "@esri/arcgis-rest-request": "^2.13.0 || 3", + "@esri/hub-common": "^12.4.0" } }, - "node_modules/@stencil/store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@stencil/store/-/store-2.0.3.tgz", - "integrity": "sha512-45SkXtVXaYMo3itvfUleKjQr8BNowi6b0i1jHCx8O2UXJag5myvstjf4uIxkW6IscV92VzLrpIXUFvbJJKa7DA==", - "dev": true, + "node_modules/@esri/hub-initiatives/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/hub-sites": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@esri/hub-sites/-/hub-sites-12.6.0.tgz", + "integrity": "sha512-qEdhNIQkkL+zwS0Z7hxNQhbqL/dYBBU3MSDktiXk41/6l23IznjcLdNmtqrDez/qEggbjL1Ed4MXQt1BLswRNQ==", + "dependencies": { + "tslib": "^1.13.0" + }, "peerDependencies": { - "@stencil/core": ">=2.0.0" + "@esri/arcgis-rest-auth": "^2.13.0 || 3", + "@esri/arcgis-rest-portal": "^2.19.0 || 3", + "@esri/arcgis-rest-request": "^2.13.0 || 3", + "@esri/hub-common": "^12.4.0", + "@esri/hub-initiatives": "^12.4.0", + "@esri/hub-teams": "^12.4.0" } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "node_modules/@esri/hub-sites/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/hub-teams": { + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/@esri/hub-teams/-/hub-teams-12.4.1.tgz", + "integrity": "sha512-olnDzWCPueH5olrlmXGqJRaiLhjBLrX+H4AbxTGmM267Wb5GOEuVdiQqOf3POOAvA8OXCIowFDMwuqZzMS0jaw==", + "dependencies": { + "tslib": "^1.13.0" + }, + "peerDependencies": { + "@esri/arcgis-rest-auth": "^2.13.0 || 3", + "@esri/arcgis-rest-portal": "^2.15.0 || 3", + "@esri/arcgis-rest-request": "^2.13.0 || 3", + "@esri/arcgis-rest-types": "^2.13.0 || 3", + "@esri/hub-common": "^12.4.0" + } + }, + "node_modules/@esri/hub-teams/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@esri/solution-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@esri/solution-common/-/solution-common-3.0.1.tgz", + "integrity": "sha512-5x4kNcfIsuWzpxqZahCm3HkldL3KaNS7LMrH8AwVooqPpZIgIToP6swrO9frl+fiC5YBH21AcM+BAcVnc9KmvA==", "dev": true, "dependencies": { - "defer-to-connect": "^1.0.1" + "@esri/arcgis-html-sanitizer": "3.0.1", + "@esri/hub-common": "^12.37.1", + "@esri/hub-initiatives": "^12.4.1", + "@esri/hub-sites": "^12.6.0", + "@esri/hub-teams": "^12.4.1", + "@types/lodash.isplainobject": "^4.0.7", + "adlib": "3.0.7", + "jszip": "3.10.1", + "lodash.isplainobject": "^4.0.6", + "tslib": "1.14.1", + "xss": "^1.0.14" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@esri/arcgis-rest-auth": "~3.5.0", + "@esri/arcgis-rest-feature-layer": "~3.5.0", + "@esri/arcgis-rest-portal": "~3.5.0", + "@esri/arcgis-rest-request": "~3.5.0", + "@esri/arcgis-rest-service-admin": "~3.5.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@esri/solution-common/node_modules/adlib": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/adlib/-/adlib-3.0.7.tgz", + "integrity": "sha512-74ylfcwB7+fu+jqN6e3mBJrAWhWHI5l8icUKh8IhNhmezetLRaMBrxQKJZ+GgyrNxyW+0M12eUirY1RJ5HhWKg==", "dev": true, - "engines": { - "node": ">= 6" + "dependencies": { + "esm": "^3.2.25" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "node_modules/@esri/solution-common/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" }, - "node_modules/@types/arcgis-js-api": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-4.26.0.tgz", - "integrity": "sha512-rQSgYUy2FqPTFu47h2ibXhh5RdoQ/dgIXNdUcLTwebJ8OeXFvuzF5+hHmzKr2aLfX8w34W08ZIhUwiE4m+vBLQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "@babel/types": "^7.0.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@types/color": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz", - "integrity": "sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==", - "peer": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "dependencies": { - "@types/color-convert": "*" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/color-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", - "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", - "peer": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "@types/color-name": "*" + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "peer": true - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "@types/node": "*" + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", - "dev": true + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/@types/lodash.isplainobject": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@types/lodash.isplainobject/-/lodash.isplainobject-4.0.7.tgz", - "integrity": "sha512-fdHtdjpy7fXydEaRHx1dPa+2AVmLbmk2Gv7f0w/90BKCH0DkWo8pIrzygnB3rvgo6oKNb3cO9VaPpj9GLCr5Ug==", + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@types/lodash": "*" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/node": { - "version": "16.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz", - "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==", + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "node_modules/@types/puppeteer": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.7.tgz", - "integrity": "sha512-JdGWZZYL0vKapXF4oQTC5hLVNfOgdPrqeZ1BiQnGk5cB7HeE91EWUiTdVSdQPobRN8rIcdffjiOgCYJ/S8QrnQ==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "@types/node": "*" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/raf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz", - "integrity": "sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==", - "optional": true - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { - "@types/yargs-parser": "*" + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz", - "integrity": "sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.49.0", - "@typescript-eslint/type-utils": "5.49.0", - "@typescript-eslint/utils": "5.49.0", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.49.0.tgz", - "integrity": "sha512-veLpCJLYn44Fru7mSvi2doxQMzMCOFSDYdMUQhAzaH1vFYq2RVNpecZ8d18Wh6UMv07yahXkiv/aShWE48iE9Q==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.49.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz", - "integrity": "sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.49.0", - "@typescript-eslint/types": "5.49.0", - "@typescript-eslint/typescript-estree": "5.49.0", - "debug": "^4.3.4" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "typescript": { + "node-notifier": { "optional": true } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz", - "integrity": "sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==", + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.49.0", - "@typescript-eslint/visitor-keys": "5.49.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz", - "integrity": "sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.49.0", - "@typescript-eslint/utils": "5.49.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz", - "integrity": "sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz", - "integrity": "sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.49.0", - "@typescript-eslint/visitor-keys": "5.49.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz", - "integrity": "sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.49.0", - "@typescript-eslint/types": "5.49.0", - "@typescript-eslint/typescript-estree": "5.49.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz", - "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.49.0", - "eslint-visitor-keys": "^3.3.0" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" }, "engines": { - "node": ">=0.4.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/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": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-node/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adlib": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/adlib/-/adlib-3.0.8.tgz", - "integrity": "sha512-CbQ+mcm45pdDN0aAiGYP6FZWDor+BM4DbqJsrUptM79a2+FbiP8QdF0xHABbgCkioApKqg8lI33Gl6X8GFelfA==", - "dependencies": { - "esm": "^3.2.25" + "node": ">=6.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, - "dependencies": { - "debug": "4" - }, "engines": { - "node": ">= 6.0.0" + "node": ">=6.0.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@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": { - "string-width": "^4.1.0" + "eslint-scope": "5.1.1" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@octokit/types": "^6.0.3" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/application-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/application-config/-/application-config-2.0.0.tgz", - "integrity": "sha512-NC5/0guSZK3/UgUDfCk/riByXzqz0owL1L3r63JPSBzYk5QALrp3bLxbsR7qeSfvYfFmAhnp3dbqYsW3U9MpZQ==", + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "dependencies": { - "application-config-path": "^0.1.0", - "load-json-file": "^6.2.0", - "write-json-file": "^4.2.0" - }, - "engines": { - "node": ">=8.3" + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/application-config-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", - "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==", - "dev": true - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dev": true, + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", "dev": true }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" + "@octokit/types": "^6.40.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@octokit/core": ">=2" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "@octokit/types": "^6.39.0", + "deprecation": "^2.3.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dev": true, + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" + "node_modules/@octokit/rest": { + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "dev": true, + "dependencies": { + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" } }, - "node_modules/autoprefixer": { - "version": "10.4.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", - "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], "dependencies": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@pdf-lib/fontkit": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/fontkit/-/fontkit-1.1.1.tgz", + "integrity": "sha512-KjMd7grNapIWS/Dm0gvfHEilSyAmeLvrEGVcqLGi0VYebuqqzTbgF29efCx7tvx+IEbG3zQciRSWl3GkUSvjZg==", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "dependencies": { + "pako": "^1.0.10" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.7.1.tgz", + "integrity": "sha512-nIb8SOBgDEMFY2iS2MdnUZOg2ikcYchRrBoF+wtdjieRFKR2uGRipHY/oFLo+2N6anDualyClPzGywTHRGrLfw==", + "dev": true, + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.1", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" }, "bin": { - "autoprefixer": "bin/autoprefixer" + "browsers": "lib/cjs/main-cli.js" }, "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=16.3.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "type-detect": "4.0.8" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "node_modules/@stencil-community/postcss": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@stencil-community/postcss/-/postcss-2.2.0.tgz", + "integrity": "sha512-PuPdjqgF6HdvSLwS6fpLf1TRzd3bd6zqpsICCUA0u9sxPnwrsIpx1xYyA/K9hSWrmyUg0WhHPvkX9k26N5DCnw==", "dev": true, "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "postcss": "~8.4.27" + }, + "peerDependencies": { + "@stencil/core": ">=2.0.0 || >=3.0.0 || >=4.0.0" + } + }, + "node_modules/@stencil/core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.7.0.tgz", + "integrity": "sha512-hl3hD5FA8F9kZiDJSus08Kno1QRl+fXeMBzrl5DjWAzAu0JHxL1AqTph5oQSekjvkSahaa8JtsXnHRZU93eivg==", + "dev": true, + "bin": { + "stencil": "bin/stencil" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=16.0.0", + "npm": ">=7.10.0" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "node_modules/@stencil/sass": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-3.0.7.tgz", + "integrity": "sha512-HcBjrh2CJ6aJnkOrBNSVyf1+x3FnUneYFk44rcx/jDK6Lx7R4w0dXMEsIR5MXqtROYWonZt7WtR8wsM1vcD+6w==", "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@stencil/core": ">=2.0.0 || >=3.0.0-beta.0 || >= 4.0.0-beta.0 || >= 4.0.0" } }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "node_modules/@stencil/store": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@stencil/store/-/store-2.0.11.tgz", + "integrity": "sha512-iU803qQl8DXR1S6X4xJz6VVNgPnbhktbfLxAGe+Kx0PLJ92lBuiLKpYtPkrZNWwPOOJd3z3uSDz9UGajU4krHg==", "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12.0.0", + "npm": ">=6.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@stencil/core": ">=2.0.0 || >=3.0.0 || >= 4.0.0-beta.0 || >= 4.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "optional": true, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=6" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/arcgis-js-api": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-4.27.0.tgz", + "integrity": "sha512-sjbbvVTOvzZRUR6rrA4KSbxlvAnclAen2Km+IHlUEYxu7zQKAiSW+zQL6MkQw8ujvYEZRHj8VBttcvjONzmNIg==", + "dev": true + }, + "node_modules/@types/autoprefixer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@types/autoprefixer/-/autoprefixer-10.2.0.tgz", + "integrity": "sha512-ClU0uw3HhUra890K4xcf2IQxD6w0WOjPIaKb8jrRXYPHvvUW1P5dGufPlDtTo5gtWPWH+4L6tSBAoAKVf93uBQ==", + "deprecated": "This is a stub types definition. autoprefixer provides its own type definitions, so you do not need this installed.", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "autoprefixer": "*" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "@babel/types": "^7.0.0" } }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@babel/types": "^7.20.7" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "node_modules/@types/color": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.4.tgz", + "integrity": "sha512-OpisS4bqJJwbkkQRrMvURf3DOxBoAg9mysHYI7WgrWpSYHqHGKYBULHdz4ih77SILcLDo/zyHGFyfIl9yb8NZQ==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@types/color-convert": "*" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "node_modules/@types/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-GwXanrvq/tBHJtudbl1lSy9Ybt7KS9+rA+YY3bcuIIM+d6jSHUr+5yjO83gtiRpuaPiBccwFjSnAK2qSrIPA7w==", "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" + "@types/color-name": "*" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "@types/node": "*" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "dependencies": { - "node-int64": "^0.4.0" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", + "dev": true + }, + "node_modules/@types/lodash.isplainobject": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@types/lodash.isplainobject/-/lodash.isplainobject-4.0.7.tgz", + "integrity": "sha512-fdHtdjpy7fXydEaRHx1dPa+2AVmLbmk2Gv7f0w/90BKCH0DkWo8pIrzygnB3rvgo6oKNb3cO9VaPpj9GLCr5Ug==", "dev": true, - "engines": { - "node": "*" + "dependencies": { + "@types/lodash": "*" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/@types/node": { + "version": "16.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz", + "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==", "dev": true }, - "node_modules/builtin-modules": { + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==", + "optional": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", + "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", + "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz", + "integrity": "sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/type-utils": "5.49.0", + "@typescript-eslint/utils": "5.49.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.49.0.tgz", + "integrity": "sha512-veLpCJLYn44Fru7mSvi2doxQMzMCOFSDYdMUQhAzaH1vFYq2RVNpecZ8d18Wh6UMv07yahXkiv/aShWE48iE9Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.49.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz", + "integrity": "sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz", + "integrity": "sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz", + "integrity": "sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.49.0", + "@typescript-eslint/utils": "5.49.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz", + "integrity": "sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz", + "integrity": "sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz", + "integrity": "sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz", + "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.49.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/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-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adlib": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/adlib/-/adlib-3.0.8.tgz", + "integrity": "sha512-CbQ+mcm45pdDN0aAiGYP6FZWDor+BM4DbqJsrUptM79a2+FbiP8QdF0xHABbgCkioApKqg8lI33Gl6X8GFelfA==", + "dependencies": { + "esm": "^3.2.25" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/application-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/application-config/-/application-config-2.0.0.tgz", + "integrity": "sha512-NC5/0guSZK3/UgUDfCk/riByXzqz0owL1L3r63JPSBzYk5QALrp3bLxbsR7qeSfvYfFmAhnp3dbqYsW3U9MpZQ==", + "dev": true, + "dependencies": { + "application-config-path": "^0.1.0", + "load-json-file": "^6.2.0", + "write-json-file": "^4.2.0" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/application-config-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", + "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==", + "dev": true + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "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/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/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-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "optional": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-ftp": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", + "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/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/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/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.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "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/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001558", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001558.tgz", + "integrity": "sha512-/Et7DwLqpjS47JPEcz6VnxU9PwcIdVi0ciLXRWBQdj1XFye68pSQYpV0QtPTfUKWuOaEig+/Vez2l74eDc1tPQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/canvg": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.10.tgz", + "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==", + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/canvg/node_modules/core-js": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", + "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", + "hasInstallScript": true, + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/canvg/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "optional": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/changelog-parser": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.1.tgz", + "integrity": "sha512-tNUYFRCEeWTXmwLqoNtOEzx9wcytg72MmGQqsEs14ClYwIDln7sbQw7FJj/dulXgSlsxkemc9gpPQhZYZx1TPw==", + "dev": true, + "dependencies": { + "line-reader": "^0.2.4", + "remove-markdown": "^0.2.2" + }, + "bin": { + "changelog-parser": "bin/cli.js" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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.npmjs.org/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/chromium-bidi": { + "version": "0.4.27", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.27.tgz", + "integrity": "sha512-8Irq0FbKYN8Xmj8M62kta6wk5MyDKeYIFtNavxQ2M3xf2v5MCC4ntf+FxitQu1iHaQvGU6t5O+Nrep0RNNS0EQ==", + "dev": true, + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "9.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/ci-info": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/composed-offset-position": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/composed-offset-position/-/composed-offset-position-0.0.4.tgz", + "integrity": "sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", + "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/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/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz", + "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/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/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1179426", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1179426.tgz", + "integrity": "sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg==", + "dev": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "esutils": "^2.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/dompurify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.3.tgz", + "integrity": "sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==", + "optional": true + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", "dev": true, - "engines": { - "node": ">= 6" + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "node_modules/duplexify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/canvg": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.10.tgz", - "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==", - "optional": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "@types/raf": "^3.4.0", - "core-js": "^3.8.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "rgbcolor": "^1.0.1", - "stackblur-canvas": "^2.0.0", - "svg-pathdata": "^6.0.3" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">= 6" } }, - "node_modules/canvg/node_modules/core-js": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", - "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", - "hasInstallScript": true, - "optional": true, + "node_modules/electron-to-chromium": { + "version": "1.4.561", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.561.tgz", + "integrity": "sha512-eS5t4ulWOBfVHdq9SW2dxEaFarj1lPjvJ8PaYMOjY0DecBaj/t4ARziL2IPpDr4atyWwjLFGQ2vo/VCgQFezVQ==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/canvg/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "optional": true + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "iconv-lite": "^0.6.2" } }, - "node_modules/changelog-parser": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.1.tgz", - "integrity": "sha512-tNUYFRCEeWTXmwLqoNtOEzx9wcytg72MmGQqsEs14ClYwIDln7sbQw7FJj/dulXgSlsxkemc9gpPQhZYZx1TPw==", + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "line-reader": "^0.2.4", - "remove-markdown": "^0.2.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "bin": { - "changelog-parser": "bin/cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "once": "^1.4.0" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "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" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/clean-regexp": { + "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" + "has": "^1.0.3" } }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, "engines": { "node": ">=8" } }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, "engines": { - "node": ">= 10" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", "dev": true, "dependencies": { - "string-width": "^4.2.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "node_modules/eslint-config-prettier": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, - "engines": { - "node": ">=0.8" + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "node_modules/eslint-plugin-jest": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.0.tgz", + "integrity": "sha512-79WQtuBsTN1S8Y9+7euBYwxIOia/k7ykkl9OCBHL3xuww5ecursHy/D8GCIlvzHVWv85gOkS5Kv6Sh7RxOgK1Q==", "dev": true, "dependencies": { - "mimic-response": "^1.0.0" + "@typescript-eslint/experimental-utils": "^5.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "engines": { - "node": ">=4" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "peer": true, + "node_modules/eslint-plugin-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", + "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" }, "engines": { - "node": ">=12.5.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "esutils": "^2.0.2" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "peer": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "node": ">=0.10.0" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "color-support": "bin.js" + "semver": "bin/semver.js" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/eslint-plugin-unicorn": { + "version": "39.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-39.0.0.tgz", + "integrity": "sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==", "dev": true, "dependencies": { - "delayed-stream": "~1.0.0" + "@babel/helper-validator-identifier": "^7.14.9", + "ci-info": "^3.2.0", + "clean-regexp": "^1.0.0", + "eslint-template-visitor": "^2.3.2", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "4", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.23", + "safe-regex": "^2.1.1", + "semver": "^7.3.5", + "strip-indent": "^3.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=7.32.0" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/eslint-template-visitor": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", + "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", "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" + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "eslint-visitor-keys": "^2.0.0", + "esquery": "^1.3.1", + "multimap": "^1.1.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "node_modules/eslint-template-visitor/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "dependencies": { - "node-fetch": "2.6.7" + "engines": { + "node": ">=10" } }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, - "peerDependencies": { - "encoding": "^0.1.0" + "funding": { + "url": "https://github.com/sponsors/mysticatea" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/css-line-break": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", - "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", - "optional": true, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, "dependencies": { - "utrie": "^1.0.2" + "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" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { - "cssesc": "bin/cssesc" + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" } }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "cssom": "~0.3.6" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "node_modules/esri-loader": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.7.0.tgz", + "integrity": "sha512-cB1Sw9EQjtW4mtT7eFBjn/6VaaIWNTjmTd2asnnEyuZk1xVSFRMCfLZSBSjZM7ZarDcVu5WIjOP0t0MYVu4hVQ==", "dev": true }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "ms": "2.1.2" + "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": ">=6.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, "engines": { "node": ">=10" }, @@ -3582,415 +5981,425 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">= 0.8.0" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "clone": "^1.0.2" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "node_modules/expect/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/expect/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "node_modules/expect/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "node_modules/expect/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/detect-newline": { + "node_modules/expect/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" }, "bin": { - "detective": "bin/detective.js" + "extract-zip": "cli.js" }, "engines": { - "node": ">=0.8.0" + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "node_modules/devtools-protocol": { - "version": "0.0.981744", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", - "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", - "dev": true + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, + "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": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8.6.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, + "node_modules/fast-xml-parser": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", + "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", "dependencies": { - "esutils": "^2.0.2" + "strnum": "^1.0.4" }, - "engines": { - "node": ">=6.0.0" + "bin": { + "xml2js": "cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" } }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" + "reusify": "^1.0.4" } }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "bser": "2.1.1" } }, - "node_modules/dompurify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.3.tgz", - "integrity": "sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==", - "optional": true + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "node_modules/fflate": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", + "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "is-obj": "^2.0.0" + "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.8.0" } }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/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/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, + "node_modules/focus-trap": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.2.0.tgz", + "integrity": "sha512-v4wY6HDDYvzkBy4735kW5BUEuw6Yz9ABqMYLuTNbzAFPcBOGiGHwwcNVMvUz4G0kgSYh13wa/7TG3XwTeT4O/A==", "dependencies": { - "is-arrayish": "^0.2.1" + "tabbable": "^6.0.1" } }, - "node_modules/es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-request-submit-polyfill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/form-request-submit-polyfill/-/form-request-submit-polyfill-2.0.0.tgz", + "integrity": "sha512-p0+M92y2gFnP0AuuL8VJ0GYVzAT0bYp3GsSkmPFhvUopdnfDLP/9xplQTBBc4w8qOjKRzdK7GaFcdL9IhlXdTQ==" + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, "engines": { - "node": ">= 0.4" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "patreon", + "url": "https://www.patreon.com/infusion" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6 <7 || >=8" } }, - "node_modules/es-shim-unscopables": { + "node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "dependencies": { - "has": "^1.0.3" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -3999,950 +6408,925 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8.0.0" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "pump": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "node_modules/get-uri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz", + "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^5.0.1", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 14" } }, - "node_modules/eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "node_modules/gh-release": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/gh-release/-/gh-release-6.0.4.tgz", + "integrity": "sha512-6djoVxTUpbw9GZ/mveNjp5j/IDPY3KACscSlmNwwfkR+EQCNTSgGRywb0TRaQdA36RnwtcNOWEaLwB5ez7jSRg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "@octokit/rest": "^18.0.9", + "changelog-parser": "^2.0.0", + "deep-extend": "^0.6.0", + "gauge": "^v4.0.4", + "gh-release-assets": "^2.0.0", + "ghauth": "^5.0.0", + "github-url-to-object": "^4.0.4", + "inquirer": "^8.0.0", + "shelljs": "^0.8.4", + "update-notifier": "^5.0.0", + "yargs": "^17.0.0" }, "bin": { - "eslint": "bin/eslint.js" + "gh-release": "bin/cli.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" + } + }, + "node_modules/gh-release-assets": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gh-release-assets/-/gh-release-assets-2.0.1.tgz", + "integrity": "sha512-KrhmYIA/5oQdfEl9vQ2yF6DOM2QOAjpCOsNKFkc7X3dOTefSixttW0ysot3noQ+3XL8NdkdC7z+mqfePzIwexg==", + "dev": true, + "dependencies": { + "async": "^3.2.0", + "mime": "^3.0.0", + "progress-stream": "^2.0.0", + "pumpify": "^2.0.1", + "simple-get": "^4.0.0", + "util-extend": "^1.0.1" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=12" + } + }, + "node_modules/ghauth": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ghauth/-/ghauth-5.0.1.tgz", + "integrity": "sha512-WzgL12dczZX/VrvVTkoFAJLU3pb6PDT+TS60kLlaU51fuNEv6VoYpRXlnwIjkMIhqWead9+dLBEzj0E1ghYMkg==", + "dev": true, + "dependencies": { + "application-config": "^2.0.0", + "node-fetch": "^2.6.0", + "ora": "^4.0.5", + "read": "^1.0.7" } }, - "node_modules/eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "node_modules/github-url-to-object": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/github-url-to-object/-/github-url-to-object-4.0.6.tgz", + "integrity": "sha512-NaqbYHMUAlPcmWFdrAB7bcxrNIiiJWJe8s/2+iOc9vlcHlwHqSGrPk+Yi3nu6ebTwgsZEa7igz+NH2vEq3gYwQ==", "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "dependencies": { + "is-url": "^1.1.0" } }, - "node_modules/eslint-plugin-jest": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.0.tgz", - "integrity": "sha512-79WQtuBsTN1S8Y9+7euBYwxIOia/k7ykkl9OCBHL3xuww5ecursHy/D8GCIlvzHVWv85gOkS5Kv6Sh7RxOgK1Q==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" + "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": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": "*" }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "node": ">=10.13.0" } }, - "node_modules/eslint-plugin-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", - "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "ini": "2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { - "esutils": "^2.0.2" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-unicorn": { - "version": "39.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-39.0.0.tgz", - "integrity": "sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "ci-info": "^3.2.0", - "clean-regexp": "^1.0.0", - "eslint-template-visitor": "^2.3.2", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", - "indent-string": "4", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.23", - "safe-regex": "^2.1.1", - "semver": "^7.3.5", - "strip-indent": "^3.0.0" + "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": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" }, - "peerDependencies": { - "eslint": ">=7.32.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8.6" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/got/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=4" } }, - "node_modules/eslint-template-visitor": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", - "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "dependencies": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "eslint-visitor-keys": "^2.0.0", - "esquery": "^1.3.1", - "multimap": "^1.1.0" + "pump": "^3.0.0" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/eslint-template-visitor/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/got/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "function-bind": "^1.1.1" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "node": ">= 0.4.0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "get-intrinsic": "^1.1.1" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "dependencies": { - "estraverse": "^5.1.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/esri-loader": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.4.0.tgz", - "integrity": "sha512-iS3SbBmrnr4TlUdAjyyVZD2yCud8AMZkyJcmYEVzTiE5wVUtdN8d9USp7XYtilgwkJe/eWR2f2G1+S58ESqLuQ==", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "optional": true, + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, "engines": { - "node": ">=4.0" + "node": ">=8.0.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10.17.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "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" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">= 4" } }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, "engines": { "node": ">=4" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "bin": { - "extract-zip": "cli.js" + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">= 10.17.0" + "node": ">=8" }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "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": ">=0.8.19" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { - "strnum": "^1.0.4" - }, - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" + "engines": { + "node": ">=10" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", "dev": true, "dependencies": { - "bser": "2.1.1" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "node_modules/inquirer/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "pend": "~1.2.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fflate": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", - "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/inquirer/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "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": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.10" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" + "has-bigints": "^1.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "binary-extensions": "^2.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/focus-trap": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.2.0.tgz", - "integrity": "sha512-v4wY6HDDYvzkBy4735kW5BUEuw6Yz9ABqMYLuTNbzAFPcBOGiGHwwcNVMvUz4G0kgSYh13wa/7TG3XwTeT4O/A==", - "dependencies": { - "tabbable": "^6.0.1" + "node": ">=8" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "is-callable": "^1.1.3" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "builtin-modules": "^3.3.0" }, "engines": { - "node": ">= 6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/form-request-submit-polyfill": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/form-request-submit-polyfill/-/form-request-submit-polyfill-2.0.0.tgz", - "integrity": "sha512-p0+M92y2gFnP0AuuL8VJ0GYVzAT0bYp3GsSkmPFhvUopdnfDLP/9xplQTBBc4w8qOjKRzdK7GaFcdL9IhlXdTQ==" - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" + "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.10.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=6" } }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "is-extglob": "^2.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "dependencies": { - "pump": "^3.0.0" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { + "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, "engines": { "node": ">= 0.4" }, @@ -4950,124 +7334,111 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gh-release": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/gh-release/-/gh-release-6.0.4.tgz", - "integrity": "sha512-6djoVxTUpbw9GZ/mveNjp5j/IDPY3KACscSlmNwwfkR+EQCNTSgGRywb0TRaQdA36RnwtcNOWEaLwB5ez7jSRg==", + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", "dev": true, - "dependencies": { - "@octokit/rest": "^18.0.9", - "changelog-parser": "^2.0.0", - "deep-extend": "^0.6.0", - "gauge": "^v4.0.4", - "gh-release-assets": "^2.0.0", - "ghauth": "^5.0.0", - "github-url-to-object": "^4.0.4", - "inquirer": "^8.0.0", - "shelljs": "^0.8.4", - "update-notifier": "^5.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "gh-release": "bin/cli.js" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=0.12.0" } }, - "node_modules/gh-release-assets": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gh-release-assets/-/gh-release-assets-2.0.1.tgz", - "integrity": "sha512-KrhmYIA/5oQdfEl9vQ2yF6DOM2QOAjpCOsNKFkc7X3dOTefSixttW0ysot3noQ+3XL8NdkdC7z+mqfePzIwexg==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { - "async": "^3.2.0", - "mime": "^3.0.0", - "progress-stream": "^2.0.0", - "pumpify": "^2.0.1", - "simple-get": "^4.0.0", - "util-extend": "^1.0.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ghauth": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ghauth/-/ghauth-5.0.1.tgz", - "integrity": "sha512-WzgL12dczZX/VrvVTkoFAJLU3pb6PDT+TS60kLlaU51fuNEv6VoYpRXlnwIjkMIhqWead9+dLBEzj0E1ghYMkg==", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, - "dependencies": { - "application-config": "^2.0.0", - "node-fetch": "^2.6.0", - "ora": "^4.0.5", - "read": "^1.0.7" + "engines": { + "node": ">=8" } }, - "node_modules/github-url-to-object": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/github-url-to-object/-/github-url-to-object-4.0.6.tgz", - "integrity": "sha512-NaqbYHMUAlPcmWFdrAB7bcxrNIiiJWJe8s/2+iOc9vlcHlwHqSGrPk+Yi3nu6ebTwgsZEa7igz+NH2vEq3gYwQ==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "dependencies": { - "is-url": "^1.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "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": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "ini": "2.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "call-bind": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, "engines": { "node": ">=8" }, @@ -5075,13 +7446,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5090,2894 +7461,2994 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "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" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true }, - "node_modules/got/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "pump": "^3.0.0" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "semver": "^7.5.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { - "whatwg-encoding": "^1.0.5" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html2canvas": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", - "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", - "optional": true, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, "dependencies": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=8.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/jest-circus/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" }, - "engines": { - "node": ">=6" + "bin": { + "jest": "bin/jest.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "dev": true, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">=0.8.19" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/jest-config/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/jest-config/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/jest-config/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inquirer/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inquirer/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "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" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">= 0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "node_modules/jest-each/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "node_modules/jest-each/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "builtin-modules": "^3.3.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "node_modules/jest-leak-detector/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "ci-info": "^2.0.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "bin": { - "is-ci": "bin.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { - "has": "^1.0.3" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "node_modules/jest-resolve/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "node_modules/jest-snapshot/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" + "argparse": "^2.0.1" }, "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-typescript": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/json-typescript/-/json-typescript-1.1.2.tgz", + "integrity": "sha512-Np07MUsYMKbB0nNlw/MMIRjUK7ehO48LA4FsrzrhCfTUxMKbvOBAo0sc0b4nQ80ge9d32sModCunCgoyUojgUA==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6" } }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "node_modules/jsonapi-typescript": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/jsonapi-typescript/-/jsonapi-typescript-0.1.3.tgz", + "integrity": "sha512-uPcPS01GeM+4HIyn18s7l1yD2S3uLZy2TX1UkQffCM0bLb3TMwudXUyVXPHTMZ4vdZT8MqKqN2vjB5PogTAdFQ==", + "dependencies": { + "json-typescript": "^1.0.0" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jspdf": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.1.tgz", + "integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==", "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/runtime": "^7.14.0", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.4.8" + }, + "optionalDependencies": { + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "html2canvas": "^1.0.0-rc.5" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node_modules/jspdf/node_modules/core-js": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", + "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", + "hasInstallScript": true, + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "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" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" }, "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } + "json-buffer": "3.0.0" } }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6" } }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "dependencies": { - "detect-newline": "^3.0.0" + "package-json": "^6.3.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6" } }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 0.8.0" } }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "immediate": "~3.0.5" } }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "dev": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10" } }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "node_modules/line-reader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz", + "integrity": "sha512-342xzyZZS9uTiKwHJcMacopVl/WjrMMCZS1Qg4Uhl/WBknWRrGFdKOIS1Kec6SaiTcZMtmuxWvvIbPXj/+FMjA==", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=8" } }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "p-locate": "^5.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "chalk": "^2.4.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "color-convert": "^1.9.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.8.0" } }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "has-flag": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-resolve/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "loose-envify": "cli.js" } }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "yallist": "^3.0.2" } }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" + "semver": "^6.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 8" } }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8.6" } }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "bin": { + "mime": "cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10.0.0" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, "engines": { - "node": ">= 10.13.0" + "node": ">=4" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": "*" } }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "dev": true }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multimap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", + "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { - "js-yaml": "bin/js-yaml.js" + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dev": true, "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "4.x || >=6.0.0" }, "peerDependencies": { - "canvas": "^2.5.0" + "encoding": "^0.1.0" }, "peerDependenciesMeta": { - "canvas": { + "encoding": { "optional": true } } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/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.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/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/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node_modules/json-typescript": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/json-typescript/-/json-typescript-1.1.2.tgz", - "integrity": "sha512-Np07MUsYMKbB0nNlw/MMIRjUK7ehO48LA4FsrzrhCfTUxMKbvOBAo0sc0b4nQ80ge9d32sModCunCgoyUojgUA==" + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonapi-typescript": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/jsonapi-typescript/-/jsonapi-typescript-0.1.3.tgz", - "integrity": "sha512-uPcPS01GeM+4HIyn18s7l1yD2S3uLZy2TX1UkQffCM0bLb3TMwudXUyVXPHTMZ4vdZT8MqKqN2vjB5PogTAdFQ==", "dependencies": { - "json-typescript": "^1.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/jspdf": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.1.tgz", - "integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==", + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.14.0", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "fflate": "^0.4.8" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, - "optionalDependencies": { - "canvg": "^3.0.6", - "core-js": "^3.6.0", - "dompurify": "^2.2.0", - "html2canvas": "^1.0.0-rc.5" - } - }, - "node_modules/jspdf/node_modules/core-js": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", - "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", - "hasInstallScript": true, - "optional": true, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - }, - "engines": { - "node": ">=4.0" + "bin": { + "semver": "bin/semver" } }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, - "dependencies": { - "json-buffer": "3.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "package-json": "^6.3.0" + "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, "engines": { - "node": ">= 0.8.0" + "node": ">= 6" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, - "dependencies": { - "immediate": "~3.0.5" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/line-reader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz", - "integrity": "sha512-342xzyZZS9uTiKwHJcMacopVl/WjrMMCZS1Qg4Uhl/WBknWRrGFdKOIS1Kec6SaiTcZMtmuxWvvIbPXj/+FMjA==", - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "peer": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dev": true, "dependencies": { - "chalk": "^2.4.2" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "wrappy": "1" } }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/log-symbols/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/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": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/ora/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true, - "dependencies": { - "yallist": "^3.0.2" + "engines": { + "node": ">=6" } }, - "node_modules/make-dir": { + "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "dependencies": { - "tmpl": "1.0.5" + "engines": { + "node": ">=6" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, "engines": { - "node": ">= 8" + "node": ">= 14" } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "debug": "^4.3.4" }, "engines": { - "node": ">=8.6" + "node": ">= 14" } }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=10.0.0" + "node": ">= 14" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, "engines": { - "node": ">= 0.6" + "node": ">= 14" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/pac-resolver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "degenerator": "^5.0.0", + "ip": "^1.1.8", + "netmask": "^2.0.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 14" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/min-indent": { + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "resolved": "https://registry.npmjs.org/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": ">=4" + "node": ">=6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@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": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "node": ">=8" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multimap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", - "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=8" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "engines": { + "node": ">=0.10.0" } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "node_modules/pdf-lib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "optional": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "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" + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/normalize-package-data/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">= 6" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { "node": ">=8" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, "engines": { - "node": ">= 6" + "node": "^10 || ^12 || >=14" } }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "node_modules/postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, "engines": { - "node": ">= 0.4" + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "node_modules/postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "postcss-selector-parser": "^6.0.6" }, "engines": { - "node": ">= 0.4" + "node": ">=12.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" } }, - "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "node_modules/prettier": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.13.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "dependencies": { - "wrappy": "1" + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": ">=6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.4.0" } }, - "node_modules/ora": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", - "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "node_modules/progress-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-2.0.0.tgz", + "integrity": "sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==", "dev": true, "dependencies": { - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "speedometer": "~1.0.0", + "through2": "~2.0.3" } }, - "node_modules/ora/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/proxy-agent": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "debug": "^4.3.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=6" + "node": ">= 14" } }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=12" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { - "callsites": "^3.0.0" - }, + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "dev": true, + "dependencies": { + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "engines": { "node": ">=6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "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" + "escape-goat": "^2.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "node_modules/puppeteer": { + "version": "21.3.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.3.1.tgz", + "integrity": "sha512-MhDvA+BYmzx+9vHJ/ZtknhlPbSPjTlHQnW1QYfkGpBcGW2Yy6eMahjkNuhAzN29H9tb47IcT0QsVcUy3Txx+SA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@puppeteer/browsers": "1.7.1", + "cosmiconfig": "8.3.6", + "puppeteer-core": "21.3.1" + }, + "engines": { + "node": ">=16.3.0" + } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/puppeteer-core": { + "version": "21.3.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.3.1.tgz", + "integrity": "sha512-3VrCDEAHk0hPvE8qtfKgsT8CzRuaQrDQGXdCOuMFJM7Ap+ghpQzhPa9H3DE3gZgwDvC5Jt7SxUkAWLCeNbD0xw==", "dev": true, + "dependencies": { + "@puppeteer/browsers": "1.7.1", + "chromium-bidi": "0.4.27", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1179426", + "ws": "8.14.1" + }, "engines": { - "node": ">=8" + "node": ">=16.3.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", + "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", "dev": true, "engines": { - "node": ">=0.10.0" + "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/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/puppeteer/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pdf-lib": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", - "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "optional": true, "dependencies": { - "@pdf-lib/standard-fonts": "^1.0.0", - "@pdf-lib/upng": "^1.0.1", - "pako": "^1.0.11", - "tslib": "^1.11.1" + "performance-now": "^2.1.0" } }, - "node_modules/pdf-lib/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "optional": true + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, "engines": { - "node": ">=8.6" + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "mute-stream": "~0.0.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.8" } }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/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": ">= 6" + "node": ">=8" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/find-up": { + "node_modules/read-pkg-up/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", @@ -7990,7 +10461,7 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/locate-path": { + "node_modules/read-pkg-up/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", @@ -8002,7 +10473,7 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/p-limit": { + "node_modules/read-pkg-up/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", @@ -8017,7 +10488,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/p-locate": { + "node_modules/read-pkg-up/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", @@ -8029,357 +10500,532 @@ "node": ">=8" } }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=8.10.0" } }, - "node_modules/postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { - "camelcase-css": "^2.0.1" + "resolve": "^1.1.6" }, "engines": { - "node": "^12 || ^14 || >= 16" + "node": ">= 0.10" + } + }, + "node_modules/rechoir/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" }, - "peerDependencies": { - "postcss": "^8.3.3" + "engines": { + "node": ">=4" } }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">= 10" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "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" }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-markdown": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.2.2.tgz", + "integrity": "sha512-jwgEf3Yh/xi4WodWi/vPlasa9C9pMv1kz5ITOIAGjBW7PeZ/CHZCdBfJzQnn2VX2cBvf1xCuJv0tUJqn/FCMNA==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=12.0" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, "engines": { - "node": ">=10.13.0" + "node": ">=10" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "dev": true, "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" + "lowercase-keys": "^1.0.0" } }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { - "node": ">=10" + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", "dev": true, - "engines": { - "node": ">=0.4.0" + "dependencies": { + "regexp-tree": "~0.1.1" } }, - "node_modules/progress-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-2.0.0.tgz", - "integrity": "sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==", + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, "dependencies": { - "speedometer": "~1.0.0", - "through2": "~2.0.3" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/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/pumpify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", - "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "duplexify": "^4.1.1", - "inherits": "^2.0.3", - "pump": "^3.0.0" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "shebang-regex": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/puppeteer": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", - "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", - "deprecated": "< 18.1.0 is no longer supported", + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, - "hasInstallScript": true, "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" }, "engines": { - "node": ">=10.18.1" + "node": ">=4" } }, - "node_modules/puppeteer/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true, "funding": [ { @@ -8396,332 +11042,494 @@ } ] }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" } }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "optional": true, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, "dependencies": { - "performance-now": "^2.1.0" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "debug": "^4.3.4" }, - "bin": { - "rc": "cli.js" + "engines": { + "node": ">= 14" } }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/sort-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", + "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sortablejs": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", + "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "node_modules/speedometer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-1.0.0.tgz", + "integrity": "sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "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" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "node_modules/stackblur-canvas": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz", + "integrity": "sha512-EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==", + "optional": true, "engines": { - "node": ">=8" + "node": ">=0.1.14" } }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/stencil-eslint-core": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stencil-eslint-core/-/stencil-eslint-core-0.3.1.tgz", + "integrity": "sha512-z1yp1+Qzr6C/X4RgaCt0egDu5CsIrZzMCr9eGMmQTnSU1leVbSJB5aoI/KWv8qe8k7b1LCit46Ff3udRJ96Lfw==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "eslint-utils": "~3.0.0", + "tsutils": "~3.21.0" }, "engines": { - "node": ">=8" + "node": ">=8.9.0" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.8.0", + "eslint": "^8" } }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamx": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", + "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", "dev": true, "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" } }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "safe-buffer": "~5.1.0" } }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "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" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, - "engines": { - "node": ">=8.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { - "resolve": "^1.1.6" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, - "engines": { - "node": ">= 0.10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rechoir/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "bin": { - "regexp-tree": "bin/regexp-tree" + "engines": { + "node": ">=8" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "min-indent": "^1.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "rc": "1.2.8" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "dependencies": { - "rc": "^1.2.8" + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "optional": true, "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/remove-markdown": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.2.2.tgz", - "integrity": "sha512-jwgEf3Yh/xi4WodWi/vPlasa9C9pMv1kz5ITOIAGjBW7PeZ/CHZCdBfJzQnn2VX2cBvf1xCuJv0tUJqn/FCMNA==", - "dev": true + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/tailwindcss": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", + "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", "dev": true, + "dependencies": { + "arg": "^5.0.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "cosmiconfig": "^7.0.1", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss": "^8.4.6", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12.13.0" + }, + "peerDependencies": { + "autoprefixer": "^10.0.2", + "postcss": "^8.0.9" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "node_modules/tailwindcss/node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { "is-core-module": "^2.9.0", @@ -8735,2104 +11543,2126 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" } }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { - "lowercase-keys": "^1.0.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/timezone-groups": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/timezone-groups/-/timezone-groups-0.5.0.tgz", + "integrity": "sha512-NdAII1zImVw6ndNSqCou4AZ7Ur69VwTKHYYB1HpnlUQLHu1kvwdw3pMZyQgAaXINCHpSviD0Im7zZL8rqbMZNA==", + "bin": { + "timezone-groups": "dist/cli.cjs" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=8" + "node": ">=0.6.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/rgbcolor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", - "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", - "optional": true, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, "engines": { - "node": ">= 0.8.15" + "node": ">=8.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, "bin": { - "rimraf": "bin.js" + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=0.4.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "queue-microtask": "^1.2.2" + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "tslib": "^2.1.0" + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "regexp-tree": "~0.1.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" + "is-typedarray": "^1.0.0" } }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=10" + "node": ">=4.2.0" } }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "semver": "^6.3.0" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "buffer": "^5.2.1", + "through": "^2.3.8" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/shebang-command": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, "engines": { "node": ">=4" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "crypto-random-string": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", "dev": true }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "dev": true, - "funding": [ { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "peer": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "peer": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "dev": true, "dependencies": { - "is-plain-obj": "^2.0.0" + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "peer": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "punycode": "^2.1.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", "dev": true }, - "node_modules/speedometer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-1.0.0.tgz", - "integrity": "sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/sprintf-js": { + "node_modules/util-extend": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", "dev": true }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stackblur-canvas": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz", - "integrity": "sha512-EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==", + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", "optional": true, - "engines": { - "node": ">=0.1.14" + "dependencies": { + "base64-arraybuffer": "^1.0.2" } }, - "node_modules/stencil-eslint-core": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stencil-eslint-core/-/stencil-eslint-core-0.3.1.tgz", - "integrity": "sha512-z1yp1+Qzr6C/X4RgaCt0egDu5CsIrZzMCr9eGMmQTnSU1leVbSJB5aoI/KWv8qe8k7b1LCit46Ff3udRJ96Lfw==", + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "dependencies": { - "eslint-utils": "~3.0.0", - "tsutils": "~3.21.0" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" }, "engines": { - "node": ">=8.9.0" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.8.0", - "eslint": "^8" + "node": ">=10.12.0" } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "makeerror": "1.0.12" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "defaults": "^1.0.3" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, "dependencies": { + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "string-width": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/write-json-file": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", + "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", "dev": true, + "dependencies": { + "detect-indent": "^6.0.0", + "graceful-fs": "^4.1.15", + "is-plain-obj": "^2.0.0", + "make-dir": "^3.0.0", + "sort-keys": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=8.3" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "node_modules/xss": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", + "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" }, "engines": { - "node": ">=8" + "node": ">= 0.10.0" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.4" } }, - "node_modules/svg-pathdata": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", - "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", - "optional": true, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "engines": { - "node": ">=12.0.0" + "node": ">=10" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/tabbable": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.1.tgz", - "integrity": "sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==" - }, - "node_modules/tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, - "dependencies": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "autoprefixer": "^10.0.2", - "postcss": "^8.0.9" + "node": ">= 6" } }, - "node_modules/tailwindcss/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "engines": { + "node": ">=12" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/text-segmentation": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", - "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", - "optional": true, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, "dependencies": { - "utrie": "^1.0.2" + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "@babel/compat-data": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "requires": { + "@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.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@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" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", "dev": true, + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" + "requires": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, - "engines": { - "node": ">=0.6.0" + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/types": "^7.22.10" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, - "dependencies": { - "is-number": "^7.0.0" + "requires": { + "@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": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dev": true, - "dependencies": { - "punycode": "^2.1.1" + "requires": { + "@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": ">=8" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true } } }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, - "engines": { - "node": ">=0.4.0" + "requires": { + "@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" + }, + "dependencies": { + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } } }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@babel/types": "^7.23.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/types": "^7.22.15" } }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@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" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, - "engines": { - "node": ">= 4.0.0" + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + } + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" } }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@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, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.15" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@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, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } }, - "node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", - "dev": true + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } }, - "node_modules/utrie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", - "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", - "optional": true, - "dependencies": { - "base64-arraybuffer": "^1.0.2" + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, - "engines": { - "node": ">= 8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "dependencies": { - "makeerror": "1.0.12" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "dependencies": { - "defaults": "^1.0.3" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "engines": { - "node": ">=10.4" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", + "@babel/plugin-transform-block-scoping": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", "dev": true, - "dependencies": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8.3" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "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 - } + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@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" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", + "@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dev": true, - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" + "requires": { + "@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": ">= 0.10.0" + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, - "engines": { - "node": ">=0.4" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "@babel/plugin-transform-destructuring": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, - "engines": { - "node": ">= 6" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, - "engines": { - "node": ">=12" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + }, + "@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "@babel/compat-data": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", - "dev": true + "@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "@babel/plugin-transform-modules-amd": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", "dev": true, "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", "dev": true, "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, - "@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", "dev": true, "requires": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } + "@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" } }, - "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@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, "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "dev": true, + "requires": { + "@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" } }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true + "@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, "requires": { - "@babel/types": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true + "@babel/plugin-transform-parameters": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true + "@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dev": true, + "requires": { + "@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" + } }, - "@babel/helpers": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, - "@babel/parser": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", - "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", - "dev": true + "@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "@babel/plugin-transform-typescript": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", + "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/compat-data": "^7.23.2", + "@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.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@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.23.0", + "@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.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@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.23.0", + "@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.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "@babel/preset-typescript": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", + "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-typescript": "^7.22.15" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { "version": "7.20.13", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", @@ -10849,30 +13679,30 @@ } }, "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@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" }, @@ -10886,13 +13716,13 @@ } }, "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -10923,15 +13753,30 @@ } } }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -10940,6 +13785,12 @@ "strip-json-comments": "^3.1.1" } }, + "@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true + }, "@esri/arcgis-html-sanitizer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-3.0.1.tgz", @@ -10965,7 +13816,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-auth/-/arcgis-rest-auth-3.5.0.tgz", "integrity": "sha512-EeKfGxSLEI2KvGE2FvN+kYDR+a7RWLf+uNzsYDXWK/8wOYrtj+lh091NHxgHU/Fd+NDoAcHSoTSPCCEpgS0Gsg==", - "peer": true, "requires": { "@esri/arcgis-rest-types": "^3.5.0", "tslib": "^1.13.0" @@ -10974,8 +13824,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -10983,7 +13832,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-feature-layer/-/arcgis-rest-feature-layer-3.5.0.tgz", "integrity": "sha512-+qjJnwPaYYNQqce20FF1iNvQ1BeFVue6ka8MnDu4BNhSeyw9OKD2WoI1pXfKVkSHpXTHeQIfyMVLC7/nFNja8g==", - "peer": true, "requires": { "@esri/arcgis-rest-types": "^3.5.0", "tslib": "^1.13.0" @@ -10992,8 +13840,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -11001,7 +13848,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-portal/-/arcgis-rest-portal-3.5.0.tgz", "integrity": "sha512-rrl/eUWOxdA5Y0MDYuvCopwNkf8loIfVIE4j1kGRTIz32n4uqdhb38sYKd2X4JK8QW67vyKq0SqxMSIYOHGXQg==", - "peer": true, "requires": { "@esri/arcgis-rest-types": "^3.5.0", "tslib": "^1.13.0" @@ -11010,8 +13856,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -11019,7 +13864,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-request/-/arcgis-rest-request-3.5.0.tgz", "integrity": "sha512-FlI32b2EF/SlJeGe8GZtVqIlvHDxI18bgIB2vQINi9fAC07F1Jg3JMglDTDSl8CCYS/9cYp62n7lWPUwmvn/xQ==", - "peer": true, "requires": { "tslib": "^1.10.0" }, @@ -11027,8 +13871,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -11036,7 +13879,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-service-admin/-/arcgis-rest-service-admin-3.5.0.tgz", "integrity": "sha512-gZzqb0I9kAyIIx2bBTU070QSEd5CV7C0vyd5IBWZOJqgkvA4Yf/LOPCMZ2s/+y2jF+4B1vRMGjpInovvfEk9Rw==", - "peer": true, "requires": { "@esri/arcgis-rest-types": "^3.5.0", "tslib": "^1.13.0" @@ -11045,40 +13887,44 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "@esri/arcgis-rest-types": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-types/-/arcgis-rest-types-3.6.0.tgz", - "integrity": "sha512-t6QWdVNmqB9OloYAvVWYNjvqlnrXs/m0nCRNwPGt3ZiAPXn5CpkpSn2UD6LPqGp6vPxKG81lbFQvwCw9az4qIg==", - "peer": true + "integrity": "sha512-t6QWdVNmqB9OloYAvVWYNjvqlnrXs/m0nCRNwPGt3ZiAPXn5CpkpSn2UD6LPqGp6vPxKG81lbFQvwCw9az4qIg==" }, "@esri/calcite-components": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-1.2.0.tgz", - "integrity": "sha512-IAMOcnN9KxwjGVl2HqTvYEo7I18DAs4R03/jcDICumwqVI3jzzlfbTpBuLNvxLN1gMMTIHQe35Rf2tPWTOOBDA==", - "peer": true, + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-1.9.0.tgz", + "integrity": "sha512-TF9hTZkCmlRMQAPwPbZWuIU/7+Xl7yJ8q6MSAHhRITwIFP8XfOAHhlpb/GpLVzbFooefaoFcBVMxOP2+238ABg==", "requires": { - "@floating-ui/dom": "1.2.1", + "@floating-ui/dom": "1.5.3", "@stencil/core": "2.22.3", - "@types/color": "3.0.3", + "@types/color": "3.0.4", "color": "4.2.3", - "focus-trap": "7.4.0", + "composed-offset-position": "0.0.4", + "dayjs": "1.11.10", + "focus-trap": "7.5.2", "form-request-submit-polyfill": "2.0.0", "lodash-es": "4.17.21", - "sortablejs": "1.15.0" + "sortablejs": "1.15.0", + "timezone-groups": "0.5.0" }, "dependencies": { + "@stencil/core": { + "version": "2.22.3", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", + "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==" + }, "focus-trap": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.0.tgz", - "integrity": "sha512-yI7FwUqU4TVb+7t6PaQ3spT/42r/KLEi8mtdGoQo2li/kFzmu9URmalTvw7xCCJtSOyhBxscvEAmvjeN9iHARg==", - "peer": true, + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "requires": { - "tabbable": "^6.1.1" + "tabbable": "^6.2.0" } } } @@ -11196,24 +14042,31 @@ } }, "@floating-ui/core": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.5.tgz", - "integrity": "sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ==", - "peer": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "requires": { + "@floating-ui/utils": "^0.1.3" + } }, "@floating-ui/dom": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz", - "integrity": "sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==", - "peer": true, + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", "requires": { - "@floating-ui/core": "^1.2.1" + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" } }, + "@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -11317,193 +14170,282 @@ "dev": true }, "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" } }, "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "rimraf": "^3.0.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^27.5.1" + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + }, + "dependencies": { + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + } } }, "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", - "glob": "^7.1.2", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", - "source-map": "^0.6.0", "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + } + } + } + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "requires": { - "@jest/test-result": "^27.5.1", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" } }, "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + } } }, "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "requires": { + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^16.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, @@ -11536,13 +14478,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@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" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@nicolo-ribaudo/eslint-scope-5-internals": { @@ -11728,6 +14670,27 @@ "pako": "^1.0.10" } }, + "@puppeteer/browsers": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.7.1.tgz", + "integrity": "sha512-nIb8SOBgDEMFY2iS2MdnUZOg2ikcYchRrBoF+wtdjieRFKR2uGRipHY/oFLo+2N6anDualyClPzGywTHRGrLfw==", + "dev": true, + "requires": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.1", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -11735,68 +14698,49 @@ "dev": true }, "@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0" } }, - "@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==" - }, - "@stencil/postcss": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stencil/postcss/-/postcss-2.1.0.tgz", - "integrity": "sha512-/e4TYEXErGaHxH0ocg620YqEMLuMLpK/Wg4MJsiJglrLZCZhU4XCX1N0SwxaIOUbEZ1Zh+AqQ++yMI92ilndEA==", + "@stencil-community/postcss": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@stencil-community/postcss/-/postcss-2.2.0.tgz", + "integrity": "sha512-PuPdjqgF6HdvSLwS6fpLf1TRzd3bd6zqpsICCUA0u9sxPnwrsIpx1xYyA/K9hSWrmyUg0WhHPvkX9k26N5DCnw==", "dev": true, "requires": { - "autoprefixer": "^10.3.6", - "postcss": "~8.3.8" - }, - "dependencies": { - "postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", - "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" - } - }, - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true - } + "postcss": "~8.4.27" } }, + "@stencil/core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.7.0.tgz", + "integrity": "sha512-hl3hD5FA8F9kZiDJSus08Kno1QRl+fXeMBzrl5DjWAzAu0JHxL1AqTph5oQSekjvkSahaa8JtsXnHRZU93eivg==", + "dev": true + }, "@stencil/sass": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-2.0.3.tgz", - "integrity": "sha512-ypS+0f6bJH2qXqrNAHirlYOWFax+qKKOIePLs7cu4LfKFr4ZVJSGRFBdgaeRrZMUhJWnhjV6io2uDldhrQhnMg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-3.0.7.tgz", + "integrity": "sha512-HcBjrh2CJ6aJnkOrBNSVyf1+x3FnUneYFk44rcx/jDK6Lx7R4w0dXMEsIR5MXqtROYWonZt7WtR8wsM1vcD+6w==", "dev": true, "requires": {} }, "@stencil/store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@stencil/store/-/store-2.0.3.tgz", - "integrity": "sha512-45SkXtVXaYMo3itvfUleKjQr8BNowi6b0i1jHCx8O2UXJag5myvstjf4uIxkW6IscV92VzLrpIXUFvbJJKa7DA==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@stencil/store/-/store-2.0.11.tgz", + "integrity": "sha512-iU803qQl8DXR1S6X4xJz6VVNgPnbhktbfLxAGe+Kx0PLJ92lBuiLKpYtPkrZNWwPOOJd3z3uSDz9UGajU4krHg==", "dev": true, "requires": {} }, @@ -11809,10 +14753,10 @@ "defer-to-connect": "^1.0.1" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", "dev": true }, "@tsconfig/node10": { @@ -11840,15 +14784,24 @@ "dev": true }, "@types/arcgis-js-api": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-4.26.0.tgz", - "integrity": "sha512-rQSgYUy2FqPTFu47h2ibXhh5RdoQ/dgIXNdUcLTwebJ8OeXFvuzF5+hHmzKr2aLfX8w34W08ZIhUwiE4m+vBLQ==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@types/arcgis-js-api/-/arcgis-js-api-4.27.0.tgz", + "integrity": "sha512-sjbbvVTOvzZRUR6rrA4KSbxlvAnclAen2Km+IHlUEYxu7zQKAiSW+zQL6MkQw8ujvYEZRHj8VBttcvjONzmNIg==", "dev": true }, + "@types/autoprefixer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@types/autoprefixer/-/autoprefixer-10.2.0.tgz", + "integrity": "sha512-ClU0uw3HhUra890K4xcf2IQxD6w0WOjPIaKb8jrRXYPHvvUW1P5dGufPlDtTo5gtWPWH+4L6tSBAoAKVf93uBQ==", + "dev": true, + "requires": { + "autoprefixer": "*" + } + }, "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", "dev": true, "requires": { "@babel/parser": "^7.20.7", @@ -11878,28 +14831,26 @@ } }, "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "@types/color": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz", - "integrity": "sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==", - "peer": true, + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.4.tgz", + "integrity": "sha512-OpisS4bqJJwbkkQRrMvURf3DOxBoAg9mysHYI7WgrWpSYHqHGKYBULHdz4ih77SILcLDo/zyHGFyfIl9yb8NZQ==", "requires": { "@types/color-convert": "*" } }, "@types/color-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", - "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", - "peer": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-GwXanrvq/tBHJtudbl1lSy9Ybt7KS9+rA+YY3bcuIIM+d6jSHUr+5yjO83gtiRpuaPiBccwFjSnAK2qSrIPA7w==", "requires": { "@types/color-name": "*" } @@ -11907,8 +14858,7 @@ "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "peer": true + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, "@types/graceful-fs": { "version": "4.1.6", @@ -11992,21 +14942,6 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "@types/puppeteer": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.7.tgz", - "integrity": "sha512-JdGWZZYL0vKapXF4oQTC5hLVNfOgdPrqeZ1BiQnGk5cB7HeE91EWUiTdVSdQPobRN8rIcdffjiOgCYJ/S8QrnQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/raf": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz", @@ -12020,15 +14955,15 @@ "dev": true }, "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", + "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", "dev": true }, "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", + "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -12153,39 +15088,21 @@ "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.49.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } + "@typescript-eslint/types": "5.49.0", + "eslint-visitor-keys": "^3.3.0" } }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true + }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -12226,15 +15143,6 @@ "esm": "^3.2.25" } }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -12363,18 +15271,21 @@ "es-shim-unscopables": "^1.0.0" } }, + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, "async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -12400,17 +15311,22 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true }, + "b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -12430,17 +15346,55 @@ } }, "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", + "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", + "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.32.2" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + } + }, "babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", @@ -12462,12 +15416,12 @@ } }, "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^27.5.1", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -12489,6 +15443,12 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, + "basic-ftp": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", + "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", + "dev": true + }, "before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -12568,22 +15528,16 @@ "fill-range": "^7.0.1" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" } }, "bser": { @@ -12680,9 +15634,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "version": "1.0.30001558", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001558.tgz", + "integrity": "sha512-/Et7DwLqpjS47JPEcz6VnxU9PwcIdVi0ciLXRWBQdj1XFye68pSQYpV0QtPTfUKWuOaEig+/Vez2l74eDc1tPQ==", "dev": true }, "canvg": { @@ -12774,11 +15728,15 @@ } } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "chromium-bidi": { + "version": "0.4.27", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.27.tgz", + "integrity": "sha512-8Irq0FbKYN8Xmj8M62kta6wk5MyDKeYIFtNavxQ2M3xf2v5MCC4ntf+FxitQu1iHaQvGU6t5O+Nrep0RNNS0EQ==", + "dev": true, + "requires": { + "mitt": "3.0.1", + "urlpattern-polyfill": "9.0.0" + } }, "ci-info": { "version": "3.7.1", @@ -12787,9 +15745,9 @@ "dev": true }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "clean-regexp": { @@ -12877,16 +15835,15 @@ "dev": true }, "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "peer": true, "requires": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -12909,7 +15866,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "peer": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -12921,21 +15877,17 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "composed-offset-position": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/composed-offset-position/-/composed-offset-position-0.0.4.tgz", + "integrity": "sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -12963,11 +15915,20 @@ "dev": true }, "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "core-js-compat": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", + "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", + "dev": true, + "requires": { + "browserslist": "^4.22.1" + } + }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -12987,6 +15948,21 @@ "yaml": "^1.10.0" } }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -12994,45 +15970,12 @@ "dev": true }, "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dev": true, "requires": { - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } + "node-fetch": "^2.6.12" } }, "cross-spawn": { @@ -13073,39 +16016,16 @@ "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", "dev": true }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "data-uri-to-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz", + "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==", "dev": true }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { "version": "4.3.4", @@ -13116,12 +16036,6 @@ "ms": "2.1.2" } }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -13132,10 +16046,11 @@ } }, "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} }, "deep-extend": { "version": "0.6.0", @@ -13186,11 +16101,16 @@ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "requires": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + } }, "deprecation": { "version": "2.3.1", @@ -13222,9 +16142,9 @@ } }, "devtools-protocol": { - "version": "0.0.981744", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", - "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "version": "0.0.1179426", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1179426.tgz", + "integrity": "sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg==", "dev": true }, "didyoumean": { @@ -13269,23 +16189,6 @@ "esutils": "^2.0.2" } }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, "dompurify": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.3.tgz", @@ -13339,15 +16242,15 @@ } }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.561", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.561.tgz", + "integrity": "sha512-eS5t4ulWOBfVHdq9SW2dxEaFarj1lPjvJ8PaYMOjY0DecBaj/t4ARziL2IPpDr4atyWwjLFGQ2vo/VCgQFezVQ==", "dev": true }, "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true }, "emoji-regex": { @@ -13489,110 +16392,66 @@ "dev": true }, "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } } }, "eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -13745,9 +16604,9 @@ } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "esm": { @@ -13756,14 +16615,14 @@ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" } }, "esprima": { @@ -13773,9 +16632,9 @@ "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -13791,9 +16650,9 @@ } }, "esri-loader": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.4.0.tgz", - "integrity": "sha512-iS3SbBmrnr4TlUdAjyyVZD2yCud8AMZkyJcmYEVzTiE5wVUtdN8d9USp7XYtilgwkJe/eWR2f2G1+S58ESqLuQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.7.0.tgz", + "integrity": "sha512-cB1Sw9EQjtW4mtT7eFBjn/6VaaIWNTjmTd2asnnEyuZk1xVSFRMCfLZSBSjZM7ZarDcVu5WIjOP0t0MYVu4hVQ==", "dev": true }, "estraverse": { @@ -13840,15 +16699,77 @@ "dev": true }, "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "external-editor": { @@ -13885,6 +16806,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -14038,17 +16965,6 @@ "is-callable": "^1.1.3" } }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, "form-request-submit-polyfill": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/form-request-submit-polyfill/-/form-request-submit-polyfill-2.0.0.tgz", @@ -14060,11 +16976,24 @@ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } }, "fs.realpath": { "version": "1.0.0", @@ -14167,6 +17096,18 @@ "get-intrinsic": "^1.1.1" } }, + "get-uri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz", + "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==", + "dev": true, + "requires": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^5.0.1", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + } + }, "gh-release": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/gh-release/-/gh-release-6.0.4.tgz", @@ -14254,9 +17195,9 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -14345,10 +17286,10 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "has": { @@ -14420,15 +17361,6 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -14445,32 +17377,11 @@ "text-segmentation": "^1.0.3" } }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true }, "human-signals": { "version": "2.1.0", @@ -14634,6 +17545,12 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, "is-array-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", @@ -14712,9 +17629,9 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -14823,12 +17740,6 @@ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -14950,22 +17861,33 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + } } }, "istanbul-lib-source-maps": { @@ -14980,9 +17902,9 @@ } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -14990,138 +17912,195 @@ } }, "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "@jest/core": "^27.5.1", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^27.5.1" + "jest-cli": "^29.7.0" } }, "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { - "@jest/types": "^27.5.1", "execa": "^5.0.0", - "throat": "^6.0.1" + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" + "stack-utils": "^2.0.3" }, "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" } }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true } } }, + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", - "glob": "^7.1.1", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "jest-diff": { @@ -15137,54 +18116,70 @@ } }, "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "jest-get-type": { @@ -15194,59 +18189,64 @@ "dev": true }, "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" + "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "jest-matcher-utils": { @@ -15262,30 +18262,56 @@ } }, "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" } }, "jest-pnp-resolver": { @@ -15296,36 +18322,35 @@ "requires": {} }, "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "dependencies": { "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -15333,122 +18358,170 @@ } }, "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" } }, "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "requires": { - "@babel/core": "^7.7.2", + "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.5.1", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -15457,49 +18530,80 @@ } }, "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "pretty-format": "^29.7.0" }, "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.5.1", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", "string-length": "^4.0.1" } }, "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { "@types/node": "*", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -15515,12 +18619,6 @@ } } }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -15536,41 +18634,6 @@ "argparse": "^2.0.1" } }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -15624,6 +18687,15 @@ "json-typescript": "^1.0.0" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "jspdf": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.1.tgz", @@ -15774,8 +18846,13 @@ "lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "peer": true + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "lodash.isplainobject": { "version": "4.0.6", @@ -15940,21 +19017,6 @@ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -15987,6 +19049,12 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, "mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -16012,9 +19080,9 @@ "dev": true }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "natural-compare": { @@ -16029,10 +19097,16 @@ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true + }, "node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -16069,9 +19143,9 @@ "dev": true }, "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "normalize-package-data": { @@ -16132,12 +19206,6 @@ "path-key": "^3.0.0" } }, - "nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -16236,17 +19304,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@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", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "ora": { @@ -16313,6 +19381,64 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "dev": true, + "requires": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + } + } + }, + "pac-resolver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", + "dev": true, + "requires": { + "degenerator": "^5.0.0", + "ip": "^1.1.8", + "netmask": "^2.0.2" + } + }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", @@ -16359,12 +19485,6 @@ "lines-and-columns": "^1.1.6" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -16444,9 +19564,9 @@ "dev": true }, "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true }, "pkg-dir": { @@ -16504,12 +19624,12 @@ "dev": true }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -16655,18 +19775,65 @@ } } }, + "proxy-agent": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -16703,38 +19870,57 @@ } }, "puppeteer": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", - "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", + "version": "21.3.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.3.1.tgz", + "integrity": "sha512-MhDvA+BYmzx+9vHJ/ZtknhlPbSPjTlHQnW1QYfkGpBcGW2Yy6eMahjkNuhAzN29H9tb47IcT0QsVcUy3Txx+SA==", + "dev": true, + "requires": { + "@puppeteer/browsers": "1.7.1", + "cosmiconfig": "8.3.6", + "puppeteer-core": "21.3.1" + }, + "dependencies": { + "cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "requires": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + } + } + } + }, + "puppeteer-core": { + "version": "21.3.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.3.1.tgz", + "integrity": "sha512-3VrCDEAHk0hPvE8qtfKgsT8CzRuaQrDQGXdCOuMFJM7Ap+ghpQzhPa9H3DE3gZgwDvC5Jt7SxUkAWLCeNbD0xw==", "dev": true, "requires": { - "cross-fetch": "3.1.5", + "@puppeteer/browsers": "1.7.1", + "chromium-bidi": "0.4.27", + "cross-fetch": "4.0.0", "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" + "devtools-protocol": "0.0.1179426", + "ws": "8.14.1" }, "dependencies": { "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", + "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", "dev": true, "requires": {} } } }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true }, "queue-microtask": { @@ -16743,6 +19929,12 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -16930,6 +20122,30 @@ } } }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, "regexp-tree": { "version": "0.1.24", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", @@ -16953,6 +20169,20 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, "registry-auth-token": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", @@ -16971,6 +20201,23 @@ "rc": "^1.2.8" } }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, "remove-markdown": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.2.2.tgz", @@ -16983,12 +20230,6 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, "resolve": { "version": "2.0.0-next.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", @@ -17024,9 +20265,9 @@ "dev": true }, "resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, "responselike": { @@ -17125,19 +20366,10 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -17247,7 +20479,6 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "peer": true, "requires": { "is-arrayish": "^0.3.1" }, @@ -17255,8 +20486,7 @@ "is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "peer": true + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" } } }, @@ -17272,6 +20502,52 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "dependencies": { + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + } + } + }, + "socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "requires": { + "debug": "^4.3.4" + } + } + } + }, "sort-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", @@ -17284,8 +20560,7 @@ "sortablejs": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "peer": true + "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" }, "source-map": { "version": "0.6.1", @@ -17300,9 +20575,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -17392,6 +20667,16 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, + "streamx": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", + "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", + "dev": true, + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -17510,16 +20795,6 @@ "has-flag": "^4.0.0" } }, - "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -17532,16 +20807,10 @@ "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", "optional": true }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, "tabbable": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.1.tgz", - "integrity": "sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "tailwindcss": { "version": "3.0.23", @@ -17586,51 +20855,25 @@ } }, "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, "requires": { - "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^3.1.5" } }, "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "test-exclude": { @@ -17659,12 +20902,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -17681,6 +20918,11 @@ "xtend": "~4.0.1" } }, + "timezone-groups": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/timezone-groups/-/timezone-groups-0.5.0.tgz", + "integrity": "sha512-NdAII1zImVw6ndNSqCou4AZ7Ur69VwTKHYYB1HpnlUQLHu1kvwdw3pMZyQgAaXINCHpSviD0Im7zZL8rqbMZNA==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -17717,27 +20959,6 @@ "is-number": "^7.0.0" } }, - "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, "ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -17865,6 +21086,34 @@ "through": "^2.3.8" } }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -17880,16 +21129,10 @@ "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", "dev": true }, - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -17926,16 +21169,6 @@ "punycode": "^2.1.0" } }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -17945,6 +21178,12 @@ "prepend-http": "^2.0.0" } }, + "urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -17973,22 +21212,14 @@ "dev": true }, "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } + "convert-source-map": "^2.0.0" } }, "validate-npm-package-license": { @@ -18001,24 +21232,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, "walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -18037,38 +21250,6 @@ "defaults": "^1.0.3" } }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -18123,12 +21304,6 @@ "string-width": "^4.0.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -18172,31 +21347,12 @@ "write-file-atomic": "^3.0.0" } }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "requires": {} - }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, "xss": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", @@ -18232,9 +21388,9 @@ "dev": true }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, "requires": { "cliui": "^8.0.1", diff --git a/package.json b/package.json index c649e6b4b..dc71cb32e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@esri/solutions-components", - "version": "0.5.16", + "version": "0.6.46", "description": "Web Components for Esri's Solutions Applications", "main": "dist/index.cjs.js", "module": "dist/index.js", @@ -30,34 +30,39 @@ "update-browserslist": "npx browserslist@latest --update-db" }, "devDependencies": { + "@babel/core": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/preset-typescript": "^7.23.2", + "@babel/types": "^7.23.0", "@esri/eslint-plugin-calcite-components": "^0.2.2", "@esri/solution-common": "3.0.1", - "@stencil/postcss": "^2.1.0", - "@stencil/sass": "^2.0.0", - "@stencil/store": "^2.0.1", - "@types/arcgis-js-api": "^4.26.0-next", - "@types/jest": "^27.5.2", + "@stencil-community/postcss": "^2.2.0", + "@stencil/core": "^4.7.0", + "@stencil/sass": "^3.0.7", + "@stencil/store": "^2.0.11", + "@types/arcgis-js-api": "^4.27.0", + "@types/autoprefixer": "^10.2.0", + "@types/jest": "^27.0.3", "@types/node": "^16.11.11", - "@types/puppeteer": "^5.4.2", "@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/parser": "^5.39.0", - "autoprefixer": "10.4.4", - "caniuse-lite": "^1.0.30001412", + "autoprefixer": "^10.4.4", + "babel-jest": "^29.7.0", "dotenv": "^10.0.0", - "eslint": "^8.11.0", + "eslint": "^8.47.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-jest": "25.3.0", "eslint-plugin-prettier": "4.0.0", "eslint-plugin-react": "7.27.1", "eslint-plugin-unicorn": "39.0.0", - "esri-loader": "3.4.0", + "esri-loader": "^3.7.0", "form-request-submit-polyfill": "^2.0.0", "gh-release": "^6.0.3", - "jest": "^27.5.1", - "jest-cli": "^27.5.1", + "jest": "^29.7.0", + "jest-cli": "^29.7.0", "pify": "^5.0.0", "prettier": "2.4.1", - "puppeteer": "^13.5.1", + "puppeteer": "^21.3.1", "react": "^18.2.0", "rimraf": "^3.0.2", "tailwindcss": "3.0.23", @@ -66,25 +71,23 @@ "typescript": "^4.8.4" }, "dependencies": { + "@esri/arcgis-rest-auth": "^3.4.2", + "@esri/arcgis-rest-feature-layer": "^3.4.2", + "@esri/arcgis-rest-portal": "^3.4.2", + "@esri/arcgis-rest-request": "^3.4.2", + "@esri/arcgis-rest-service-admin": "^3.4.2", + "@esri/calcite-components": "^1.9.0", "@esri/hub-common": "^12.37.1", "@esri/hub-initiatives": "^12.4.1", "@esri/hub-sites": "^12.6.0", "@esri/hub-teams": "^12.4.1", + "@esri/solution-common": "^5.0.9", "@pdf-lib/fontkit": "^1.1.1", - "@stencil/core": "^2.20.0", "focus-trap": "7.2.0", "jspdf": "^2.5.1", "minimist": "^1.2.6", "pdf-lib": "^1.17.1" }, - "peerDependencies": { - "@esri/arcgis-rest-auth": "^3.4.2", - "@esri/arcgis-rest-feature-layer": "^3.4.2", - "@esri/arcgis-rest-portal": "^3.4.2", - "@esri/arcgis-rest-request": "^3.4.2", - "@esri/arcgis-rest-service-admin": "^3.4.2", - "@esri/calcite-components": "^1.0.7" - }, "repository": { "type": "git", "url": "git+https://github.com/Esri/solutions-components.git" @@ -99,10 +102,5 @@ "email": "mtschudi@esri.com" } ], - "license": "Apache-2.0", - "volta": { - "node": "16.17.1", - "npm": "8.18.0", - "typescript": "4.8.4" - } + "license": "Apache-2.0" } diff --git a/src/components/add-record-modal/test/add-record-modal.e2e.ts b/placeholder_tests/basemap-gallery/test/basemap-gallery.e2e.ts similarity index 82% rename from src/components/add-record-modal/test/add-record-modal.e2e.ts rename to placeholder_tests/basemap-gallery/test/basemap-gallery.e2e.ts index 51ba54027..5cd1acf8f 100644 --- a/src/components/add-record-modal/test/add-record-modal.e2e.ts +++ b/placeholder_tests/basemap-gallery/test/basemap-gallery.e2e.ts @@ -16,12 +16,12 @@ import { newE2EPage } from '@stencil/core/testing'; -xdescribe('add-record-modal', () => { +xdescribe('basemap-gallery', () => { it('renders', async () => { const page = await newE2EPage(); - await page.setContent(''); + await page.setContent(''); - const element = await page.find('add-record-modal'); + const element = await page.find('basemap-gallery'); expect(element).toHaveClass('hydrated'); }); }); diff --git a/src/components/add-record-modal/test/add-record-modal.spec.tsx b/placeholder_tests/basemap-gallery/test/basemap-gallery.spec.tsx similarity index 78% rename from src/components/add-record-modal/test/add-record-modal.spec.tsx rename to placeholder_tests/basemap-gallery/test/basemap-gallery.spec.tsx index bbeaac16a..9a1271bef 100644 --- a/src/components/add-record-modal/test/add-record-modal.spec.tsx +++ b/placeholder_tests/basemap-gallery/test/basemap-gallery.spec.tsx @@ -15,20 +15,20 @@ */ import { newSpecPage } from '@stencil/core/testing'; -import { AddRecordModal } from '../add-record-modal'; +import { BasemapGallery } from '../basemap-gallery'; -xdescribe('add-record-modal', () => { +xdescribe('basemap-gallery', () => { it('renders', async () => { const page = await newSpecPage({ - components: [AddRecordModal], - html: ``, + components: [BasemapGallery], + html: ``, }); expect(page.root).toEqualHtml(` - + - + `); }); }); diff --git a/src/components/buffer-tools/test/buffer-tools.e2e.ts b/placeholder_tests/buffer-tools/test/buffer-tools.e2e.ts similarity index 100% rename from src/components/buffer-tools/test/buffer-tools.e2e.ts rename to placeholder_tests/buffer-tools/test/buffer-tools.e2e.ts diff --git a/src/components/buffer-tools/test/buffer-tools.spec.tsx b/placeholder_tests/buffer-tools/test/buffer-tools.spec.tsx similarity index 98% rename from src/components/buffer-tools/test/buffer-tools.spec.tsx rename to placeholder_tests/buffer-tools/test/buffer-tools.spec.tsx index 89a5a8859..c2488e5b6 100644 --- a/src/components/buffer-tools/test/buffer-tools.spec.tsx +++ b/placeholder_tests/buffer-tools/test/buffer-tools.spec.tsx @@ -167,8 +167,6 @@ xdescribe('buffer-tools', () => { expect(bufferTools.appearance).toEqual('text'); expect(bufferTools.distance).toEqual(0); expect(bufferTools.geometries).toEqual([]); - expect(bufferTools.sliderMax).toEqual(100); - expect(bufferTools.sliderMin).toEqual(0); expect(bufferTools.sliderTicks).toEqual(10); expect(bufferTools.unionResults).toEqual(true); expect(bufferTools.unit).toEqual('meters'); diff --git a/src/components/card-manager/test/card-manager.e2e.ts b/placeholder_tests/card-manager/test/card-manager.e2e.ts similarity index 100% rename from src/components/card-manager/test/card-manager.e2e.ts rename to placeholder_tests/card-manager/test/card-manager.e2e.ts diff --git a/src/components/card-manager/test/card-manager.spec.tsx b/placeholder_tests/card-manager/test/card-manager.spec.tsx similarity index 100% rename from src/components/card-manager/test/card-manager.spec.tsx rename to placeholder_tests/card-manager/test/card-manager.spec.tsx diff --git a/src/components/crowdsource-manager/test/crowdsource-manager.e2e.ts b/placeholder_tests/crowdsource-manager/test/crowdsource-manager.e2e.ts similarity index 100% rename from src/components/crowdsource-manager/test/crowdsource-manager.e2e.ts rename to placeholder_tests/crowdsource-manager/test/crowdsource-manager.e2e.ts diff --git a/src/components/crowdsource-manager/test/crowdsource-manager.spec.tsx b/placeholder_tests/crowdsource-manager/test/crowdsource-manager.spec.tsx similarity index 100% rename from src/components/crowdsource-manager/test/crowdsource-manager.spec.tsx rename to placeholder_tests/crowdsource-manager/test/crowdsource-manager.spec.tsx diff --git a/src/components/crowdsource-reporter/test/crowdsource-reporter.e2e.ts b/placeholder_tests/crowdsource-reporter/test/crowdsource-reporter.e2e.ts similarity index 100% rename from src/components/crowdsource-reporter/test/crowdsource-reporter.e2e.ts rename to placeholder_tests/crowdsource-reporter/test/crowdsource-reporter.e2e.ts diff --git a/src/components/crowdsource-reporter/test/crowdsource-reporter.spec.tsx b/placeholder_tests/crowdsource-reporter/test/crowdsource-reporter.spec.tsx similarity index 100% rename from src/components/crowdsource-reporter/test/crowdsource-reporter.spec.tsx rename to placeholder_tests/crowdsource-reporter/test/crowdsource-reporter.spec.tsx diff --git a/src/components/deduct-calculator/test/deduct-calculator.e2e.ts b/placeholder_tests/deduct-calculator/test/deduct-calculator.e2e.ts similarity index 100% rename from src/components/deduct-calculator/test/deduct-calculator.e2e.ts rename to placeholder_tests/deduct-calculator/test/deduct-calculator.e2e.ts diff --git a/src/components/deduct-calculator/test/deduct-calculator.spec.tsx b/placeholder_tests/deduct-calculator/test/deduct-calculator.spec.tsx similarity index 100% rename from src/components/deduct-calculator/test/deduct-calculator.spec.tsx rename to placeholder_tests/deduct-calculator/test/deduct-calculator.spec.tsx diff --git a/placeholder_tests/edit-card/test/edit-card.e2e.ts b/placeholder_tests/edit-card/test/edit-card.e2e.ts new file mode 100644 index 000000000..0c927c5b4 --- /dev/null +++ b/placeholder_tests/edit-card/test/edit-card.e2e.ts @@ -0,0 +1,11 @@ +import { newE2EPage } from '@stencil/core/testing'; + +xdescribe('edit-card', () => { + it('renders', async () => { + const page = await newE2EPage(); + await page.setContent(''); + + const element = await page.find('edit-card'); + expect(element).toHaveClass('hydrated'); + }); +}); diff --git a/placeholder_tests/edit-card/test/edit-card.spec.tsx b/placeholder_tests/edit-card/test/edit-card.spec.tsx new file mode 100644 index 000000000..b1d9538b9 --- /dev/null +++ b/placeholder_tests/edit-card/test/edit-card.spec.tsx @@ -0,0 +1,18 @@ +import { newSpecPage } from '@stencil/core/testing'; +import { EditCard } from '../edit-card'; + +xdescribe('edit-card', () => { + it('renders', async () => { + const page = await newSpecPage({ + components: [EditCard], + html: ``, + }); + expect(page.root).toEqualHtml(` + + + + + + `); + }); +}); diff --git a/src/components/comment-card/test/comment-card.e2e.ts b/placeholder_tests/floor-filter/test/floor-filter.e2e.ts similarity index 84% rename from src/components/comment-card/test/comment-card.e2e.ts rename to placeholder_tests/floor-filter/test/floor-filter.e2e.ts index 535711269..0339f3d5a 100644 --- a/src/components/comment-card/test/comment-card.e2e.ts +++ b/placeholder_tests/floor-filter/test/floor-filter.e2e.ts @@ -16,12 +16,12 @@ import { newE2EPage } from '@stencil/core/testing'; -xdescribe('comment-card', () => { +xdescribe('floor-filter', () => { it('renders', async () => { const page = await newE2EPage(); - await page.setContent(''); + await page.setContent(''); - const element = await page.find('comment-card'); + const element = await page.find('floor-filter'); expect(element).toHaveClass('hydrated'); }); }); diff --git a/src/components/edit-record-modal/test/edit-record-modal.spec.tsx b/placeholder_tests/floor-filter/test/floor-filter.spec.tsx similarity index 78% rename from src/components/edit-record-modal/test/edit-record-modal.spec.tsx rename to placeholder_tests/floor-filter/test/floor-filter.spec.tsx index c3c56723a..91fb33846 100644 --- a/src/components/edit-record-modal/test/edit-record-modal.spec.tsx +++ b/placeholder_tests/floor-filter/test/floor-filter.spec.tsx @@ -15,20 +15,20 @@ */ import { newSpecPage } from '@stencil/core/testing'; -import { EditRecordModal } from '../edit-record-modal'; +import { FloorFilter } from '../../../src/components/floor-filter/floor-filter'; -xdescribe('edit-record-modal', () => { +xdescribe('floor-filter', () => { it('renders', async () => { const page = await newSpecPage({ - components: [EditRecordModal], - html: ``, + components: [FloorFilter], + html: ``, }); expect(page.root).toEqualHtml(` - + - + `); }); }); diff --git a/src/components/info-card/test/info-card.e2e.ts b/placeholder_tests/info-card/test/info-card.e2e.ts similarity index 100% rename from src/components/info-card/test/info-card.e2e.ts rename to placeholder_tests/info-card/test/info-card.e2e.ts diff --git a/src/components/info-card/test/info-card.spec.tsx b/placeholder_tests/info-card/test/info-card.spec.tsx similarity index 100% rename from src/components/info-card/test/info-card.spec.tsx rename to placeholder_tests/info-card/test/info-card.spec.tsx diff --git a/src/components/json-editor/test/json-editor.e2e.ts b/placeholder_tests/json-editor/test/json-editor.e2e.ts similarity index 100% rename from src/components/json-editor/test/json-editor.e2e.ts rename to placeholder_tests/json-editor/test/json-editor.e2e.ts diff --git a/src/components/json-editor/test/json-editor.spec.tsx b/placeholder_tests/json-editor/test/json-editor.spec.tsx similarity index 100% rename from src/components/json-editor/test/json-editor.spec.tsx rename to placeholder_tests/json-editor/test/json-editor.spec.tsx diff --git a/src/components/layer-table/test/layer-table.e2e.ts b/placeholder_tests/layer-table/test/layer-table.e2e.ts similarity index 100% rename from src/components/layer-table/test/layer-table.e2e.ts rename to placeholder_tests/layer-table/test/layer-table.e2e.ts diff --git a/src/components/layer-table/test/layer-table.spec.tsx b/placeholder_tests/layer-table/test/layer-table.spec.tsx similarity index 100% rename from src/components/layer-table/test/layer-table.spec.tsx rename to placeholder_tests/layer-table/test/layer-table.spec.tsx diff --git a/placeholder_tests/layout-manager/test/layout-manager.e2e.ts b/placeholder_tests/layout-manager/test/layout-manager.e2e.ts new file mode 100644 index 000000000..5bd6242b4 --- /dev/null +++ b/placeholder_tests/layout-manager/test/layout-manager.e2e.ts @@ -0,0 +1,27 @@ +/** @license + * Copyright 2023 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { newE2EPage } from '@stencil/core/testing'; + +xdescribe('layout-manager', () => { + it('renders', async () => { + const page = await newE2EPage(); + await page.setContent(''); + + const element = await page.find('layout-manager'); + expect(element).toHaveClass('hydrated'); + }); +}); diff --git a/placeholder_tests/layout-manager/test/layout-manager.spec.tsx b/placeholder_tests/layout-manager/test/layout-manager.spec.tsx new file mode 100644 index 000000000..259284577 --- /dev/null +++ b/placeholder_tests/layout-manager/test/layout-manager.spec.tsx @@ -0,0 +1,34 @@ +/** @license + * Copyright 2023 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { newSpecPage } from '@stencil/core/testing'; +import { LayoutManager } from '../layout-manager'; + +xdescribe('layout-manager', () => { + it('renders', async () => { + const page = await newSpecPage({ + components: [LayoutManager], + html: ``, + }); + expect(page.root).toEqualHtml(` + + + + + + `); + }); +}); diff --git a/src/components/list-item/test/list-item.e2e.ts b/placeholder_tests/list-item/test/list-item.e2e.ts similarity index 100% rename from src/components/list-item/test/list-item.e2e.ts rename to placeholder_tests/list-item/test/list-item.e2e.ts diff --git a/src/components/list-item/test/list-item.spec.tsx b/placeholder_tests/list-item/test/list-item.spec.tsx similarity index 100% rename from src/components/list-item/test/list-item.spec.tsx rename to placeholder_tests/list-item/test/list-item.spec.tsx diff --git a/src/components/map-card/test/map-card.e2e.ts b/placeholder_tests/map-card/test/map-card.e2e.ts similarity index 100% rename from src/components/map-card/test/map-card.e2e.ts rename to placeholder_tests/map-card/test/map-card.e2e.ts diff --git a/src/components/map-card/test/map-card.spec.tsx b/placeholder_tests/map-card/test/map-card.spec.tsx similarity index 100% rename from src/components/map-card/test/map-card.spec.tsx rename to placeholder_tests/map-card/test/map-card.spec.tsx diff --git a/src/components/map-draw-tools/test/map-draw-tools.e2e.ts b/placeholder_tests/map-draw-tools/test/map-draw-tools.e2e.ts similarity index 100% rename from src/components/map-draw-tools/test/map-draw-tools.e2e.ts rename to placeholder_tests/map-draw-tools/test/map-draw-tools.e2e.ts diff --git a/src/components/map-draw-tools/test/map-draw-tools.spec.tsx b/placeholder_tests/map-draw-tools/test/map-draw-tools.spec.tsx similarity index 100% rename from src/components/map-draw-tools/test/map-draw-tools.spec.tsx rename to placeholder_tests/map-draw-tools/test/map-draw-tools.spec.tsx diff --git a/src/components/edit-record-modal/test/edit-record-modal.e2e.ts b/placeholder_tests/map-fullscreen/test/map-fullscreen.e2e.ts similarity index 82% rename from src/components/edit-record-modal/test/edit-record-modal.e2e.ts rename to placeholder_tests/map-fullscreen/test/map-fullscreen.e2e.ts index f1c69ad59..5fa1bb666 100644 --- a/src/components/edit-record-modal/test/edit-record-modal.e2e.ts +++ b/placeholder_tests/map-fullscreen/test/map-fullscreen.e2e.ts @@ -16,12 +16,12 @@ import { newE2EPage } from '@stencil/core/testing'; -xdescribe('edit-record-modal', () => { +xdescribe('map-fullscreen', () => { it('renders', async () => { const page = await newE2EPage(); - await page.setContent(''); + await page.setContent(''); - const element = await page.find('edit-record-modal'); + const element = await page.find('map-fullscreen'); expect(element).toHaveClass('hydrated'); }); }); diff --git a/placeholder_tests/map-fullscreen/test/map-fullscreen.spec.tsx b/placeholder_tests/map-fullscreen/test/map-fullscreen.spec.tsx new file mode 100644 index 000000000..68695ed30 --- /dev/null +++ b/placeholder_tests/map-fullscreen/test/map-fullscreen.spec.tsx @@ -0,0 +1,34 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { newSpecPage } from '@stencil/core/testing'; +import { MapFullscreen } from '../map-fullscreen'; + +xdescribe('map-fullscreen', () => { + it('renders', async () => { + const page = await newSpecPage({ + components: [MapFullscreen], + html: ``, + }); + expect(page.root).toEqualHtml(` + + + + + + `); + }); +}); diff --git a/src/components/map-layer-picker/test/map-layer-picker.e2e.ts b/placeholder_tests/map-layer-picker/test/map-layer-picker.e2e.ts similarity index 100% rename from src/components/map-layer-picker/test/map-layer-picker.e2e.ts rename to placeholder_tests/map-layer-picker/test/map-layer-picker.e2e.ts diff --git a/src/components/map-layer-picker/test/map-layer-picker.spec.tsx b/placeholder_tests/map-layer-picker/test/map-layer-picker.spec.tsx similarity index 79% rename from src/components/map-layer-picker/test/map-layer-picker.spec.tsx rename to placeholder_tests/map-layer-picker/test/map-layer-picker.spec.tsx index 18531401c..07aefd93f 100644 --- a/src/components/map-layer-picker/test/map-layer-picker.spec.tsx +++ b/placeholder_tests/map-layer-picker/test/map-layer-picker.spec.tsx @@ -14,6 +14,13 @@ * limitations under the License. */ +xdescribe('map-layer-picker', () => { + it('is a placeholder', () => { + }); +}); + + +/* import { h } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; import { MapLayerPicker } from '../map-layer-picker'; @@ -101,30 +108,5 @@ xdescribe('map-layer-picker', () => { `); }); - - it('renders multi selection mode', async () => { - const page = await newSpecPage({ - autoApplyChanges: true, - components: [MapLayerPicker], - template: () => ( - - ), - }); - expect(page.root).toEqualHtml(` - -
-
- - - - -
-
-
- `); - }); }); +*/ diff --git a/placeholder_tests/map-legend/test/map-legend.e2e.ts b/placeholder_tests/map-legend/test/map-legend.e2e.ts new file mode 100644 index 000000000..540009d05 --- /dev/null +++ b/placeholder_tests/map-legend/test/map-legend.e2e.ts @@ -0,0 +1,11 @@ +import { newE2EPage } from '@stencil/core/testing'; + +xdescribe('map-legend', () => { + it('renders', async () => { + const page = await newE2EPage(); + await page.setContent(''); + + const element = await page.find('map-legend'); + expect(element).toHaveClass('hydrated'); + }); +}); diff --git a/placeholder_tests/map-legend/test/map-legend.spec.tsx b/placeholder_tests/map-legend/test/map-legend.spec.tsx new file mode 100644 index 000000000..eb1f71f90 --- /dev/null +++ b/placeholder_tests/map-legend/test/map-legend.spec.tsx @@ -0,0 +1,18 @@ +import { newSpecPage } from '@stencil/core/testing'; +import { MapLegend } from '../map-legend'; + +xdescribe('map-legend', () => { + it('renders', async () => { + const page = await newSpecPage({ + components: [MapLegend], + html: ``, + }); + expect(page.root).toEqualHtml(` + + + + + + `); + }); +}); diff --git a/placeholder_tests/map-picker/test/map-picker.e2e.ts b/placeholder_tests/map-picker/test/map-picker.e2e.ts new file mode 100644 index 000000000..afef9e9e3 --- /dev/null +++ b/placeholder_tests/map-picker/test/map-picker.e2e.ts @@ -0,0 +1,27 @@ +/** @license + * Copyright 2023 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { newE2EPage } from '@stencil/core/testing'; + +xdescribe('map-picker', () => { + it('renders', async () => { + const page = await newE2EPage(); + await page.setContent(''); + + const element = await page.find('map-picker'); + expect(element).toHaveClass('hydrated'); + }); +}); diff --git a/placeholder_tests/map-picker/test/map-picker.spec.tsx b/placeholder_tests/map-picker/test/map-picker.spec.tsx new file mode 100644 index 000000000..58d79a047 --- /dev/null +++ b/placeholder_tests/map-picker/test/map-picker.spec.tsx @@ -0,0 +1,34 @@ +/** @license + * Copyright 2023 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { newSpecPage } from '@stencil/core/testing'; +import { MapPicker } from '../map-picker'; + +xdescribe('map-picker', () => { + it('renders', async () => { + const page = await newSpecPage({ + components: [MapPicker], + html: ``, + }); + expect(page.root).toEqualHtml(` + + + + + + `); + }); +}); diff --git a/src/components/map-search/test/map-search.e2e.ts b/placeholder_tests/map-search/test/map-search.e2e.ts similarity index 100% rename from src/components/map-search/test/map-search.e2e.ts rename to placeholder_tests/map-search/test/map-search.e2e.ts diff --git a/src/components/media-card/test/media-card.spec.tsx b/placeholder_tests/map-search/test/map-search.spec.tsx similarity index 82% rename from src/components/media-card/test/media-card.spec.tsx rename to placeholder_tests/map-search/test/map-search.spec.tsx index a03ff5871..e34aaceb0 100644 --- a/src/components/media-card/test/media-card.spec.tsx +++ b/placeholder_tests/map-search/test/map-search.spec.tsx @@ -15,20 +15,20 @@ */ import { newSpecPage } from '@stencil/core/testing'; -import { MediaCard } from '../media-card'; +import { MapSearch } from '../map-search'; -xdescribe('media-card', () => { +xdescribe('map-search', () => { it('renders', async () => { const page = await newSpecPage({ - components: [MediaCard], - html: ``, + components: [MapSearch], + html: ``, }); expect(page.root).toEqualHtml(` - + - + `); }); }); diff --git a/src/components/map-select-tools/test/map-select-tools.e2e.ts b/placeholder_tests/map-select-tools/test/map-select-tools.e2e.ts similarity index 100% rename from src/components/map-select-tools/test/map-select-tools.e2e.ts rename to placeholder_tests/map-select-tools/test/map-select-tools.e2e.ts diff --git a/src/components/map-select-tools/test/map-select-tools.spec.tsx b/placeholder_tests/map-select-tools/test/map-select-tools.spec.tsx similarity index 95% rename from src/components/map-select-tools/test/map-select-tools.spec.tsx rename to placeholder_tests/map-select-tools/test/map-select-tools.spec.tsx index 443432b99..1ade90964 100644 --- a/src/components/map-select-tools/test/map-select-tools.spec.tsx +++ b/placeholder_tests/map-select-tools/test/map-select-tools.spec.tsx @@ -50,7 +50,7 @@ beforeEach(() => { }); jest.spyOn(queryUtils, "queryObjectIds").mockImplementation(async (oids) => { - return oids.map((oid, i) => i); + return oids.map((_, i) => i); }); jest.spyOn(console, 'warn').mockImplementation(() => {}); @@ -184,9 +184,8 @@ xdescribe('map-select-tools', () => { const selectionSet: ISelectionSet = { id: 12345, - workflowType: EWorkflowType.SELECT, searchResult: undefined, - buffer: _unknown, + buffer: {} as unknown as any, distance: 100, download: true, unit: "feet", @@ -194,8 +193,13 @@ xdescribe('map-select-tools', () => { selectedIds: [0], layerView, geometries: [_unknown], - refineSelectLayers: [], - refineIds: undefined + graphics: [], + selectLayers: [], + workflowType: EWorkflowType.SELECT, + searchDistanceEnabled: true, + useLayerFeaturesEnabled: true, + refineInfos: undefined, + sketchGraphic: undefined }; const page = await newSpecPage({ @@ -254,7 +258,6 @@ xdescribe('map-select-tools', () => { const selectionSet: ISelectionSet = { id: 12345, - workflowType: EWorkflowType.SKETCH, searchResult: undefined, buffer: _unknown, distance: 100, @@ -264,8 +267,13 @@ xdescribe('map-select-tools', () => { selectedIds: [0], layerView, geometries: [_unknown], - refineSelectLayers: [], - refineIds: undefined + graphics: [], + selectLayers: [], + workflowType: EWorkflowType.SKETCH, + searchDistanceEnabled: true, + useLayerFeaturesEnabled: true, + refineInfos: undefined, + sketchGraphic: undefined }; const page = await newSpecPage({ @@ -324,7 +332,6 @@ xdescribe('map-select-tools', () => { const selectionSet: ISelectionSet = { id: 12345, - workflowType: EWorkflowType.SEARCH, searchResult: undefined, buffer: _unknown, distance: 100, @@ -334,8 +341,13 @@ xdescribe('map-select-tools', () => { selectedIds: [0,1], layerView, geometries: [_unknown, _unknown], - refineSelectLayers: [], - refineIds: undefined + graphics: [], + selectLayers: [], + workflowType: EWorkflowType.SEARCH, + searchDistanceEnabled: true, + useLayerFeaturesEnabled: true, + refineInfos: undefined, + sketchGraphic: undefined }; const page = await newSpecPage({ diff --git a/src/components/media-card/test/media-card.e2e.ts b/placeholder_tests/map-tools/test/map-tools.e2e.ts similarity index 84% rename from src/components/media-card/test/media-card.e2e.ts rename to placeholder_tests/map-tools/test/map-tools.e2e.ts index 58b64ec5f..aa5e7797c 100644 --- a/src/components/media-card/test/media-card.e2e.ts +++ b/placeholder_tests/map-tools/test/map-tools.e2e.ts @@ -16,12 +16,12 @@ import { newE2EPage } from '@stencil/core/testing'; -xdescribe('media-card', () => { +xdescribe('map-tools', () => { it('renders', async () => { const page = await newE2EPage(); - await page.setContent(''); + await page.setContent(''); - const element = await page.find('media-card'); + const element = await page.find('map-tools'); expect(element).toHaveClass('hydrated'); }); }); diff --git a/src/components/comment-card/test/comment-card.spec.tsx b/placeholder_tests/map-tools/test/map-tools.spec.tsx similarity index 80% rename from src/components/comment-card/test/comment-card.spec.tsx rename to placeholder_tests/map-tools/test/map-tools.spec.tsx index 32eb16547..a9f2f7f87 100644 --- a/src/components/comment-card/test/comment-card.spec.tsx +++ b/placeholder_tests/map-tools/test/map-tools.spec.tsx @@ -15,20 +15,20 @@ */ import { newSpecPage } from '@stencil/core/testing'; -import { CommentCard } from '../comment-card'; +import { MapTools } from '../map-tools'; -xdescribe('comment-card', () => { +xdescribe('map-tools', () => { it('renders', async () => { const page = await newSpecPage({ - components: [CommentCard], - html: ``, + components: [MapTools], + html: ``, }); expect(page.root).toEqualHtml(` - + - + `); }); }); diff --git a/src/components/pci-calculator/test/pci-calculator.e2e.ts b/placeholder_tests/pci-calculator/test/pci-calculator.e2e.ts similarity index 100% rename from src/components/pci-calculator/test/pci-calculator.e2e.ts rename to placeholder_tests/pci-calculator/test/pci-calculator.e2e.ts diff --git a/src/components/pci-calculator/test/pci-calculator.spec.tsx b/placeholder_tests/pci-calculator/test/pci-calculator.spec.tsx similarity index 100% rename from src/components/pci-calculator/test/pci-calculator.spec.tsx rename to placeholder_tests/pci-calculator/test/pci-calculator.spec.tsx diff --git a/src/components/pdf-download/test/pdf-download.e2e.ts b/placeholder_tests/pdf-download/test/pdf-download.e2e.ts similarity index 100% rename from src/components/pdf-download/test/pdf-download.e2e.ts rename to placeholder_tests/pdf-download/test/pdf-download.e2e.ts diff --git a/src/components/pdf-download/test/pdf-download.spec.tsx b/placeholder_tests/pdf-download/test/pdf-download.spec.tsx similarity index 94% rename from src/components/pdf-download/test/pdf-download.spec.tsx rename to placeholder_tests/pdf-download/test/pdf-download.spec.tsx index 08b1f486e..d33a260eb 100644 --- a/src/components/pdf-download/test/pdf-download.spec.tsx +++ b/placeholder_tests/pdf-download/test/pdf-download.spec.tsx @@ -20,7 +20,6 @@ import * as PdfDownload from '../pdf-download'; import * as locale from "../../../utils/locale"; import * as translations from "../../../assets/t9n/pdf-download/resources.json"; import * as csvUtils from "../../../utils/csvUtils"; -import { LayerView } from "../../../utils/test/mocks/jsApi"; jest.setTimeout(30000); @@ -78,10 +77,9 @@ describe('pdf-download', () => { const consoleLogMock = jest.fn(); jest.spyOn(console, "log").mockImplementation(consoleLogMock); - const layerView = new LayerView() as unknown as any; const page = await newSpecPage({ components: [PdfDownload], - template: () => (), + template: () => (), }); await page.root.downloadCSV([], true); diff --git a/src/components/public-notification/test/public-notification.spec.tsx b/placeholder_tests/public-notification/test/public-notification.spec.tsx similarity index 88% rename from src/components/public-notification/test/public-notification.spec.tsx rename to placeholder_tests/public-notification/test/public-notification.spec.tsx index 8113b4594..4bd5f142a 100644 --- a/src/components/public-notification/test/public-notification.spec.tsx +++ b/placeholder_tests/public-notification/test/public-notification.spec.tsx @@ -19,9 +19,9 @@ import { newSpecPage } from '@stencil/core/testing'; import { PublicNotification } from '../public-notification'; import * as locale from "../../../utils/locale"; import * as translations from "../../../assets/t9n/map-draw-tools/resources.json"; -import { geometryEngine, LayerView } from "../../../utils/test/mocks/jsApi"; -import * as queryUtils from "../../../utils/queryUtils"; +//import * as queryUtils from "../../../utils/queryUtils"; import { EWorkflowType, ISelectionSet } from "../../../utils/interfaces"; +import { LayerView } from "../../../utils/test/mocks/jsApi"; jest.setTimeout(30000); @@ -52,8 +52,8 @@ beforeEach(() => { xdescribe('public-notification', () => { it('renders', async () => { - const getSelectionSetQueryMock = jest.fn(); - jest.spyOn(queryUtils, "getSelectionSetQuery").mockImplementation(getSelectionSetQueryMock) + //const getSelectionSetQueryMock = jest.fn(); + //jest.spyOn(queryUtils, "getSelectionSetQuery").mockImplementation(getSelectionSetQueryMock) const page = await newSpecPage({ autoApplyChanges: true, @@ -121,15 +121,14 @@ xdescribe('public-notification', () => { }); it('handles selectionSetsWatchHandler', async () => { - const getSelectionSetQueryMock = jest.fn(); - jest.spyOn(queryUtils, "getSelectionSetQuery").mockImplementation(getSelectionSetQueryMock); + //const getSelectionSetQueryMock = jest.fn(); + //jest.spyOn(queryUtils, "getSelectionSetQuery").mockImplementation(getSelectionSetQueryMock); const page = await newSpecPage({ autoApplyChanges: true, components: [PublicNotification], template: () => ( ), @@ -138,7 +137,6 @@ xdescribe('public-notification', () => { page.win.dispatchEvent(new CustomEvent("selectionSetsChanged", {detail: [{ id: 123456789, - workflowType: EWorkflowType.SKETCH, searchResult: undefined, buffer: {} as unknown as any, distance: 100, @@ -148,13 +146,16 @@ xdescribe('public-notification', () => { selectedIds: [], layerView: new LayerView() as unknown as any, geometries: [], - refineSelectLayers: [], - refineIds: undefined + graphics: [], + selectLayers: [], + workflowType: EWorkflowType.SKETCH, + searchDistanceEnabled: true, + useLayerFeaturesEnabled: true, + refineInfos: undefined, + sketchGraphic: undefined }] as ISelectionSet[]})); page.win.dispatchEvent(new CustomEvent("selectionSetsChanged", {detail: [{ - id: 123456789, - workflowType: EWorkflowType.REFINE, searchResult: undefined, buffer: {} as unknown as any, distance: 100, @@ -164,8 +165,13 @@ xdescribe('public-notification', () => { selectedIds: [], layerView: new LayerView() as unknown as any, geometries: [], - refineSelectLayers: [], - refineIds: undefined + graphics: [], + selectLayers: [], + workflowType: EWorkflowType.REFINE, + searchDistanceEnabled: true, + useLayerFeaturesEnabled: true, + refineInfos: undefined, + sketchGraphic: undefined }] as ISelectionSet[]})); }); }); diff --git a/src/components/refine-selection/test/refine-selection.e2e.ts b/placeholder_tests/refine-selection/test/refine-selection.e2e.ts similarity index 100% rename from src/components/refine-selection/test/refine-selection.e2e.ts rename to placeholder_tests/refine-selection/test/refine-selection.e2e.ts diff --git a/src/components/refine-selection/test/refine-selection.spec.tsx b/placeholder_tests/refine-selection/test/refine-selection.spec.tsx similarity index 100% rename from src/components/refine-selection/test/refine-selection.spec.tsx rename to placeholder_tests/refine-selection/test/refine-selection.spec.tsx diff --git a/src/components/solution-configuration/test/solution-configuration.e2e.ts b/placeholder_tests/solution-configuration/test/solution-configuration.e2e.ts similarity index 100% rename from src/components/solution-configuration/test/solution-configuration.e2e.ts rename to placeholder_tests/solution-configuration/test/solution-configuration.e2e.ts diff --git a/src/components/solution-configuration/test/solution-configuration.spec.tsx b/placeholder_tests/solution-configuration/test/solution-configuration.spec.tsx similarity index 100% rename from src/components/solution-configuration/test/solution-configuration.spec.tsx rename to placeholder_tests/solution-configuration/test/solution-configuration.spec.tsx diff --git a/src/components/solution-contents/test/solution-contents.e2e.ts b/placeholder_tests/solution-contents/test/solution-contents.e2e.ts similarity index 100% rename from src/components/solution-contents/test/solution-contents.e2e.ts rename to placeholder_tests/solution-contents/test/solution-contents.e2e.ts diff --git a/src/components/solution-contents/test/solution-contents.spec.tsx b/placeholder_tests/solution-contents/test/solution-contents.spec.tsx similarity index 100% rename from src/components/solution-contents/test/solution-contents.spec.tsx rename to placeholder_tests/solution-contents/test/solution-contents.spec.tsx diff --git a/src/components/solution-item-details/test/solution-item-details.e2e.ts b/placeholder_tests/solution-item-details/test/solution-item-details.e2e.ts similarity index 100% rename from src/components/solution-item-details/test/solution-item-details.e2e.ts rename to placeholder_tests/solution-item-details/test/solution-item-details.e2e.ts diff --git a/src/components/solution-item-details/test/solution-item-details.spec.tsx b/placeholder_tests/solution-item-details/test/solution-item-details.spec.tsx similarity index 100% rename from src/components/solution-item-details/test/solution-item-details.spec.tsx rename to placeholder_tests/solution-item-details/test/solution-item-details.spec.tsx diff --git a/src/components/solution-item-icon/test/solution-item-icon.e2e.ts b/placeholder_tests/solution-item-icon/test/solution-item-icon.e2e.ts similarity index 100% rename from src/components/solution-item-icon/test/solution-item-icon.e2e.ts rename to placeholder_tests/solution-item-icon/test/solution-item-icon.e2e.ts diff --git a/src/components/solution-item-icon/test/solution-item-icon.spec.tsx b/placeholder_tests/solution-item-icon/test/solution-item-icon.spec.tsx similarity index 100% rename from src/components/solution-item-icon/test/solution-item-icon.spec.tsx rename to placeholder_tests/solution-item-icon/test/solution-item-icon.spec.tsx diff --git a/src/components/solution-item-sharing/test/solution-item-sharing.e2e.ts b/placeholder_tests/solution-item-sharing/test/solution-item-sharing.e2e.ts similarity index 100% rename from src/components/solution-item-sharing/test/solution-item-sharing.e2e.ts rename to placeholder_tests/solution-item-sharing/test/solution-item-sharing.e2e.ts diff --git a/src/components/solution-item-sharing/test/solution-item-sharing.spec.tsx b/placeholder_tests/solution-item-sharing/test/solution-item-sharing.spec.tsx similarity index 100% rename from src/components/solution-item-sharing/test/solution-item-sharing.spec.tsx rename to placeholder_tests/solution-item-sharing/test/solution-item-sharing.spec.tsx diff --git a/src/components/solution-item/test/solution-item.e2e.ts b/placeholder_tests/solution-item/test/solution-item.e2e.ts similarity index 100% rename from src/components/solution-item/test/solution-item.e2e.ts rename to placeholder_tests/solution-item/test/solution-item.e2e.ts diff --git a/src/components/solution-item/test/solution-item.spec.tsx b/placeholder_tests/solution-item/test/solution-item.spec.tsx similarity index 100% rename from src/components/solution-item/test/solution-item.spec.tsx rename to placeholder_tests/solution-item/test/solution-item.spec.tsx diff --git a/src/components/solution-organization-variables/test/solution-organization-variables.e2e.ts b/placeholder_tests/solution-organization-variables/test/solution-organization-variables.e2e.ts similarity index 100% rename from src/components/solution-organization-variables/test/solution-organization-variables.e2e.ts rename to placeholder_tests/solution-organization-variables/test/solution-organization-variables.e2e.ts diff --git a/src/components/solution-organization-variables/test/solution-organization-variables.spec.tsx b/placeholder_tests/solution-organization-variables/test/solution-organization-variables.spec.tsx similarity index 100% rename from src/components/solution-organization-variables/test/solution-organization-variables.spec.tsx rename to placeholder_tests/solution-organization-variables/test/solution-organization-variables.spec.tsx diff --git a/src/components/solution-resource-item/test/solution-resource-item.e2e.ts b/placeholder_tests/solution-resource-item/test/solution-resource-item.e2e.ts similarity index 100% rename from src/components/solution-resource-item/test/solution-resource-item.e2e.ts rename to placeholder_tests/solution-resource-item/test/solution-resource-item.e2e.ts diff --git a/src/components/solution-resource-item/test/solution-resource-item.spec.tsx b/placeholder_tests/solution-resource-item/test/solution-resource-item.spec.tsx similarity index 100% rename from src/components/solution-resource-item/test/solution-resource-item.spec.tsx rename to placeholder_tests/solution-resource-item/test/solution-resource-item.spec.tsx diff --git a/src/components/solution-template-data/test/solution-template-data.e2e.ts b/placeholder_tests/solution-template-data/test/solution-template-data.e2e.ts similarity index 100% rename from src/components/solution-template-data/test/solution-template-data.e2e.ts rename to placeholder_tests/solution-template-data/test/solution-template-data.e2e.ts diff --git a/src/components/solution-template-data/test/solution-template-data.spec.tsx b/placeholder_tests/solution-template-data/test/solution-template-data.spec.tsx similarity index 100% rename from src/components/solution-template-data/test/solution-template-data.spec.tsx rename to placeholder_tests/solution-template-data/test/solution-template-data.spec.tsx diff --git a/src/components/solution-variables/test/solution-variables.e2e.ts b/placeholder_tests/solution-variables/test/solution-variables.e2e.ts similarity index 100% rename from src/components/solution-variables/test/solution-variables.e2e.ts rename to placeholder_tests/solution-variables/test/solution-variables.e2e.ts diff --git a/src/components/solution-variables/test/solution-variables.spec.tsx b/placeholder_tests/solution-variables/test/solution-variables.spec.tsx similarity index 100% rename from src/components/solution-variables/test/solution-variables.spec.tsx rename to placeholder_tests/solution-variables/test/solution-variables.spec.tsx diff --git a/src/assets/t9n/card-manager/resources.json b/src/assets/t9n/card-manager/resources.json index 3cdafa5bf..f097ed5d9 100644 --- a/src/assets/t9n/card-manager/resources.json +++ b/src/assets/t9n/card-manager/resources.json @@ -1,5 +1,6 @@ { "information": "Information", "media": "Media", - "comments": "Comments" + "comments": "Comments", + "selectFeaturesToStart": "Select a record to get started" } diff --git a/src/assets/t9n/card-manager/resources_ar.json b/src/assets/t9n/card-manager/resources_ar.json new file mode 100644 index 000000000..aa422ae5c --- /dev/null +++ b/src/assets/t9n/card-manager/resources_ar.json @@ -0,0 +1,6 @@ +{ + "information": "معلومات", + "media": "وسائط", + "comments": "تعليقات", + "selectFeaturesToStart": "تحديد سجل للبدء" +} diff --git a/src/assets/t9n/card-manager/resources_bg.json b/src/assets/t9n/card-manager/resources_bg.json new file mode 100644 index 000000000..c7b6a8213 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_bg.json @@ -0,0 +1,6 @@ +{ + "information": "Информация", + "media": "Медия", + "comments": "Коментари", + "selectFeaturesToStart": "Изберете запис, за да започнете" +} diff --git a/src/assets/t9n/card-manager/resources_bs.json b/src/assets/t9n/card-manager/resources_bs.json new file mode 100644 index 000000000..1388f7470 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_bs.json @@ -0,0 +1,6 @@ +{ + "information": "Informacije", + "media": "Mediji", + "comments": "Komentari", + "selectFeaturesToStart": "Odaberite zapis za početak rada" +} diff --git a/src/assets/t9n/card-manager/resources_ca.json b/src/assets/t9n/card-manager/resources_ca.json new file mode 100644 index 000000000..fcdc4eeb8 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_ca.json @@ -0,0 +1,6 @@ +{ + "information": "Informació", + "media": "Multimèdia", + "comments": "Comentaris", + "selectFeaturesToStart": "Per començar, seleccioneu un registre" +} diff --git a/src/assets/t9n/card-manager/resources_cs.json b/src/assets/t9n/card-manager/resources_cs.json new file mode 100644 index 000000000..658ec39c6 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_cs.json @@ -0,0 +1,6 @@ +{ + "information": "Informace", + "media": "Multimédia", + "comments": "Komentáře", + "selectFeaturesToStart": "Začněte výběrem záznamu" +} diff --git a/src/assets/t9n/card-manager/resources_da.json b/src/assets/t9n/card-manager/resources_da.json new file mode 100644 index 000000000..da5b7fa17 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_da.json @@ -0,0 +1,6 @@ +{ + "information": "Oplysninger", + "media": "Medier", + "comments": "Comments", + "selectFeaturesToStart": "Vælg en post at starte med" +} diff --git a/src/assets/t9n/card-manager/resources_de.json b/src/assets/t9n/card-manager/resources_de.json new file mode 100644 index 000000000..988839f81 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_de.json @@ -0,0 +1,6 @@ +{ + "information": "Informationen", + "media": "Medien", + "comments": "Kommentare", + "selectFeaturesToStart": "Zum Einstieg einen Datensatz auswählen" +} diff --git a/src/assets/t9n/card-manager/resources_el.json b/src/assets/t9n/card-manager/resources_el.json new file mode 100644 index 000000000..16a0e30a0 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_el.json @@ -0,0 +1,6 @@ +{ + "information": "Πληροφορίες", + "media": "Πολυμέσα", + "comments": "Σχόλια", + "selectFeaturesToStart": "Επιλέξτε μια εγγραφή για να ξεκινήσετε" +} diff --git a/src/assets/t9n/card-manager/resources_en.json b/src/assets/t9n/card-manager/resources_en.json index 3cdafa5bf..f097ed5d9 100644 --- a/src/assets/t9n/card-manager/resources_en.json +++ b/src/assets/t9n/card-manager/resources_en.json @@ -1,5 +1,6 @@ { "information": "Information", "media": "Media", - "comments": "Comments" + "comments": "Comments", + "selectFeaturesToStart": "Select a record to get started" } diff --git a/src/assets/t9n/card-manager/resources_es.json b/src/assets/t9n/card-manager/resources_es.json new file mode 100644 index 000000000..31e613d6c --- /dev/null +++ b/src/assets/t9n/card-manager/resources_es.json @@ -0,0 +1,6 @@ +{ + "information": "Información", + "media": "Multimedia", + "comments": "Comentarios", + "selectFeaturesToStart": "Seleccione un registro para empezar" +} diff --git a/src/assets/t9n/card-manager/resources_et.json b/src/assets/t9n/card-manager/resources_et.json new file mode 100644 index 000000000..191138734 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_et.json @@ -0,0 +1,6 @@ +{ + "information": "Teave", + "media": "Meedia", + "comments": "Kommentaarid", + "selectFeaturesToStart": "Alustamiseks valige kirje" +} diff --git a/src/assets/t9n/card-manager/resources_fi.json b/src/assets/t9n/card-manager/resources_fi.json new file mode 100644 index 000000000..71d4e53e8 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_fi.json @@ -0,0 +1,6 @@ +{ + "information": "Tiedot", + "media": "Media", + "comments": "Kommentit", + "selectFeaturesToStart": "Aloita valitsemalla tietue" +} diff --git a/src/assets/t9n/card-manager/resources_fr.json b/src/assets/t9n/card-manager/resources_fr.json new file mode 100644 index 000000000..03a6ece0c --- /dev/null +++ b/src/assets/t9n/card-manager/resources_fr.json @@ -0,0 +1,6 @@ +{ + "information": "Informations", + "media": "Contenu multimédia", + "comments": "Commentaires", + "selectFeaturesToStart": "Sélectionner un enregistrement pour commencer" +} diff --git a/src/assets/t9n/card-manager/resources_he.json b/src/assets/t9n/card-manager/resources_he.json new file mode 100644 index 000000000..98b48d3aa --- /dev/null +++ b/src/assets/t9n/card-manager/resources_he.json @@ -0,0 +1,6 @@ +{ + "information": "מידע", + "media": "מדיה", + "comments": "הערות", + "selectFeaturesToStart": "בחר רשומה כדי להתחיל" +} diff --git a/src/assets/t9n/card-manager/resources_hr.json b/src/assets/t9n/card-manager/resources_hr.json new file mode 100644 index 000000000..1388f7470 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_hr.json @@ -0,0 +1,6 @@ +{ + "information": "Informacije", + "media": "Mediji", + "comments": "Komentari", + "selectFeaturesToStart": "Odaberite zapis za početak rada" +} diff --git a/src/assets/t9n/card-manager/resources_hu.json b/src/assets/t9n/card-manager/resources_hu.json new file mode 100644 index 000000000..ae9ad6cb3 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_hu.json @@ -0,0 +1,6 @@ +{ + "information": "Információ", + "media": "Média", + "comments": "Megjegyzések", + "selectFeaturesToStart": "Válasszon ki egy rekordot a kezdéshez" +} diff --git a/src/assets/t9n/card-manager/resources_id.json b/src/assets/t9n/card-manager/resources_id.json new file mode 100644 index 000000000..86fc2fc8f --- /dev/null +++ b/src/assets/t9n/card-manager/resources_id.json @@ -0,0 +1,6 @@ +{ + "information": "Informasi", + "media": "Media", + "comments": "Komentar", + "selectFeaturesToStart": "Pilih catatan untuk mulai" +} diff --git a/src/assets/t9n/card-manager/resources_it.json b/src/assets/t9n/card-manager/resources_it.json new file mode 100644 index 000000000..ab0870739 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_it.json @@ -0,0 +1,6 @@ +{ + "information": "Informazioni", + "media": "Multimediali", + "comments": "Commenti", + "selectFeaturesToStart": "Seleziona una registrazione per iniziare" +} diff --git a/src/assets/t9n/card-manager/resources_ja.json b/src/assets/t9n/card-manager/resources_ja.json new file mode 100644 index 000000000..fe1f8f6c4 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_ja.json @@ -0,0 +1,6 @@ +{ + "information": "情報", + "media": "メディア", + "comments": "コメント", + "selectFeaturesToStart": "開始するレコードを選択" +} diff --git a/src/assets/t9n/card-manager/resources_ko.json b/src/assets/t9n/card-manager/resources_ko.json new file mode 100644 index 000000000..8b08a46fc --- /dev/null +++ b/src/assets/t9n/card-manager/resources_ko.json @@ -0,0 +1,6 @@ +{ + "information": "정보", + "media": "미디어", + "comments": "의견", + "selectFeaturesToStart": "시작하려면 레코드 선택" +} diff --git a/src/assets/t9n/card-manager/resources_lt.json b/src/assets/t9n/card-manager/resources_lt.json new file mode 100644 index 000000000..eb3de1ade --- /dev/null +++ b/src/assets/t9n/card-manager/resources_lt.json @@ -0,0 +1,6 @@ +{ + "information": "Informacija", + "media": "Medijos", + "comments": "Komentarai", + "selectFeaturesToStart": "Norėdami pradėti, pasirinkite įrašą" +} diff --git a/src/assets/t9n/card-manager/resources_lv.json b/src/assets/t9n/card-manager/resources_lv.json new file mode 100644 index 000000000..d74445d71 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_lv.json @@ -0,0 +1,6 @@ +{ + "information": "Informācija", + "media": "Multivide", + "comments": "Komentāri", + "selectFeaturesToStart": "Lai sāktu darbu, atlasiet ierakstu" +} diff --git a/src/assets/t9n/card-manager/resources_nb.json b/src/assets/t9n/card-manager/resources_nb.json new file mode 100644 index 000000000..710986709 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_nb.json @@ -0,0 +1,6 @@ +{ + "information": "Informasjon", + "media": "Medier", + "comments": "Kommentarer", + "selectFeaturesToStart": "Velg en post for å komme i gang" +} diff --git a/src/assets/t9n/card-manager/resources_nl.json b/src/assets/t9n/card-manager/resources_nl.json new file mode 100644 index 000000000..fc2af801f --- /dev/null +++ b/src/assets/t9n/card-manager/resources_nl.json @@ -0,0 +1,6 @@ +{ + "information": "Informatie", + "media": "Media", + "comments": "Opmerkingen", + "selectFeaturesToStart": "Selecteer een record om te starten" +} diff --git a/src/assets/t9n/card-manager/resources_pl.json b/src/assets/t9n/card-manager/resources_pl.json new file mode 100644 index 000000000..6f2277be2 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_pl.json @@ -0,0 +1,6 @@ +{ + "information": "Informacje", + "media": "Multimedia", + "comments": "Komentarze", + "selectFeaturesToStart": "Wybierz rekord, aby rozpocząć" +} diff --git a/src/assets/t9n/card-manager/resources_pt-BR.json b/src/assets/t9n/card-manager/resources_pt-BR.json new file mode 100644 index 000000000..349d53978 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_pt-BR.json @@ -0,0 +1,6 @@ +{ + "information": "Informações", + "media": "Mídia", + "comments": "Comentários", + "selectFeaturesToStart": "Selecione um registro para iniciar" +} diff --git a/src/assets/t9n/card-manager/resources_pt-PT.json b/src/assets/t9n/card-manager/resources_pt-PT.json new file mode 100644 index 000000000..d90fe4107 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_pt-PT.json @@ -0,0 +1,6 @@ +{ + "information": "Informações", + "media": "Multimédia", + "comments": "Comentários", + "selectFeaturesToStart": "Selecione um registo para começar" +} diff --git a/src/assets/t9n/card-manager/resources_ro.json b/src/assets/t9n/card-manager/resources_ro.json new file mode 100644 index 000000000..ee2b65b14 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_ro.json @@ -0,0 +1,6 @@ +{ + "information": "Informaţii", + "media": "Media", + "comments": "Comentarii", + "selectFeaturesToStart": "Selectați o înregistrare pentru a începe" +} diff --git a/src/assets/t9n/card-manager/resources_ru.json b/src/assets/t9n/card-manager/resources_ru.json new file mode 100644 index 000000000..a8a9b9f69 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_ru.json @@ -0,0 +1,6 @@ +{ + "information": "Информация", + "media": "Медиа", + "comments": "Комментарии", + "selectFeaturesToStart": "Выберите запись, чтобы начать работу" +} diff --git a/src/assets/t9n/card-manager/resources_sk.json b/src/assets/t9n/card-manager/resources_sk.json new file mode 100644 index 000000000..91af63c94 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_sk.json @@ -0,0 +1,6 @@ +{ + "information": "Informácie", + "media": "Médiá", + "comments": "Komentáre", + "selectFeaturesToStart": "Vybrať záznam a začať" +} diff --git a/src/assets/t9n/card-manager/resources_sl.json b/src/assets/t9n/card-manager/resources_sl.json new file mode 100644 index 000000000..750693a12 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_sl.json @@ -0,0 +1,6 @@ +{ + "information": "Informacije", + "media": "Mediji", + "comments": "Komentarji", + "selectFeaturesToStart": "Izberite zapis za začetek" +} diff --git a/src/assets/t9n/card-manager/resources_sr.json b/src/assets/t9n/card-manager/resources_sr.json new file mode 100644 index 000000000..3a65ff9c7 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_sr.json @@ -0,0 +1,6 @@ +{ + "information": "Informacije", + "media": "Medij", + "comments": "Komentari", + "selectFeaturesToStart": "Izaberite zapis da biste započeli" +} diff --git a/src/assets/t9n/card-manager/resources_sv.json b/src/assets/t9n/card-manager/resources_sv.json new file mode 100644 index 000000000..f3e9ddd7e --- /dev/null +++ b/src/assets/t9n/card-manager/resources_sv.json @@ -0,0 +1,6 @@ +{ + "information": "Information", + "media": "Media", + "comments": "Kommentarer", + "selectFeaturesToStart": "Välj en post för att komma igång" +} diff --git a/src/assets/t9n/card-manager/resources_th.json b/src/assets/t9n/card-manager/resources_th.json new file mode 100644 index 000000000..861b98d90 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_th.json @@ -0,0 +1,6 @@ +{ + "information": "ข้อมูล", + "media": "มีเดีย", + "comments": "ความเห็น", + "selectFeaturesToStart": "เลือกบันทึกข้อมูลเพื่อเริ่ม" +} diff --git a/src/assets/t9n/card-manager/resources_tr.json b/src/assets/t9n/card-manager/resources_tr.json new file mode 100644 index 000000000..4bcf250c5 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_tr.json @@ -0,0 +1,6 @@ +{ + "information": "Bilgi", + "media": "Ortam", + "comments": "Yorumlar", + "selectFeaturesToStart": "Başlamak için bir kayıt seçin" +} diff --git a/src/assets/t9n/card-manager/resources_uk.json b/src/assets/t9n/card-manager/resources_uk.json new file mode 100644 index 000000000..3e5af525e --- /dev/null +++ b/src/assets/t9n/card-manager/resources_uk.json @@ -0,0 +1,6 @@ +{ + "information": "Інформація", + "media": "Мультимедійний зміст", + "comments": "Коментарі", + "selectFeaturesToStart": "Щоб почати, виберіть запис" +} diff --git a/src/assets/t9n/card-manager/resources_vi.json b/src/assets/t9n/card-manager/resources_vi.json new file mode 100644 index 000000000..0587282c4 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_vi.json @@ -0,0 +1,6 @@ +{ + "information": "Thông tin", + "media": "Nội dung đa phương tiện", + "comments": "Bình luận", + "selectFeaturesToStart": "Chọn một bản ghi để bắt đầu" +} diff --git a/src/assets/t9n/card-manager/resources_zh-CN.json b/src/assets/t9n/card-manager/resources_zh-CN.json new file mode 100644 index 000000000..7be85b2b9 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_zh-CN.json @@ -0,0 +1,6 @@ +{ + "information": "信息", + "media": "媒体", + "comments": "评论", + "selectFeaturesToStart": "选择一条记录开始" +} diff --git a/src/assets/t9n/card-manager/resources_zh-HK.json b/src/assets/t9n/card-manager/resources_zh-HK.json new file mode 100644 index 000000000..a824cc473 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_zh-HK.json @@ -0,0 +1,6 @@ +{ + "information": "資訊", + "media": "媒體", + "comments": "評論", + "selectFeaturesToStart": "選擇記錄以開始使用" +} diff --git a/src/assets/t9n/card-manager/resources_zh-TW.json b/src/assets/t9n/card-manager/resources_zh-TW.json new file mode 100644 index 000000000..a824cc473 --- /dev/null +++ b/src/assets/t9n/card-manager/resources_zh-TW.json @@ -0,0 +1,6 @@ +{ + "information": "資訊", + "media": "媒體", + "comments": "評論", + "selectFeaturesToStart": "選擇記錄以開始使用" +} diff --git a/src/assets/t9n/comment-card/resources.json b/src/assets/t9n/comment-card/resources.json index 0db3279e4..b354698db 100644 --- a/src/assets/t9n/comment-card/resources.json +++ b/src/assets/t9n/comment-card/resources.json @@ -1,3 +1,4 @@ { - + "addRecord": "Add Record", + "fetchingData": "Fetching data" } diff --git a/src/assets/t9n/comment-card/resources_ar.json b/src/assets/t9n/comment-card/resources_ar.json new file mode 100644 index 000000000..952588edc --- /dev/null +++ b/src/assets/t9n/comment-card/resources_ar.json @@ -0,0 +1,4 @@ +{ + "addRecord": "إضافة سجل", + "fetchingData": "إحضار البيانات" +} diff --git a/src/assets/t9n/comment-card/resources_bg.json b/src/assets/t9n/comment-card/resources_bg.json new file mode 100644 index 000000000..1a7ae5e16 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_bg.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Добавяне на запис", + "fetchingData": "Извличане на данни" +} diff --git a/src/assets/t9n/comment-card/resources_bs.json b/src/assets/t9n/comment-card/resources_bs.json new file mode 100644 index 000000000..4a5d180bd --- /dev/null +++ b/src/assets/t9n/comment-card/resources_bs.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Dodaj zapis", + "fetchingData": "Dohvaćanje podataka" +} diff --git a/src/assets/t9n/comment-card/resources_ca.json b/src/assets/t9n/comment-card/resources_ca.json new file mode 100644 index 000000000..ed6d9aae9 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_ca.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Afegeix un registre", + "fetchingData": "S'estan recuperant les dades" +} diff --git a/src/assets/t9n/comment-card/resources_cs.json b/src/assets/t9n/comment-card/resources_cs.json new file mode 100644 index 000000000..0fa83986f --- /dev/null +++ b/src/assets/t9n/comment-card/resources_cs.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Přidat záznam", + "fetchingData": "Načítání dat" +} diff --git a/src/assets/t9n/comment-card/resources_da.json b/src/assets/t9n/comment-card/resources_da.json new file mode 100644 index 000000000..da16b9338 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_da.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Tilføj post", + "fetchingData": "Henter data" +} diff --git a/src/assets/t9n/comment-card/resources_de.json b/src/assets/t9n/comment-card/resources_de.json new file mode 100644 index 000000000..8381399cd --- /dev/null +++ b/src/assets/t9n/comment-card/resources_de.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Datensatz hinzufügen", + "fetchingData": "Daten werden abgerufen" +} diff --git a/src/assets/t9n/comment-card/resources_el.json b/src/assets/t9n/comment-card/resources_el.json new file mode 100644 index 000000000..25f007ac1 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_el.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Προσθήκη εγγραφής", + "fetchingData": "Ανάκτηση δεδομένων" +} diff --git a/src/assets/t9n/comment-card/resources_en.json b/src/assets/t9n/comment-card/resources_en.json index 0db3279e4..b354698db 100644 --- a/src/assets/t9n/comment-card/resources_en.json +++ b/src/assets/t9n/comment-card/resources_en.json @@ -1,3 +1,4 @@ { - + "addRecord": "Add Record", + "fetchingData": "Fetching data" } diff --git a/src/assets/t9n/comment-card/resources_es.json b/src/assets/t9n/comment-card/resources_es.json new file mode 100644 index 000000000..fba10c164 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_es.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Agregar registro", + "fetchingData": "Obteniendo datos" +} diff --git a/src/assets/t9n/comment-card/resources_et.json b/src/assets/t9n/comment-card/resources_et.json new file mode 100644 index 000000000..bacebc452 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_et.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Lisa kirje", + "fetchingData": "Andmete toomine" +} diff --git a/src/assets/t9n/comment-card/resources_fi.json b/src/assets/t9n/comment-card/resources_fi.json new file mode 100644 index 000000000..972d3e59a --- /dev/null +++ b/src/assets/t9n/comment-card/resources_fi.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Lisää tietue", + "fetchingData": "Noudetaan aineistoa" +} diff --git a/src/assets/t9n/comment-card/resources_fr.json b/src/assets/t9n/comment-card/resources_fr.json new file mode 100644 index 000000000..e1450ed63 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_fr.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Ajouter un enregistrement", + "fetchingData": "Récupération des données" +} diff --git a/src/assets/t9n/comment-card/resources_he.json b/src/assets/t9n/comment-card/resources_he.json new file mode 100644 index 000000000..48dcbc04e --- /dev/null +++ b/src/assets/t9n/comment-card/resources_he.json @@ -0,0 +1,4 @@ +{ + "addRecord": "הוסף רשומה", + "fetchingData": "מאחזר נתונים" +} diff --git a/src/assets/t9n/comment-card/resources_hr.json b/src/assets/t9n/comment-card/resources_hr.json new file mode 100644 index 000000000..4a5d180bd --- /dev/null +++ b/src/assets/t9n/comment-card/resources_hr.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Dodaj zapis", + "fetchingData": "Dohvaćanje podataka" +} diff --git a/src/assets/t9n/comment-card/resources_hu.json b/src/assets/t9n/comment-card/resources_hu.json new file mode 100644 index 000000000..817972fb5 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_hu.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Rekord hozzáadása", + "fetchingData": "Adatok lekérése" +} diff --git a/src/assets/t9n/comment-card/resources_id.json b/src/assets/t9n/comment-card/resources_id.json new file mode 100644 index 000000000..b810ca2a0 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_id.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Tambahkan Catatan", + "fetchingData": "Mengambil data" +} diff --git a/src/assets/t9n/comment-card/resources_it.json b/src/assets/t9n/comment-card/resources_it.json new file mode 100644 index 000000000..9c82dccc2 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_it.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Aggiungi record", + "fetchingData": "Recupero dei dati" +} diff --git a/src/assets/t9n/comment-card/resources_ja.json b/src/assets/t9n/comment-card/resources_ja.json new file mode 100644 index 000000000..d304f633f --- /dev/null +++ b/src/assets/t9n/comment-card/resources_ja.json @@ -0,0 +1,4 @@ +{ + "addRecord": "レコードの追加", + "fetchingData": "データを取得しています" +} diff --git a/src/assets/t9n/comment-card/resources_ko.json b/src/assets/t9n/comment-card/resources_ko.json new file mode 100644 index 000000000..bd49318d4 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_ko.json @@ -0,0 +1,4 @@ +{ + "addRecord": "레코드 추가", + "fetchingData": "데이터 가져오기" +} diff --git a/src/assets/t9n/comment-card/resources_lt.json b/src/assets/t9n/comment-card/resources_lt.json new file mode 100644 index 000000000..670a35c10 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_lt.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Pridėti įrašą", + "fetchingData": "Gaunami duomenys" +} diff --git a/src/assets/t9n/comment-card/resources_lv.json b/src/assets/t9n/comment-card/resources_lv.json new file mode 100644 index 000000000..7545c0eff --- /dev/null +++ b/src/assets/t9n/comment-card/resources_lv.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Pievienot ierakstu", + "fetchingData": "Tvert datus" +} diff --git a/src/assets/t9n/comment-card/resources_nb.json b/src/assets/t9n/comment-card/resources_nb.json new file mode 100644 index 000000000..439f052e7 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_nb.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Legg til post", + "fetchingData": "Henter data" +} diff --git a/src/assets/t9n/comment-card/resources_nl.json b/src/assets/t9n/comment-card/resources_nl.json new file mode 100644 index 000000000..d045f2c12 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_nl.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Record toevoegen", + "fetchingData": "Bezig met ophalen gegevens" +} diff --git a/src/assets/t9n/comment-card/resources_pl.json b/src/assets/t9n/comment-card/resources_pl.json new file mode 100644 index 000000000..371344c48 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_pl.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Dodaj rekord", + "fetchingData": "Pobieranie danych" +} diff --git a/src/assets/t9n/comment-card/resources_pt-BR.json b/src/assets/t9n/comment-card/resources_pt-BR.json new file mode 100644 index 000000000..02295e60d --- /dev/null +++ b/src/assets/t9n/comment-card/resources_pt-BR.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Adicionar Registros", + "fetchingData": "Buscando dados" +} diff --git a/src/assets/t9n/comment-card/resources_pt-PT.json b/src/assets/t9n/comment-card/resources_pt-PT.json new file mode 100644 index 000000000..eba7634ea --- /dev/null +++ b/src/assets/t9n/comment-card/resources_pt-PT.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Adicionar Registo", + "fetchingData": "A obter dados" +} diff --git a/src/assets/t9n/comment-card/resources_ro.json b/src/assets/t9n/comment-card/resources_ro.json new file mode 100644 index 000000000..265bdc701 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_ro.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Adăugare înregistrare", + "fetchingData": "Extragerea datelor" +} diff --git a/src/assets/t9n/comment-card/resources_ru.json b/src/assets/t9n/comment-card/resources_ru.json new file mode 100644 index 000000000..922da687e --- /dev/null +++ b/src/assets/t9n/comment-card/resources_ru.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Добавить запись", + "fetchingData": "Извлечение данных" +} diff --git a/src/assets/t9n/comment-card/resources_sk.json b/src/assets/t9n/comment-card/resources_sk.json new file mode 100644 index 000000000..d54b2fc85 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_sk.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Pridať záznam", + "fetchingData": "Získavanie dát" +} diff --git a/src/assets/t9n/comment-card/resources_sl.json b/src/assets/t9n/comment-card/resources_sl.json new file mode 100644 index 000000000..fcfdfad02 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_sl.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Dodaj zapis", + "fetchingData": "Pridobivanje podatkov" +} diff --git a/src/assets/t9n/comment-card/resources_sr.json b/src/assets/t9n/comment-card/resources_sr.json new file mode 100644 index 000000000..52d40e2cf --- /dev/null +++ b/src/assets/t9n/comment-card/resources_sr.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Dodaj zapis", + "fetchingData": "Preuzimanje podataka" +} diff --git a/src/assets/t9n/comment-card/resources_sv.json b/src/assets/t9n/comment-card/resources_sv.json new file mode 100644 index 000000000..f4388ea35 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_sv.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Lägg till post", + "fetchingData": "Hämtar data" +} diff --git a/src/assets/t9n/comment-card/resources_th.json b/src/assets/t9n/comment-card/resources_th.json new file mode 100644 index 000000000..2152e7fae --- /dev/null +++ b/src/assets/t9n/comment-card/resources_th.json @@ -0,0 +1,4 @@ +{ + "addRecord": "เพิ่มบันทึก", + "fetchingData": "กำลังดึงข้อมูล" +} diff --git a/src/assets/t9n/comment-card/resources_tr.json b/src/assets/t9n/comment-card/resources_tr.json new file mode 100644 index 000000000..6d90b72db --- /dev/null +++ b/src/assets/t9n/comment-card/resources_tr.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Kayıt Ekle", + "fetchingData": "Veriler getiriliyor" +} diff --git a/src/assets/t9n/comment-card/resources_uk.json b/src/assets/t9n/comment-card/resources_uk.json new file mode 100644 index 000000000..058ae5019 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_uk.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Додати запис", + "fetchingData": "Отримання даних" +} diff --git a/src/assets/t9n/comment-card/resources_vi.json b/src/assets/t9n/comment-card/resources_vi.json new file mode 100644 index 000000000..96a56d71d --- /dev/null +++ b/src/assets/t9n/comment-card/resources_vi.json @@ -0,0 +1,4 @@ +{ + "addRecord": "Thêm Bản ghi", + "fetchingData": "Đang tìm nạp dữ liệu" +} diff --git a/src/assets/t9n/comment-card/resources_zh-CN.json b/src/assets/t9n/comment-card/resources_zh-CN.json new file mode 100644 index 000000000..47c221d23 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_zh-CN.json @@ -0,0 +1,4 @@ +{ + "addRecord": "添加记录", + "fetchingData": "正在获取数据" +} diff --git a/src/assets/t9n/comment-card/resources_zh-HK.json b/src/assets/t9n/comment-card/resources_zh-HK.json new file mode 100644 index 000000000..0a2a1fdf2 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_zh-HK.json @@ -0,0 +1,4 @@ +{ + "addRecord": "新增記錄", + "fetchingData": "正在擷取資料" +} diff --git a/src/assets/t9n/comment-card/resources_zh-TW.json b/src/assets/t9n/comment-card/resources_zh-TW.json new file mode 100644 index 000000000..0a2a1fdf2 --- /dev/null +++ b/src/assets/t9n/comment-card/resources_zh-TW.json @@ -0,0 +1,4 @@ +{ + "addRecord": "新增記錄", + "fetchingData": "正在擷取資料" +} diff --git a/src/assets/t9n/crowdsource-manager/resources.json b/src/assets/t9n/crowdsource-manager/resources.json index 34cc69e2c..394521964 100644 --- a/src/assets/t9n/crowdsource-manager/resources.json +++ b/src/assets/t9n/crowdsource-manager/resources.json @@ -1,9 +1,8 @@ { "header": "Crowdsource Manager", - "layout": "Layout", "open": "Open", "close": "Close", - "grid": "Grid", - "vertical": "Vertical", - "horizontal": "Horizontal" + "information": "Information", + "expandPopup": "Expand pop-up", + "collapsePopup": "Collapse pop-up" } diff --git a/src/assets/t9n/crowdsource-manager/resources_ar.json b/src/assets/t9n/crowdsource-manager/resources_ar.json new file mode 100644 index 000000000..bb79e51f2 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_ar.json @@ -0,0 +1,8 @@ +{ + "header": "تطبيق Crowdsource Manager", + "open": "فتح", + "close": "إغلاق", + "information": "معلومات", + "expandPopup": "توسيع النافذة المنبثقة", + "collapsePopup": "طي النافذة المنبثقة" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_bg.json b/src/assets/t9n/crowdsource-manager/resources_bg.json new file mode 100644 index 000000000..32cb0ee0c --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_bg.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Отваряне", + "close": "Затваряне", + "information": "Информация", + "expandPopup": "Разгъване на изскачащ прозорец", + "collapsePopup": "Свиване на изскачащ прозорец" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_bs.json b/src/assets/t9n/crowdsource-manager/resources_bs.json new file mode 100644 index 000000000..2173b5f92 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_bs.json @@ -0,0 +1,8 @@ +{ + "header": "Upravitelj anketiranjem javnosti", + "open": "Otvori", + "close": "Zatvori", + "information": "Informacije", + "expandPopup": "Proširi skočni prozor", + "collapsePopup": "Sažmi skočni prozor" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_ca.json b/src/assets/t9n/crowdsource-manager/resources_ca.json new file mode 100644 index 000000000..7234f1dc1 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_ca.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Obre", + "close": "Tanca", + "information": "Informació", + "expandPopup": "Amplia la finestra emergent", + "collapsePopup": "Contrau la finestra emergent" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_cs.json b/src/assets/t9n/crowdsource-manager/resources_cs.json new file mode 100644 index 000000000..4ca36957b --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_cs.json @@ -0,0 +1,8 @@ +{ + "header": "Externí správa", + "open": "Otevřít", + "close": "Zavřít", + "information": "Informace", + "expandPopup": "Rozbalit vyskakovací okno", + "collapsePopup": "Sbalit vyskakovací okno" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_da.json b/src/assets/t9n/crowdsource-manager/resources_da.json new file mode 100644 index 000000000..0a58fc24b --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_da.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Åbn", + "close": "Luk", + "information": "Oplysninger", + "expandPopup": "Udvid pop-up", + "collapsePopup": "Skjul pop-up" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_de.json b/src/assets/t9n/crowdsource-manager/resources_de.json new file mode 100644 index 000000000..3214da323 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_de.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Öffnen", + "close": "Schließen", + "information": "Informationen", + "expandPopup": "Pop-up einblenden", + "collapsePopup": "Pop-up ausblenden" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_el.json b/src/assets/t9n/crowdsource-manager/resources_el.json new file mode 100644 index 000000000..f7c51a22c --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_el.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Άνοιγμα", + "close": "Κλείσιμο", + "information": "Πληροφορίες", + "expandPopup": "Επέκταση αναδυόμενου παραθύρου", + "collapsePopup": "Κλείσιμο αναδυόμενου παραθύρου" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_en.json b/src/assets/t9n/crowdsource-manager/resources_en.json index 76ac39682..778a8d865 100644 --- a/src/assets/t9n/crowdsource-manager/resources_en.json +++ b/src/assets/t9n/crowdsource-manager/resources_en.json @@ -1,9 +1,8 @@ { "header": "Crowdsource Manager", - "layout": "Layout", "open": "Open", "close": "Close", - "grid": "Grid", - "vertical": "Vertical", - "horizontal": "Horizontal" + "information": "Information", + "expandPopup": "Expand pop-up", + "collapsePopup": "Collapse pop-up" } diff --git a/src/assets/t9n/crowdsource-manager/resources_es.json b/src/assets/t9n/crowdsource-manager/resources_es.json new file mode 100644 index 000000000..ce0069398 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_es.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Abrir", + "close": "Cerrar", + "information": "Información", + "expandPopup": "Expandir elemento emergente", + "collapsePopup": "Contraer elemento emergente" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_et.json b/src/assets/t9n/crowdsource-manager/resources_et.json new file mode 100644 index 000000000..fadade463 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_et.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Ava", + "close": "Sule", + "information": "Teave", + "expandPopup": "Laienda hüpikaken", + "collapsePopup": "Ahenda hüpikaken" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_fi.json b/src/assets/t9n/crowdsource-manager/resources_fi.json new file mode 100644 index 000000000..a094132fb --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_fi.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Avaa", + "close": "Sulje", + "information": "Tiedot", + "expandPopup": "Laajenna ponnahdusikkuna", + "collapsePopup": "Pienennä ponnahdusikkuna" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_fr.json b/src/assets/t9n/crowdsource-manager/resources_fr.json new file mode 100644 index 000000000..0f38fb028 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_fr.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Ouvrir", + "close": "Fermer", + "information": "Informations", + "expandPopup": "Développer la fenêtre contextuelle", + "collapsePopup": "Réduire la fenêtre contextuelle" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_he.json b/src/assets/t9n/crowdsource-manager/resources_he.json new file mode 100644 index 000000000..04a1271ab --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_he.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "פתוח", + "close": "סגירה", + "information": "מידע", + "expandPopup": "הרחב חלון קופץ", + "collapsePopup": "כווץ חלון קופץ" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_hr.json b/src/assets/t9n/crowdsource-manager/resources_hr.json new file mode 100644 index 000000000..2173b5f92 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_hr.json @@ -0,0 +1,8 @@ +{ + "header": "Upravitelj anketiranjem javnosti", + "open": "Otvori", + "close": "Zatvori", + "information": "Informacije", + "expandPopup": "Proširi skočni prozor", + "collapsePopup": "Sažmi skočni prozor" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_hu.json b/src/assets/t9n/crowdsource-manager/resources_hu.json new file mode 100644 index 000000000..1cca4f5ae --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_hu.json @@ -0,0 +1,8 @@ +{ + "header": "Közösségi ötletbörze-kezelő", + "open": "Megnyitás", + "close": "Bezárás", + "information": "Információ", + "expandPopup": "Felugró ablak kiterjesztése", + "collapsePopup": "Felugró ablak összecsukása" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_id.json b/src/assets/t9n/crowdsource-manager/resources_id.json new file mode 100644 index 000000000..63394fc15 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_id.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Buka", + "close": "Tutup", + "information": "Informasi", + "expandPopup": "Perluas pop-up", + "collapsePopup": "Perkecil pop-up" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_it.json b/src/assets/t9n/crowdsource-manager/resources_it.json new file mode 100644 index 000000000..3a03a3df6 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_it.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Apri", + "close": "Chiudi", + "information": "Informazioni", + "expandPopup": "Espandi popup", + "collapsePopup": "Comprimi popup" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_ja.json b/src/assets/t9n/crowdsource-manager/resources_ja.json new file mode 100644 index 000000000..be39cf4d3 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_ja.json @@ -0,0 +1,8 @@ +{ + "header": "クラウドソース マネージャー", + "open": "開く", + "close": "閉じる", + "information": "情報", + "expandPopup": "ポップアップの展開", + "collapsePopup": "ポップアップを折りたたむ" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_ko.json b/src/assets/t9n/crowdsource-manager/resources_ko.json new file mode 100644 index 000000000..3cefa4b7c --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_ko.json @@ -0,0 +1,8 @@ +{ + "header": "크라우드소스 관리자", + "open": "열기", + "close": "닫기", + "information": "정보", + "expandPopup": "팝업 확장", + "collapsePopup": "팝업 축소" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_lt.json b/src/assets/t9n/crowdsource-manager/resources_lt.json new file mode 100644 index 000000000..8df5291e2 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_lt.json @@ -0,0 +1,8 @@ +{ + "header": "Sutelktinių išteklių vadovas", + "open": "Atverti", + "close": "Uždaryti", + "information": "Informacija", + "expandPopup": "Išskleisti iškylantįjį langą", + "collapsePopup": "Suskleisti iškylantįjį langą" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_lv.json b/src/assets/t9n/crowdsource-manager/resources_lv.json new file mode 100644 index 000000000..dd6ac3345 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_lv.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Atvērt", + "close": "Aizvērt", + "information": "Informācija", + "expandPopup": "Izvērst uznirstošo logu", + "collapsePopup": "Sakļaut uznirstošo logu" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_nb.json b/src/assets/t9n/crowdsource-manager/resources_nb.json new file mode 100644 index 000000000..c807cabf6 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_nb.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Åpne", + "close": "Lukk", + "information": "Informasjon", + "expandPopup": "Utvid popup", + "collapsePopup": "Skjul popup" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_nl.json b/src/assets/t9n/crowdsource-manager/resources_nl.json new file mode 100644 index 000000000..0a1d858e4 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_nl.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Openen", + "close": "Sluiten", + "information": "Informatie", + "expandPopup": "Pop-up uitvouwen", + "collapsePopup": "Pop-up samenvouwen" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_pl.json b/src/assets/t9n/crowdsource-manager/resources_pl.json new file mode 100644 index 000000000..419308fd0 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_pl.json @@ -0,0 +1,8 @@ +{ + "header": "Menedżer zgłoszeń użytkowników", + "open": "Otwórz", + "close": "Zamknij", + "information": "Informacje", + "expandPopup": "Rozwiń okno podręczne", + "collapsePopup": "Zwiń okno podręczne" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_pt-BR.json b/src/assets/t9n/crowdsource-manager/resources_pt-BR.json new file mode 100644 index 000000000..88760130c --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_pt-BR.json @@ -0,0 +1,8 @@ +{ + "header": "Gerenciador de Informações Coletivas", + "open": "Abrir", + "close": "Fechar", + "information": "Informações", + "expandPopup": "Expandir pop-up", + "collapsePopup": "Recolher pop-up" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_pt-PT.json b/src/assets/t9n/crowdsource-manager/resources_pt-PT.json new file mode 100644 index 000000000..9ddb57c38 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_pt-PT.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Abrir", + "close": "Fechar", + "information": "Informações", + "expandPopup": "Expandir pop-up", + "collapsePopup": "Fechar pop-up" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_ro.json b/src/assets/t9n/crowdsource-manager/resources_ro.json new file mode 100644 index 000000000..3e09a3a37 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_ro.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Deschidere", + "close": "Închidere", + "information": "Informaţii", + "expandPopup": "Extindere pop-up", + "collapsePopup": "Restrângere pop-up" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_ru.json b/src/assets/t9n/crowdsource-manager/resources_ru.json new file mode 100644 index 000000000..61e9e1b75 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_ru.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Открыть", + "close": "Закрыть", + "information": "Информация", + "expandPopup": "Развернуть всплывающее окно", + "collapsePopup": "Свернуть всплывающее окно" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_sk.json b/src/assets/t9n/crowdsource-manager/resources_sk.json new file mode 100644 index 000000000..ea4314d78 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_sk.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource manažér", + "open": "Otvoriť", + "close": "Zatvoriť", + "information": "Informácie", + "expandPopup": "Rozbaliť kontextové okno", + "collapsePopup": "Zbaliť kontextové okno" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_sl.json b/src/assets/t9n/crowdsource-manager/resources_sl.json new file mode 100644 index 000000000..eb399a429 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_sl.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Odpri", + "close": "Zapri", + "information": "Informacije", + "expandPopup": "Razširi pojavno okno", + "collapsePopup": "Strni pojavno okno" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_sr.json b/src/assets/t9n/crowdsource-manager/resources_sr.json new file mode 100644 index 000000000..2893a65c1 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_sr.json @@ -0,0 +1,8 @@ +{ + "header": "Menadžer za Crowdsource", + "open": "Otvori", + "close": "Zatvori", + "information": "Informacije", + "expandPopup": "Proširi iskačući prozor", + "collapsePopup": "Spusti iskačući prozor" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_sv.json b/src/assets/t9n/crowdsource-manager/resources_sv.json new file mode 100644 index 000000000..f1dd5b06b --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_sv.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsourcehanteraren", + "open": "Öppna", + "close": "Stäng", + "information": "Information", + "expandPopup": "Expandera popup-fönster", + "collapsePopup": "Dölj popup-fönster" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_th.json b/src/assets/t9n/crowdsource-manager/resources_th.json new file mode 100644 index 000000000..dd90debd2 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_th.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "เปิด", + "close": "ปิด", + "information": "ข้อมูล", + "expandPopup": "ขยายป็อปอัพ", + "collapsePopup": "ย่อป็อปอัพ" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_tr.json b/src/assets/t9n/crowdsource-manager/resources_tr.json new file mode 100644 index 000000000..3435e54bd --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_tr.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Aç", + "close": "Kapat", + "information": "Bilgi", + "expandPopup": "Açılır pencereyi genişlet", + "collapsePopup": "Açılır pencereyi daralt" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_uk.json b/src/assets/t9n/crowdsource-manager/resources_uk.json new file mode 100644 index 000000000..50dc2e89b --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_uk.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "Відкрити", + "close": "Закрити", + "information": "Інформація", + "expandPopup": "Розгорнути спливне вікно", + "collapsePopup": "Згорнути спливне вікно" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_vi.json b/src/assets/t9n/crowdsource-manager/resources_vi.json new file mode 100644 index 000000000..8dd447a4b --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_vi.json @@ -0,0 +1,8 @@ +{ + "header": "Trình quản lý Crowdsource", + "open": "Mở", + "close": "Đóng", + "information": "Thông tin", + "expandPopup": "Mở rộng cửa sổ pop-up", + "collapsePopup": "Thu gọn cửa sổ pop-up" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_zh-CN.json b/src/assets/t9n/crowdsource-manager/resources_zh-CN.json new file mode 100644 index 000000000..9412fa00b --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_zh-CN.json @@ -0,0 +1,8 @@ +{ + "header": "Crowdsource Manager", + "open": "打开", + "close": "关闭", + "information": "信息", + "expandPopup": "展开弹出窗口", + "collapsePopup": "折叠弹出窗口" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_zh-HK.json b/src/assets/t9n/crowdsource-manager/resources_zh-HK.json new file mode 100644 index 000000000..5f6197df2 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_zh-HK.json @@ -0,0 +1,8 @@ +{ + "header": "群眾外包管理程式", + "open": "開啟", + "close": "關閉", + "information": "資訊", + "expandPopup": "展開快顯視窗", + "collapsePopup": "折疊快顯視窗" +} diff --git a/src/assets/t9n/crowdsource-manager/resources_zh-TW.json b/src/assets/t9n/crowdsource-manager/resources_zh-TW.json new file mode 100644 index 000000000..5f6197df2 --- /dev/null +++ b/src/assets/t9n/crowdsource-manager/resources_zh-TW.json @@ -0,0 +1,8 @@ +{ + "header": "群眾外包管理程式", + "open": "開啟", + "close": "關閉", + "information": "資訊", + "expandPopup": "展開快顯視窗", + "collapsePopup": "折疊快顯視窗" +} diff --git a/src/assets/t9n/edit-card/resources.json b/src/assets/t9n/edit-card/resources.json new file mode 100644 index 000000000..64cfd9ce1 --- /dev/null +++ b/src/assets/t9n/edit-card/resources.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Editing must be enabled to modify the field values." +} diff --git a/src/assets/t9n/edit-card/resources_ar.json b/src/assets/t9n/edit-card/resources_ar.json new file mode 100644 index 000000000..4f0c9c158 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_ar.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "يجب تمكين التحرير لتعديل قيم الحقول." +} diff --git a/src/assets/t9n/edit-card/resources_bg.json b/src/assets/t9n/edit-card/resources_bg.json new file mode 100644 index 000000000..591a5c456 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_bg.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Редактирането трябва да е разрешено, за да промените стойностите на полетата." +} diff --git a/src/assets/t9n/edit-card/resources_bs.json b/src/assets/t9n/edit-card/resources_bs.json new file mode 100644 index 000000000..089a0b88f --- /dev/null +++ b/src/assets/t9n/edit-card/resources_bs.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Uređivanje mora biti omogućeno za izmjenu vrijednosti polja." +} diff --git a/src/assets/t9n/edit-card/resources_ca.json b/src/assets/t9n/edit-card/resources_ca.json new file mode 100644 index 000000000..db5335b49 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_ca.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Per modificar els valors del camp, heu de tenir l'edició habilitada." +} diff --git a/src/assets/t9n/edit-card/resources_cs.json b/src/assets/t9n/edit-card/resources_cs.json new file mode 100644 index 000000000..b900d030d --- /dev/null +++ b/src/assets/t9n/edit-card/resources_cs.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Pro úpravu hodnot polí musí být povolena editace." +} diff --git a/src/assets/t9n/edit-card/resources_da.json b/src/assets/t9n/edit-card/resources_da.json new file mode 100644 index 000000000..3a6365cf6 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_da.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Redigering skal være aktiveret for at ændre feltværdierne." +} diff --git a/src/assets/t9n/edit-card/resources_de.json b/src/assets/t9n/edit-card/resources_de.json new file mode 100644 index 000000000..4c4e92119 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_de.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Zum Ändern der Feldwerte muss die Bearbeitungsfunktion aktiviert sein." +} diff --git a/src/assets/t9n/edit-card/resources_el.json b/src/assets/t9n/edit-card/resources_el.json new file mode 100644 index 000000000..cb0c91fe3 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_el.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Πρέπει να είναι ενεργοποιημένη η δυνατότητα επεξεργασίας για την τροποποίηση των τιμών του πεδίου." +} diff --git a/src/assets/t9n/edit-card/resources_en.json b/src/assets/t9n/edit-card/resources_en.json new file mode 100644 index 000000000..64cfd9ce1 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_en.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Editing must be enabled to modify the field values." +} diff --git a/src/assets/t9n/edit-card/resources_es.json b/src/assets/t9n/edit-card/resources_es.json new file mode 100644 index 000000000..fddfdddfb --- /dev/null +++ b/src/assets/t9n/edit-card/resources_es.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Para modificar los valores de los campos, la edición debe estar habilitada." +} diff --git a/src/assets/t9n/edit-card/resources_et.json b/src/assets/t9n/edit-card/resources_et.json new file mode 100644 index 000000000..5ce1b5d17 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_et.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Redigeerimine peab olema välja väärtuste muutmiseks lubatud" +} diff --git a/src/assets/t9n/edit-card/resources_fi.json b/src/assets/t9n/edit-card/resources_fi.json new file mode 100644 index 000000000..2b4c105ec --- /dev/null +++ b/src/assets/t9n/edit-card/resources_fi.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Muokkauksen on oltava käytössä, jotta kenttäarvoja voidaan muokata." +} diff --git a/src/assets/t9n/edit-card/resources_fr.json b/src/assets/t9n/edit-card/resources_fr.json new file mode 100644 index 000000000..a4e189c34 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_fr.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "La mise à jour doit être activée pour modifier les valeurs de champ." +} diff --git a/src/assets/t9n/edit-card/resources_he.json b/src/assets/t9n/edit-card/resources_he.json new file mode 100644 index 000000000..35d67572f --- /dev/null +++ b/src/assets/t9n/edit-card/resources_he.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "יש לאפשר עריכה כדי לשנות את ערכי השדות." +} diff --git a/src/assets/t9n/edit-card/resources_hr.json b/src/assets/t9n/edit-card/resources_hr.json new file mode 100644 index 000000000..089a0b88f --- /dev/null +++ b/src/assets/t9n/edit-card/resources_hr.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Uređivanje mora biti omogućeno za izmjenu vrijednosti polja." +} diff --git a/src/assets/t9n/edit-card/resources_hu.json b/src/assets/t9n/edit-card/resources_hu.json new file mode 100644 index 000000000..8c7d24a6a --- /dev/null +++ b/src/assets/t9n/edit-card/resources_hu.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "A mezőértékek módosításához engedélyezni kell a szerkesztést." +} diff --git a/src/assets/t9n/edit-card/resources_id.json b/src/assets/t9n/edit-card/resources_id.json new file mode 100644 index 000000000..d1abb84f6 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_id.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Pengeditan harus diaktifkan untuk mengubah nilai kolom." +} diff --git a/src/assets/t9n/edit-card/resources_it.json b/src/assets/t9n/edit-card/resources_it.json new file mode 100644 index 000000000..8cace64ae --- /dev/null +++ b/src/assets/t9n/edit-card/resources_it.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Per modificare i valori dei campi è necessario abilitare la modifica." +} diff --git a/src/assets/t9n/edit-card/resources_ja.json b/src/assets/t9n/edit-card/resources_ja.json new file mode 100644 index 000000000..c7fa5f875 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_ja.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "フィールド値を変更するには、編集を有効にする必要があります。" +} diff --git a/src/assets/t9n/edit-card/resources_ko.json b/src/assets/t9n/edit-card/resources_ko.json new file mode 100644 index 000000000..7e2af4fbc --- /dev/null +++ b/src/assets/t9n/edit-card/resources_ko.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "필드 값을 수정하려면 편집이 활성화되어야 합니다." +} diff --git a/src/assets/t9n/edit-card/resources_lt.json b/src/assets/t9n/edit-card/resources_lt.json new file mode 100644 index 000000000..8204bb7ab --- /dev/null +++ b/src/assets/t9n/edit-card/resources_lt.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Norint keisti lauko reikšmes reikia įjungti redagavimą." +} diff --git a/src/assets/t9n/edit-card/resources_lv.json b/src/assets/t9n/edit-card/resources_lv.json new file mode 100644 index 000000000..d4e7718ff --- /dev/null +++ b/src/assets/t9n/edit-card/resources_lv.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Lai modificētu lauka vērtības, jāiespējo rediģēšana." +} diff --git a/src/assets/t9n/edit-card/resources_nb.json b/src/assets/t9n/edit-card/resources_nb.json new file mode 100644 index 000000000..372cd79e0 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_nb.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Redigering må være aktivert for å redigere feltverdier." +} diff --git a/src/assets/t9n/edit-card/resources_nl.json b/src/assets/t9n/edit-card/resources_nl.json new file mode 100644 index 000000000..e6143121b --- /dev/null +++ b/src/assets/t9n/edit-card/resources_nl.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Als u de waarden van de velden wilt wijzigen, moet Bewerken ingeschakeld zijn." +} diff --git a/src/assets/t9n/edit-card/resources_pl.json b/src/assets/t9n/edit-card/resources_pl.json new file mode 100644 index 000000000..25da99fcf --- /dev/null +++ b/src/assets/t9n/edit-card/resources_pl.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Edycja musi być włączona, aby można było modyfikować wartości pól." +} diff --git a/src/assets/t9n/edit-card/resources_pt-BR.json b/src/assets/t9n/edit-card/resources_pt-BR.json new file mode 100644 index 000000000..0939d5eaf --- /dev/null +++ b/src/assets/t9n/edit-card/resources_pt-BR.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "A edição deve estar habilitada para modificar os valores dos campos." +} diff --git a/src/assets/t9n/edit-card/resources_pt-PT.json b/src/assets/t9n/edit-card/resources_pt-PT.json new file mode 100644 index 000000000..7c283cd07 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_pt-PT.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "A edição tem de estar ativada para alterar os valores dos campos." +} diff --git a/src/assets/t9n/edit-card/resources_ro.json b/src/assets/t9n/edit-card/resources_ro.json new file mode 100644 index 000000000..9eb8d8a12 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_ro.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Editarea trebuie să fie activată pentru a modifica valorile câmpului:" +} diff --git a/src/assets/t9n/edit-card/resources_ru.json b/src/assets/t9n/edit-card/resources_ru.json new file mode 100644 index 000000000..0aafe8c77 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_ru.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Чтобы изменить значения поля, должно быть включено редактирование." +} diff --git a/src/assets/t9n/edit-card/resources_sk.json b/src/assets/t9n/edit-card/resources_sk.json new file mode 100644 index 000000000..bf1eb812a --- /dev/null +++ b/src/assets/t9n/edit-card/resources_sk.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Ak chcete upraviť hodnoty polí, musí byť povolená editácia." +} diff --git a/src/assets/t9n/edit-card/resources_sl.json b/src/assets/t9n/edit-card/resources_sl.json new file mode 100644 index 000000000..562935cd6 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_sl.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Urejanje mora biti omogočeno za spreminjanje vrednosti polj." +} diff --git a/src/assets/t9n/edit-card/resources_sr.json b/src/assets/t9n/edit-card/resources_sr.json new file mode 100644 index 000000000..67e061e30 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_sr.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Uređivanje mora da bude omogućeno da biste promenili vrednosti polja." +} diff --git a/src/assets/t9n/edit-card/resources_sv.json b/src/assets/t9n/edit-card/resources_sv.json new file mode 100644 index 000000000..6610a778a --- /dev/null +++ b/src/assets/t9n/edit-card/resources_sv.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Redigering måste vara aktiverad för att ändra fältvärdena." +} diff --git a/src/assets/t9n/edit-card/resources_th.json b/src/assets/t9n/edit-card/resources_th.json new file mode 100644 index 000000000..cff4e1366 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_th.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "ต้องเปิดใช้งานการแก้ไขเพื่อแก้ไขค่าฟิลด์" +} diff --git a/src/assets/t9n/edit-card/resources_tr.json b/src/assets/t9n/edit-card/resources_tr.json new file mode 100644 index 000000000..5d90c74a2 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_tr.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Alan değerlerini değiştirmek için düzenleme etkinleştirilmelidir." +} diff --git a/src/assets/t9n/edit-card/resources_uk.json b/src/assets/t9n/edit-card/resources_uk.json new file mode 100644 index 000000000..14e6bdc94 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_uk.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Щоб змінити значення полів, необхідно увімкнути редагування." +} diff --git a/src/assets/t9n/edit-card/resources_vi.json b/src/assets/t9n/edit-card/resources_vi.json new file mode 100644 index 000000000..0498dbd58 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_vi.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "Chức năng Chỉnh sửa phải được bật để sửa đổi giá trị của trường." +} diff --git a/src/assets/t9n/edit-card/resources_zh-CN.json b/src/assets/t9n/edit-card/resources_zh-CN.json new file mode 100644 index 000000000..b83614363 --- /dev/null +++ b/src/assets/t9n/edit-card/resources_zh-CN.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "必须启用编辑才能修改字段值。" +} diff --git a/src/assets/t9n/edit-card/resources_zh-HK.json b/src/assets/t9n/edit-card/resources_zh-HK.json new file mode 100644 index 000000000..1464d449f --- /dev/null +++ b/src/assets/t9n/edit-card/resources_zh-HK.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "必須啟用編輯才能修改欄位值。" +} diff --git a/src/assets/t9n/edit-card/resources_zh-TW.json b/src/assets/t9n/edit-card/resources_zh-TW.json new file mode 100644 index 000000000..1464d449f --- /dev/null +++ b/src/assets/t9n/edit-card/resources_zh-TW.json @@ -0,0 +1,3 @@ +{ + "enableEditing": "必須啟用編輯才能修改欄位值。" +} diff --git a/src/assets/t9n/edit-record-modal/resources.json b/src/assets/t9n/edit-record-modal/resources.json deleted file mode 100644 index 96bd06c3f..000000000 --- a/src/assets/t9n/edit-record-modal/resources.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "cancel": "Cancel", - "editMultiple": "Edit Multiple", - "infoMessage": "These changes will apply to all selected fields.", - "label": "Label", - "save": "Save", - "textField": "Text Field" -} diff --git a/src/assets/t9n/edit-record-modal/resources_en.json b/src/assets/t9n/edit-record-modal/resources_en.json deleted file mode 100644 index 96bd06c3f..000000000 --- a/src/assets/t9n/edit-record-modal/resources_en.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "cancel": "Cancel", - "editMultiple": "Edit Multiple", - "infoMessage": "These changes will apply to all selected fields.", - "label": "Label", - "save": "Save", - "textField": "Text Field" -} diff --git a/src/assets/t9n/info-card/resources.json b/src/assets/t9n/info-card/resources.json new file mode 100644 index 000000000..3d3271703 --- /dev/null +++ b/src/assets/t9n/info-card/resources.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Fetching data", + "edit": "Edit", + "enableEditing": "Update capability must be enabled on the layer.", + "editDisabled": "Editing Disabled", + "next": "Next", + "back": "Back", + "indexOfTotal": "{{index}} of {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_ar.json b/src/assets/t9n/info-card/resources_ar.json new file mode 100644 index 000000000..f4544a3d1 --- /dev/null +++ b/src/assets/t9n/info-card/resources_ar.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "إحضار البيانات", + "edit": "تحرير", + "enableEditing": "يجب تمكين إمكانية التحديث في الطبقة.", + "editDisabled": "تم تعطيل التحرير", + "next": "التالي", + "back": "رجوع", + "indexOfTotal": "{{index}} من {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_bg.json b/src/assets/t9n/info-card/resources_bg.json new file mode 100644 index 000000000..35e6d0bcd --- /dev/null +++ b/src/assets/t9n/info-card/resources_bg.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Извличане на данни", + "edit": "Редактиране", + "enableEditing": "За слоя трябва да бъде активирана опцията за актуализиране.", + "editDisabled": "Редактирането е деактивирано", + "next": "Напред", + "back": "Назад", + "indexOfTotal": "{{index}} от {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_bs.json b/src/assets/t9n/info-card/resources_bs.json new file mode 100644 index 000000000..d032a8629 --- /dev/null +++ b/src/assets/t9n/info-card/resources_bs.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Dohvaćanje podataka", + "edit": "Uredi", + "enableEditing": "Ažuriranje mogućnosti mora biti omogućeno na sloju", + "editDisabled": "Uređivanje onemogućeno", + "next": "Sljedeće", + "back": "Natrag", + "indexOfTotal": "{{index}} od {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_ca.json b/src/assets/t9n/info-card/resources_ca.json new file mode 100644 index 000000000..b1db68fc0 --- /dev/null +++ b/src/assets/t9n/info-card/resources_ca.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "S'estan recuperant les dades", + "edit": "Edita", + "enableEditing": "Cal haver habilitat la funció d'actualització a la capa.", + "editDisabled": "S'ha deshabilitat l'edició", + "next": "Següent", + "back": "Enrere", + "indexOfTotal": "{{index}} de {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_cs.json b/src/assets/t9n/info-card/resources_cs.json new file mode 100644 index 000000000..445860287 --- /dev/null +++ b/src/assets/t9n/info-card/resources_cs.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Načítání dat", + "edit": "Upravit", + "enableEditing": "Ve vrstvě musí být povolena možnost aktualizace.", + "editDisabled": "Editace zakázána", + "next": "Další", + "back": "Zpět", + "indexOfTotal": "{{index}} z {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_da.json b/src/assets/t9n/info-card/resources_da.json new file mode 100644 index 000000000..8ae66a041 --- /dev/null +++ b/src/assets/t9n/info-card/resources_da.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Henter data", + "edit": "Redigér", + "enableEditing": "Opdateringsfunktionalitet skal være aktiveret på laget.", + "editDisabled": "Redigering deaktiveret", + "next": "Næste", + "back": "Tilbage", + "indexOfTotal": "{{index}} for {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_de.json b/src/assets/t9n/info-card/resources_de.json new file mode 100644 index 000000000..dd077f0b3 --- /dev/null +++ b/src/assets/t9n/info-card/resources_de.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Daten werden abgerufen", + "edit": "Bearbeiten", + "enableEditing": "Die Aktualisierungsfunktion muss für den Layer aktiviert sein.", + "editDisabled": "Bearbeitung ist deaktiviert", + "next": "Weiter", + "back": "Zurück", + "indexOfTotal": "{{index}} von {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_el.json b/src/assets/t9n/info-card/resources_el.json new file mode 100644 index 000000000..506af2bbe --- /dev/null +++ b/src/assets/t9n/info-card/resources_el.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Ανάκτηση δεδομένων", + "edit": "Επεξεργασία", + "enableEditing": "Πρέπει να είναι ενεργοποιημένη η δυνατότητα ενημέρωσης σε αυτό το θεματικό επίπεδο.", + "editDisabled": "Η επεξεργασία απενεργοποιήθηκε", + "next": "Επόμενο", + "back": "Πίσω", + "indexOfTotal": "{{index}} από {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_en.json b/src/assets/t9n/info-card/resources_en.json new file mode 100644 index 000000000..3d3271703 --- /dev/null +++ b/src/assets/t9n/info-card/resources_en.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Fetching data", + "edit": "Edit", + "enableEditing": "Update capability must be enabled on the layer.", + "editDisabled": "Editing Disabled", + "next": "Next", + "back": "Back", + "indexOfTotal": "{{index}} of {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_es.json b/src/assets/t9n/info-card/resources_es.json new file mode 100644 index 000000000..b922bfd25 --- /dev/null +++ b/src/assets/t9n/info-card/resources_es.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Obteniendo datos", + "edit": "Editar", + "enableEditing": "La capacidad de actualización debe estar habilitada en la capa.", + "editDisabled": "Edición deshabilitada", + "next": "Siguiente", + "back": "Atrás", + "indexOfTotal": "{{index}} de {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_et.json b/src/assets/t9n/info-card/resources_et.json new file mode 100644 index 000000000..56f995933 --- /dev/null +++ b/src/assets/t9n/info-card/resources_et.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Andmete toomine", + "edit": "Muuda", + "enableEditing": "Uuendusvõimalus peab olema kihis lubatud.", + "editDisabled": "Redigeerimine keelatud", + "next": "Edasi", + "back": "Tagasi", + "indexOfTotal": "{{index}} /{{total}}" +} diff --git a/src/assets/t9n/info-card/resources_fi.json b/src/assets/t9n/info-card/resources_fi.json new file mode 100644 index 000000000..8f02799bc --- /dev/null +++ b/src/assets/t9n/info-card/resources_fi.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Noudetaan aineistoa", + "edit": "Muokkaa", + "enableEditing": "Päivitysominaisuuden on oltava käytössä karttatasossa.", + "editDisabled": "Muokkaaminen on poistettu käytöstä", + "next": "Seuraava", + "back": "Takaisin", + "indexOfTotal": "{{index}}/{{total}}" +} diff --git a/src/assets/t9n/info-card/resources_fr.json b/src/assets/t9n/info-card/resources_fr.json new file mode 100644 index 000000000..241b43811 --- /dev/null +++ b/src/assets/t9n/info-card/resources_fr.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Récupération des données", + "edit": "Modifier", + "enableEditing": "La fonctionnalité de mise à jour doit être activée sur la couche.", + "editDisabled": "Mise à jour désactivée", + "next": "Suivant", + "back": "Retour", + "indexOfTotal": "{{index}} sur {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_he.json b/src/assets/t9n/info-card/resources_he.json new file mode 100644 index 000000000..5a144e6c6 --- /dev/null +++ b/src/assets/t9n/info-card/resources_he.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "מאחזר נתונים", + "edit": "עריכה", + "enableEditing": "יש להפעיל את יכול העדכון בשכבה.", + "editDisabled": "עריכה מושבתת", + "next": "הבא", + "back": "חזור", + "indexOfTotal": "{{index}} מתוך {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_hr.json b/src/assets/t9n/info-card/resources_hr.json new file mode 100644 index 000000000..d032a8629 --- /dev/null +++ b/src/assets/t9n/info-card/resources_hr.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Dohvaćanje podataka", + "edit": "Uredi", + "enableEditing": "Ažuriranje mogućnosti mora biti omogućeno na sloju", + "editDisabled": "Uređivanje onemogućeno", + "next": "Sljedeće", + "back": "Natrag", + "indexOfTotal": "{{index}} od {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_hu.json b/src/assets/t9n/info-card/resources_hu.json new file mode 100644 index 000000000..c0f47b5a6 --- /dev/null +++ b/src/assets/t9n/info-card/resources_hu.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Adatok lekérése", + "edit": "Szerkesztés", + "enableEditing": "A frissítési képességnek engedélyezve kell lennie a rétegen.", + "editDisabled": "Szerkesztés letiltva", + "next": "Tovább", + "back": "Vissza", + "indexOfTotal": "{{index}}/{{total}}" +} diff --git a/src/assets/t9n/info-card/resources_id.json b/src/assets/t9n/info-card/resources_id.json new file mode 100644 index 000000000..4e22f245b --- /dev/null +++ b/src/assets/t9n/info-card/resources_id.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Mengambil data", + "edit": "Edit", + "enableEditing": "Kapabilitas pembaruan harus diaktifkan di layer.", + "editDisabled": "Pengeditan dinonaktifkan", + "next": "Selanjutnya", + "back": "Kembali", + "indexOfTotal": "{{index}} dari {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_it.json b/src/assets/t9n/info-card/resources_it.json new file mode 100644 index 000000000..cd3d90adc --- /dev/null +++ b/src/assets/t9n/info-card/resources_it.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Recupero dei dati", + "edit": "Modifica", + "enableEditing": "La funzionalità di aggiornamento deve essere abilitata nel layer.", + "editDisabled": "Modifica disabilitata", + "next": "Avanti", + "back": "Indietro", + "indexOfTotal": "{{index}} di {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_ja.json b/src/assets/t9n/info-card/resources_ja.json new file mode 100644 index 000000000..a92afe023 --- /dev/null +++ b/src/assets/t9n/info-card/resources_ja.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "データを取得しています", + "edit": "編集", + "enableEditing": "更新機能をレイヤーに対して有効化する必要があります。", + "editDisabled": "編集が無効になっています", + "next": "次へ", + "back": "戻る", + "indexOfTotal": "{{index}} / {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_ko.json b/src/assets/t9n/info-card/resources_ko.json new file mode 100644 index 000000000..e96912a22 --- /dev/null +++ b/src/assets/t9n/info-card/resources_ko.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "데이터 가져오기", + "edit": "편집", + "enableEditing": "레이어에 업데이트 기능이 활성화되어 있어야 합니다.", + "editDisabled": "편집이 비활성화됨", + "next": "다음", + "back": "뒤로", + "indexOfTotal": "{{index}}개 중 {{total}}개" +} diff --git a/src/assets/t9n/info-card/resources_lt.json b/src/assets/t9n/info-card/resources_lt.json new file mode 100644 index 000000000..ca42f45d5 --- /dev/null +++ b/src/assets/t9n/info-card/resources_lt.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Gaunami duomenys", + "edit": "Redaguoti", + "enableEditing": "Sluoksnyje turi būti įjungtas funkcijų naujinimas.", + "editDisabled": "Redagavimas išjungtas", + "next": "Kitas", + "back": "Atgal", + "indexOfTotal": "{{index}} iš {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_lv.json b/src/assets/t9n/info-card/resources_lv.json new file mode 100644 index 000000000..59fdc69e6 --- /dev/null +++ b/src/assets/t9n/info-card/resources_lv.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Tvert datus", + "edit": "Rediģēt", + "enableEditing": "Slānī jābūt iespējotai atjaunināšanas iespējai.", + "editDisabled": "Rediģēšana atspējota", + "next": "Tālāk", + "back": "Atpakaļ", + "indexOfTotal": "{{index}} no {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_nb.json b/src/assets/t9n/info-card/resources_nb.json new file mode 100644 index 000000000..6369f042d --- /dev/null +++ b/src/assets/t9n/info-card/resources_nb.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Henter data", + "edit": "Rediger", + "enableEditing": "Oppdateringsfunksjon må være aktivert i laget.", + "editDisabled": "Redigering deaktivert", + "next": "Neste", + "back": "Tilbake", + "indexOfTotal": "{{index}} av {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_nl.json b/src/assets/t9n/info-card/resources_nl.json new file mode 100644 index 000000000..d122af54e --- /dev/null +++ b/src/assets/t9n/info-card/resources_nl.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Bezig met ophalen gegevens", + "edit": "Bewerken", + "enableEditing": "Update-mogelijkheid moet zijn ingeschakeld voor de laag.", + "editDisabled": "Bewerken is uitgeschakeld", + "next": "Volgende", + "back": "Terug", + "indexOfTotal": "{{index}} van {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_pl.json b/src/assets/t9n/info-card/resources_pl.json new file mode 100644 index 000000000..238ed8d0a --- /dev/null +++ b/src/assets/t9n/info-card/resources_pl.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Pobieranie danych", + "edit": "Edycja", + "enableEditing": "Funkcja aktualizacji musi być włączona w warstwie.", + "editDisabled": "Edycja wyłączona", + "next": "Dalej", + "back": "Wstecz", + "indexOfTotal": "{{index}} z {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_pt-BR.json b/src/assets/t9n/info-card/resources_pt-BR.json new file mode 100644 index 000000000..e2c04f5c8 --- /dev/null +++ b/src/assets/t9n/info-card/resources_pt-BR.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Buscando dados", + "edit": "Editar", + "enableEditing": "A capacidade de atualização deve estar habilitada na camada.", + "editDisabled": "Edição Desabilitada", + "next": "Avançar", + "back": "Voltar", + "indexOfTotal": "{{index}} de {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_pt-PT.json b/src/assets/t9n/info-card/resources_pt-PT.json new file mode 100644 index 000000000..73e09b63c --- /dev/null +++ b/src/assets/t9n/info-card/resources_pt-PT.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "A obter dados", + "edit": "Editar", + "enableEditing": "A capacidade de atualização tem de estar ativada na camada.", + "editDisabled": "Edição Desativada", + "next": "Seguinte", + "back": "Retroceder", + "indexOfTotal": "{{index}} de {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_ro.json b/src/assets/t9n/info-card/resources_ro.json new file mode 100644 index 000000000..58de31075 --- /dev/null +++ b/src/assets/t9n/info-card/resources_ro.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Extragerea datelor", + "edit": "Editare", + "enableEditing": "Actualizarea capacității trebuie să fie activată pe stratul tematic.", + "editDisabled": "Editare dezactivată", + "next": "Următorul", + "back": "Înapoi", + "indexOfTotal": "{{index}} din {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_ru.json b/src/assets/t9n/info-card/resources_ru.json new file mode 100644 index 000000000..4ac4a5025 --- /dev/null +++ b/src/assets/t9n/info-card/resources_ru.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Извлечение данных", + "edit": "Редактировать", + "enableEditing": "Возможность обновления должна быть включена для слоя.", + "editDisabled": "Редактирование отключено", + "next": "Следующий", + "back": "Назад", + "indexOfTotal": "{{index}} из {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_sk.json b/src/assets/t9n/info-card/resources_sk.json new file mode 100644 index 000000000..8fa503df5 --- /dev/null +++ b/src/assets/t9n/info-card/resources_sk.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Získavanie dát", + "edit": "Editovať", + "enableEditing": "Pre vrstvu musí byť povolená editácia.", + "editDisabled": "Editácia deaktivovaná", + "next": "Ďalej", + "back": "Späť", + "indexOfTotal": "{{index}} z {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_sl.json b/src/assets/t9n/info-card/resources_sl.json new file mode 100644 index 000000000..0d727e7d4 --- /dev/null +++ b/src/assets/t9n/info-card/resources_sl.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Pridobivanje podatkov", + "edit": "Uredi", + "enableEditing": "Zmožnost posodabljanja mora biti omogočena na sloju.", + "editDisabled": "Urejanje onemogočenega", + "next": "Naprej", + "back": "Nazaj", + "indexOfTotal": "{{index}} od {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_sr.json b/src/assets/t9n/info-card/resources_sr.json new file mode 100644 index 000000000..4353a6555 --- /dev/null +++ b/src/assets/t9n/info-card/resources_sr.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Preuzimanje podataka", + "edit": "Izmeni", + "enableEditing": "Mogućnost ažuriranja mora da bude omogućena na sloju.", + "editDisabled": "Uređivanje je onemogućeno", + "next": "Sledeće", + "back": "Nazad", + "indexOfTotal": "{{index}} od {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_sv.json b/src/assets/t9n/info-card/resources_sv.json new file mode 100644 index 000000000..e1e478f23 --- /dev/null +++ b/src/assets/t9n/info-card/resources_sv.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Hämtar data", + "edit": "Redigera", + "enableEditing": "Uppdateringsfunktionen måste vara aktiverad på lagret.", + "editDisabled": "Redigering inaktiverat", + "next": "Nästa", + "back": "Bakåt", + "indexOfTotal": "{{index}} av {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_th.json b/src/assets/t9n/info-card/resources_th.json new file mode 100644 index 000000000..14351e924 --- /dev/null +++ b/src/assets/t9n/info-card/resources_th.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "กำลังดึงข้อมูล", + "edit": "แก้ไข", + "enableEditing": "ต้องเปิดใช้งานการอัปเดตความสามารถบนชั้นข้อมูล", + "editDisabled": "การแก้ไขถูกปิดใช้งาน", + "next": "ถัดไป", + "back": "กลับ", + "indexOfTotal": "{{index}} จาก {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_tr.json b/src/assets/t9n/info-card/resources_tr.json new file mode 100644 index 000000000..ad0fe8f61 --- /dev/null +++ b/src/assets/t9n/info-card/resources_tr.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Veriler getiriliyor", + "edit": "Düzenle", + "enableEditing": "Katmanda güncelleme yeteneği etkinleştirilmelidir.", + "editDisabled": "Düzenleme Devre Dışı Bırakıldı", + "next": "İleri", + "back": "Geri", + "indexOfTotal": "{{index}} / {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_uk.json b/src/assets/t9n/info-card/resources_uk.json new file mode 100644 index 000000000..7b3e8011d --- /dev/null +++ b/src/assets/t9n/info-card/resources_uk.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Отримання даних", + "edit": "Редагування", + "enableEditing": "У шарі має бути увімкнено функцію оновлення.", + "editDisabled": "Редагування вимкнено", + "next": "Далі", + "back": "Назад", + "indexOfTotal": "{{index}} з {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_vi.json b/src/assets/t9n/info-card/resources_vi.json new file mode 100644 index 000000000..d1ea8b791 --- /dev/null +++ b/src/assets/t9n/info-card/resources_vi.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "Đang tìm nạp dữ liệu", + "edit": "Chỉnh sửa", + "enableEditing": "Chức năng cập nhật phải được bật trên lớp.", + "editDisabled": "Đã tắt Chỉnh sửa", + "next": "Tiếp", + "back": "Quay lại", + "indexOfTotal": "{{index}} / {{total}}" +} diff --git a/src/assets/t9n/info-card/resources_zh-CN.json b/src/assets/t9n/info-card/resources_zh-CN.json new file mode 100644 index 000000000..7e6372f6f --- /dev/null +++ b/src/assets/t9n/info-card/resources_zh-CN.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "正在获取数据", + "edit": "编辑", + "enableEditing": "必须在图层上启用更新功能。", + "editDisabled": "已禁用编辑", + "next": "下一步", + "back": "返回", + "indexOfTotal": "{{index}}/{{total}}" +} diff --git a/src/assets/t9n/info-card/resources_zh-HK.json b/src/assets/t9n/info-card/resources_zh-HK.json new file mode 100644 index 000000000..ffdffcca7 --- /dev/null +++ b/src/assets/t9n/info-card/resources_zh-HK.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "正在擷取資料", + "edit": "編輯", + "enableEditing": "必須在圖層上啟用更新功能。", + "editDisabled": "已停用編輯", + "next": "下一步", + "back": "上一步", + "indexOfTotal": "{{index}}/{{total}}" +} diff --git a/src/assets/t9n/info-card/resources_zh-TW.json b/src/assets/t9n/info-card/resources_zh-TW.json new file mode 100644 index 000000000..ffdffcca7 --- /dev/null +++ b/src/assets/t9n/info-card/resources_zh-TW.json @@ -0,0 +1,9 @@ +{ + "fetchingData": "正在擷取資料", + "edit": "編輯", + "enableEditing": "必須在圖層上啟用更新功能。", + "editDisabled": "已停用編輯", + "next": "下一步", + "back": "上一步", + "indexOfTotal": "{{index}}/{{total}}" +} diff --git a/src/assets/t9n/layer-table/resources.json b/src/assets/t9n/layer-table/resources.json index e68edb092..c0c0dffcf 100644 --- a/src/assets/t9n/layer-table/resources.json +++ b/src/assets/t9n/layer-table/resources.json @@ -3,9 +3,21 @@ "delete": "Delete", "editMultiple": "Edit Multiple", "exportCSV": "Export to CSV", + "filters": "Filters", "more": "More", "selectAll": "Select all", "showSelected": "Show selected", "switchSelected": "Switch selected", - "zoom": "Zoom" + "zoom": "Zoom", + "fetchingData": "Fetching Data", + "refresh": "Refresh", + "enableEditing": "Editing must be enabled on the layer.", + "confirm": "These features will be permanently removed.", + "deleteFeature": "Delete feature", + "deleteDisabled": "Delete Disabled", + "editMultipleDisabled": "Edit Multiple Disabled", + "showAll": "Show all", + "recordsSelected": "Total: {{total}} | Selection: {{selected}}", + "cancel": "Cancel", + "moreOptions": "More table options" } diff --git a/src/assets/t9n/layer-table/resources_ar.json b/src/assets/t9n/layer-table/resources_ar.json new file mode 100644 index 000000000..1a6be0c20 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_ar.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "مسح التحديد", + "delete": "حذف", + "editMultiple": "تحرير متعدد", + "exportCSV": "تصدير إلى CSV", + "filters": "عوامل تصفية", + "more": "المزيد", + "selectAll": "تحديد الكل", + "showSelected": "عرض المحدد", + "switchSelected": "تبديل المحدد", + "zoom": "تغيير مقياس الرسم", + "fetchingData": "إحضار البيانات", + "refresh": "تحديث", + "enableEditing": "يجب تمكين التحرير في الطبقة.", + "confirm": "ستتم إزالة هذه المعالم بشكل دائم.", + "deleteFeature": "حذف المعلم", + "deleteDisabled": "تم تعطيل الحذف", + "editMultipleDisabled": "تم تعطيل التحرير المتعدد", + "showAll": "إظهار الكل", + "recordsSelected": "الإجمالي: {{total}} | التحديد: {{selected}}", + "cancel": "إلغاء الأمر", + "moreOptions": "المزيد من خيارات الجدول" +} diff --git a/src/assets/t9n/layer-table/resources_bg.json b/src/assets/t9n/layer-table/resources_bg.json new file mode 100644 index 000000000..cab6fdb39 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_bg.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Изчистване на избора", + "delete": "Изтриване", + "editMultiple": "Редактиране на множество", + "exportCSV": "Експортиране в CSV", + "filters": "Филтри", + "more": "Още", + "selectAll": "Избиране на всички", + "showSelected": "Показване на избраните", + "switchSelected": "Превключване на избрани", + "zoom": "Мащабиране", + "fetchingData": "Извличане на данни", + "refresh": "Обновяване", + "enableEditing": "За този слой трябва да бъде активирана опцията за редактиране.", + "confirm": "Тези обекти ще бъдат премахнати завинаги.", + "deleteFeature": "Изтриване на обект", + "deleteDisabled": "Изтриването е деактивирано", + "editMultipleDisabled": "Редактиране на множество е деактивирано", + "showAll": "Показване на всички", + "recordsSelected": "Общо: {{total}} | Избор: {{selected}}", + "cancel": "Отказ", + "moreOptions": "Още опции за таблица" +} diff --git a/src/assets/t9n/layer-table/resources_bs.json b/src/assets/t9n/layer-table/resources_bs.json new file mode 100644 index 000000000..7a4a44f24 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_bs.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Očisti odabir", + "delete": "Izbriši", + "editMultiple": "Uredi više", + "exportCSV": "Izvezi u CSV", + "filters": "Filtri", + "more": "Više", + "selectAll": "Odaberi sve", + "showSelected": "Prikaži odabrano", + "switchSelected": "Zamijeni odabrano", + "zoom": "Povećaj", + "fetchingData": "Dohvaćanje podataka", + "refresh": "Osvježi", + "enableEditing": "Uređivanje mora biti omogućeno na sloju.", + "confirm": "Ti će geoobjekti biti trajno uklonjeni.", + "deleteFeature": "Izbriši geoobjekt", + "deleteDisabled": "Izbriši onemogućeno", + "editMultipleDisabled": "Uredi više onemogućenih", + "showAll": "Prikaži sve", + "recordsSelected": "Ukupno: {{total}} | Odabir: {{selected}}", + "cancel": "Odustani", + "moreOptions": "Više opcija tablice" +} diff --git a/src/assets/t9n/layer-table/resources_ca.json b/src/assets/t9n/layer-table/resources_ca.json new file mode 100644 index 000000000..59ae916c8 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_ca.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Esborra la selecció", + "delete": "Suprimeix", + "editMultiple": "Edició múltiple", + "exportCSV": "Exporta a CSV", + "filters": "Filtres", + "more": "Més", + "selectAll": "Selecciona-ho tot", + "showSelected": "Mostra els seleccionats", + "switchSelected": "Canvia la selecció", + "zoom": "Zoom", + "fetchingData": "S'estan recuperant les dades", + "refresh": "Actualitza", + "enableEditing": "Heu de tenir l'edició habilitada a la capa.", + "confirm": "Aquestes entitats s'eliminaran permanentment.", + "deleteFeature": "Suprimeix l'entitat", + "deleteDisabled": "Supressió deshabilitada", + "editMultipleDisabled": "Edició múltiple deshabilitada", + "showAll": "Mostra-ho tot", + "recordsSelected": "Total: {{total}} | Selecció: {{selected}}", + "cancel": "Cancel·la", + "moreOptions": "Més opcions de taula" +} diff --git a/src/assets/t9n/layer-table/resources_cs.json b/src/assets/t9n/layer-table/resources_cs.json new file mode 100644 index 000000000..329cbf8e2 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_cs.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Zrušit výběr", + "delete": "Smazat", + "editMultiple": "Hromadná editace", + "exportCSV": "Exportovat do CSV", + "filters": "Filtry", + "more": "Více", + "selectAll": "Vybrat vše", + "showSelected": "Zobrazit vybrané", + "switchSelected": "Přepnout vybrané", + "zoom": "Přiblížení", + "fetchingData": "Načítání dat", + "refresh": "Obnovit", + "enableEditing": "Ve vrstvě musí být povolena editace.", + "confirm": "Tyto prvky budou trvale odstraněny.", + "deleteFeature": "Odstranit prvek", + "deleteDisabled": "Odstranění zakázáno", + "editMultipleDisabled": "Hromadná editace zakázána", + "showAll": "Zobrazit vše", + "recordsSelected": "Celkem: {{total}} | Výběr: {{selected}}", + "cancel": "Storno", + "moreOptions": "Další možnosti tabulky" +} diff --git a/src/assets/t9n/layer-table/resources_da.json b/src/assets/t9n/layer-table/resources_da.json new file mode 100644 index 000000000..ed869419d --- /dev/null +++ b/src/assets/t9n/layer-table/resources_da.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Ryd markering", + "delete": "Slet", + "editMultiple": "Rediger flere", + "exportCSV": "Eksportér til CSV", + "filters": "Filtre", + "more": "Mere", + "selectAll": "Vælg alle", + "showSelected": "Vis valgte", + "switchSelected": "Skift valgte", + "zoom": "Zoom", + "fetchingData": "Henter data", + "refresh": "Opdatér", + "enableEditing": "Redigering skal være aktiveret på laget", + "confirm": "Disse objekter vil blive fjernet permanent.", + "deleteFeature": "Slet objekt", + "deleteDisabled": "Sletning deaktiveret", + "editMultipleDisabled": "Rediger flere deaktiveret", + "showAll": "Vis alle", + "recordsSelected": "I alt: {{total}} | Markering: {{selected}}", + "cancel": "Annuller", + "moreOptions": "Flere tabelindstillinger" +} diff --git a/src/assets/t9n/layer-table/resources_de.json b/src/assets/t9n/layer-table/resources_de.json new file mode 100644 index 000000000..d0b3a1c38 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_de.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Auswahl aufheben", + "delete": "Löschen", + "editMultiple": "Mehrere bearbeiten", + "exportCSV": "In CSV exportieren", + "filters": "Filter", + "more": "Mehr", + "selectAll": "Alle auswählen", + "showSelected": "Ausgewählte anzeigen", + "switchSelected": "Auswahl umkehren", + "zoom": "Zoomen", + "fetchingData": "Daten werden abgerufen", + "refresh": "Aktualisieren", + "enableEditing": "Die Bearbeitungsfunktion muss für den Layer aktiviert sein.", + "confirm": "Diese Features werden dauerhaft entfernt.", + "deleteFeature": "Feature löschen", + "deleteDisabled": "\"Löschen\" ist deaktiviert", + "editMultipleDisabled": "\"Mehrere bearbeiten\" ist deaktiviert", + "showAll": "Alle anzeigen", + "recordsSelected": "Gesamt: {{total}} | Auswahl: {{selected}}", + "cancel": "Abbrechen", + "moreOptions": "Weitere Tabellenoptionen" +} diff --git a/src/assets/t9n/layer-table/resources_el.json b/src/assets/t9n/layer-table/resources_el.json new file mode 100644 index 000000000..2891db0f3 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_el.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Απαλοιφή επιλογών", + "delete": "Διαγραφή", + "editMultiple": "Επεξεργασία πολλαπλών", + "exportCSV": "Εξαγωγή σε CSV", + "filters": "Φίλτρα", + "more": "Περισσότερα", + "selectAll": "Επιλογή όλων", + "showSelected": "Εμφάνιση επιλεγμένων", + "switchSelected": "Επιλογή Αλλαγής", + "zoom": "Εστίαση", + "fetchingData": "Ανάκτηση Δεδομένων", + "refresh": "Ανανέωση", + "enableEditing": "Πρέπει να είναι ενεργοποιημένη η δυνατότητα επεξεργασίας σε αυτό το θεματικό επίπεδο.", + "confirm": "Αυτά τα στοιχεία θα καταργηθούν οριστικά.", + "deleteFeature": "Διαγραφή στοιχείου", + "deleteDisabled": "Διαγραφή Απενεργοποιημένων", + "editMultipleDisabled": "Επεξεργασία Πολλαπλών Απενεργοποιημένων", + "showAll": "Εμφάνιση όλων", + "recordsSelected": "Σύνολο: {{total}} | Επιλογή: {{selected}}", + "cancel": "Ακύρωση", + "moreOptions": "Περισσότερες επιλογές πίνακα" +} diff --git a/src/assets/t9n/layer-table/resources_en.json b/src/assets/t9n/layer-table/resources_en.json index e68edb092..c0c0dffcf 100644 --- a/src/assets/t9n/layer-table/resources_en.json +++ b/src/assets/t9n/layer-table/resources_en.json @@ -3,9 +3,21 @@ "delete": "Delete", "editMultiple": "Edit Multiple", "exportCSV": "Export to CSV", + "filters": "Filters", "more": "More", "selectAll": "Select all", "showSelected": "Show selected", "switchSelected": "Switch selected", - "zoom": "Zoom" + "zoom": "Zoom", + "fetchingData": "Fetching Data", + "refresh": "Refresh", + "enableEditing": "Editing must be enabled on the layer.", + "confirm": "These features will be permanently removed.", + "deleteFeature": "Delete feature", + "deleteDisabled": "Delete Disabled", + "editMultipleDisabled": "Edit Multiple Disabled", + "showAll": "Show all", + "recordsSelected": "Total: {{total}} | Selection: {{selected}}", + "cancel": "Cancel", + "moreOptions": "More table options" } diff --git a/src/assets/t9n/layer-table/resources_es.json b/src/assets/t9n/layer-table/resources_es.json new file mode 100644 index 000000000..209d5eca0 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_es.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Borrar selección", + "delete": "Eliminar", + "editMultiple": "Editar varios", + "exportCSV": "Exportar a CSV", + "filters": "Filtros", + "more": "Más", + "selectAll": "Seleccionar todo", + "showSelected": "Mostrar seleccionado", + "switchSelected": "Alternar seleccionado", + "zoom": "Zoom", + "fetchingData": "Obteniendo datos", + "refresh": "Actualizar", + "enableEditing": "La edición debe estar habilitada en la capa.", + "confirm": "Estas entidades se eliminarán de forma permanente.", + "deleteFeature": "Eliminar entidad", + "deleteDisabled": "Eliminar deshabilitado", + "editMultipleDisabled": "Editar varios deshabilitado", + "showAll": "Mostrar todo", + "recordsSelected": "Total: {{total}} | Selección: {{selected}}", + "cancel": "Cancelar", + "moreOptions": "Más opciones de tabla" +} diff --git a/src/assets/t9n/layer-table/resources_et.json b/src/assets/t9n/layer-table/resources_et.json new file mode 100644 index 000000000..f9fca549a --- /dev/null +++ b/src/assets/t9n/layer-table/resources_et.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Tühista valik", + "delete": "Kustuta", + "editMultiple": "Mitme üksuse muutmine", + "exportCSV": "Ekspordi CSV-vormingusse", + "filters": "Filtrid", + "more": "Rohkem", + "selectAll": "Vali kõik", + "showSelected": "Kuva valitud", + "switchSelected": "Lülita valitud", + "zoom": "Suumi", + "fetchingData": "Andmete toomine", + "refresh": "Värskenda", + "enableEditing": "Muutmine peab olema kihis lubatud", + "confirm": "Need objektid eemaldatakse jäädavalt.", + "deleteFeature": "Kustuta objekt", + "deleteDisabled": "Kustuta keelatud", + "editMultipleDisabled": "Mitme keelatud üksuse muutmine", + "showAll": "Kuva kõik", + "recordsSelected": "Kokku: {{total}} | Valik: {{selected}}", + "cancel": "Loobu", + "moreOptions": "Rohkem tabelivalikuid" +} diff --git a/src/assets/t9n/layer-table/resources_fi.json b/src/assets/t9n/layer-table/resources_fi.json new file mode 100644 index 000000000..b45a7e30b --- /dev/null +++ b/src/assets/t9n/layer-table/resources_fi.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Tyhjennä valinnat", + "delete": "Poista", + "editMultiple": "Muokkaa useaa", + "exportCSV": "Vie CSV-tiedostoon", + "filters": "Suodattimet", + "more": "Enemmän", + "selectAll": "Valitse kaikki", + "showSelected": "Näytä valitut", + "switchSelected": "Vaihda valitut", + "zoom": "Tarkenna", + "fetchingData": "Noudetaan aineistoa", + "refresh": "Päivitä", + "enableEditing": "Muokkaus on otettava käyttöön karttatasossa.", + "confirm": "Nämä kohteet poistetaan pysyvästi.", + "deleteFeature": "Poista kohde", + "deleteDisabled": "Poista käytöstä poistetut", + "editMultipleDisabled": "Muokkaa useaa käytöstä poistettua", + "showAll": "Näytä kaikki", + "recordsSelected": "Yhteensä: {{total}} | Valinta: {{selected}}", + "cancel": "Peruuta", + "moreOptions": "Muut taulun asetukset" +} diff --git a/src/assets/t9n/layer-table/resources_fr.json b/src/assets/t9n/layer-table/resources_fr.json new file mode 100644 index 000000000..ffc837483 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_fr.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Effacer la sélection", + "delete": "Supprimer", + "editMultiple": "Mise à jour multiple", + "exportCSV": "Exporter au format CSV", + "filters": "Filtres", + "more": "Plus", + "selectAll": "Sélectionner tout", + "showSelected": "Afficher la sélection", + "switchSelected": "Inverser la sélection", + "zoom": "Zoom", + "fetchingData": "Récupération des données", + "refresh": "Actualiser", + "enableEditing": "La mise à jour doit être activée sur la couche.", + "confirm": "Ces entités seront définitivement supprimées.", + "deleteFeature": "Supprimer l’entité", + "deleteDisabled": "Suppression désactivée", + "editMultipleDisabled": "Mise à jour multiple désactivée", + "showAll": "Afficher tout", + "recordsSelected": "Total : {{total}} | Sélection : {{selected}}", + "cancel": "Annuler", + "moreOptions": "Autres options de la table" +} diff --git a/src/assets/t9n/layer-table/resources_he.json b/src/assets/t9n/layer-table/resources_he.json new file mode 100644 index 000000000..aef9ea92e --- /dev/null +++ b/src/assets/t9n/layer-table/resources_he.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "נקה בחירה", + "delete": "מחיקה", + "editMultiple": "ערוך פריטים מרובים", + "exportCSV": "יצוא ל-CSV", + "filters": "סינונים", + "more": "עוד", + "selectAll": "בחר הכול", + "showSelected": "הצג פריטים שנבחרו", + "switchSelected": "החלף פריטים שנבחרו.", + "zoom": "זום", + "fetchingData": "מאחזר נתונים", + "refresh": "רענן", + "enableEditing": "יש לאפשר עריכה בשכבה זו.", + "confirm": "ישויות אלה יוסרו לצמיתות.", + "deleteFeature": "מחק ישות", + "deleteDisabled": "המחיקה מושבתת", + "editMultipleDisabled": "עריכת פריטים מרובים מושבתת", + "showAll": "הצג הכול", + "recordsSelected": "(סה\"כ: {{total}} | בחירה: {{selected}})", + "cancel": "ביטול", + "moreOptions": "אפשרויות טבלה נוספות" +} diff --git a/src/assets/t9n/layer-table/resources_hr.json b/src/assets/t9n/layer-table/resources_hr.json new file mode 100644 index 000000000..7a4a44f24 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_hr.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Očisti odabir", + "delete": "Izbriši", + "editMultiple": "Uredi više", + "exportCSV": "Izvezi u CSV", + "filters": "Filtri", + "more": "Više", + "selectAll": "Odaberi sve", + "showSelected": "Prikaži odabrano", + "switchSelected": "Zamijeni odabrano", + "zoom": "Povećaj", + "fetchingData": "Dohvaćanje podataka", + "refresh": "Osvježi", + "enableEditing": "Uređivanje mora biti omogućeno na sloju.", + "confirm": "Ti će geoobjekti biti trajno uklonjeni.", + "deleteFeature": "Izbriši geoobjekt", + "deleteDisabled": "Izbriši onemogućeno", + "editMultipleDisabled": "Uredi više onemogućenih", + "showAll": "Prikaži sve", + "recordsSelected": "Ukupno: {{total}} | Odabir: {{selected}}", + "cancel": "Odustani", + "moreOptions": "Više opcija tablice" +} diff --git a/src/assets/t9n/layer-table/resources_hu.json b/src/assets/t9n/layer-table/resources_hu.json new file mode 100644 index 000000000..41550fdb9 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_hu.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Kijelölés megszüntetése", + "delete": "Törlés", + "editMultiple": "Több szerkesztése", + "exportCSV": "Exportálás CSV-fájlba", + "filters": "Szűrők", + "more": "Továbbiak", + "selectAll": "Összes kiválasztása", + "showSelected": "Kiválasztott elemek megjelenítése", + "switchSelected": "Váltás a kiválasztott elemekre", + "zoom": "Nagyítás/kicsinyítés", + "fetchingData": "Adatok lekérése", + "refresh": "Frissítés", + "enableEditing": "A szerkesztésnek engedélyezve kell lennie a rétegen.", + "confirm": "Ezek a vektoros elemek végleg el lesznek távolítva.", + "deleteFeature": "Vektoros elem törlése", + "deleteDisabled": "Törlés letiltva", + "editMultipleDisabled": "Több szerkesztése letiltva", + "showAll": "Összes megjelenítése", + "recordsSelected": "Összesen: {{total}} | Kiválasztva: {{selected}}", + "cancel": "Mégse", + "moreOptions": "További táblázat beállítások" +} diff --git a/src/assets/t9n/layer-table/resources_id.json b/src/assets/t9n/layer-table/resources_id.json new file mode 100644 index 000000000..64911757b --- /dev/null +++ b/src/assets/t9n/layer-table/resources_id.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Hapus pilihan", + "delete": "Hapus", + "editMultiple": "Edit Ganda", + "exportCSV": "Ekspor ke CSV", + "filters": "Filter", + "more": "Lainnya", + "selectAll": "Pilih semua", + "showSelected": "Tampilkan yang dipilih", + "switchSelected": "Alihkan yang dipilih", + "zoom": "Perbesar", + "fetchingData": "Mengambil data", + "refresh": "Muat Ulang", + "enableEditing": "Pengeditan harus diaktifkan di layer", + "confirm": "Fitur-fitur ini akan dihapus secara permanen.", + "deleteFeature": "Hapus fitur", + "deleteDisabled": "Hapus yang Dinonaktifkan", + "editMultipleDisabled": "Edit Ganda yang Dinonaktifkan", + "showAll": "Tampilkan semua", + "recordsSelected": "Total: {{total}} | Pilihan: {{selected}}", + "cancel": "Batalkan", + "moreOptions": "Opsi tabel lainnya" +} diff --git a/src/assets/t9n/layer-table/resources_it.json b/src/assets/t9n/layer-table/resources_it.json new file mode 100644 index 000000000..e463eece0 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_it.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Cancella selezione", + "delete": "Elimina", + "editMultiple": "Modifica multipla", + "exportCSV": "Esporta in CSV", + "filters": "Filtri", + "more": "Maggiori informazioni", + "selectAll": "Seleziona tutto", + "showSelected": "Mostra selezionati", + "switchSelected": "Cambia selezionati", + "zoom": "Zoom", + "fetchingData": "Recupero dei dati", + "refresh": "Aggiorna", + "enableEditing": "La modifica deve essere abilitata nel layer.", + "confirm": "Queste feature saranno rimosse in modo permanente.", + "deleteFeature": "Elimina feature", + "deleteDisabled": "Eliminazione disabilitata", + "editMultipleDisabled": "Modifica multipla disabilitata", + "showAll": "Mostra tutto", + "recordsSelected": "Totale: {{total}} | Selezione: {{selected}}", + "cancel": "Annulla", + "moreOptions": "Altre opzioni tabella" +} diff --git a/src/assets/t9n/layer-table/resources_ja.json b/src/assets/t9n/layer-table/resources_ja.json new file mode 100644 index 000000000..ca20b5a36 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_ja.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "選択の解除", + "delete": "削除", + "editMultiple": "複数を編集", + "exportCSV": "CSV にエクスポート", + "filters": "フィルター", + "more": "その他", + "selectAll": "すべて選択", + "showSelected": "選択の表示", + "switchSelected": "選択の切り替え", + "zoom": "ズーム", + "fetchingData": "データを取得しています", + "refresh": "更新", + "enableEditing": "編集をレイヤーに対して有効化する必要があります。", + "confirm": "これらのフィーチャは完全に削除されます。", + "deleteFeature": "フィーチャの削除", + "deleteDisabled": "削除が無効になっています", + "editMultipleDisabled": "複数を編集が無効になっています", + "showAll": "すべて表示", + "recordsSelected": "合計: {{total}} | 選択: {{selected}}", + "cancel": "キャンセル", + "moreOptions": "その他のテーブル オプション" +} diff --git a/src/assets/t9n/layer-table/resources_ko.json b/src/assets/t9n/layer-table/resources_ko.json new file mode 100644 index 000000000..4cf5cebee --- /dev/null +++ b/src/assets/t9n/layer-table/resources_ko.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "선택 해제", + "delete": "삭제", + "editMultiple": "복수 편집", + "exportCSV": "CSV로 내보내기", + "filters": "필터", + "more": "더 보기", + "selectAll": "모두 선택", + "showSelected": "선택한 항목 보기", + "switchSelected": "선택한 항목 전환", + "zoom": "확대/축소", + "fetchingData": "데이터 가져오기", + "refresh": "새로 고침", + "enableEditing": "레이어에 편집이 활성화되어 있어야 합니다.", + "confirm": "해당 피처가 영구적으로 제거됩니다.", + "deleteFeature": "피처 삭제", + "deleteDisabled": "삭제가 비활성화됨", + "editMultipleDisabled": "복수 편집이 비활성화됨", + "showAll": "모두 보기", + "recordsSelected": "총: {{total}}개 | 선택: {{selected}}개", + "cancel": "취소", + "moreOptions": "추가 테이블 옵션" +} diff --git a/src/assets/t9n/layer-table/resources_lt.json b/src/assets/t9n/layer-table/resources_lt.json new file mode 100644 index 000000000..962a81836 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_lt.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Valyti išranką", + "delete": "Pašalinti", + "editMultiple": "Redaguoti kelis", + "exportCSV": "Eksportuoti į CSV", + "filters": "Filtrai", + "more": "Daugiau", + "selectAll": "Pasirinkti viską", + "showSelected": "Rodyti pasirinktus", + "switchSelected": "Pakeisti pasirinktus", + "zoom": "Didinti", + "fetchingData": "Gaunami duomenys", + "refresh": "Atnaujinti", + "enableEditing": "Sluoksnyje turi būti įjungtas redagavimas.", + "confirm": "Šie elementai bus pašalinti visam laikui.", + "deleteFeature": "Ištrinti elementą", + "deleteDisabled": "Trinti išjungtus", + "editMultipleDisabled": "Redaguoti kelis išjungtus", + "showAll": "Rodyti visus", + "recordsSelected": "Iš viso: {{total}} | Pasirinkta: {{selected}}", + "cancel": "Atšaukti", + "moreOptions": "Daugiau lentelės parinkčių" +} diff --git a/src/assets/t9n/layer-table/resources_lv.json b/src/assets/t9n/layer-table/resources_lv.json new file mode 100644 index 000000000..6070d3dd9 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_lv.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Notīrīt izvēli", + "delete": "Dzēst", + "editMultiple": "Rediģēt vairākus", + "exportCSV": "Eksportēt kā CSV failu", + "filters": "Filtri", + "more": "Vairāk", + "selectAll": "Izvēlēties visu", + "showSelected": "Rādīt izvēlēto", + "switchSelected": "Pārslēgt izvēlēto", + "zoom": "Tālummaiņa", + "fetchingData": "Tvert datus", + "refresh": "Atsvaidzināt", + "enableEditing": "Slānī ir jāiespējo rediģēšana.", + "confirm": "Šie elementi tiks neatgriezeniski noņemti.", + "deleteFeature": "Dzēst elementu", + "deleteDisabled": "Dzēst atspējotos", + "editMultipleDisabled": "Rediģēt vairākus atspējotos", + "showAll": "Rādīt visu", + "recordsSelected": "Kopā: {{total}} | Izvēle: {{selected}}", + "cancel": "Atcelt", + "moreOptions": "Citas tabulas opcijas" +} diff --git a/src/assets/t9n/layer-table/resources_nb.json b/src/assets/t9n/layer-table/resources_nb.json new file mode 100644 index 000000000..fb1c6f965 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_nb.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Tøm utvalg", + "delete": "Slett", + "editMultiple": "Rediger flere", + "exportCSV": "Eksporter til CSV", + "filters": "Filtre", + "more": "Mer", + "selectAll": "Velg alle", + "showSelected": "Vis valgte", + "switchSelected": "Bytt valgte", + "zoom": "Zoom", + "fetchingData": "Henter data", + "refresh": "Oppdater", + "enableEditing": "Redigering må være aktivert i laget.", + "confirm": "Disse geoobjektene slettes for godt.", + "deleteFeature": "Slett geoobjekt", + "deleteDisabled": "Sletting deaktivert", + "editMultipleDisabled": "Rediger flere er deaktivert", + "showAll": "Vis alle", + "recordsSelected": "Totalt: {{total}} | Utvalg: {{selected}}", + "cancel": "Avbryt", + "moreOptions": "Flere tabellalternativer" +} diff --git a/src/assets/t9n/layer-table/resources_nl.json b/src/assets/t9n/layer-table/resources_nl.json new file mode 100644 index 000000000..8156df0c1 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_nl.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Selectie wissen", + "delete": "Verwijderen", + "editMultiple": "Meerdere bewerken", + "exportCSV": "Exporteren naar CSV", + "filters": "Filters", + "more": "Meer", + "selectAll": "Alles selecteren", + "showSelected": "Selectie weergeven", + "switchSelected": "Selectie wisselen", + "zoom": "Zoomen", + "fetchingData": "Bezig met ophalen gegevens", + "refresh": "Vernieuwen", + "enableEditing": "Bewerken moet zijn ingeschakeld voor de laag.", + "confirm": "Deze objecten worden permanent verwijderd.", + "deleteFeature": "Object verwijderen", + "deleteDisabled": "Wissen is uitgeschakeld", + "editMultipleDisabled": "Meerdere bewerken is uitgeschakeld", + "showAll": "Alles weergeven", + "recordsSelected": "Totaal: {{total}} | Selectie: {{selected}}", + "cancel": "Annuleren", + "moreOptions": "Meer tabelopties" +} diff --git a/src/assets/t9n/layer-table/resources_pl.json b/src/assets/t9n/layer-table/resources_pl.json new file mode 100644 index 000000000..1bec4792a --- /dev/null +++ b/src/assets/t9n/layer-table/resources_pl.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Wyczyść wybór", + "delete": "Usuń", + "editMultiple": "Edytuj wiele", + "exportCSV": "Eksportuj do CSV", + "filters": "Filtry", + "more": "Więcej", + "selectAll": "Wybierz wszystkie", + "showSelected": "Pokaż wybrane", + "switchSelected": "Przełącz wybrane", + "zoom": "Powiększ", + "fetchingData": "Pobieranie danych", + "refresh": "Odśwież", + "enableEditing": "Edycja musi być włączona dla warstwy.", + "confirm": "Te obiekty zostaną trwale usunięte.", + "deleteFeature": "Usuń obiekt", + "deleteDisabled": "Usuwanie wyłączone", + "editMultipleDisabled": "Edycja wielu wyłączona", + "showAll": "Pokaż wszystko", + "recordsSelected": "Łącznie: {{total}} | Wybrane: {{selected}}", + "cancel": "Anuluj", + "moreOptions": "Więcej opcji tabeli" +} diff --git a/src/assets/t9n/layer-table/resources_pt-BR.json b/src/assets/t9n/layer-table/resources_pt-BR.json new file mode 100644 index 000000000..3bfb1751a --- /dev/null +++ b/src/assets/t9n/layer-table/resources_pt-BR.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Limpar seleção", + "delete": "Excluir", + "editMultiple": "Editar Múltiplos", + "exportCSV": "Exportar para CSV", + "filters": "Filtros", + "more": "Mais", + "selectAll": "Selecionar todos", + "showSelected": "Mostrar selecionado", + "switchSelected": "Trocar selecionado", + "zoom": "Zoom", + "fetchingData": "Buscar Dados", + "refresh": "Atualizar", + "enableEditing": "A edição deve estar habilitada na camada.", + "confirm": "Estas feições serão permanentemente removidas.", + "deleteFeature": "Excluir feição", + "deleteDisabled": "Excluir Desabilitado", + "editMultipleDisabled": "Editar Múltiplos Desabilitados", + "showAll": "Mostrar todos", + "recordsSelected": "Total: {{total}} | Seleção: {{selected}}", + "cancel": "Cancelar", + "moreOptions": "Mais opções da tabela" +} diff --git a/src/assets/t9n/layer-table/resources_pt-PT.json b/src/assets/t9n/layer-table/resources_pt-PT.json new file mode 100644 index 000000000..0caf571fb --- /dev/null +++ b/src/assets/t9n/layer-table/resources_pt-PT.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Limpar seleção", + "delete": "Eliminar", + "editMultiple": "Editar Múltiplos", + "exportCSV": "Exportar para CSV", + "filters": "Filtros", + "more": "Mais", + "selectAll": "Selecionar tudo", + "showSelected": "Exibir selecionados", + "switchSelected": "Mudar selecionados", + "zoom": "Zoom", + "fetchingData": "A Obter Dados", + "refresh": "Atualizar", + "enableEditing": "A edição tem de estar ativada na camada.", + "confirm": "Estes elementos serão permanentemente removidos.", + "deleteFeature": "Eliminar elemento", + "deleteDisabled": "Eliminação Desativada", + "editMultipleDisabled": "Editar Múltiplos Desativada", + "showAll": "Exibir tudo", + "recordsSelected": "Total: {{total}} | Seleção: {{selected}}", + "cancel": "Cancelar", + "moreOptions": "Mais opções de tabela" +} diff --git a/src/assets/t9n/layer-table/resources_ro.json b/src/assets/t9n/layer-table/resources_ro.json new file mode 100644 index 000000000..2b637e264 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_ro.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Golire selecție", + "delete": "Ștergere", + "editMultiple": "Editare multiplă", + "exportCSV": "Export în CSV", + "filters": "Filtre", + "more": "Mai mult", + "selectAll": "Selectare globală", + "showSelected": "Afișare selectate", + "switchSelected": "Comutare selectată", + "zoom": "Zoom", + "fetchingData": "Extragerea datelor", + "refresh": "Reîmprospătare", + "enableEditing": "Editarea trebuie să fie activată în stratul tematic.", + "confirm": "Aceste obiecte spațiale vor fi eliminate definitiv.", + "deleteFeature": "Ştergere obiect spaţial", + "deleteDisabled": "Ștergere dezactivată", + "editMultipleDisabled": "Editare multiplă dezactivată", + "showAll": "Afișare toate", + "recordsSelected": "Total: {{total}} | Selecție: {{selected}}", + "cancel": "Anulare", + "moreOptions": "Mai multe opțiuni de tabel" +} diff --git a/src/assets/t9n/layer-table/resources_ru.json b/src/assets/t9n/layer-table/resources_ru.json new file mode 100644 index 000000000..fff32ceb1 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_ru.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Очистить выборку", + "delete": "Удалить", + "editMultiple": "Редактировать несколько", + "exportCSV": "Экспорт в CSV", + "filters": "Фильтры", + "more": "Больше", + "selectAll": "Выбрать все", + "showSelected": "Показать выбранные", + "switchSelected": "Переключить выбранные", + "zoom": "Масштабировать", + "fetchingData": "Извлечение данных", + "refresh": "Обновить", + "enableEditing": "Для слоя должно быть включено редактирование.", + "confirm": "Эти объекты будут удалены навсегда.", + "deleteFeature": "Удалить объект", + "deleteDisabled": "Удаление отключено", + "editMultipleDisabled": "Редактировать несколько отключено", + "showAll": "Показать все", + "recordsSelected": "Всего: {{total}} | Выборка: {{selected}}", + "cancel": "Отмена", + "moreOptions": "Дополнительные опции таблицы" +} diff --git a/src/assets/t9n/layer-table/resources_sk.json b/src/assets/t9n/layer-table/resources_sk.json new file mode 100644 index 000000000..8a4924f9f --- /dev/null +++ b/src/assets/t9n/layer-table/resources_sk.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Vyčistiť výber", + "delete": "Zmazať", + "editMultiple": "Editovať viacnásobné", + "exportCSV": "Exportovať do CSV", + "filters": "Filtre", + "more": "Viac", + "selectAll": "Vybrať všetko", + "showSelected": "Zobraziť vybrané", + "switchSelected": "Prepnúť vybrané", + "zoom": "Priblíženie", + "fetchingData": "Získavanie dát", + "refresh": "Obnoviť", + "enableEditing": "Pre vrstvu musí byť povolená editácia.", + "confirm": "Tieto prvky budú natrvalo odstránené.", + "deleteFeature": "Zmazať prvok", + "deleteDisabled": "Odstrániť nepovolené", + "editMultipleDisabled": "Editovať viacnásobne nepovolené", + "showAll": "Zobraziť všetko", + "recordsSelected": "Celkový počet: {{total}} | Výber: {{selected}}", + "cancel": "Zrušiť", + "moreOptions": "Viac možností tabuľky" +} diff --git a/src/assets/t9n/layer-table/resources_sl.json b/src/assets/t9n/layer-table/resources_sl.json new file mode 100644 index 000000000..2a9a69b43 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_sl.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Počisti izbiro", + "delete": "Izbriši", + "editMultiple": "Uredi več", + "exportCSV": "Izvozi v CSV", + "filters": "Filtri", + "more": "Več", + "selectAll": "Izberi vse", + "showSelected": "Prikaži izbrano", + "switchSelected": "Preklopi izbrano", + "zoom": "Povečava", + "fetchingData": "Pridobivanje podatkov", + "refresh": "Osveži", + "enableEditing": "Urejanje mora biti omogočeno na sloju.", + "confirm": "Ti geoobjekti bodo trajno odstranjeni.", + "deleteFeature": "Izbriši geoobjekt", + "deleteDisabled": "Izbriši onemogočeno", + "editMultipleDisabled": "Uredi več onemogočenih", + "showAll": "Prikaži vse", + "recordsSelected": "Skupno: {{total}} | Selection: {{selected}}", + "cancel": "Prekliči", + "moreOptions": "Več možnosti tabele" +} diff --git a/src/assets/t9n/layer-table/resources_sr.json b/src/assets/t9n/layer-table/resources_sr.json new file mode 100644 index 000000000..2a00ed4ea --- /dev/null +++ b/src/assets/t9n/layer-table/resources_sr.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Izbriši izbor", + "delete": "Izbriši", + "editMultiple": "Uredi višestruko", + "exportCSV": "Izvezi u CSV", + "filters": "Filteri", + "more": "Više", + "selectAll": "Izaberi sve", + "showSelected": "Pokaži selektovano", + "switchSelected": "Prebaci izabrano", + "zoom": "Zumiranje", + "fetchingData": "Preuzimanje podataka", + "refresh": "Osveži", + "enableEditing": "Uređivanje mora da bude omogućeno na sloju.", + "confirm": "Ove karakteristike će biti trajno uklonjene.", + "deleteFeature": "Obriši geoobjekat", + "deleteDisabled": "Brisanje je onemogućeno", + "editMultipleDisabled": "Uredi višestruko je onemogućeno", + "showAll": "Prikaži sve", + "recordsSelected": "Ukupno: {{total}} | Odabir: {{selected}}", + "cancel": "Otkaži", + "moreOptions": "Više opcija za tabelu" +} diff --git a/src/assets/t9n/layer-table/resources_sv.json b/src/assets/t9n/layer-table/resources_sv.json new file mode 100644 index 000000000..c296e0d9c --- /dev/null +++ b/src/assets/t9n/layer-table/resources_sv.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Rensa markering", + "delete": "Ta bort", + "editMultiple": "Redigera flera", + "exportCSV": "Exportera till CSV", + "filters": "Filter", + "more": "Mer", + "selectAll": "Markera alla", + "showSelected": "Visa valda", + "switchSelected": "Växla valda", + "zoom": "Zooma", + "fetchingData": "Hämtar data", + "refresh": "Uppdatera", + "enableEditing": "Redigering måste vara aktiverad på lagret.", + "confirm": "Dessa geoobjekt tas bort permanent.", + "deleteFeature": "Ta bort geoobjekt", + "deleteDisabled": "Ta bort inaktiverat", + "editMultipleDisabled": "Redigera flera inaktiverat", + "showAll": "Visa alla", + "recordsSelected": "Totalt: {{total}} | Urval: {{selected}}", + "cancel": "Avbryt", + "moreOptions": "Fler tabellalternativ" +} diff --git a/src/assets/t9n/layer-table/resources_th.json b/src/assets/t9n/layer-table/resources_th.json new file mode 100644 index 000000000..f85ffd07d --- /dev/null +++ b/src/assets/t9n/layer-table/resources_th.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "ล้างการเลือก", + "delete": "ลบ", + "editMultiple": "แก้ไขหลายรายการ", + "exportCSV": "ส่งออกเป็น CSV", + "filters": "ตัวกรอง", + "more": "กว่า", + "selectAll": "เลือกทั้งหมด", + "showSelected": "แสดงที่เลือก", + "switchSelected": "สลับรายการที่เลือก", + "zoom": "ขยาย", + "fetchingData": "กำลังดึงข้อมูล", + "refresh": "รีเฟรช", + "enableEditing": "ต้องเปิดใช้งานการแก้ไขบนชั้นข้อมูล", + "confirm": "ฟีเจอร์เหล่านี้จะถูกลบออกอย่างถาวร", + "deleteFeature": "ลบข้อมูลนี้", + "deleteDisabled": "การลบถูกปิดใช้งาน", + "editMultipleDisabled": "การแก้ไขหลายรายการถูกปิดใช้งาน", + "showAll": "แสดงทั้งหมด", + "recordsSelected": "รวม: {{total}} | ที่เลือก: {{selected}}", + "cancel": "ยกเลิก", + "moreOptions": "ตัวเลือกตารางเพิ่มเติม" +} diff --git a/src/assets/t9n/layer-table/resources_tr.json b/src/assets/t9n/layer-table/resources_tr.json new file mode 100644 index 000000000..d226bcf5f --- /dev/null +++ b/src/assets/t9n/layer-table/resources_tr.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Seçimi temizle", + "delete": "Sil", + "editMultiple": "Çoklu Düzenle", + "exportCSV": "CSV olarak dışa aktar", + "filters": "Filtreler", + "more": "Daha fazla", + "selectAll": "Tümünü seç", + "showSelected": "Seçilenleri göster", + "switchSelected": "Seçili olanı değiştir", + "zoom": "Yakınlaştır", + "fetchingData": "Veriler Getiriliyor", + "refresh": "Yenile", + "enableEditing": "Katmanda düzenleme etkinleştirilmelidir.", + "confirm": "Bu detaylar kalıcı olarak kaldırılacak.", + "deleteFeature": "Detayı sil", + "deleteDisabled": "Silme Devre Dışı Bırakıldı", + "editMultipleDisabled": "Çoklu Düzenleme Devre Dışı Bırakıldı", + "showAll": "Tümünü göster", + "recordsSelected": "Toplam: {{total}} | Seçim: {{selected}}", + "cancel": "İptal", + "moreOptions": "Daha fazla tablo seçeneği" +} diff --git a/src/assets/t9n/layer-table/resources_uk.json b/src/assets/t9n/layer-table/resources_uk.json new file mode 100644 index 000000000..3fe2c5d50 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_uk.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Очистити вибір", + "delete": "Видалити", + "editMultiple": "Редагувати декілька елементів", + "exportCSV": "Експорт в CSV", + "filters": "Фільтри", + "more": "Більше", + "selectAll": "Вибрати всі", + "showSelected": "Показати вибране", + "switchSelected": "Переключити вибране", + "zoom": "Масштабування", + "fetchingData": "Отримання даних", + "refresh": "Оновити", + "enableEditing": "Для шару має бути активовано редагування.", + "confirm": "Ці об'єкти будуть вилучені остаточно.", + "deleteFeature": "Видалити об'єкт", + "deleteDisabled": "Видалити вимкнені елементи", + "editMultipleDisabled": "Редагувати декілька вимкнених елементів", + "showAll": "Показати всі", + "recordsSelected": "Усього: {{total}} | Вибірка: {{selected}}", + "cancel": "Скасувати", + "moreOptions": "Інші опції таблиці" +} diff --git a/src/assets/t9n/layer-table/resources_vi.json b/src/assets/t9n/layer-table/resources_vi.json new file mode 100644 index 000000000..d42857c7c --- /dev/null +++ b/src/assets/t9n/layer-table/resources_vi.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "Xóa lựa chọn", + "delete": "Xóa", + "editMultiple": "Chỉnh sửa Nhiều mục", + "exportCSV": "Xuất thành CSV", + "filters": "Bộ lọc", + "more": "Thêm", + "selectAll": "Chọn tất cả", + "showSelected": "Hiển thị mục được chọn", + "switchSelected": "Chuyển đổi mục được chọn", + "zoom": "Thu phóng", + "fetchingData": "Đang tìm nạp Dữ liệu", + "refresh": "Làm mới", + "enableEditing": "Tính năng Chỉnh sửa phải được bật trên lớp.", + "confirm": "Những đối tượng này sẽ bị xóa vĩnh viễn.", + "deleteFeature": "Xóa đối tượng", + "deleteDisabled": "Xóa Mục đã tắt", + "editMultipleDisabled": "Chỉnh sửa Nhiều Mục đã tắt", + "showAll": "Hiện tất cả", + "recordsSelected": "Tổng: {{total}} | Lựa chọn: {{selected}}", + "cancel": "Hủy", + "moreOptions": "Các tùy chọn bảng khác" +} diff --git a/src/assets/t9n/layer-table/resources_zh-CN.json b/src/assets/t9n/layer-table/resources_zh-CN.json new file mode 100644 index 000000000..edbe2ced9 --- /dev/null +++ b/src/assets/t9n/layer-table/resources_zh-CN.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "清除选择内容", + "delete": "删除", + "editMultiple": "编辑多个", + "exportCSV": "导出到 CSV", + "filters": "过滤器", + "more": "更多", + "selectAll": "全选", + "showSelected": "显示所选", + "switchSelected": "切换所选", + "zoom": "缩放", + "fetchingData": "正在获取数据", + "refresh": "刷新", + "enableEditing": "必须在图层上启用编辑。", + "confirm": "这些要素将永久移除。", + "deleteFeature": "删除要素", + "deleteDisabled": "删除已禁用", + "editMultipleDisabled": "编辑多个禁用", + "showAll": "显示全部", + "recordsSelected": "总数:{{total}} | 选择:{{selected}}", + "cancel": "取消", + "moreOptions": "更多表选项" +} diff --git a/src/assets/t9n/layer-table/resources_zh-HK.json b/src/assets/t9n/layer-table/resources_zh-HK.json new file mode 100644 index 000000000..27565616a --- /dev/null +++ b/src/assets/t9n/layer-table/resources_zh-HK.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "清除所選內容", + "delete": "刪除", + "editMultiple": "編輯多個", + "exportCSV": "匯出至 CSV", + "filters": "篩選器", + "more": "較多", + "selectAll": "全選", + "showSelected": "顯示所選", + "switchSelected": "切換所選", + "zoom": "縮放", + "fetchingData": "正在擷取資料", + "refresh": "重新整理", + "enableEditing": "必須在圖層上啟用編輯。", + "confirm": "將永久移除這些圖徵。", + "deleteFeature": "刪除圖徵", + "deleteDisabled": "已停用刪除", + "editMultipleDisabled": "已停用編輯多個", + "showAll": "顯示全部", + "recordsSelected": "總計: {{total}} | 選擇: {{selected}}", + "cancel": "取消", + "moreOptions": "更多表格選項" +} diff --git a/src/assets/t9n/layer-table/resources_zh-TW.json b/src/assets/t9n/layer-table/resources_zh-TW.json new file mode 100644 index 000000000..27565616a --- /dev/null +++ b/src/assets/t9n/layer-table/resources_zh-TW.json @@ -0,0 +1,23 @@ +{ + "clearSelection": "清除所選內容", + "delete": "刪除", + "editMultiple": "編輯多個", + "exportCSV": "匯出至 CSV", + "filters": "篩選器", + "more": "較多", + "selectAll": "全選", + "showSelected": "顯示所選", + "switchSelected": "切換所選", + "zoom": "縮放", + "fetchingData": "正在擷取資料", + "refresh": "重新整理", + "enableEditing": "必須在圖層上啟用編輯。", + "confirm": "將永久移除這些圖徵。", + "deleteFeature": "刪除圖徵", + "deleteDisabled": "已停用刪除", + "editMultipleDisabled": "已停用編輯多個", + "showAll": "顯示全部", + "recordsSelected": "總計: {{total}} | 選擇: {{selected}}", + "cancel": "取消", + "moreOptions": "更多表格選項" +} diff --git a/src/assets/t9n/layout-manager/resources.json b/src/assets/t9n/layout-manager/resources.json new file mode 100644 index 000000000..968ddb1ce --- /dev/null +++ b/src/assets/t9n/layout-manager/resources.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Grid", + "vertical": "Vertical", + "horizontal": "Horizontal", + "appInfo": "Some basic information about the app" +} diff --git a/src/assets/t9n/layout-manager/resources_ar.json b/src/assets/t9n/layout-manager/resources_ar.json new file mode 100644 index 000000000..917088f4e --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_ar.json @@ -0,0 +1,7 @@ +{ + "layout": "تخطيط", + "grid": "شبكة", + "vertical": "رأسي", + "horizontal": "أفقياً", + "appInfo": "بعض المعلومات الأساسية عن التطبيق" +} diff --git a/src/assets/t9n/layout-manager/resources_bg.json b/src/assets/t9n/layout-manager/resources_bg.json new file mode 100644 index 000000000..5c4a9ca80 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_bg.json @@ -0,0 +1,7 @@ +{ + "layout": "Оформление", + "grid": "Мрежа", + "vertical": "Вертикално", + "horizontal": "Хоризонтално", + "appInfo": "Малко основна информация за приложението" +} diff --git a/src/assets/t9n/layout-manager/resources_bs.json b/src/assets/t9n/layout-manager/resources_bs.json new file mode 100644 index 000000000..85836850f --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_bs.json @@ -0,0 +1,7 @@ +{ + "layout": "Razmještaj", + "grid": "Mreža", + "vertical": "Okomito", + "horizontal": "Vodoravno", + "appInfo": "Neki osnovni podaci o aplikaciji" +} diff --git a/src/assets/t9n/layout-manager/resources_ca.json b/src/assets/t9n/layout-manager/resources_ca.json new file mode 100644 index 000000000..d0414d274 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_ca.json @@ -0,0 +1,7 @@ +{ + "layout": "Disseny", + "grid": "Quadrícula", + "vertical": "Vertical", + "horizontal": "Horitzontal", + "appInfo": "Informació bàsica sobre l'aplicació" +} diff --git a/src/assets/t9n/layout-manager/resources_cs.json b/src/assets/t9n/layout-manager/resources_cs.json new file mode 100644 index 000000000..43567f08d --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_cs.json @@ -0,0 +1,7 @@ +{ + "layout": "Rozvržení", + "grid": "Mřížka", + "vertical": "Svisle", + "horizontal": "Vodorovně", + "appInfo": "Základní informace o aplikaci" +} diff --git a/src/assets/t9n/layout-manager/resources_da.json b/src/assets/t9n/layout-manager/resources_da.json new file mode 100644 index 000000000..85830e3d2 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_da.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Gitter", + "vertical": "Lodret", + "horizontal": "Vandret", + "appInfo": "Grundlæggende oplysninger om app'en" +} diff --git a/src/assets/t9n/layout-manager/resources_de.json b/src/assets/t9n/layout-manager/resources_de.json new file mode 100644 index 000000000..deffbaba0 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_de.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Gitternetz", + "vertical": "Vertikal", + "horizontal": "Horizontal", + "appInfo": "Grundlegende Informationen zur App" +} diff --git a/src/assets/t9n/layout-manager/resources_el.json b/src/assets/t9n/layout-manager/resources_el.json new file mode 100644 index 000000000..27624dd95 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_el.json @@ -0,0 +1,7 @@ +{ + "layout": "Διάταξη", + "grid": "Πλέγμα", + "vertical": "Κατακόρυφα", + "horizontal": "Οριζόντια", + "appInfo": "Κάποιες βασικές πληροφορίες για αυτήν την εφαρμογή" +} diff --git a/src/assets/t9n/layout-manager/resources_en.json b/src/assets/t9n/layout-manager/resources_en.json new file mode 100644 index 000000000..968ddb1ce --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_en.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Grid", + "vertical": "Vertical", + "horizontal": "Horizontal", + "appInfo": "Some basic information about the app" +} diff --git a/src/assets/t9n/layout-manager/resources_es.json b/src/assets/t9n/layout-manager/resources_es.json new file mode 100644 index 000000000..ca7cb46ba --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_es.json @@ -0,0 +1,7 @@ +{ + "layout": "Diseño", + "grid": "Cuadrícula", + "vertical": "Vertical", + "horizontal": "Horizontal", + "appInfo": "Alguna información básica sobre la aplicación" +} diff --git a/src/assets/t9n/layout-manager/resources_et.json b/src/assets/t9n/layout-manager/resources_et.json new file mode 100644 index 000000000..1f3eb77c2 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_et.json @@ -0,0 +1,7 @@ +{ + "layout": "Paigutus", + "grid": "Ruudustik", + "vertical": "Vertikaalne", + "horizontal": "Horisontaalne", + "appInfo": "Mõned põhiandmed rakenduse kohta" +} diff --git a/src/assets/t9n/layout-manager/resources_fi.json b/src/assets/t9n/layout-manager/resources_fi.json new file mode 100644 index 000000000..9b47ab6b2 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_fi.json @@ -0,0 +1,7 @@ +{ + "layout": "Asettelu", + "grid": "Ruudukko", + "vertical": "Pysty", + "horizontal": "Vaaka", + "appInfo": "Perustietoja sovelluksesta" +} diff --git a/src/assets/t9n/layout-manager/resources_fr.json b/src/assets/t9n/layout-manager/resources_fr.json new file mode 100644 index 000000000..c8ae2f20e --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_fr.json @@ -0,0 +1,7 @@ +{ + "layout": "Mise en page", + "grid": "Grille", + "vertical": "Vertical", + "horizontal": "Horizontal", + "appInfo": "Informations de base sur l’application" +} diff --git a/src/assets/t9n/layout-manager/resources_he.json b/src/assets/t9n/layout-manager/resources_he.json new file mode 100644 index 000000000..947acae5d --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_he.json @@ -0,0 +1,7 @@ +{ + "layout": "פריסה", + "grid": "גריד", + "vertical": "אנכי", + "horizontal": "אופקי", + "appInfo": "כמה פרטים בסיסיים על האפליקציה" +} diff --git a/src/assets/t9n/layout-manager/resources_hr.json b/src/assets/t9n/layout-manager/resources_hr.json new file mode 100644 index 000000000..85836850f --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_hr.json @@ -0,0 +1,7 @@ +{ + "layout": "Razmještaj", + "grid": "Mreža", + "vertical": "Okomito", + "horizontal": "Vodoravno", + "appInfo": "Neki osnovni podaci o aplikaciji" +} diff --git a/src/assets/t9n/layout-manager/resources_hu.json b/src/assets/t9n/layout-manager/resources_hu.json new file mode 100644 index 000000000..eaf856774 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_hu.json @@ -0,0 +1,7 @@ +{ + "layout": "Kimenet", + "grid": "Rácsháló", + "vertical": "Függőleges", + "horizontal": "Vízszintes", + "appInfo": "Néhány alapvető információ az alkalmazással kapcsolatban" +} diff --git a/src/assets/t9n/layout-manager/resources_id.json b/src/assets/t9n/layout-manager/resources_id.json new file mode 100644 index 000000000..7d1c22e06 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_id.json @@ -0,0 +1,7 @@ +{ + "layout": "Tata Letak", + "grid": "Grid", + "vertical": "Vertikal", + "horizontal": "Horisontal", + "appInfo": "Beberapa informasi dasar tentang aplikasi" +} diff --git a/src/assets/t9n/layout-manager/resources_it.json b/src/assets/t9n/layout-manager/resources_it.json new file mode 100644 index 000000000..5f17e2988 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_it.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Griglia", + "vertical": "Verticale", + "horizontal": "Orizzontale", + "appInfo": "Alcune informazioni di base sull'app" +} diff --git a/src/assets/t9n/layout-manager/resources_ja.json b/src/assets/t9n/layout-manager/resources_ja.json new file mode 100644 index 000000000..a4929e020 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_ja.json @@ -0,0 +1,7 @@ +{ + "layout": "レイアウト", + "grid": "グリッド", + "vertical": "鉛直", + "horizontal": "水平", + "appInfo": "アプリに関する一部の基本情報" +} diff --git a/src/assets/t9n/layout-manager/resources_ko.json b/src/assets/t9n/layout-manager/resources_ko.json new file mode 100644 index 000000000..d1fd25964 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_ko.json @@ -0,0 +1,7 @@ +{ + "layout": "레이아웃", + "grid": "그리드", + "vertical": "수직", + "horizontal": "수평", + "appInfo": "앱에 대한 일부 기본 정보" +} diff --git a/src/assets/t9n/layout-manager/resources_lt.json b/src/assets/t9n/layout-manager/resources_lt.json new file mode 100644 index 000000000..f638fb250 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_lt.json @@ -0,0 +1,7 @@ +{ + "layout": "Maketas", + "grid": "Tinklelis", + "vertical": "Vertikalus", + "horizontal": "Horizontalus", + "appInfo": "Pagrindinė informacija apie programėlę" +} diff --git a/src/assets/t9n/layout-manager/resources_lv.json b/src/assets/t9n/layout-manager/resources_lv.json new file mode 100644 index 000000000..ef694bf58 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_lv.json @@ -0,0 +1,7 @@ +{ + "layout": "Izkārtojums", + "grid": "Režģis", + "vertical": "Vertikāls", + "horizontal": "Horizontāls", + "appInfo": "Pamatinformācija par lietotni" +} diff --git a/src/assets/t9n/layout-manager/resources_nb.json b/src/assets/t9n/layout-manager/resources_nb.json new file mode 100644 index 000000000..7bced4cbf --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_nb.json @@ -0,0 +1,7 @@ +{ + "layout": "Oppsett", + "grid": "Rutenett", + "vertical": "Loddrett", + "horizontal": "Vannrett", + "appInfo": "Grunnleggende informasjon om appen" +} diff --git a/src/assets/t9n/layout-manager/resources_nl.json b/src/assets/t9n/layout-manager/resources_nl.json new file mode 100644 index 000000000..045f9dd40 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_nl.json @@ -0,0 +1,7 @@ +{ + "layout": "Lay-out", + "grid": "Raster", + "vertical": "Verticaal", + "horizontal": "Horizontaal", + "appInfo": "Basisinformatie over de app" +} diff --git a/src/assets/t9n/layout-manager/resources_pl.json b/src/assets/t9n/layout-manager/resources_pl.json new file mode 100644 index 000000000..5156571cc --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_pl.json @@ -0,0 +1,7 @@ +{ + "layout": "Kompozycja", + "grid": "Siatka", + "vertical": "Pionowo", + "horizontal": "Poziomo", + "appInfo": "Podstawowe informacje o aplikacji" +} diff --git a/src/assets/t9n/layout-manager/resources_pt-BR.json b/src/assets/t9n/layout-manager/resources_pt-BR.json new file mode 100644 index 000000000..5db202a1e --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_pt-BR.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Grade", + "vertical": "Vertical", + "horizontal": "Horizontal", + "appInfo": "Algumas informações básicas sobre o aplicativo" +} diff --git a/src/assets/t9n/layout-manager/resources_pt-PT.json b/src/assets/t9n/layout-manager/resources_pt-PT.json new file mode 100644 index 000000000..16b7d3bcd --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_pt-PT.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Grelha", + "vertical": "Vertical", + "horizontal": "Horizontal", + "appInfo": "Algumas informações básicas sobre a aplicação" +} diff --git a/src/assets/t9n/layout-manager/resources_ro.json b/src/assets/t9n/layout-manager/resources_ro.json new file mode 100644 index 000000000..8b3298a3e --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_ro.json @@ -0,0 +1,7 @@ +{ + "layout": "Configuraţie", + "grid": "Grilă", + "vertical": "Vertical", + "horizontal": "Orizontal", + "appInfo": "Unele informații de bază despre aplicație" +} diff --git a/src/assets/t9n/layout-manager/resources_ru.json b/src/assets/t9n/layout-manager/resources_ru.json new file mode 100644 index 000000000..44187c75a --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_ru.json @@ -0,0 +1,7 @@ +{ + "layout": "Компоновка", + "grid": "Сетка", + "vertical": "Вертикальная", + "horizontal": "Горизонтальная", + "appInfo": "Основная информация о приложении" +} diff --git a/src/assets/t9n/layout-manager/resources_sk.json b/src/assets/t9n/layout-manager/resources_sk.json new file mode 100644 index 000000000..071db8de2 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_sk.json @@ -0,0 +1,7 @@ +{ + "layout": "Rozloženie", + "grid": "Mriežka", + "vertical": "Vertikálne", + "horizontal": "Horizontálne", + "appInfo": "Niektoré základné informácie o aplikácii" +} diff --git a/src/assets/t9n/layout-manager/resources_sl.json b/src/assets/t9n/layout-manager/resources_sl.json new file mode 100644 index 000000000..b4b0b7265 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_sl.json @@ -0,0 +1,7 @@ +{ + "layout": "Postavitev", + "grid": "Mreža", + "vertical": "Vertikalno", + "horizontal": "Horizontalno", + "appInfo": "Nekaj osnovnih podatkov o aplikaciji" +} diff --git a/src/assets/t9n/layout-manager/resources_sr.json b/src/assets/t9n/layout-manager/resources_sr.json new file mode 100644 index 000000000..b0387bfd2 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_sr.json @@ -0,0 +1,7 @@ +{ + "layout": "Priprema za štampu", + "grid": "Mreža", + "vertical": "Vertikalno", + "horizontal": "Horizontalno", + "appInfo": "Neke osnovne informacije o aplikaciji" +} diff --git a/src/assets/t9n/layout-manager/resources_sv.json b/src/assets/t9n/layout-manager/resources_sv.json new file mode 100644 index 000000000..c94dc5839 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_sv.json @@ -0,0 +1,7 @@ +{ + "layout": "Layout", + "grid": "Rutnät", + "vertical": "Vertikal", + "horizontal": "Horisontell", + "appInfo": "Lite grundläggande information om appen" +} diff --git a/src/assets/t9n/layout-manager/resources_th.json b/src/assets/t9n/layout-manager/resources_th.json new file mode 100644 index 000000000..642ef2bbb --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_th.json @@ -0,0 +1,7 @@ +{ + "layout": "หน้ากระดาษ", + "grid": "กริด", + "vertical": "แนวตั้ง", + "horizontal": "แนวนอน", + "appInfo": "ข้อมูลพื้นฐานบางส่วนเกี่ยวกับแอป" +} diff --git a/src/assets/t9n/layout-manager/resources_tr.json b/src/assets/t9n/layout-manager/resources_tr.json new file mode 100644 index 000000000..41692d701 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_tr.json @@ -0,0 +1,7 @@ +{ + "layout": "Çıktı Düzeni", + "grid": "Grid", + "vertical": "Dikey", + "horizontal": "Yatay", + "appInfo": "Uygulama hakkında bazı temel bilgiler" +} diff --git a/src/assets/t9n/layout-manager/resources_uk.json b/src/assets/t9n/layout-manager/resources_uk.json new file mode 100644 index 000000000..cf072476c --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_uk.json @@ -0,0 +1,7 @@ +{ + "layout": "Компонування", + "grid": "Грід", + "vertical": "Вертикальна", + "horizontal": "Горизонтальна", + "appInfo": "Деякі основні відомості про додаток" +} diff --git a/src/assets/t9n/layout-manager/resources_vi.json b/src/assets/t9n/layout-manager/resources_vi.json new file mode 100644 index 000000000..2d9aa4ace --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_vi.json @@ -0,0 +1,7 @@ +{ + "layout": "Bố cục", + "grid": "Lưới", + "vertical": "Dọc", + "horizontal": "Ngang", + "appInfo": "Một số thông tin cơ bản về ứng dụng" +} diff --git a/src/assets/t9n/layout-manager/resources_zh-CN.json b/src/assets/t9n/layout-manager/resources_zh-CN.json new file mode 100644 index 000000000..c971f4d1a --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_zh-CN.json @@ -0,0 +1,7 @@ +{ + "layout": "布局", + "grid": "格网", + "vertical": "垂直", + "horizontal": "水平", + "appInfo": "有关该应用程序的一些基本信息" +} diff --git a/src/assets/t9n/layout-manager/resources_zh-HK.json b/src/assets/t9n/layout-manager/resources_zh-HK.json new file mode 100644 index 000000000..77c36d695 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_zh-HK.json @@ -0,0 +1,7 @@ +{ + "layout": "版面配置", + "grid": "網格", + "vertical": "垂直", + "horizontal": "水平對齊", + "appInfo": "應用程式相關的部分基本資訊" +} diff --git a/src/assets/t9n/layout-manager/resources_zh-TW.json b/src/assets/t9n/layout-manager/resources_zh-TW.json new file mode 100644 index 000000000..77c36d695 --- /dev/null +++ b/src/assets/t9n/layout-manager/resources_zh-TW.json @@ -0,0 +1,7 @@ +{ + "layout": "版面配置", + "grid": "網格", + "vertical": "垂直", + "horizontal": "水平對齊", + "appInfo": "應用程式相關的部分基本資訊" +} diff --git a/src/assets/t9n/map-card/resources.json b/src/assets/t9n/map-card/resources.json index 31a1df008..0304fa9de 100644 --- a/src/assets/t9n/map-card/resources.json +++ b/src/assets/t9n/map-card/resources.json @@ -1,9 +1,3 @@ { - "mapName": "Map Name", - "home": "Home", - "list": "List", - "search": "Search", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "expand": "Expand" + "mapName": "Map Name" } diff --git a/src/assets/t9n/map-card/resources_ar.json b/src/assets/t9n/map-card/resources_ar.json new file mode 100644 index 000000000..62225bbd6 --- /dev/null +++ b/src/assets/t9n/map-card/resources_ar.json @@ -0,0 +1,3 @@ +{ + "mapName": "اسم الخريطة" +} diff --git a/src/assets/t9n/map-card/resources_bg.json b/src/assets/t9n/map-card/resources_bg.json new file mode 100644 index 000000000..600da3d74 --- /dev/null +++ b/src/assets/t9n/map-card/resources_bg.json @@ -0,0 +1,3 @@ +{ + "mapName": "Име на карта" +} diff --git a/src/assets/t9n/map-card/resources_bs.json b/src/assets/t9n/map-card/resources_bs.json new file mode 100644 index 000000000..d4d6328e8 --- /dev/null +++ b/src/assets/t9n/map-card/resources_bs.json @@ -0,0 +1,3 @@ +{ + "mapName": "Naziv karte" +} diff --git a/src/assets/t9n/map-card/resources_ca.json b/src/assets/t9n/map-card/resources_ca.json new file mode 100644 index 000000000..adea0ec34 --- /dev/null +++ b/src/assets/t9n/map-card/resources_ca.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nom del mapa" +} diff --git a/src/assets/t9n/map-card/resources_cs.json b/src/assets/t9n/map-card/resources_cs.json new file mode 100644 index 000000000..33c4380e6 --- /dev/null +++ b/src/assets/t9n/map-card/resources_cs.json @@ -0,0 +1,3 @@ +{ + "mapName": "Název mapy" +} diff --git a/src/assets/t9n/map-card/resources_da.json b/src/assets/t9n/map-card/resources_da.json new file mode 100644 index 000000000..0a0fa95a4 --- /dev/null +++ b/src/assets/t9n/map-card/resources_da.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kortnavn" +} diff --git a/src/assets/t9n/map-card/resources_de.json b/src/assets/t9n/map-card/resources_de.json new file mode 100644 index 000000000..9e7680f7a --- /dev/null +++ b/src/assets/t9n/map-card/resources_de.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kartenname" +} diff --git a/src/assets/t9n/map-card/resources_el.json b/src/assets/t9n/map-card/resources_el.json new file mode 100644 index 000000000..4faf74f37 --- /dev/null +++ b/src/assets/t9n/map-card/resources_el.json @@ -0,0 +1,3 @@ +{ + "mapName": "Όνομα Χάρτη" +} diff --git a/src/assets/t9n/map-card/resources_en.json b/src/assets/t9n/map-card/resources_en.json index 31a1df008..0304fa9de 100644 --- a/src/assets/t9n/map-card/resources_en.json +++ b/src/assets/t9n/map-card/resources_en.json @@ -1,9 +1,3 @@ { - "mapName": "Map Name", - "home": "Home", - "list": "List", - "search": "Search", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", - "expand": "Expand" + "mapName": "Map Name" } diff --git a/src/assets/t9n/map-card/resources_es.json b/src/assets/t9n/map-card/resources_es.json new file mode 100644 index 000000000..7e960e396 --- /dev/null +++ b/src/assets/t9n/map-card/resources_es.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nombre del mapa" +} diff --git a/src/assets/t9n/map-card/resources_et.json b/src/assets/t9n/map-card/resources_et.json new file mode 100644 index 000000000..171915ec9 --- /dev/null +++ b/src/assets/t9n/map-card/resources_et.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kaardi nimi" +} diff --git a/src/assets/t9n/map-card/resources_fi.json b/src/assets/t9n/map-card/resources_fi.json new file mode 100644 index 000000000..cbfaa483a --- /dev/null +++ b/src/assets/t9n/map-card/resources_fi.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kartan nimi" +} diff --git a/src/assets/t9n/map-card/resources_fr.json b/src/assets/t9n/map-card/resources_fr.json new file mode 100644 index 000000000..255753ab0 --- /dev/null +++ b/src/assets/t9n/map-card/resources_fr.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nom de la carte" +} diff --git a/src/assets/t9n/map-card/resources_he.json b/src/assets/t9n/map-card/resources_he.json new file mode 100644 index 000000000..b220ed7cb --- /dev/null +++ b/src/assets/t9n/map-card/resources_he.json @@ -0,0 +1,3 @@ +{ + "mapName": "שם מפה" +} diff --git a/src/assets/t9n/map-card/resources_hr.json b/src/assets/t9n/map-card/resources_hr.json new file mode 100644 index 000000000..d4d6328e8 --- /dev/null +++ b/src/assets/t9n/map-card/resources_hr.json @@ -0,0 +1,3 @@ +{ + "mapName": "Naziv karte" +} diff --git a/src/assets/t9n/map-card/resources_hu.json b/src/assets/t9n/map-card/resources_hu.json new file mode 100644 index 000000000..5bcf66618 --- /dev/null +++ b/src/assets/t9n/map-card/resources_hu.json @@ -0,0 +1,3 @@ +{ + "mapName": "Térkép neve" +} diff --git a/src/assets/t9n/map-card/resources_id.json b/src/assets/t9n/map-card/resources_id.json new file mode 100644 index 000000000..19c6da85a --- /dev/null +++ b/src/assets/t9n/map-card/resources_id.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nama Peta" +} diff --git a/src/assets/t9n/map-card/resources_it.json b/src/assets/t9n/map-card/resources_it.json new file mode 100644 index 000000000..15c01e3d5 --- /dev/null +++ b/src/assets/t9n/map-card/resources_it.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nome mappa" +} diff --git a/src/assets/t9n/map-card/resources_ja.json b/src/assets/t9n/map-card/resources_ja.json new file mode 100644 index 000000000..3e1c5bd6a --- /dev/null +++ b/src/assets/t9n/map-card/resources_ja.json @@ -0,0 +1,3 @@ +{ + "mapName": "マップ名" +} diff --git a/src/assets/t9n/map-card/resources_ko.json b/src/assets/t9n/map-card/resources_ko.json new file mode 100644 index 000000000..1f234f294 --- /dev/null +++ b/src/assets/t9n/map-card/resources_ko.json @@ -0,0 +1,3 @@ +{ + "mapName": "맵 이름" +} diff --git a/src/assets/t9n/map-card/resources_lt.json b/src/assets/t9n/map-card/resources_lt.json new file mode 100644 index 000000000..68234c586 --- /dev/null +++ b/src/assets/t9n/map-card/resources_lt.json @@ -0,0 +1,3 @@ +{ + "mapName": "Žemėlapio pavadinimas" +} diff --git a/src/assets/t9n/map-card/resources_lv.json b/src/assets/t9n/map-card/resources_lv.json new file mode 100644 index 000000000..7cb4b84b1 --- /dev/null +++ b/src/assets/t9n/map-card/resources_lv.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kartes nosaukums" +} diff --git a/src/assets/t9n/map-card/resources_nb.json b/src/assets/t9n/map-card/resources_nb.json new file mode 100644 index 000000000..69d1b73e4 --- /dev/null +++ b/src/assets/t9n/map-card/resources_nb.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kartnavn" +} diff --git a/src/assets/t9n/map-card/resources_nl.json b/src/assets/t9n/map-card/resources_nl.json new file mode 100644 index 000000000..db65f240c --- /dev/null +++ b/src/assets/t9n/map-card/resources_nl.json @@ -0,0 +1,3 @@ +{ + "mapName": "Naam kaart" +} diff --git a/src/assets/t9n/map-card/resources_pl.json b/src/assets/t9n/map-card/resources_pl.json new file mode 100644 index 000000000..322e07f18 --- /dev/null +++ b/src/assets/t9n/map-card/resources_pl.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nazwa mapy" +} diff --git a/src/assets/t9n/map-card/resources_pt-BR.json b/src/assets/t9n/map-card/resources_pt-BR.json new file mode 100644 index 000000000..bcbe68ff6 --- /dev/null +++ b/src/assets/t9n/map-card/resources_pt-BR.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nome do Mapa" +} diff --git a/src/assets/t9n/map-card/resources_pt-PT.json b/src/assets/t9n/map-card/resources_pt-PT.json new file mode 100644 index 000000000..bcbe68ff6 --- /dev/null +++ b/src/assets/t9n/map-card/resources_pt-PT.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nome do Mapa" +} diff --git a/src/assets/t9n/map-card/resources_ro.json b/src/assets/t9n/map-card/resources_ro.json new file mode 100644 index 000000000..c2ec928a8 --- /dev/null +++ b/src/assets/t9n/map-card/resources_ro.json @@ -0,0 +1,3 @@ +{ + "mapName": "Nume hartă" +} diff --git a/src/assets/t9n/map-card/resources_ru.json b/src/assets/t9n/map-card/resources_ru.json new file mode 100644 index 000000000..733793fb4 --- /dev/null +++ b/src/assets/t9n/map-card/resources_ru.json @@ -0,0 +1,3 @@ +{ + "mapName": "Имя Карты" +} diff --git a/src/assets/t9n/map-card/resources_sk.json b/src/assets/t9n/map-card/resources_sk.json new file mode 100644 index 000000000..48ed10ce1 --- /dev/null +++ b/src/assets/t9n/map-card/resources_sk.json @@ -0,0 +1,3 @@ +{ + "mapName": "Názov mapy" +} diff --git a/src/assets/t9n/map-card/resources_sl.json b/src/assets/t9n/map-card/resources_sl.json new file mode 100644 index 000000000..55ab0c981 --- /dev/null +++ b/src/assets/t9n/map-card/resources_sl.json @@ -0,0 +1,3 @@ +{ + "mapName": "Ime karte" +} diff --git a/src/assets/t9n/map-card/resources_sr.json b/src/assets/t9n/map-card/resources_sr.json new file mode 100644 index 000000000..e3e27a9be --- /dev/null +++ b/src/assets/t9n/map-card/resources_sr.json @@ -0,0 +1,3 @@ +{ + "mapName": "Naziv mape" +} diff --git a/src/assets/t9n/map-card/resources_sv.json b/src/assets/t9n/map-card/resources_sv.json new file mode 100644 index 000000000..49e6cf623 --- /dev/null +++ b/src/assets/t9n/map-card/resources_sv.json @@ -0,0 +1,3 @@ +{ + "mapName": "Kartnamn" +} diff --git a/src/assets/t9n/map-card/resources_th.json b/src/assets/t9n/map-card/resources_th.json new file mode 100644 index 000000000..2c36d9f2e --- /dev/null +++ b/src/assets/t9n/map-card/resources_th.json @@ -0,0 +1,3 @@ +{ + "mapName": "ชื่อแผนที่" +} diff --git a/src/assets/t9n/map-card/resources_tr.json b/src/assets/t9n/map-card/resources_tr.json new file mode 100644 index 000000000..0fc830c71 --- /dev/null +++ b/src/assets/t9n/map-card/resources_tr.json @@ -0,0 +1,3 @@ +{ + "mapName": "Harita Adı" +} diff --git a/src/assets/t9n/map-card/resources_uk.json b/src/assets/t9n/map-card/resources_uk.json new file mode 100644 index 000000000..160f90e88 --- /dev/null +++ b/src/assets/t9n/map-card/resources_uk.json @@ -0,0 +1,3 @@ +{ + "mapName": "Ім'я карти" +} diff --git a/src/assets/t9n/map-card/resources_vi.json b/src/assets/t9n/map-card/resources_vi.json new file mode 100644 index 000000000..10c967ed3 --- /dev/null +++ b/src/assets/t9n/map-card/resources_vi.json @@ -0,0 +1,3 @@ +{ + "mapName": "Tên Bản đồ" +} diff --git a/src/assets/t9n/map-card/resources_zh-CN.json b/src/assets/t9n/map-card/resources_zh-CN.json new file mode 100644 index 000000000..2d4be4bd1 --- /dev/null +++ b/src/assets/t9n/map-card/resources_zh-CN.json @@ -0,0 +1,3 @@ +{ + "mapName": "地图名称" +} diff --git a/src/assets/t9n/map-card/resources_zh-HK.json b/src/assets/t9n/map-card/resources_zh-HK.json new file mode 100644 index 000000000..bf47b41e4 --- /dev/null +++ b/src/assets/t9n/map-card/resources_zh-HK.json @@ -0,0 +1,3 @@ +{ + "mapName": "地圖名稱" +} diff --git a/src/assets/t9n/map-card/resources_zh-TW.json b/src/assets/t9n/map-card/resources_zh-TW.json new file mode 100644 index 000000000..bf47b41e4 --- /dev/null +++ b/src/assets/t9n/map-card/resources_zh-TW.json @@ -0,0 +1,3 @@ +{ + "mapName": "地圖名稱" +} diff --git a/src/assets/t9n/map-layer-picker/resources.json b/src/assets/t9n/map-layer-picker/resources.json new file mode 100644 index 000000000..0da6640a5 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "No editable layers found", + "enableEditUpdate": "One or more layers must support editing with the 'Update' capability.", + "switchLayer": "Switch layer" +} diff --git a/src/assets/t9n/map-layer-picker/resources_ar.json b/src/assets/t9n/map-layer-picker/resources_ar.json new file mode 100644 index 000000000..3e46d5fd8 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_ar.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "لم يتم العثور على طبقات قابلة للتحرير", + "enableEditUpdate": "يجب أن تدعم طبقة واحدة أو أكثر التحرير باستخدام إمكانية \"التحديث\".", + "switchLayer": "تبديل الطبقة" +} diff --git a/src/assets/t9n/map-layer-picker/resources_bg.json b/src/assets/t9n/map-layer-picker/resources_bg.json new file mode 100644 index 000000000..387d705bc --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_bg.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Няма намерени редактируеми слоеве", + "enableEditUpdate": "Един или повече слоеве трябва да поддържат редактиране с възможността за „Актуализиране“.", + "switchLayer": "Превключване на слой" +} diff --git a/src/assets/t9n/map-layer-picker/resources_bs.json b/src/assets/t9n/map-layer-picker/resources_bs.json new file mode 100644 index 000000000..eba503022 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_bs.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nisu pronađeni slojevi koji se mogu uređivati", + "enableEditUpdate": "Jedan ili više slojeva moraju podržavati uređivanje s mogućnošću 'Ažuriraj'.", + "switchLayer": "Prebaci sloj" +} diff --git a/src/assets/t9n/map-layer-picker/resources_ca.json b/src/assets/t9n/map-layer-picker/resources_ca.json new file mode 100644 index 000000000..fe3514b7f --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_ca.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "No s'ha trobat cap capa editable", + "enableEditUpdate": "Una capa o més d'una s'han de poder editar amb la funció \"Actualitza\".", + "switchLayer": "Canvia de capa" +} diff --git a/src/assets/t9n/map-layer-picker/resources_cs.json b/src/assets/t9n/map-layer-picker/resources_cs.json new file mode 100644 index 000000000..52db4db51 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_cs.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nebyly nalezeny žádné vrstvy, které lze editovat.", + "enableEditUpdate": "Jedna nebo více vrstev musí podporovat editaci pomocí funkce ‚Aktualizovat‘.", + "switchLayer": "Přepnout vrstvu" +} diff --git a/src/assets/t9n/map-layer-picker/resources_da.json b/src/assets/t9n/map-layer-picker/resources_da.json new file mode 100644 index 000000000..c12ec4f1f --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_da.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Der blev ikke fundet nogen redigerbare lag", + "enableEditUpdate": "Et eller flere lag skal understøtte redigering med opdateringsfunktionaliteten.", + "switchLayer": "Skift lag" +} diff --git a/src/assets/t9n/map-layer-picker/resources_de.json b/src/assets/t9n/map-layer-picker/resources_de.json new file mode 100644 index 000000000..4dced705d --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_de.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Keine editierbaren Layer gefunden", + "enableEditUpdate": "Mindestens ein Layer muss die Bearbeitung mit der Aktualisierungsfunktion unterstützen.", + "switchLayer": "Layer wechseln" +} diff --git a/src/assets/t9n/map-layer-picker/resources_el.json b/src/assets/t9n/map-layer-picker/resources_el.json new file mode 100644 index 000000000..dfa8ce3bf --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_el.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Δεν βρέθηκαν θεματικά επίπεδα με δυνατότητα επεξεργασίας", + "enableEditUpdate": "Ένα ή περισσότερα θεματικά επίπεδα πρέπει να υποστηρίζουν επεξεργασία με τη δυνατότητα \"Ενημέρωση\"", + "switchLayer": "Αλλαγή θεματικού επιπέδου" +} diff --git a/src/assets/t9n/map-layer-picker/resources_en.json b/src/assets/t9n/map-layer-picker/resources_en.json new file mode 100644 index 000000000..0da6640a5 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_en.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "No editable layers found", + "enableEditUpdate": "One or more layers must support editing with the 'Update' capability.", + "switchLayer": "Switch layer" +} diff --git a/src/assets/t9n/map-layer-picker/resources_es.json b/src/assets/t9n/map-layer-picker/resources_es.json new file mode 100644 index 000000000..168e24594 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_es.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "No se encontraron capas editables", + "enableEditUpdate": "Una o varias capas deben permitir la edición con la capacidad 'Actualizar'.", + "switchLayer": "Cambiar capa" +} diff --git a/src/assets/t9n/map-layer-picker/resources_et.json b/src/assets/t9n/map-layer-picker/resources_et.json new file mode 100644 index 000000000..e702f5818 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_et.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Muudetavaid kihte ei leitud", + "enableEditUpdate": "Üks või mitu kihti peavad toetama uuendamisfunktsiooni abil muutmist.", + "switchLayer": "Vaheta kihti" +} diff --git a/src/assets/t9n/map-layer-picker/resources_fi.json b/src/assets/t9n/map-layer-picker/resources_fi.json new file mode 100644 index 000000000..64b22b9cb --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_fi.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Muokattavia karttatasoja ei löytynyt", + "enableEditUpdate": "Vähintään yhden karttatason on tuettava muokkausta päivitysominaisuudella.", + "switchLayer": "Vaihda karttataso" +} diff --git a/src/assets/t9n/map-layer-picker/resources_fr.json b/src/assets/t9n/map-layer-picker/resources_fr.json new file mode 100644 index 000000000..b1aad13cd --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_fr.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Aucune couche modifiable trouvée", + "enableEditUpdate": "Une ou plusieurs couches doivent prendre en charge la modification avec la fonctionnalité 'Mise à jour'.", + "switchLayer": "Changer de couche" +} diff --git a/src/assets/t9n/map-layer-picker/resources_he.json b/src/assets/t9n/map-layer-picker/resources_he.json new file mode 100644 index 000000000..80df241e3 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_he.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "לא נמצאו שכבות הניתנות לעריכה", + "enableEditUpdate": "שכבה אחת או יותר חייבת לתמוך בעריכה באמצעות היכולת 'עדכון'.", + "switchLayer": "החלף שכבה" +} diff --git a/src/assets/t9n/map-layer-picker/resources_hr.json b/src/assets/t9n/map-layer-picker/resources_hr.json new file mode 100644 index 000000000..eba503022 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_hr.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nisu pronađeni slojevi koji se mogu uređivati", + "enableEditUpdate": "Jedan ili više slojeva moraju podržavati uređivanje s mogućnošću 'Ažuriraj'.", + "switchLayer": "Prebaci sloj" +} diff --git a/src/assets/t9n/map-layer-picker/resources_hu.json b/src/assets/t9n/map-layer-picker/resources_hu.json new file mode 100644 index 000000000..c085c091b --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_hu.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nem találhatók szerkeszthető rétegek", + "enableEditUpdate": "Egy vagy több rétegnek támogatnia kell a „Frissítés” funkcióval történő szerkesztést.", + "switchLayer": "Réteg váltása" +} diff --git a/src/assets/t9n/map-layer-picker/resources_id.json b/src/assets/t9n/map-layer-picker/resources_id.json new file mode 100644 index 000000000..48eb1cb71 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_id.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Tidak ditemukan layer yang dapat diedit", + "enableEditUpdate": "Satu atau lebih layer harus mendukung pengeditan dengan kemampuan 'Perbarui'.", + "switchLayer": "Ganti layer" +} diff --git a/src/assets/t9n/map-layer-picker/resources_it.json b/src/assets/t9n/map-layer-picker/resources_it.json new file mode 100644 index 000000000..af4f1de7f --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_it.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nessun layer modificabile trovato", + "enableEditUpdate": "Uno o più layer devono supportare la modifica con la funzionalità 'Aggiorna'.", + "switchLayer": "Cambia layer" +} diff --git a/src/assets/t9n/map-layer-picker/resources_ja.json b/src/assets/t9n/map-layer-picker/resources_ja.json new file mode 100644 index 000000000..baf227b7f --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_ja.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "編集可能なレイヤーが見つかりません", + "enableEditUpdate": "1 つ以上のレイヤーが、更新機能のある編集をサポートする必要があります。", + "switchLayer": "レイヤーの切り替え" +} diff --git a/src/assets/t9n/map-layer-picker/resources_ko.json b/src/assets/t9n/map-layer-picker/resources_ko.json new file mode 100644 index 000000000..39653f79c --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_ko.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "편집 가능한 레이어를 찾을 수 없음", + "enableEditUpdate": "하나 이상의 레이어가 '업데이트' 기능이 있는 편집을 지원해야 합니다.", + "switchLayer": "레이어 전환" +} diff --git a/src/assets/t9n/map-layer-picker/resources_lt.json b/src/assets/t9n/map-layer-picker/resources_lt.json new file mode 100644 index 000000000..b5693f53f --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_lt.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Redaguojamų sluoksnių nerasta", + "enableEditUpdate": "Vienas ar keli sluoksniai turi palaikyti redagavimą naudojant funkciją „Atnaujinti“.", + "switchLayer": "Perjungti sluoksnį" +} diff --git a/src/assets/t9n/map-layer-picker/resources_lv.json b/src/assets/t9n/map-layer-picker/resources_lv.json new file mode 100644 index 000000000..8b22bcebb --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_lv.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nav atrasts neviens rediģējams slānis", + "enableEditUpdate": "Vienam vai vairākiem slāņiem jāatbalsta rediģēšana, izmantojot atjaunināšanas iespēju.", + "switchLayer": "Pārslēgt slāni" +} diff --git a/src/assets/t9n/map-layer-picker/resources_nb.json b/src/assets/t9n/map-layer-picker/resources_nb.json new file mode 100644 index 000000000..ca48367f5 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_nb.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Finner ingen redigerbare lag", + "enableEditUpdate": "Ett eller flere lag må støtte redigering med \"Oppdater\"-egenskapen.", + "switchLayer": "Bytt lag" +} diff --git a/src/assets/t9n/map-layer-picker/resources_nl.json b/src/assets/t9n/map-layer-picker/resources_nl.json new file mode 100644 index 000000000..cefc2e042 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_nl.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Kan geen bewerkbare lagen vinden", + "enableEditUpdate": "Een of meer lagen moeten ondersteuning bieden voor bewerken met de optie 'Updaten'.", + "switchLayer": "Van laag wisselen" +} diff --git a/src/assets/t9n/map-layer-picker/resources_pl.json b/src/assets/t9n/map-layer-picker/resources_pl.json new file mode 100644 index 000000000..3037cc017 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_pl.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nie znaleziono warstw edytowalnych", + "enableEditUpdate": "Co najmniej jedna warstwa musi obsługiwać edycję z możliwością aktualizacji.", + "switchLayer": "Przełącz warstwę" +} diff --git a/src/assets/t9n/map-layer-picker/resources_pt-BR.json b/src/assets/t9n/map-layer-picker/resources_pt-BR.json new file mode 100644 index 000000000..7c595be3a --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_pt-BR.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nenhuma camada editável encontrada", + "enableEditUpdate": "Uma ou mais camadas devem suportar edição com o recurso 'Atualizar'.", + "switchLayer": "Trocar camada" +} diff --git a/src/assets/t9n/map-layer-picker/resources_pt-PT.json b/src/assets/t9n/map-layer-picker/resources_pt-PT.json new file mode 100644 index 000000000..b99d20f6b --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_pt-PT.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Não foram encontradas camadas editáveis", + "enableEditUpdate": "Uma ou mais camadas têm de suportar a edição com a capacidade \"Atualizar\".", + "switchLayer": "Alternar camada" +} diff --git a/src/assets/t9n/map-layer-picker/resources_ro.json b/src/assets/t9n/map-layer-picker/resources_ro.json new file mode 100644 index 000000000..a30048ba6 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_ro.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nu s-au găsit straturi tematice editabile", + "enableEditUpdate": "Unu sau mai multe straturi tematice trebuie să accepte editarea cu capacitatea „Actualizare”.", + "switchLayer": "Comutare strat tematic" +} diff --git a/src/assets/t9n/map-layer-picker/resources_ru.json b/src/assets/t9n/map-layer-picker/resources_ru.json new file mode 100644 index 000000000..f5c0ec095 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_ru.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Редактируемые слои не найдены", + "enableEditUpdate": "Один или несколько слоев должны поддерживать редактирование с возможностью 'Обновить'.", + "switchLayer": "Переключить слой" +} diff --git a/src/assets/t9n/map-layer-picker/resources_sk.json b/src/assets/t9n/map-layer-picker/resources_sk.json new file mode 100644 index 000000000..3ce168640 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_sk.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Neboli nájdené žiadne editovateľné vrstvy", + "enableEditUpdate": "Jedna alebo viac vrstiev musí podporovať editácie prostredníctvom vlastnosti 'Aktualizácia'.", + "switchLayer": "Prepnúť vrstvu" +} diff --git a/src/assets/t9n/map-layer-picker/resources_sl.json b/src/assets/t9n/map-layer-picker/resources_sl.json new file mode 100644 index 000000000..6202cbdad --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_sl.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Ni bilo najdenih uredljivih slojev", + "enableEditUpdate": "Eden ali več slojev mora podpirati urejanje z zmogljivostjo \"Posodobitve\".", + "switchLayer": "Preklopi sloj" +} diff --git a/src/assets/t9n/map-layer-picker/resources_sr.json b/src/assets/t9n/map-layer-picker/resources_sr.json new file mode 100644 index 000000000..a13c2883b --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_sr.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Nije pronađen nijedan sloj koji može da se uredi.", + "enableEditUpdate": "Jedan ili više slojeva moraju da podržavaju uređivanje sa mogućnošću „Ažuriraj“.", + "switchLayer": "Zameni sloj" +} diff --git a/src/assets/t9n/map-layer-picker/resources_sv.json b/src/assets/t9n/map-layer-picker/resources_sv.json new file mode 100644 index 000000000..681aeef6b --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_sv.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Inga redigerbara lager hittades", + "enableEditUpdate": "Ett eller flera lager måste ha stöd för redigering med uppdateringsfunktionen.", + "switchLayer": "Byt lager" +} diff --git a/src/assets/t9n/map-layer-picker/resources_th.json b/src/assets/t9n/map-layer-picker/resources_th.json new file mode 100644 index 000000000..35d1f1904 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_th.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "ไม่พบชั้นข้อมูลที่สามารถแก้ไขได้", + "enableEditUpdate": "อย่างน้อยหนึ่งชั้นข้อมูลต้องรองรับการแก้ไข โดยมีความสามารถ 'อัปเดต'", + "switchLayer": "สลับชั้นข้อมูล" +} diff --git a/src/assets/t9n/map-layer-picker/resources_tr.json b/src/assets/t9n/map-layer-picker/resources_tr.json new file mode 100644 index 000000000..b8c34f08e --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_tr.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Düzenlenebilir bir katman bulunamadı.", + "enableEditUpdate": "Bir veya daha fazla katman \"Güncelleme\" becerisi ile düzenlemeyi destekliyor olmalıdır.", + "switchLayer": "Katmanı değiştir" +} diff --git a/src/assets/t9n/map-layer-picker/resources_uk.json b/src/assets/t9n/map-layer-picker/resources_uk.json new file mode 100644 index 000000000..a97ca7989 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_uk.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Редаговані шари не знайдено", + "enableEditUpdate": "Один або більше шарів повинні підтримувати редагування з можливістю оновлення.", + "switchLayer": "Змінити шар" +} diff --git a/src/assets/t9n/map-layer-picker/resources_vi.json b/src/assets/t9n/map-layer-picker/resources_vi.json new file mode 100644 index 000000000..978acc68a --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_vi.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "Không tìm thấy lớp có thể chỉnh sửa", + "enableEditUpdate": "Một hoặc nhiều lớp phải hỗ trợ chỉnh sửa bằng khả năng 'Cập nhật'.", + "switchLayer": "Chuyển đổi lớp" +} diff --git a/src/assets/t9n/map-layer-picker/resources_zh-CN.json b/src/assets/t9n/map-layer-picker/resources_zh-CN.json new file mode 100644 index 000000000..e20332a83 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_zh-CN.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "未找到可编辑的图层", + "enableEditUpdate": "一个或多个图层必须支持使用“更新”功能进行编辑。", + "switchLayer": "切换图层" +} diff --git a/src/assets/t9n/map-layer-picker/resources_zh-HK.json b/src/assets/t9n/map-layer-picker/resources_zh-HK.json new file mode 100644 index 000000000..a0dda3648 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_zh-HK.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "找不到可編輯的圖層", + "enableEditUpdate": "一或多個圖層必須支援使用「更新」功能進行編輯。", + "switchLayer": "切換圖層" +} diff --git a/src/assets/t9n/map-layer-picker/resources_zh-TW.json b/src/assets/t9n/map-layer-picker/resources_zh-TW.json new file mode 100644 index 000000000..a0dda3648 --- /dev/null +++ b/src/assets/t9n/map-layer-picker/resources_zh-TW.json @@ -0,0 +1,5 @@ +{ + "noLayersFound": "找不到可編輯的圖層", + "enableEditUpdate": "一或多個圖層必須支援使用「更新」功能進行編輯。", + "switchLayer": "切換圖層" +} diff --git a/src/assets/t9n/map-picker/resources.json b/src/assets/t9n/map-picker/resources.json new file mode 100644 index 000000000..27d9cab9e --- /dev/null +++ b/src/assets/t9n/map-picker/resources.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Switch map" +} diff --git a/src/assets/t9n/map-picker/resources_ar.json b/src/assets/t9n/map-picker/resources_ar.json new file mode 100644 index 000000000..ac71969eb --- /dev/null +++ b/src/assets/t9n/map-picker/resources_ar.json @@ -0,0 +1,3 @@ +{ + "switchMap": "تبديل الخريطة" +} diff --git a/src/assets/t9n/map-picker/resources_bg.json b/src/assets/t9n/map-picker/resources_bg.json new file mode 100644 index 000000000..571f57b63 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_bg.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Превключване на карта" +} diff --git a/src/assets/t9n/map-picker/resources_bs.json b/src/assets/t9n/map-picker/resources_bs.json new file mode 100644 index 000000000..0fed6af09 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_bs.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Prebaci kartu" +} diff --git a/src/assets/t9n/map-picker/resources_ca.json b/src/assets/t9n/map-picker/resources_ca.json new file mode 100644 index 000000000..96044e14e --- /dev/null +++ b/src/assets/t9n/map-picker/resources_ca.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Canvia de mapa" +} diff --git a/src/assets/t9n/map-picker/resources_cs.json b/src/assets/t9n/map-picker/resources_cs.json new file mode 100644 index 000000000..e7a120c8e --- /dev/null +++ b/src/assets/t9n/map-picker/resources_cs.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Přepnout mapu" +} diff --git a/src/assets/t9n/map-picker/resources_da.json b/src/assets/t9n/map-picker/resources_da.json new file mode 100644 index 000000000..46a366f51 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_da.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Skift kort" +} diff --git a/src/assets/t9n/map-picker/resources_de.json b/src/assets/t9n/map-picker/resources_de.json new file mode 100644 index 000000000..29d70a43d --- /dev/null +++ b/src/assets/t9n/map-picker/resources_de.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Karte wechseln" +} diff --git a/src/assets/t9n/map-picker/resources_el.json b/src/assets/t9n/map-picker/resources_el.json new file mode 100644 index 000000000..2b9c46170 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_el.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Εναλλαγή χάρτη" +} diff --git a/src/assets/t9n/map-picker/resources_en.json b/src/assets/t9n/map-picker/resources_en.json new file mode 100644 index 000000000..27d9cab9e --- /dev/null +++ b/src/assets/t9n/map-picker/resources_en.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Switch map" +} diff --git a/src/assets/t9n/map-picker/resources_es.json b/src/assets/t9n/map-picker/resources_es.json new file mode 100644 index 000000000..8946c9438 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_es.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Cambiar mapa" +} diff --git a/src/assets/t9n/map-picker/resources_et.json b/src/assets/t9n/map-picker/resources_et.json new file mode 100644 index 000000000..fbb5d1343 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_et.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Vaheta kaarti" +} diff --git a/src/assets/t9n/map-picker/resources_fi.json b/src/assets/t9n/map-picker/resources_fi.json new file mode 100644 index 000000000..9eb26c6c5 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_fi.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Vaihda kartta" +} diff --git a/src/assets/t9n/map-picker/resources_fr.json b/src/assets/t9n/map-picker/resources_fr.json new file mode 100644 index 000000000..e35d978fb --- /dev/null +++ b/src/assets/t9n/map-picker/resources_fr.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Changer de carte" +} diff --git a/src/assets/t9n/map-picker/resources_he.json b/src/assets/t9n/map-picker/resources_he.json new file mode 100644 index 000000000..3b25f67fa --- /dev/null +++ b/src/assets/t9n/map-picker/resources_he.json @@ -0,0 +1,3 @@ +{ + "switchMap": "החלף מפה" +} diff --git a/src/assets/t9n/map-picker/resources_hr.json b/src/assets/t9n/map-picker/resources_hr.json new file mode 100644 index 000000000..0fed6af09 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_hr.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Prebaci kartu" +} diff --git a/src/assets/t9n/map-picker/resources_hu.json b/src/assets/t9n/map-picker/resources_hu.json new file mode 100644 index 000000000..30bf3a3de --- /dev/null +++ b/src/assets/t9n/map-picker/resources_hu.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Térkép váltása" +} diff --git a/src/assets/t9n/map-picker/resources_id.json b/src/assets/t9n/map-picker/resources_id.json new file mode 100644 index 000000000..ec1effed1 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_id.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Beralih peta" +} diff --git a/src/assets/t9n/map-picker/resources_it.json b/src/assets/t9n/map-picker/resources_it.json new file mode 100644 index 000000000..583dd3bac --- /dev/null +++ b/src/assets/t9n/map-picker/resources_it.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Cambia mappa" +} diff --git a/src/assets/t9n/map-picker/resources_ja.json b/src/assets/t9n/map-picker/resources_ja.json new file mode 100644 index 000000000..0262840bf --- /dev/null +++ b/src/assets/t9n/map-picker/resources_ja.json @@ -0,0 +1,3 @@ +{ + "switchMap": "マップの切り替え" +} diff --git a/src/assets/t9n/map-picker/resources_ko.json b/src/assets/t9n/map-picker/resources_ko.json new file mode 100644 index 000000000..74707bb7b --- /dev/null +++ b/src/assets/t9n/map-picker/resources_ko.json @@ -0,0 +1,3 @@ +{ + "switchMap": "맵 전환" +} diff --git a/src/assets/t9n/map-picker/resources_lt.json b/src/assets/t9n/map-picker/resources_lt.json new file mode 100644 index 000000000..b505f858b --- /dev/null +++ b/src/assets/t9n/map-picker/resources_lt.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Perjungti žemėlapį" +} diff --git a/src/assets/t9n/map-picker/resources_lv.json b/src/assets/t9n/map-picker/resources_lv.json new file mode 100644 index 000000000..c81df6dd9 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_lv.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Pārslēgt karti" +} diff --git a/src/assets/t9n/map-picker/resources_nb.json b/src/assets/t9n/map-picker/resources_nb.json new file mode 100644 index 000000000..c21bff464 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_nb.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Bytt kart" +} diff --git a/src/assets/t9n/map-picker/resources_nl.json b/src/assets/t9n/map-picker/resources_nl.json new file mode 100644 index 000000000..656a43c12 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_nl.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Van kaart wisselen" +} diff --git a/src/assets/t9n/map-picker/resources_pl.json b/src/assets/t9n/map-picker/resources_pl.json new file mode 100644 index 000000000..5062a6dc3 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_pl.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Przełącz mapę" +} diff --git a/src/assets/t9n/map-picker/resources_pt-BR.json b/src/assets/t9n/map-picker/resources_pt-BR.json new file mode 100644 index 000000000..9aac9c113 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_pt-BR.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Trocar mapa" +} diff --git a/src/assets/t9n/map-picker/resources_pt-PT.json b/src/assets/t9n/map-picker/resources_pt-PT.json new file mode 100644 index 000000000..b8b31c6d0 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_pt-PT.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Mudar de mapa" +} diff --git a/src/assets/t9n/map-picker/resources_ro.json b/src/assets/t9n/map-picker/resources_ro.json new file mode 100644 index 000000000..7155dc46d --- /dev/null +++ b/src/assets/t9n/map-picker/resources_ro.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Comutare hartă" +} diff --git a/src/assets/t9n/map-picker/resources_ru.json b/src/assets/t9n/map-picker/resources_ru.json new file mode 100644 index 000000000..f74227738 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_ru.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Переключить карту" +} diff --git a/src/assets/t9n/map-picker/resources_sk.json b/src/assets/t9n/map-picker/resources_sk.json new file mode 100644 index 000000000..0228278b6 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_sk.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Prepnúť mapu" +} diff --git a/src/assets/t9n/map-picker/resources_sl.json b/src/assets/t9n/map-picker/resources_sl.json new file mode 100644 index 000000000..592b84b6a --- /dev/null +++ b/src/assets/t9n/map-picker/resources_sl.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Preklopi karto" +} diff --git a/src/assets/t9n/map-picker/resources_sr.json b/src/assets/t9n/map-picker/resources_sr.json new file mode 100644 index 000000000..158c2b191 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_sr.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Promeni mapu" +} diff --git a/src/assets/t9n/map-picker/resources_sv.json b/src/assets/t9n/map-picker/resources_sv.json new file mode 100644 index 000000000..f53f5055d --- /dev/null +++ b/src/assets/t9n/map-picker/resources_sv.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Växla karta" +} diff --git a/src/assets/t9n/map-picker/resources_th.json b/src/assets/t9n/map-picker/resources_th.json new file mode 100644 index 000000000..347cf0101 --- /dev/null +++ b/src/assets/t9n/map-picker/resources_th.json @@ -0,0 +1,3 @@ +{ + "switchMap": "สลับแผนที่" +} diff --git a/src/assets/t9n/map-picker/resources_tr.json b/src/assets/t9n/map-picker/resources_tr.json new file mode 100644 index 000000000..b17805c4b --- /dev/null +++ b/src/assets/t9n/map-picker/resources_tr.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Haritayı değiştir" +} diff --git a/src/assets/t9n/map-picker/resources_uk.json b/src/assets/t9n/map-picker/resources_uk.json new file mode 100644 index 000000000..36c3ad17e --- /dev/null +++ b/src/assets/t9n/map-picker/resources_uk.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Перемкнути карту" +} diff --git a/src/assets/t9n/map-picker/resources_vi.json b/src/assets/t9n/map-picker/resources_vi.json new file mode 100644 index 000000000..cc359475a --- /dev/null +++ b/src/assets/t9n/map-picker/resources_vi.json @@ -0,0 +1,3 @@ +{ + "switchMap": "Chuyển bản đồ" +} diff --git a/src/assets/t9n/map-picker/resources_zh-CN.json b/src/assets/t9n/map-picker/resources_zh-CN.json new file mode 100644 index 000000000..7d76a785c --- /dev/null +++ b/src/assets/t9n/map-picker/resources_zh-CN.json @@ -0,0 +1,3 @@ +{ + "switchMap": "切换地图" +} diff --git a/src/assets/t9n/map-picker/resources_zh-HK.json b/src/assets/t9n/map-picker/resources_zh-HK.json new file mode 100644 index 000000000..19bca7b0c --- /dev/null +++ b/src/assets/t9n/map-picker/resources_zh-HK.json @@ -0,0 +1,3 @@ +{ + "switchMap": "切換地圖" +} diff --git a/src/assets/t9n/map-picker/resources_zh-TW.json b/src/assets/t9n/map-picker/resources_zh-TW.json new file mode 100644 index 000000000..19bca7b0c --- /dev/null +++ b/src/assets/t9n/map-picker/resources_zh-TW.json @@ -0,0 +1,3 @@ +{ + "switchMap": "切換地圖" +} diff --git a/src/assets/t9n/map-search/resources_ar.json b/src/assets/t9n/map-search/resources_ar.json new file mode 100644 index 000000000..07f0a5ad4 --- /dev/null +++ b/src/assets/t9n/map-search/resources_ar.json @@ -0,0 +1,3 @@ +{ + "search": "بحث" +} diff --git a/src/assets/t9n/map-search/resources_bg.json b/src/assets/t9n/map-search/resources_bg.json new file mode 100644 index 000000000..d4f66040f --- /dev/null +++ b/src/assets/t9n/map-search/resources_bg.json @@ -0,0 +1,3 @@ +{ + "search": "Търсене" +} diff --git a/src/assets/t9n/map-search/resources_bs.json b/src/assets/t9n/map-search/resources_bs.json new file mode 100644 index 000000000..5dd61a955 --- /dev/null +++ b/src/assets/t9n/map-search/resources_bs.json @@ -0,0 +1,3 @@ +{ + "search": "Pretraživanje" +} diff --git a/src/assets/t9n/map-search/resources_ca.json b/src/assets/t9n/map-search/resources_ca.json new file mode 100644 index 000000000..398861dd4 --- /dev/null +++ b/src/assets/t9n/map-search/resources_ca.json @@ -0,0 +1,3 @@ +{ + "search": "Cerca" +} diff --git a/src/assets/t9n/map-search/resources_cs.json b/src/assets/t9n/map-search/resources_cs.json new file mode 100644 index 000000000..8116e2323 --- /dev/null +++ b/src/assets/t9n/map-search/resources_cs.json @@ -0,0 +1,3 @@ +{ + "search": "Vyhledávání" +} diff --git a/src/assets/t9n/map-search/resources_da.json b/src/assets/t9n/map-search/resources_da.json new file mode 100644 index 000000000..dffdb9cb1 --- /dev/null +++ b/src/assets/t9n/map-search/resources_da.json @@ -0,0 +1,3 @@ +{ + "search": "Søg" +} diff --git a/src/assets/t9n/map-search/resources_de.json b/src/assets/t9n/map-search/resources_de.json new file mode 100644 index 000000000..b6d5b82d3 --- /dev/null +++ b/src/assets/t9n/map-search/resources_de.json @@ -0,0 +1,3 @@ +{ + "search": "Suchen" +} diff --git a/src/assets/t9n/map-search/resources_el.json b/src/assets/t9n/map-search/resources_el.json new file mode 100644 index 000000000..2ff811f1b --- /dev/null +++ b/src/assets/t9n/map-search/resources_el.json @@ -0,0 +1,3 @@ +{ + "search": "Αναζήτηση" +} diff --git a/src/assets/t9n/map-search/resources_es.json b/src/assets/t9n/map-search/resources_es.json new file mode 100644 index 000000000..af06ece09 --- /dev/null +++ b/src/assets/t9n/map-search/resources_es.json @@ -0,0 +1,3 @@ +{ + "search": "Buscar" +} diff --git a/src/assets/t9n/map-search/resources_et.json b/src/assets/t9n/map-search/resources_et.json new file mode 100644 index 000000000..e11f1522b --- /dev/null +++ b/src/assets/t9n/map-search/resources_et.json @@ -0,0 +1,3 @@ +{ + "search": "Otsing" +} diff --git a/src/assets/t9n/map-search/resources_fi.json b/src/assets/t9n/map-search/resources_fi.json new file mode 100644 index 000000000..9fd1f9ce6 --- /dev/null +++ b/src/assets/t9n/map-search/resources_fi.json @@ -0,0 +1,3 @@ +{ + "search": "Hae" +} diff --git a/src/assets/t9n/map-search/resources_fr.json b/src/assets/t9n/map-search/resources_fr.json new file mode 100644 index 000000000..37e8007e6 --- /dev/null +++ b/src/assets/t9n/map-search/resources_fr.json @@ -0,0 +1,3 @@ +{ + "search": "Rechercher" +} diff --git a/src/assets/t9n/map-search/resources_he.json b/src/assets/t9n/map-search/resources_he.json new file mode 100644 index 000000000..8fec065bc --- /dev/null +++ b/src/assets/t9n/map-search/resources_he.json @@ -0,0 +1,3 @@ +{ + "search": "חיפוש" +} diff --git a/src/assets/t9n/map-search/resources_hr.json b/src/assets/t9n/map-search/resources_hr.json new file mode 100644 index 000000000..5dd61a955 --- /dev/null +++ b/src/assets/t9n/map-search/resources_hr.json @@ -0,0 +1,3 @@ +{ + "search": "Pretraživanje" +} diff --git a/src/assets/t9n/map-search/resources_hu.json b/src/assets/t9n/map-search/resources_hu.json new file mode 100644 index 000000000..6e47e7397 --- /dev/null +++ b/src/assets/t9n/map-search/resources_hu.json @@ -0,0 +1,3 @@ +{ + "search": "Keresés" +} diff --git a/src/assets/t9n/map-search/resources_id.json b/src/assets/t9n/map-search/resources_id.json new file mode 100644 index 000000000..f03e97b7d --- /dev/null +++ b/src/assets/t9n/map-search/resources_id.json @@ -0,0 +1,3 @@ +{ + "search": "Cari" +} diff --git a/src/assets/t9n/map-search/resources_it.json b/src/assets/t9n/map-search/resources_it.json new file mode 100644 index 000000000..398861dd4 --- /dev/null +++ b/src/assets/t9n/map-search/resources_it.json @@ -0,0 +1,3 @@ +{ + "search": "Cerca" +} diff --git a/src/assets/t9n/map-search/resources_ja.json b/src/assets/t9n/map-search/resources_ja.json new file mode 100644 index 000000000..f36f76d61 --- /dev/null +++ b/src/assets/t9n/map-search/resources_ja.json @@ -0,0 +1,3 @@ +{ + "search": "検索" +} diff --git a/src/assets/t9n/map-search/resources_ko.json b/src/assets/t9n/map-search/resources_ko.json new file mode 100644 index 000000000..d8fe5c232 --- /dev/null +++ b/src/assets/t9n/map-search/resources_ko.json @@ -0,0 +1,3 @@ +{ + "search": "검색" +} diff --git a/src/assets/t9n/map-search/resources_lt.json b/src/assets/t9n/map-search/resources_lt.json new file mode 100644 index 000000000..8a28ae7a6 --- /dev/null +++ b/src/assets/t9n/map-search/resources_lt.json @@ -0,0 +1,3 @@ +{ + "search": "Ieškoti" +} diff --git a/src/assets/t9n/map-search/resources_lv.json b/src/assets/t9n/map-search/resources_lv.json new file mode 100644 index 000000000..b792e8efd --- /dev/null +++ b/src/assets/t9n/map-search/resources_lv.json @@ -0,0 +1,3 @@ +{ + "search": "Meklēt" +} diff --git a/src/assets/t9n/map-search/resources_nb.json b/src/assets/t9n/map-search/resources_nb.json new file mode 100644 index 000000000..25d652cb7 --- /dev/null +++ b/src/assets/t9n/map-search/resources_nb.json @@ -0,0 +1,3 @@ +{ + "search": "Søk" +} diff --git a/src/assets/t9n/map-search/resources_nl.json b/src/assets/t9n/map-search/resources_nl.json new file mode 100644 index 000000000..90736bccb --- /dev/null +++ b/src/assets/t9n/map-search/resources_nl.json @@ -0,0 +1,3 @@ +{ + "search": "Zoeken" +} diff --git a/src/assets/t9n/map-search/resources_pl.json b/src/assets/t9n/map-search/resources_pl.json new file mode 100644 index 000000000..dfaba16f1 --- /dev/null +++ b/src/assets/t9n/map-search/resources_pl.json @@ -0,0 +1,3 @@ +{ + "search": "Szukaj" +} diff --git a/src/assets/t9n/map-search/resources_pt-BR.json b/src/assets/t9n/map-search/resources_pt-BR.json new file mode 100644 index 000000000..b1cfdab8e --- /dev/null +++ b/src/assets/t9n/map-search/resources_pt-BR.json @@ -0,0 +1,3 @@ +{ + "search": "Pesquisar" +} diff --git a/src/assets/t9n/map-search/resources_pt-PT.json b/src/assets/t9n/map-search/resources_pt-PT.json new file mode 100644 index 000000000..b1cfdab8e --- /dev/null +++ b/src/assets/t9n/map-search/resources_pt-PT.json @@ -0,0 +1,3 @@ +{ + "search": "Pesquisar" +} diff --git a/src/assets/t9n/map-search/resources_ro.json b/src/assets/t9n/map-search/resources_ro.json new file mode 100644 index 000000000..9606a4449 --- /dev/null +++ b/src/assets/t9n/map-search/resources_ro.json @@ -0,0 +1,3 @@ +{ + "search": "Căutare" +} diff --git a/src/assets/t9n/map-search/resources_ru.json b/src/assets/t9n/map-search/resources_ru.json new file mode 100644 index 000000000..1373ea510 --- /dev/null +++ b/src/assets/t9n/map-search/resources_ru.json @@ -0,0 +1,3 @@ +{ + "search": "Поиск" +} diff --git a/src/assets/t9n/map-search/resources_sk.json b/src/assets/t9n/map-search/resources_sk.json new file mode 100644 index 000000000..17933bd61 --- /dev/null +++ b/src/assets/t9n/map-search/resources_sk.json @@ -0,0 +1,3 @@ +{ + "search": "Vyhľadať" +} diff --git a/src/assets/t9n/map-search/resources_sl.json b/src/assets/t9n/map-search/resources_sl.json new file mode 100644 index 000000000..1432b46a5 --- /dev/null +++ b/src/assets/t9n/map-search/resources_sl.json @@ -0,0 +1,3 @@ +{ + "search": "Iskanje" +} diff --git a/src/assets/t9n/map-search/resources_sr.json b/src/assets/t9n/map-search/resources_sr.json new file mode 100644 index 000000000..617fd092a --- /dev/null +++ b/src/assets/t9n/map-search/resources_sr.json @@ -0,0 +1,3 @@ +{ + "search": "Pretraži" +} diff --git a/src/assets/t9n/map-search/resources_sv.json b/src/assets/t9n/map-search/resources_sv.json new file mode 100644 index 000000000..f5cfb06fd --- /dev/null +++ b/src/assets/t9n/map-search/resources_sv.json @@ -0,0 +1,3 @@ +{ + "search": "Sök" +} diff --git a/src/assets/t9n/map-search/resources_th.json b/src/assets/t9n/map-search/resources_th.json new file mode 100644 index 000000000..c7216b575 --- /dev/null +++ b/src/assets/t9n/map-search/resources_th.json @@ -0,0 +1,3 @@ +{ + "search": "ค้นหา" +} diff --git a/src/assets/t9n/map-search/resources_tr.json b/src/assets/t9n/map-search/resources_tr.json new file mode 100644 index 000000000..ae916d4ea --- /dev/null +++ b/src/assets/t9n/map-search/resources_tr.json @@ -0,0 +1,3 @@ +{ + "search": "Ara" +} diff --git a/src/assets/t9n/map-search/resources_uk.json b/src/assets/t9n/map-search/resources_uk.json new file mode 100644 index 000000000..25c8d06cf --- /dev/null +++ b/src/assets/t9n/map-search/resources_uk.json @@ -0,0 +1,3 @@ +{ + "search": "Пошук" +} diff --git a/src/assets/t9n/map-search/resources_vi.json b/src/assets/t9n/map-search/resources_vi.json new file mode 100644 index 000000000..ee3936522 --- /dev/null +++ b/src/assets/t9n/map-search/resources_vi.json @@ -0,0 +1,3 @@ +{ + "search": "Tìm kiếm" +} diff --git a/src/assets/t9n/map-search/resources_zh-CN.json b/src/assets/t9n/map-search/resources_zh-CN.json new file mode 100644 index 000000000..f42df5c99 --- /dev/null +++ b/src/assets/t9n/map-search/resources_zh-CN.json @@ -0,0 +1,3 @@ +{ + "search": "搜索" +} diff --git a/src/assets/t9n/map-search/resources_zh-HK.json b/src/assets/t9n/map-search/resources_zh-HK.json new file mode 100644 index 000000000..dc54c1add --- /dev/null +++ b/src/assets/t9n/map-search/resources_zh-HK.json @@ -0,0 +1,3 @@ +{ + "search": "搜尋" +} diff --git a/src/assets/t9n/map-search/resources_zh-TW.json b/src/assets/t9n/map-search/resources_zh-TW.json new file mode 100644 index 000000000..dc54c1add --- /dev/null +++ b/src/assets/t9n/map-search/resources_zh-TW.json @@ -0,0 +1,3 @@ +{ + "search": "搜尋" +} diff --git a/src/assets/t9n/map-select-tools/resources.json b/src/assets/t9n/map-select-tools/resources.json index 9cda8ed50..ed0b4c413 100644 --- a/src/assets/t9n/map-select-tools/resources.json +++ b/src/assets/t9n/map-select-tools/resources.json @@ -11,5 +11,6 @@ "useLayerFeatures": "Use layer features", "inputLayer": "Input layer", "useLayerFeaturesTooltip": "Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer.", - "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer." + "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer.", + "placeholder": "Find address or place" } diff --git a/src/assets/t9n/map-select-tools/resources_ar.json b/src/assets/t9n/map-select-tools/resources_ar.json index e20040fdd..06a0e1a5a 100644 --- a/src/assets/t9n/map-select-tools/resources_ar.json +++ b/src/assets/t9n/map-select-tools/resources_ar.json @@ -10,6 +10,7 @@ "sketchLayer": "طبقة المخطط", "useLayerFeatures": "استخدام معالم الطبقة", "inputLayer": "الطبقة المدخلة", - "useLayerFeaturesTooltip": "بيت_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________لاحقة.", - "useSearchDistanceTootip": "بيت_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________لاحقة." + "useLayerFeaturesTooltip": "اختر طبقة واستخدم أدوات الرسم للإشارة إلى المعالم التي يمكن استخدامها كحدود لتحديد المعالم المتقاطعة من طبقة الإدخال.", + "useSearchDistanceTootip": "حدد مسافة لنطاق البحث والتي ستحدد المعالم المدخلة التي تتقاطع مع النطاق.", + "placeholder": "العثور على عنوان أو مكان" } diff --git a/src/assets/t9n/map-select-tools/resources_bg.json b/src/assets/t9n/map-select-tools/resources_bg.json index ebd44d346..57be9077a 100644 --- a/src/assets/t9n/map-select-tools/resources_bg.json +++ b/src/assets/t9n/map-select-tools/resources_bg.json @@ -10,6 +10,7 @@ "sketchLayer": "Слой със скица", "useLayerFeatures": "Използване на обекти на слоя", "inputLayer": "Входен слой", - "useLayerFeaturesTooltip": "й_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________й.", - "useSearchDistanceTootip": "й_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________й." + "useLayerFeaturesTooltip": "Изберете слой и използвайте инструментите за скициране, за да посочите обекти, които могат да се използват като граница за селекция на пресичащи се обекти от входния слой.", + "useSearchDistanceTootip": "Дефиниране на разстояние за буфер за търсене, при което се селектират входни обекти, които пресичат буфера.", + "placeholder": "Намиране на адрес или населено място" } diff --git a/src/assets/t9n/map-select-tools/resources_bs.json b/src/assets/t9n/map-select-tools/resources_bs.json index 00933e6a9..9927095aa 100644 --- a/src/assets/t9n/map-select-tools/resources_bs.json +++ b/src/assets/t9n/map-select-tools/resources_bs.json @@ -10,6 +10,7 @@ "sketchLayer": "Sloj skice", "useLayerFeatures": "Upotrijebi geoobjekte sloja", "inputLayer": "Unesi sloj", - "useLayerFeaturesTooltip": "Č_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ž.", - "useSearchDistanceTootip": "Č_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ž." + "useLayerFeaturesTooltip": "Odaberite sloj i pomoću alata za skiciranje pokažite na geoobjekte koji se mogu koristiti kao granice za odabir geoobjekata koji se presijecaju iz ulaznog sloja.", + "useSearchDistanceTootip": "Definirajte udaljenost za pojas pretraživanja koji će odabrati ulazne geoobjekte koji sijeku pojas.", + "placeholder": "Pronađi adresu ili mjesto" } diff --git a/src/assets/t9n/map-select-tools/resources_ca.json b/src/assets/t9n/map-select-tools/resources_ca.json index c24467751..55ed7ac2f 100644 --- a/src/assets/t9n/map-select-tools/resources_ca.json +++ b/src/assets/t9n/map-select-tools/resources_ca.json @@ -10,6 +10,7 @@ "sketchLayer": "Capa d'esbós", "useLayerFeatures": "Utilitza entitats de la capa", "inputLayer": "Capa d'entrada", - "useLayerFeaturesTooltip": "ó_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________à.", - "useSearchDistanceTootip": "ó_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________à." + "useLayerFeaturesTooltip": "Trieu una capa i feu servir les eines d'esbós per apuntar a entitats que es poden fer servir com a límits per seleccionar les entitats intersecants de la capa d'entrada.", + "useSearchDistanceTootip": "Definiu la distància d'una àrea d'influència de cerca que seleccionarà les entitats d'entrada que intersequen amb l'àrea d'influència.", + "placeholder": "Cerca una adreça o un lloc" } diff --git a/src/assets/t9n/map-select-tools/resources_cs.json b/src/assets/t9n/map-select-tools/resources_cs.json index 55b5053aa..1d43ceabd 100644 --- a/src/assets/t9n/map-select-tools/resources_cs.json +++ b/src/assets/t9n/map-select-tools/resources_cs.json @@ -10,6 +10,7 @@ "sketchLayer": "Vrstva skici", "useLayerFeatures": "Použít prvky vrstvy", "inputLayer": "Vstupní vrstva", - "useLayerFeaturesTooltip": "Ř_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ů.", - "useSearchDistanceTootip": "Ř_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ů." + "useLayerFeaturesTooltip": "Zvolte vrstvu a pomocí nástrojů skicování označte prvky, které lze použít jako hranici pro výběr protínajících prvků ze vstupní vrstvy.", + "useSearchDistanceTootip": "Definujte vzdálenost pro vyhledávací obalovou zónu, pomocí níž lze vybrat vstupní prvky, které tuto obalovou zónu protínají.", + "placeholder": "Najít adresu nebo místo" } diff --git a/src/assets/t9n/map-select-tools/resources_da.json b/src/assets/t9n/map-select-tools/resources_da.json index 17395d29e..62ac7b013 100644 --- a/src/assets/t9n/map-select-tools/resources_da.json +++ b/src/assets/t9n/map-select-tools/resources_da.json @@ -10,6 +10,7 @@ "sketchLayer": "Skitselag", "useLayerFeatures": "Brug lagobjekter", "inputLayer": "Input-lag", - "useLayerFeaturesTooltip": "ø_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________å.", - "useSearchDistanceTootip": "ø_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________å." + "useLayerFeaturesTooltip": "Vælg et lag, og brug skitseværktøjerne til at pege på objekter, der kan bruges som en grænse til at vælge gennemskærende objekter fra inputlaget.", + "useSearchDistanceTootip": "Definer en afstand til en søgebuffer, som vil vælge de inputobjekter, der gennemskærer bufferen.", + "placeholder": "Find adresse eller sted" } diff --git a/src/assets/t9n/map-select-tools/resources_de.json b/src/assets/t9n/map-select-tools/resources_de.json index 84f206b94..2e7b03583 100644 --- a/src/assets/t9n/map-select-tools/resources_de.json +++ b/src/assets/t9n/map-select-tools/resources_de.json @@ -10,6 +10,7 @@ "sketchLayer": "Skizzen-Layer", "useLayerFeatures": "Layer-Features verwenden", "inputLayer": "Eingabe-Layer", - "useLayerFeaturesTooltip": "ä_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Ü.", - "useSearchDistanceTootip": "ä_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Ü." + "useLayerFeaturesTooltip": "Wählen Sie einen Layer aus, und verwenden Sie die Skizzenwerkzeuge, um auf Features zu zeigen, die als Grenze verwendet werden können, um überschneidende Features aus dem Eingabe-Layer auszuwählen.", + "useSearchDistanceTootip": "Definieren Sie einen Abstand für einen Suchpuffer zur Auswahl von Eingabe-Features, die den Puffer überschneiden.", + "placeholder": "Adresse oder Ort suchen" } diff --git a/src/assets/t9n/map-select-tools/resources_el.json b/src/assets/t9n/map-select-tools/resources_el.json index 6ab99e287..6abbd77fd 100644 --- a/src/assets/t9n/map-select-tools/resources_el.json +++ b/src/assets/t9n/map-select-tools/resources_el.json @@ -10,6 +10,7 @@ "sketchLayer": "Θεματικό επίπεδο σχεδίασης", "useLayerFeatures": "Χρήση στοιχείων θεματικών επιπέδων", "inputLayer": "Θεματικό επίπεδο εισόδου", - "useLayerFeaturesTooltip": "Đ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ớ.", - "useSearchDistanceTootip": "Đ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ớ." + "useLayerFeaturesTooltip": "Επιλέξτε ένα θεματικό επίπεδο και χρησιμοποιήστε τα εργαλεία σχεδίασης για να υποδείξετε χαρακτηριστικά που μπορούν να χρησιμοποιηθούν ως όριο για την επιλογή τεμνόμενων χαρακτηριστικών από το θεματικό επίπεδο εισόδου.", + "useSearchDistanceTootip": "Καθορίστε μια απόσταση για μία προσωρινή αναζήτηση που θα επιλέξει χαρακτηριστικά εισόδου που τέμνουν την προσωρινή.", + "placeholder": "Αναζήτησης διεύθυνσης ή τοποθεσίας" } diff --git a/src/assets/t9n/map-select-tools/resources_en.json b/src/assets/t9n/map-select-tools/resources_en.json index 9cda8ed50..ed0b4c413 100644 --- a/src/assets/t9n/map-select-tools/resources_en.json +++ b/src/assets/t9n/map-select-tools/resources_en.json @@ -11,5 +11,6 @@ "useLayerFeatures": "Use layer features", "inputLayer": "Input layer", "useLayerFeaturesTooltip": "Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer.", - "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer." + "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer.", + "placeholder": "Find address or place" } diff --git a/src/assets/t9n/map-select-tools/resources_es.json b/src/assets/t9n/map-select-tools/resources_es.json index a6b18d2a2..f35db3654 100644 --- a/src/assets/t9n/map-select-tools/resources_es.json +++ b/src/assets/t9n/map-select-tools/resources_es.json @@ -10,6 +10,7 @@ "sketchLayer": "Capa de boceto", "useLayerFeatures": "Usar entidades de capa", "inputLayer": "Capa de entrada", - "useLayerFeaturesTooltip": "á_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Ó.", - "useSearchDistanceTootip": "á_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Ó." + "useLayerFeaturesTooltip": "Elija una capa y utilice la herramienta de bosquejo para señalar las entidades que se pueden utilizar como límites con el fin de seleccionar entidades intersecantes de la capa de entrada.", + "useSearchDistanceTootip": "Defina una distancia para la zona de influencia de búsqueda que seleccionará las entidades de entrada que cortan la zona de influencia.", + "placeholder": "Buscar dirección o lugar" } diff --git a/src/assets/t9n/map-select-tools/resources_et.json b/src/assets/t9n/map-select-tools/resources_et.json index ba095dc47..9172ea941 100644 --- a/src/assets/t9n/map-select-tools/resources_et.json +++ b/src/assets/t9n/map-select-tools/resources_et.json @@ -10,6 +10,7 @@ "sketchLayer": "Visandikiht", "useLayerFeatures": "Kasuta kihi objekte", "inputLayer": "Sisendkiht", - "useLayerFeaturesTooltip": "Š_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ä.", - "useSearchDistanceTootip": "Š_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ä." + "useLayerFeaturesTooltip": "Valige kiht ja kasutage visandustööriistu, et osutada objektidele, mida saab kasutada piirina lõikuvate objektide valimiseks sisendkihilt.", + "useSearchDistanceTootip": "Määrake otsingupuhvri kaugus, millega valitakse puhvriga lõikuvad sisendobjektid.", + "placeholder": "Otsi aadressi või kohta" } diff --git a/src/assets/t9n/map-select-tools/resources_fi.json b/src/assets/t9n/map-select-tools/resources_fi.json index 2fb8751e8..569775b87 100644 --- a/src/assets/t9n/map-select-tools/resources_fi.json +++ b/src/assets/t9n/map-select-tools/resources_fi.json @@ -10,6 +10,7 @@ "sketchLayer": "Luonnoskarttataso", "useLayerFeatures": "Käytä karttatason kohteita", "inputLayer": "Lähtöaineiston karttataso", - "useLayerFeaturesTooltip": "Å_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ö.", - "useSearchDistanceTootip": "Å_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ö." + "useLayerFeaturesTooltip": "Valitse leikkaavia kohteita lähtöaineiston karttatasosta valitsemalla karttataso ja käyttämällä luonnostyökaluja, joilla voidaan osoittaa rajana käytettäviin kohteisiin.", + "useSearchDistanceTootip": "Määritä etäisyys hakupuskurille, joka valitsee puskurin leikkaavat lähtöaineiston kohteet.", + "placeholder": "Etsi osoite tai paikka" } diff --git a/src/assets/t9n/map-select-tools/resources_fr.json b/src/assets/t9n/map-select-tools/resources_fr.json index 4ffc8f33a..2d814a631 100644 --- a/src/assets/t9n/map-select-tools/resources_fr.json +++ b/src/assets/t9n/map-select-tools/resources_fr.json @@ -10,6 +10,7 @@ "sketchLayer": "Couche de dessin", "useLayerFeatures": "Utiliser des entités de la couche", "inputLayer": "Couche en entrée", - "useLayerFeaturesTooltip": "æ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Â.", - "useSearchDistanceTootip": "æ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Â." + "useLayerFeaturesTooltip": "Choisir une couche et utiliser les outils de dessin afin de désigner les entités qui peuvent être utilisées comme limites pour sélectionner les entités d’intersection dans la couche en entrée.", + "useSearchDistanceTootip": "Définir une distance pour une zone tampon de recherche qui servira à sélectionner les entités en entrée qui intersectent la zone tampon.", + "placeholder": "Rechercher une adresse ou un lieu" } diff --git a/src/assets/t9n/map-select-tools/resources_he.json b/src/assets/t9n/map-select-tools/resources_he.json index 8b23df8eb..8adbb9853 100644 --- a/src/assets/t9n/map-select-tools/resources_he.json +++ b/src/assets/t9n/map-select-tools/resources_he.json @@ -10,6 +10,7 @@ "sketchLayer": "שכבת שרטוט", "useLayerFeatures": "השתמש בישויות שכבה", "inputLayer": "שכבת קלט", - "useLayerFeaturesTooltip": "כן_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ש.", - "useSearchDistanceTootip": "כן_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ש." + "useLayerFeaturesTooltip": "בחר שכבה והשתמש בכלי הסקיצה כדי להצביע על ישויות שיכולות לשמש כגבול לצורך בחירת ישויות מצטלבות מתוך שכבת הקלט.", + "useSearchDistanceTootip": "הגדר מרחק לכל חיץ חיפוש שישמש לבחירת ישויות קלט המצטלבות עם החיץ.", + "placeholder": "חיפוש כתובת או מקום" } diff --git a/src/assets/t9n/map-select-tools/resources_hr.json b/src/assets/t9n/map-select-tools/resources_hr.json index 00933e6a9..9927095aa 100644 --- a/src/assets/t9n/map-select-tools/resources_hr.json +++ b/src/assets/t9n/map-select-tools/resources_hr.json @@ -10,6 +10,7 @@ "sketchLayer": "Sloj skice", "useLayerFeatures": "Upotrijebi geoobjekte sloja", "inputLayer": "Unesi sloj", - "useLayerFeaturesTooltip": "Č_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ž.", - "useSearchDistanceTootip": "Č_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ž." + "useLayerFeaturesTooltip": "Odaberite sloj i pomoću alata za skiciranje pokažite na geoobjekte koji se mogu koristiti kao granice za odabir geoobjekata koji se presijecaju iz ulaznog sloja.", + "useSearchDistanceTootip": "Definirajte udaljenost za pojas pretraživanja koji će odabrati ulazne geoobjekte koji sijeku pojas.", + "placeholder": "Pronađi adresu ili mjesto" } diff --git a/src/assets/t9n/map-select-tools/resources_hu.json b/src/assets/t9n/map-select-tools/resources_hu.json index 5e158070c..0c9621365 100644 --- a/src/assets/t9n/map-select-tools/resources_hu.json +++ b/src/assets/t9n/map-select-tools/resources_hu.json @@ -10,6 +10,7 @@ "sketchLayer": "Vázlat réteg", "useLayerFeatures": "Réteg vektoros elemek használata", "inputLayer": "Bemenő réteg", - "useLayerFeaturesTooltip": "í_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ő.", - "useSearchDistanceTootip": "í_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ő." + "useLayerFeaturesTooltip": "Válasszon réteget, és a vázlateszközök használatával jelölje ki azokat a vektoros elemeket, amelyek a bemeneti réteg határaiként vagy metszéspontjaiként használhatók.", + "useSearchDistanceTootip": "Határozzon meg egy távolságot a keresési pufferhez, amely kiválasztja a puffert metsző bemeneti vektoros elemeket.", + "placeholder": "Cím vagy hely keresése" } diff --git a/src/assets/t9n/map-select-tools/resources_id.json b/src/assets/t9n/map-select-tools/resources_id.json index f9af3a240..16781d304 100644 --- a/src/assets/t9n/map-select-tools/resources_id.json +++ b/src/assets/t9n/map-select-tools/resources_id.json @@ -10,6 +10,7 @@ "sketchLayer": "Layer Sketsa", "useLayerFeatures": "Gunakan fitur layer", "inputLayer": "Layer input", - "useLayerFeaturesTooltip": "ng_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ny.", - "useSearchDistanceTootip": "ng_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ny." + "useLayerFeaturesTooltip": "Pilih layer dan gunakan alat sketsa untuk menunjuk ke fitur yang dapat digunakan sebagai batas untuk memilih fitur yang berpotongan dari layer input.", + "useSearchDistanceTootip": "Tentukan jarak untuk buffer pencarian yang akan memilih fitur input yang memotong buffer.", + "placeholder": "Temukan alamat atau tempat" } diff --git a/src/assets/t9n/map-select-tools/resources_it.json b/src/assets/t9n/map-select-tools/resources_it.json index 460bcfc5e..252119fce 100644 --- a/src/assets/t9n/map-select-tools/resources_it.json +++ b/src/assets/t9n/map-select-tools/resources_it.json @@ -10,6 +10,7 @@ "sketchLayer": "Layer schizzo", "useLayerFeatures": "Utilizza feature del layer", "inputLayer": "Layer di input", - "useLayerFeaturesTooltip": "é_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________È.", - "useSearchDistanceTootip": "é_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________È." + "useLayerFeaturesTooltip": "Scegliere un layer e utilizzare gli strumenti di schizzo per puntare alle feature che possono essere utilizzate come un confine per selezionare feature intersecanti dal layer di input.", + "useSearchDistanceTootip": "Definire una distanza per un buffer di ricerca che selezionerà le feature di input che intersecano il buffer.", + "placeholder": "Trova luogo o indirizzo" } diff --git a/src/assets/t9n/map-select-tools/resources_ja.json b/src/assets/t9n/map-select-tools/resources_ja.json index 341c5ec95..61a9d6580 100644 --- a/src/assets/t9n/map-select-tools/resources_ja.json +++ b/src/assets/t9n/map-select-tools/resources_ja.json @@ -10,6 +10,7 @@ "sketchLayer": "スケッチ レイヤー", "useLayerFeatures": "レイヤー フィーチャの使用", "inputLayer": "入力レイヤー", - "useLayerFeaturesTooltip": "須_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________鷗.", - "useSearchDistanceTootip": "須_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________鷗." + "useLayerFeaturesTooltip": "レイヤーを選択し、スケッチ ツールを使用して、境界として使用できるフィーチャをポイントすることで、交差するフィーチャを入力レイヤーから選択します。", + "useSearchDistanceTootip": "検索バッファーの距離を定義して、バッファーと交差する入力フィーチャを選択します。", + "placeholder": "住所または場所の検索" } diff --git a/src/assets/t9n/map-select-tools/resources_ko.json b/src/assets/t9n/map-select-tools/resources_ko.json index ad51e141f..b1fa0295e 100644 --- a/src/assets/t9n/map-select-tools/resources_ko.json +++ b/src/assets/t9n/map-select-tools/resources_ko.json @@ -10,6 +10,7 @@ "sketchLayer": "스케치 레이어", "useLayerFeatures": "레이어 피처 사용", "inputLayer": "입력 레이어", - "useLayerFeaturesTooltip": "한_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________빠.", - "useSearchDistanceTootip": "한_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________빠." + "useLayerFeaturesTooltip": "레이어를 선택하고 스케치 도구를 사용하여 입력 레이어에서 교차 피처를 선택하기 위한 경계로 사용할 수 있는 피처를 가리킵니다.", + "useSearchDistanceTootip": "버퍼와 교차하는 입력 피처를 선택할 검색 버퍼의 거리를 정의합니다.", + "placeholder": "주소 또는 위치 찾기" } diff --git a/src/assets/t9n/map-select-tools/resources_lt.json b/src/assets/t9n/map-select-tools/resources_lt.json index 8c1c0e201..1699f2556 100644 --- a/src/assets/t9n/map-select-tools/resources_lt.json +++ b/src/assets/t9n/map-select-tools/resources_lt.json @@ -10,6 +10,7 @@ "sketchLayer": "Eskizo sluoksnis", "useLayerFeatures": "Naudoti sluoksnio elementus", "inputLayer": "Įvesties sluoksnis", - "useLayerFeaturesTooltip": "Į_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________š.", - "useSearchDistanceTootip": "Į_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________š." + "useLayerFeaturesTooltip": "Pasirinkite sluoksnį ir naudokite eskizavimo įrankius, kad nurodytumėte elementus, kurie gali būti naudojami kaip riba, norint pasirinkti susikertančius įvesties sluoksnio elementus.", + "useSearchDistanceTootip": "Apibrėžkite paieškos buferio zonos atstumą, kuriuo bus pasirenkami įvesties elementai, susikertantys su buferio zona.", + "placeholder": "Surasti adresą arba vietą" } diff --git a/src/assets/t9n/map-select-tools/resources_lv.json b/src/assets/t9n/map-select-tools/resources_lv.json index 7d7571c2c..8f4e0b6a4 100644 --- a/src/assets/t9n/map-select-tools/resources_lv.json +++ b/src/assets/t9n/map-select-tools/resources_lv.json @@ -10,6 +10,7 @@ "sketchLayer": "Skiču slānis", "useLayerFeatures": "Izmantot slāņa elementus", "inputLayer": "Ievades slānis", - "useLayerFeaturesTooltip": "ķ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ū.", - "useSearchDistanceTootip": "ķ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ū." + "useLayerFeaturesTooltip": "Izvēlieties slāni un izmantojiet skiču rīkus, lai norādītu elementus, kurus var izmantot kā robežu, lai atlasītu krustojošos elementus no ievades slāņa.", + "useSearchDistanceTootip": "Nosakiet attālumu meklēšanas buferzonai, kas izvēlēsies ievades elementus, kas šķērso buferzonu.", + "placeholder": "Atrast adresi vai vietu" } diff --git a/src/assets/t9n/map-select-tools/resources_nb.json b/src/assets/t9n/map-select-tools/resources_nb.json index 05cb17eb1..f79d3e49c 100644 --- a/src/assets/t9n/map-select-tools/resources_nb.json +++ b/src/assets/t9n/map-select-tools/resources_nb.json @@ -10,6 +10,7 @@ "sketchLayer": "Skisselag", "useLayerFeatures": "Bruk laggeoobjekter", "inputLayer": "Inndatalag", - "useLayerFeaturesTooltip": "å_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ø.", - "useSearchDistanceTootip": "å_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ø." + "useLayerFeaturesTooltip": "Velg et lag og bruk skisseverktøyene til å peke til et geoobjekt som kan brukes som en grense for å velge kryssende geoobjekter fra inndatalaget.", + "useSearchDistanceTootip": "Definer en avstand for en søkebuffer som velger inndatageoobjekter som krysser bufferen.", + "placeholder": "Finn adresse eller sted" } diff --git a/src/assets/t9n/map-select-tools/resources_nl.json b/src/assets/t9n/map-select-tools/resources_nl.json index 5c973b399..92eba9c86 100644 --- a/src/assets/t9n/map-select-tools/resources_nl.json +++ b/src/assets/t9n/map-select-tools/resources_nl.json @@ -10,6 +10,7 @@ "sketchLayer": "Tekenlaag", "useLayerFeatures": "Laagobjecten gebruiken", "inputLayer": "Invoerlaag", - "useLayerFeaturesTooltip": "IJ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ä.", - "useSearchDistanceTootip": "IJ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ä." + "useLayerFeaturesTooltip": "Kies een laag en gebruik de schetstool om objecten aan te wijzen die als een grens kunnen worden gebruikt voor het selecteren van kruisende objecten uit de invoerlaag.", + "useSearchDistanceTootip": "Definieer een afstand voor een zoekbuffer die invoerobjecten zal selecteren die met de buffer kruisen.", + "placeholder": "Adres of plaats zoeken" } diff --git a/src/assets/t9n/map-select-tools/resources_pl.json b/src/assets/t9n/map-select-tools/resources_pl.json index 050e1c5df..9cbf1a6f4 100644 --- a/src/assets/t9n/map-select-tools/resources_pl.json +++ b/src/assets/t9n/map-select-tools/resources_pl.json @@ -10,6 +10,7 @@ "sketchLayer": "Warstwa szkicu", "useLayerFeatures": "Użyj obiektów warstwy", "inputLayer": "Warstwa wejściowa", - "useLayerFeaturesTooltip": "ł_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ą.", - "useSearchDistanceTootip": "ł_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ą." + "useLayerFeaturesTooltip": "Wybierz warstwę i za pomocą narzędzi do szkicowania wskaż obiekty, których można użyć jako granicy w celu wybrania przecinających się obiektów z warstwy wejściowej.", + "useSearchDistanceTootip": "Zdefiniuj odległość dla bufora wyszukiwania, który posłuży do wybrania obiektów wejściowych przecinających ten bufor.", + "placeholder": "Znajdź adres lub miejsce" } diff --git a/src/assets/t9n/map-select-tools/resources_pt-BR.json b/src/assets/t9n/map-select-tools/resources_pt-BR.json index e374c6b54..895534830 100644 --- a/src/assets/t9n/map-select-tools/resources_pt-BR.json +++ b/src/assets/t9n/map-select-tools/resources_pt-BR.json @@ -10,6 +10,7 @@ "sketchLayer": "Camada de Esboço", "useLayerFeatures": "Usar feições da camada", "inputLayer": "Camada de entrada", - "useLayerFeaturesTooltip": "ã_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Ç.", - "useSearchDistanceTootip": "ã_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Ç." + "useLayerFeaturesTooltip": "Escolha uma camada e use as ferramentas de esboço para apontar para as feições que podem ser usadas como um limite para selecionar as feições de intersecção da camada de entrada.", + "useSearchDistanceTootip": "Defina uma distância para um buffer de pesquisa que selecionará feições de entrada que interseccionam o buffer.", + "placeholder": "Localizar endereço ou lugar" } diff --git a/src/assets/t9n/map-select-tools/resources_pt-PT.json b/src/assets/t9n/map-select-tools/resources_pt-PT.json index 8f4d0b11f..cbdee98e6 100644 --- a/src/assets/t9n/map-select-tools/resources_pt-PT.json +++ b/src/assets/t9n/map-select-tools/resources_pt-PT.json @@ -10,6 +10,7 @@ "sketchLayer": "Camada de Desenho", "useLayerFeatures": "Utilizar elementos da camada", "inputLayer": "Camada de entrada", - "useLayerFeaturesTooltip": "ã_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Ç.", - "useSearchDistanceTootip": "ã_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Ç." + "useLayerFeaturesTooltip": "Selecione uma camada e utilize as ferramentas de desenho para apontar para elementos que podem ser utilizados como um limite para selecionar elementos de interseção a partir da camada de entrada.", + "useSearchDistanceTootip": "Defina uma distância para um buffer de pesquisa que irá selecionar elementos de entrada que intersetam o buffer.", + "placeholder": "Encontrar um endereço ou local" } diff --git a/src/assets/t9n/map-select-tools/resources_ro.json b/src/assets/t9n/map-select-tools/resources_ro.json index fd9536628..a19e46ecd 100644 --- a/src/assets/t9n/map-select-tools/resources_ro.json +++ b/src/assets/t9n/map-select-tools/resources_ro.json @@ -10,6 +10,7 @@ "sketchLayer": "Strat tematic schiță", "useLayerFeatures": "Utilizare obiecte spațiale strat tematic", "inputLayer": "Strat tematic de intrare", - "useLayerFeaturesTooltip": "Ă_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ș.", - "useSearchDistanceTootip": "Ă_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ș." + "useLayerFeaturesTooltip": "Alegeți un strat tematic și folosiți instrumente de trasare pentru a indica obiecte spațiale care pot fi utilizate ca limită pentru a selecta obiecte spațiale care se intersectează din stratul tematic de intrare.", + "useSearchDistanceTootip": "Definiți o distanță pentru un buffer de căutare care va selecta obiectele spațiale de intrare care intersectează bufferul.", + "placeholder": "Găsire adresă sau loc" } diff --git a/src/assets/t9n/map-select-tools/resources_ru.json b/src/assets/t9n/map-select-tools/resources_ru.json index 6a43032c2..52c9d7272 100644 --- a/src/assets/t9n/map-select-tools/resources_ru.json +++ b/src/assets/t9n/map-select-tools/resources_ru.json @@ -10,6 +10,7 @@ "sketchLayer": "Слой скетча", "useLayerFeatures": "Использовать слой объектов", "inputLayer": "Входной слой", - "useLayerFeaturesTooltip": "Ж_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Я.", - "useSearchDistanceTootip": "Ж_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Я." + "useLayerFeaturesTooltip": "Выберите слой и используйте инструменты скетча, чтобы указать объекты, которые могут использоваться как границы для выбора пересекающихся объектов из входного слоя.", + "useSearchDistanceTootip": "Определите расстояние для буфера поиска, который будет выбирать входные объекты, пересекающие буфер.", + "placeholder": "Поиск адреса или места" } diff --git a/src/assets/t9n/map-select-tools/resources_sk.json b/src/assets/t9n/map-select-tools/resources_sk.json index 672abdbea..1543b15b1 100644 --- a/src/assets/t9n/map-select-tools/resources_sk.json +++ b/src/assets/t9n/map-select-tools/resources_sk.json @@ -10,6 +10,7 @@ "sketchLayer": "Vrstva pre skice", "useLayerFeatures": "Použiť prvky vrstvy", "inputLayer": "Vstupná vrstva", - "useLayerFeaturesTooltip": "ĺ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ľ.", - "useSearchDistanceTootip": "ĺ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ľ." + "useLayerFeaturesTooltip": "Vyberte vrstvu a pomocou nástrojov na skicovanie ukážte na prvky, ktoré možno použiť ako hranicu pre výber pretínajúcich sa prvkov zo vstupnej vrstvy.", + "useSearchDistanceTootip": "Definujte vzdialenosť pre obalovú zónu vyhľadávania, ktorá vyberie vstupné prvky pretínajúce zónu.", + "placeholder": "Vyhľadať adresu alebo miesto" } diff --git a/src/assets/t9n/map-select-tools/resources_sl.json b/src/assets/t9n/map-select-tools/resources_sl.json index f9162a93b..85b599129 100644 --- a/src/assets/t9n/map-select-tools/resources_sl.json +++ b/src/assets/t9n/map-select-tools/resources_sl.json @@ -10,6 +10,7 @@ "sketchLayer": "Sloj skice", "useLayerFeatures": "Uporabi geoobjekte sloja", "inputLayer": "Vhodni sloj", - "useLayerFeaturesTooltip": "Š_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________č.", - "useSearchDistanceTootip": "Š_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________č." + "useLayerFeaturesTooltip": "Izberite sloj in uporabite orodja za skiciranje, da določite geoobjekte, ki jih je mogoče uporabiti kot meje za izbor sekajočih geoobjektov za vhodni sloj.", + "useSearchDistanceTootip": "Določite razdaljo za iskanje obrisov, ki bo izbral vhodne geoobjekte, ki sekajo obris.", + "placeholder": "Najdi naslov ali kraj" } diff --git a/src/assets/t9n/map-select-tools/resources_sr.json b/src/assets/t9n/map-select-tools/resources_sr.json index 1710b9a81..ffab4507c 100644 --- a/src/assets/t9n/map-select-tools/resources_sr.json +++ b/src/assets/t9n/map-select-tools/resources_sr.json @@ -10,6 +10,7 @@ "sketchLayer": "Sloj skice", "useLayerFeatures": "Koristi geoobjekte sloja", "inputLayer": "Ulazni sloj", - "useLayerFeaturesTooltip": "Č_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ž.", - "useSearchDistanceTootip": "Č_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ž." + "useLayerFeaturesTooltip": "Izaberite sloj i koristite alate za crtanje da naglasite osobine koje mogu da se koriste kao granice ili geoobjekti ukrštanja za ulazni sloj.", + "useSearchDistanceTootip": "Definišite distancu za bafer pretrage koja će odabrati ulazne osobine koje presecaju bafer.", + "placeholder": "Pronađi adresu ili mesto" } diff --git a/src/assets/t9n/map-select-tools/resources_sv.json b/src/assets/t9n/map-select-tools/resources_sv.json index 9b310f13f..e0272e414 100644 --- a/src/assets/t9n/map-select-tools/resources_sv.json +++ b/src/assets/t9n/map-select-tools/resources_sv.json @@ -10,6 +10,7 @@ "sketchLayer": "Skisslager", "useLayerFeatures": "Använd lagergeoobjekt", "inputLayer": "Indatalager", - "useLayerFeaturesTooltip": "Å_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ö.", - "useSearchDistanceTootip": "Å_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ö." + "useLayerFeaturesTooltip": "Välj ett lager och använd skissverktygen för att peka på geoobjekt som kan användas som en gräns för att välja geoobjekt som skär varandra från indatalagret.", + "useSearchDistanceTootip": "Definiera ett avstånd för en sökbuffert som kommer att markera indatageoobjekt som korsar bufferten.", + "placeholder": "Sök efter adress eller plats" } diff --git a/src/assets/t9n/map-select-tools/resources_th.json b/src/assets/t9n/map-select-tools/resources_th.json index f875b9011..5b9bd3a5b 100644 --- a/src/assets/t9n/map-select-tools/resources_th.json +++ b/src/assets/t9n/map-select-tools/resources_th.json @@ -10,6 +10,7 @@ "sketchLayer": "ชั้นข้อมูลการวาด", "useLayerFeatures": "ใช้ฟีเจอร์ชั้นข้อมูล", "inputLayer": "ชั้นข้อมูลอินพุท", - "useLayerFeaturesTooltip": "ก้_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ษฺ.", - "useSearchDistanceTootip": "ก้_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ษฺ." + "useLayerFeaturesTooltip": "เลือกชั้นข้อมูล แล้วใช้เครื่องมือการวาดเพื่อชี้ไปยังฟีเจอร์ที่สามารถใช้เป็นขอบเขตในการเลือกฟีเจอร์ที่ตัดกันจากชั้นข้อมูลอินพุทได้", + "useSearchDistanceTootip": "กำหนดระยะทางสำหรับบัฟเฟอร์การค้นหาที่จะเลือกฟีเจอร์อินพุทที่ตัดกับบัฟเฟอร์", + "placeholder": "ค้นหาที่อยู่หรือสถานที่" } diff --git a/src/assets/t9n/map-select-tools/resources_tr.json b/src/assets/t9n/map-select-tools/resources_tr.json index fdd98c9a6..83e412bea 100644 --- a/src/assets/t9n/map-select-tools/resources_tr.json +++ b/src/assets/t9n/map-select-tools/resources_tr.json @@ -10,6 +10,7 @@ "sketchLayer": "Çizim Katmanı", "useLayerFeatures": "Katman detaylarını kullan", "inputLayer": "Girdi katman", - "useLayerFeaturesTooltip": "ı_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________İ.", - "useSearchDistanceTootip": "ı_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________İ." + "useLayerFeaturesTooltip": "Girdi katmanında kesişen detayları seçmek için bir sınır olarak kullanılabilecek detaylara işaret etmek için bir katman seçin ve taslak çizim araçlarını kullanın.", + "useSearchDistanceTootip": "Arabellekle kesişen girdi detaylarını seçecek bir arama arabelleği için bir mesafe tanımlayın.", + "placeholder": "Adres veya yer bul" } diff --git a/src/assets/t9n/map-select-tools/resources_uk.json b/src/assets/t9n/map-select-tools/resources_uk.json index 4a6cab5b4..ac4aa7dcf 100644 --- a/src/assets/t9n/map-select-tools/resources_uk.json +++ b/src/assets/t9n/map-select-tools/resources_uk.json @@ -10,6 +10,7 @@ "sketchLayer": "Шар скетчу", "useLayerFeatures": "Використовувати об’єкти шару", "inputLayer": "Вхідний шар", - "useLayerFeaturesTooltip": "ґ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________Ї.", - "useSearchDistanceTootip": "ґ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________Ї." + "useLayerFeaturesTooltip": "Виберіть шар і за допомогою інструментів «Скетч» вкажіть об’єкти, які можна використовувати як кордони для вибору об’єктів, які перетинаються із вхідного шару.", + "useSearchDistanceTootip": "Визначте відстань для буфера пошуку, який вибиратиме вхідні об’єкти, які перетинають буфер.", + "placeholder": "Знайти адресу або місце" } diff --git a/src/assets/t9n/map-select-tools/resources_vi.json b/src/assets/t9n/map-select-tools/resources_vi.json index 6bfdfce68..7d597808b 100644 --- a/src/assets/t9n/map-select-tools/resources_vi.json +++ b/src/assets/t9n/map-select-tools/resources_vi.json @@ -10,6 +10,7 @@ "sketchLayer": "Lớp Phác họa", "useLayerFeatures": "Sử dụng các đối tượng trong lớp", "inputLayer": "Lớp đầu vào", - "useLayerFeaturesTooltip": "Đ_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________ớ.", - "useSearchDistanceTootip": "Đ_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________ớ." + "useLayerFeaturesTooltip": "Chọn một lớp và sử dụng các công cụ phác hoạ để chỉ đến đối tượng mà có thể được sử dụng làm ranh giới để chọn đối tượng giao cắt từ lớp đầu vào.", + "useSearchDistanceTootip": "Xác định khoảng cách cho vùng đệm tìm kiếm mà sẽ chọn đối tượng đầu vào sẽ giao cắt với vùng đệm.", + "placeholder": "Tìm địa chỉ hoặc địa điểm" } diff --git a/src/assets/t9n/map-select-tools/resources_zh-CN.json b/src/assets/t9n/map-select-tools/resources_zh-CN.json index cb96560b4..9eabe8a0a 100644 --- a/src/assets/t9n/map-select-tools/resources_zh-CN.json +++ b/src/assets/t9n/map-select-tools/resources_zh-CN.json @@ -10,6 +10,7 @@ "sketchLayer": "草图图层", "useLayerFeatures": "使用图层要素", "inputLayer": "输入图层", - "useLayerFeaturesTooltip": "试_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________验.", - "useSearchDistanceTootip": "试_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________验." + "useLayerFeaturesTooltip": "选择图层,并使用草图工具指向可用作边界的要素,以从输入图层中选择相交要素。", + "useSearchDistanceTootip": "定义搜索缓冲区的距离,该距离将选择与缓冲区相交的输入要素。", + "placeholder": "查找地址或地点" } diff --git a/src/assets/t9n/map-select-tools/resources_zh-HK.json b/src/assets/t9n/map-select-tools/resources_zh-HK.json index aa0d1d3e5..f5546d95e 100644 --- a/src/assets/t9n/map-select-tools/resources_zh-HK.json +++ b/src/assets/t9n/map-select-tools/resources_zh-HK.json @@ -10,6 +10,7 @@ "sketchLayer": "描繪圖層", "useLayerFeatures": "使用圖層圖徵", "inputLayer": "輸入圖層", - "useLayerFeaturesTooltip": "試_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________驗.", - "useSearchDistanceTootip": "試_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________驗." + "useLayerFeaturesTooltip": "選擇圖層並使用描繪工具指向可作為邊界的圖徵,以便從輸入圖層中選擇相交圖徵。", + "useSearchDistanceTootip": "定義搜尋緩衝區的距離,該距離將選擇與緩衝區相交的輸入圖徵。", + "placeholder": "尋找位址或地點" } diff --git a/src/assets/t9n/map-select-tools/resources_zh-TW.json b/src/assets/t9n/map-select-tools/resources_zh-TW.json index aa0d1d3e5..f5546d95e 100644 --- a/src/assets/t9n/map-select-tools/resources_zh-TW.json +++ b/src/assets/t9n/map-select-tools/resources_zh-TW.json @@ -10,6 +10,7 @@ "sketchLayer": "描繪圖層", "useLayerFeatures": "使用圖層圖徵", "inputLayer": "輸入圖層", - "useLayerFeaturesTooltip": "試_Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer__________________________________________________________________________驗.", - "useSearchDistanceTootip": "試_Define a distance for a search buffer that will select input features that intersect the buffer_________________________________________________驗." + "useLayerFeaturesTooltip": "選擇圖層並使用描繪工具指向可作為邊界的圖徵,以便從輸入圖層中選擇相交圖徵。", + "useSearchDistanceTootip": "定義搜尋緩衝區的距離,該距離將選擇與緩衝區相交的輸入圖徵。", + "placeholder": "尋找位址或地點" } diff --git a/src/assets/t9n/map-tools/resources.json b/src/assets/t9n/map-tools/resources.json new file mode 100644 index 000000000..1d5587627 --- /dev/null +++ b/src/assets/t9n/map-tools/resources.json @@ -0,0 +1,10 @@ +{ + "legend": "Legend", + "search": "Search", + "expand": "Expand", + "basemap": "Basemap", + "collapse": "Collapse", + "enterFullscreen": "Enter fullscreen", + "exitFullscreen": "Exit fullscreen", + "floorFilter": "Floor filter" +} diff --git a/src/assets/t9n/map-tools/resources_ar.json b/src/assets/t9n/map-tools/resources_ar.json new file mode 100644 index 000000000..8abfbffe8 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_ar.json @@ -0,0 +1,10 @@ +{ + "legend": "وسيلة الإيضاح", + "search": "بحث", + "expand": "توسيع", + "basemap": "خريطة أساس", + "collapse": "طي", + "enterFullscreen": "الدخول في وضع ملء الشاشة", + "exitFullscreen": "الخروج من وضع ملء الشاشة", + "floorFilter": "عامل تصفية الطوابق" +} diff --git a/src/assets/t9n/map-tools/resources_bg.json b/src/assets/t9n/map-tools/resources_bg.json new file mode 100644 index 000000000..4c234b4e4 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_bg.json @@ -0,0 +1,10 @@ +{ + "legend": "Легенда", + "search": "Търсене", + "expand": "Разгъване", + "basemap": "Базова карта", + "collapse": "Сгъване", + "enterFullscreen": "Въвеждане на цял екран", + "exitFullscreen": "Изход от цял екран", + "floorFilter": "Филтър за етаж" +} diff --git a/src/assets/t9n/map-tools/resources_bs.json b/src/assets/t9n/map-tools/resources_bs.json new file mode 100644 index 000000000..bf0aeabbc --- /dev/null +++ b/src/assets/t9n/map-tools/resources_bs.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Pretraživanje", + "expand": "Proširi", + "basemap": "Kartografska podloga", + "collapse": "Sažmi", + "enterFullscreen": "Otvori preko čitavog zaslona", + "exitFullscreen": "Izađi iz punog zaslona", + "floorFilter": "Filtar kata" +} diff --git a/src/assets/t9n/map-tools/resources_ca.json b/src/assets/t9n/map-tools/resources_ca.json new file mode 100644 index 000000000..894fde1c3 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_ca.json @@ -0,0 +1,10 @@ +{ + "legend": "Llegenda", + "search": "Cerca", + "expand": "Amplia", + "basemap": "Mapa de base", + "collapse": "Redueix", + "enterFullscreen": "Mostra en pantalla completa", + "exitFullscreen": "Surt de la pantalla completa", + "floorFilter": "Filtre de planta" +} diff --git a/src/assets/t9n/map-tools/resources_cs.json b/src/assets/t9n/map-tools/resources_cs.json new file mode 100644 index 000000000..c893f6465 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_cs.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Hledat", + "expand": "Rozbalit", + "basemap": "Podkladová mapa", + "collapse": "Sbalit", + "enterFullscreen": "Režim celé obrazovky", + "exitFullscreen": "Ukončit režim celé obrazovky", + "floorFilter": "Filtr podlaží" +} diff --git a/src/assets/t9n/map-tools/resources_da.json b/src/assets/t9n/map-tools/resources_da.json new file mode 100644 index 000000000..0eef42a57 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_da.json @@ -0,0 +1,10 @@ +{ + "legend": "Forklaring", + "search": "Søg", + "expand": "Udvid", + "basemap": "Baggrundskort", + "collapse": "Skjul", + "enterFullscreen": "Start fuldskærmsvisning", + "exitFullscreen": "Afslut fuldskærmsvisning", + "floorFilter": "Etagefilter" +} diff --git a/src/assets/t9n/map-tools/resources_de.json b/src/assets/t9n/map-tools/resources_de.json new file mode 100644 index 000000000..ecfd52a81 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_de.json @@ -0,0 +1,10 @@ +{ + "legend": "Legende", + "search": "Suchen", + "expand": "Einblenden", + "basemap": "Grundkarte", + "collapse": "Ausblenden", + "enterFullscreen": "Vollbildmodus starten", + "exitFullscreen": "Vollbildmodus beenden", + "floorFilter": "Geschossfilter" +} diff --git a/src/assets/t9n/map-tools/resources_el.json b/src/assets/t9n/map-tools/resources_el.json new file mode 100644 index 000000000..f14b68fcf --- /dev/null +++ b/src/assets/t9n/map-tools/resources_el.json @@ -0,0 +1,10 @@ +{ + "legend": "Υπόμνημα", + "search": "Αναζήτηση", + "expand": "Ανάπτυξη", + "basemap": "Υπόβαθρο", + "collapse": "Σύμπτυξη", + "enterFullscreen": "Είσοδος σε πλήρη οθόνη", + "exitFullscreen": "Έξοδος από πλήρη οθόνη", + "floorFilter": "Φίλτρο ορόφου" +} diff --git a/src/assets/t9n/map-tools/resources_en.json b/src/assets/t9n/map-tools/resources_en.json new file mode 100644 index 000000000..1d5587627 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_en.json @@ -0,0 +1,10 @@ +{ + "legend": "Legend", + "search": "Search", + "expand": "Expand", + "basemap": "Basemap", + "collapse": "Collapse", + "enterFullscreen": "Enter fullscreen", + "exitFullscreen": "Exit fullscreen", + "floorFilter": "Floor filter" +} diff --git a/src/assets/t9n/map-tools/resources_es.json b/src/assets/t9n/map-tools/resources_es.json new file mode 100644 index 000000000..e0a76e0eb --- /dev/null +++ b/src/assets/t9n/map-tools/resources_es.json @@ -0,0 +1,10 @@ +{ + "legend": "Leyenda", + "search": "Buscar", + "expand": "Expandir", + "basemap": "Mapa base", + "collapse": "Contraer", + "enterFullscreen": "Activar pantalla completa", + "exitFullscreen": "Salir de pantalla completa", + "floorFilter": "Filtro de planta" +} diff --git a/src/assets/t9n/map-tools/resources_et.json b/src/assets/t9n/map-tools/resources_et.json new file mode 100644 index 000000000..a20dc4ad7 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_et.json @@ -0,0 +1,10 @@ +{ + "legend": "Legendiga kaart", + "search": "Otsing", + "expand": "Laienda", + "basemap": "Aluskaart", + "collapse": "Ahenda", + "enterFullscreen": "Ava täiskreaanvaade", + "exitFullscreen": "Välju täisekraanvaatest", + "floorFilter": "Korrusefilter" +} diff --git a/src/assets/t9n/map-tools/resources_fi.json b/src/assets/t9n/map-tools/resources_fi.json new file mode 100644 index 000000000..6e92da0ff --- /dev/null +++ b/src/assets/t9n/map-tools/resources_fi.json @@ -0,0 +1,10 @@ +{ + "legend": "Selite", + "search": "Hae", + "expand": "Laajenna", + "basemap": "Taustakartta", + "collapse": "Kutista", + "enterFullscreen": "Siirry koko näytön tilaan", + "exitFullscreen": "Poistu koko näytön tilasta", + "floorFilter": "Kerrossuodatin" +} diff --git a/src/assets/t9n/map-tools/resources_fr.json b/src/assets/t9n/map-tools/resources_fr.json new file mode 100644 index 000000000..bfabf8350 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_fr.json @@ -0,0 +1,10 @@ +{ + "legend": "Légende", + "search": "Rechercher", + "expand": "Développer", + "basemap": "Fond de carte", + "collapse": "Réduire", + "enterFullscreen": "Passer en mode plein écran", + "exitFullscreen": "Quitter le mode plein écran", + "floorFilter": "Filtre des étages" +} diff --git a/src/assets/t9n/map-tools/resources_he.json b/src/assets/t9n/map-tools/resources_he.json new file mode 100644 index 000000000..28e64f18d --- /dev/null +++ b/src/assets/t9n/map-tools/resources_he.json @@ -0,0 +1,10 @@ +{ + "legend": "מקרא", + "search": "חיפוש", + "expand": "הרחב", + "basemap": "מפת בסיס", + "collapse": "צמצם", + "enterFullscreen": "עבור למסך מלא", + "exitFullscreen": "צא ממסך מלא", + "floorFilter": "מסנן קומות" +} diff --git a/src/assets/t9n/map-tools/resources_hr.json b/src/assets/t9n/map-tools/resources_hr.json new file mode 100644 index 000000000..bf0aeabbc --- /dev/null +++ b/src/assets/t9n/map-tools/resources_hr.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Pretraživanje", + "expand": "Proširi", + "basemap": "Kartografska podloga", + "collapse": "Sažmi", + "enterFullscreen": "Otvori preko čitavog zaslona", + "exitFullscreen": "Izađi iz punog zaslona", + "floorFilter": "Filtar kata" +} diff --git a/src/assets/t9n/map-tools/resources_hu.json b/src/assets/t9n/map-tools/resources_hu.json new file mode 100644 index 000000000..17b52c21e --- /dev/null +++ b/src/assets/t9n/map-tools/resources_hu.json @@ -0,0 +1,10 @@ +{ + "legend": "Jelmagyarázat", + "search": "Keresés", + "expand": "Kibontás", + "basemap": "Alaptérkép", + "collapse": "Összecsukás", + "enterFullscreen": "Belépés a teljes képernyős nézetbe", + "exitFullscreen": "Kilépés a teljes képernyős nézetből", + "floorFilter": "Emelet szűrő" +} diff --git a/src/assets/t9n/map-tools/resources_id.json b/src/assets/t9n/map-tools/resources_id.json new file mode 100644 index 000000000..9ec33d40c --- /dev/null +++ b/src/assets/t9n/map-tools/resources_id.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Cari", + "expand": "Bentang", + "basemap": "Peta Dasar", + "collapse": "Tutup", + "enterFullscreen": "Masuk ke layar penuh", + "exitFullscreen": "Keluar dari layar penuh", + "floorFilter": "Filter lantai" +} diff --git a/src/assets/t9n/map-tools/resources_it.json b/src/assets/t9n/map-tools/resources_it.json new file mode 100644 index 000000000..4c6a51273 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_it.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Cerca", + "expand": "Espandi", + "basemap": "Mappa di base", + "collapse": "Comprimi", + "enterFullscreen": "Visualizza a schermo intero", + "exitFullscreen": "Esci da schermo intero", + "floorFilter": "Filtro piano" +} diff --git a/src/assets/t9n/map-tools/resources_ja.json b/src/assets/t9n/map-tools/resources_ja.json new file mode 100644 index 000000000..a23dac014 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_ja.json @@ -0,0 +1,10 @@ +{ + "legend": "凡例", + "search": "検索", + "expand": "展開", + "basemap": "ベースマップ", + "collapse": "折りたたむ", + "enterFullscreen": "全画面にする", + "exitFullscreen": "全画面を終了", + "floorFilter": "フロア フィルター" +} diff --git a/src/assets/t9n/map-tools/resources_ko.json b/src/assets/t9n/map-tools/resources_ko.json new file mode 100644 index 000000000..56061d0a8 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_ko.json @@ -0,0 +1,10 @@ +{ + "legend": "범례", + "search": "검색", + "expand": "확장", + "basemap": "베이스맵", + "collapse": "축소", + "enterFullscreen": "전체 화면 시작", + "exitFullscreen": "전체 화면 종료", + "floorFilter": "층 필터" +} diff --git a/src/assets/t9n/map-tools/resources_lt.json b/src/assets/t9n/map-tools/resources_lt.json new file mode 100644 index 000000000..c2d27e76f --- /dev/null +++ b/src/assets/t9n/map-tools/resources_lt.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Ieškoti", + "expand": "Išskleisti", + "basemap": "Pagrindo žemėlapis", + "collapse": "Suskleisti", + "enterFullscreen": "Pereiti į viso ekrano režimą", + "exitFullscreen": "Išeiti iš viso ekrano režimo", + "floorFilter": "Aukštų filtras" +} diff --git a/src/assets/t9n/map-tools/resources_lv.json b/src/assets/t9n/map-tools/resources_lv.json new file mode 100644 index 000000000..a5a553478 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_lv.json @@ -0,0 +1,10 @@ +{ + "legend": "Apzīmējumi", + "search": "Meklēt", + "expand": "Izvērst", + "basemap": "Pamatkarte", + "collapse": "Sakļaut", + "enterFullscreen": "Atvērt pilnekrāna režīmu", + "exitFullscreen": "Aizvērt pilnekrāna režīmu", + "floorFilter": "Stāvu filtrs" +} diff --git a/src/assets/t9n/map-tools/resources_nb.json b/src/assets/t9n/map-tools/resources_nb.json new file mode 100644 index 000000000..4957c0c3c --- /dev/null +++ b/src/assets/t9n/map-tools/resources_nb.json @@ -0,0 +1,10 @@ +{ + "legend": "Tegnforklaring", + "search": "Søk", + "expand": "Utvid", + "basemap": "Bakgrunnskart", + "collapse": "Skjul", + "enterFullscreen": "Start fullskjermvisning", + "exitFullscreen": "Avslutt fullskjermvisning", + "floorFilter": "Etasjefilter" +} diff --git a/src/assets/t9n/map-tools/resources_nl.json b/src/assets/t9n/map-tools/resources_nl.json new file mode 100644 index 000000000..d0dde45f4 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_nl.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Zoeken", + "expand": "Uitvouwen", + "basemap": "Basiskaart", + "collapse": "Samenvouwen", + "enterFullscreen": "Volledig schemr openen", + "exitFullscreen": "Volledig scherm sluiten", + "floorFilter": "Verdiepingenfilter" +} diff --git a/src/assets/t9n/map-tools/resources_pl.json b/src/assets/t9n/map-tools/resources_pl.json new file mode 100644 index 000000000..c28c1039c --- /dev/null +++ b/src/assets/t9n/map-tools/resources_pl.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Szukaj", + "expand": "Rozwiń", + "basemap": "Mapa bazowa", + "collapse": "Zwiń", + "enterFullscreen": "Otwórz widok pełnoekranowy", + "exitFullscreen": "Zamknij widok pełnoekranowy", + "floorFilter": "Filtr kondygnacji" +} diff --git a/src/assets/t9n/map-tools/resources_pt-BR.json b/src/assets/t9n/map-tools/resources_pt-BR.json new file mode 100644 index 000000000..6193e72d0 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_pt-BR.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Pesquisar", + "expand": "Expandir", + "basemap": "Mapa Base", + "collapse": "Recolher", + "enterFullscreen": "Entrar na tela cheia", + "exitFullscreen": "Sair da tela cheia", + "floorFilter": "Filtro de piso" +} diff --git a/src/assets/t9n/map-tools/resources_pt-PT.json b/src/assets/t9n/map-tools/resources_pt-PT.json new file mode 100644 index 000000000..f00d88d4f --- /dev/null +++ b/src/assets/t9n/map-tools/resources_pt-PT.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Pesquisar", + "expand": "Expandir", + "basemap": "Mapa base", + "collapse": "Recolher", + "enterFullscreen": "Entrar no modo de ecrã completo", + "exitFullscreen": "Sair do modo de ecrã completo", + "floorFilter": "Filtro de piso" +} diff --git a/src/assets/t9n/map-tools/resources_ro.json b/src/assets/t9n/map-tools/resources_ro.json new file mode 100644 index 000000000..3c8d0260c --- /dev/null +++ b/src/assets/t9n/map-tools/resources_ro.json @@ -0,0 +1,10 @@ +{ + "legend": "Legendă", + "search": "Căutare", + "expand": "Extindere", + "basemap": "Hartă fundal", + "collapse": "Restrângere", + "enterFullscreen": "Accesare ecran complet", + "exitFullscreen": "Ieşire din ecran complet", + "floorFilter": "Filtru etaj" +} diff --git a/src/assets/t9n/map-tools/resources_ru.json b/src/assets/t9n/map-tools/resources_ru.json new file mode 100644 index 000000000..69acc1248 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_ru.json @@ -0,0 +1,10 @@ +{ + "legend": "Легенда", + "search": "Поиск", + "expand": "Развернуть", + "basemap": "Базовая карта", + "collapse": "Свернуть", + "enterFullscreen": "Войти в полноэкранный режим", + "exitFullscreen": "Выйти из полноэкранного режима", + "floorFilter": "Фильтр этажей" +} diff --git a/src/assets/t9n/map-tools/resources_sk.json b/src/assets/t9n/map-tools/resources_sk.json new file mode 100644 index 000000000..fee981443 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_sk.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Vyhľadať", + "expand": "Rozbaliť", + "basemap": "Podkladová mapa", + "collapse": "Zbaliť", + "enterFullscreen": "Zobraziť na celú obrazovku", + "exitFullscreen": "Odísť z celej obrazovky", + "floorFilter": "Filter podlaží" +} diff --git a/src/assets/t9n/map-tools/resources_sl.json b/src/assets/t9n/map-tools/resources_sl.json new file mode 100644 index 000000000..fb4eef1af --- /dev/null +++ b/src/assets/t9n/map-tools/resources_sl.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Iskanje", + "expand": "Razširi", + "basemap": "Temeljna karta", + "collapse": "Strni", + "enterFullscreen": "Vstop v celozaslonski prikaz", + "exitFullscreen": "Izhod iz celozaslonskega prikaza", + "floorFilter": "Filter nadstropij" +} diff --git a/src/assets/t9n/map-tools/resources_sr.json b/src/assets/t9n/map-tools/resources_sr.json new file mode 100644 index 000000000..bed5211a2 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_sr.json @@ -0,0 +1,10 @@ +{ + "legend": "Legenda", + "search": "Pretraži", + "expand": "Proširi", + "basemap": "Pozadinska mapa", + "collapse": "Skupi", + "enterFullscreen": "Uđi u prikaz punog ekrana", + "exitFullscreen": "Izađi iz prikaza punog ekrana", + "floorFilter": "Filter sprata" +} diff --git a/src/assets/t9n/map-tools/resources_sv.json b/src/assets/t9n/map-tools/resources_sv.json new file mode 100644 index 000000000..591a4520d --- /dev/null +++ b/src/assets/t9n/map-tools/resources_sv.json @@ -0,0 +1,10 @@ +{ + "legend": "Teckenförklaring", + "search": "Sök", + "expand": "Expandera", + "basemap": "Baskarta", + "collapse": "Dölj", + "enterFullscreen": "Öppna helskärm", + "exitFullscreen": "Avsluta helskärm", + "floorFilter": "Våningsfilter" +} diff --git a/src/assets/t9n/map-tools/resources_th.json b/src/assets/t9n/map-tools/resources_th.json new file mode 100644 index 000000000..861203422 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_th.json @@ -0,0 +1,10 @@ +{ + "legend": "คำอธิบายสัญลักษณ์", + "search": "ค้นหา", + "expand": "ขยาย", + "basemap": "แผนที่ฐาน", + "collapse": "ย่อลงมา", + "enterFullscreen": "เข้าสู่โหมดเต็มจอ", + "exitFullscreen": "ออกจากโหมดเต็มจอ", + "floorFilter": "ตัวกรองชั้น" +} diff --git a/src/assets/t9n/map-tools/resources_tr.json b/src/assets/t9n/map-tools/resources_tr.json new file mode 100644 index 000000000..b2a11383d --- /dev/null +++ b/src/assets/t9n/map-tools/resources_tr.json @@ -0,0 +1,10 @@ +{ + "legend": "Lejant", + "search": "Ara", + "expand": "Genişlet", + "basemap": "Altlık Harita", + "collapse": "Daralt", + "enterFullscreen": "Tam ekrana gir", + "exitFullscreen": "Tam ekrandan çık", + "floorFilter": "Kat filtresi" +} diff --git a/src/assets/t9n/map-tools/resources_uk.json b/src/assets/t9n/map-tools/resources_uk.json new file mode 100644 index 000000000..0b8366e14 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_uk.json @@ -0,0 +1,10 @@ +{ + "legend": "Легенда", + "search": "Пошук", + "expand": "Розширити", + "basemap": "Базова карта", + "collapse": "Згорнути", + "enterFullscreen": "Увійти в повноекранний режим", + "exitFullscreen": "Вийти з повноекранного режиму", + "floorFilter": "Фільтр поверху" +} diff --git a/src/assets/t9n/map-tools/resources_vi.json b/src/assets/t9n/map-tools/resources_vi.json new file mode 100644 index 000000000..96d490e7a --- /dev/null +++ b/src/assets/t9n/map-tools/resources_vi.json @@ -0,0 +1,10 @@ +{ + "legend": "Chú giải", + "search": "Tìm kiếm", + "expand": "Mở rộng", + "basemap": "Bản đồ nền", + "collapse": "Thu gọn", + "enterFullscreen": "Vào chế độ toàn màn hình", + "exitFullscreen": "Thoát chế độ toàn màn hình", + "floorFilter": "Bộ lọc tầng" +} diff --git a/src/assets/t9n/map-tools/resources_zh-CN.json b/src/assets/t9n/map-tools/resources_zh-CN.json new file mode 100644 index 000000000..2b0f5f465 --- /dev/null +++ b/src/assets/t9n/map-tools/resources_zh-CN.json @@ -0,0 +1,10 @@ +{ + "legend": "图例", + "search": "搜索", + "expand": "展开", + "basemap": "底图", + "collapse": "折叠", + "enterFullscreen": "进入全屏模式", + "exitFullscreen": "退出全屏模式", + "floorFilter": "楼层过滤器" +} diff --git a/src/assets/t9n/map-tools/resources_zh-HK.json b/src/assets/t9n/map-tools/resources_zh-HK.json new file mode 100644 index 000000000..be844680c --- /dev/null +++ b/src/assets/t9n/map-tools/resources_zh-HK.json @@ -0,0 +1,10 @@ +{ + "legend": "圖例", + "search": "搜尋", + "expand": "展開", + "basemap": "底圖", + "collapse": "摺疊", + "enterFullscreen": "進入全螢幕", + "exitFullscreen": "退出全螢幕", + "floorFilter": "樓層篩選器" +} diff --git a/src/assets/t9n/map-tools/resources_zh-TW.json b/src/assets/t9n/map-tools/resources_zh-TW.json new file mode 100644 index 000000000..be844680c --- /dev/null +++ b/src/assets/t9n/map-tools/resources_zh-TW.json @@ -0,0 +1,10 @@ +{ + "legend": "圖例", + "search": "搜尋", + "expand": "展開", + "basemap": "底圖", + "collapse": "摺疊", + "enterFullscreen": "進入全螢幕", + "exitFullscreen": "退出全螢幕", + "floorFilter": "樓層篩選器" +} diff --git a/src/assets/t9n/media-card/resources.json b/src/assets/t9n/media-card/resources.json index 21646b5de..2ba1f8072 100644 --- a/src/assets/t9n/media-card/resources.json +++ b/src/assets/t9n/media-card/resources.json @@ -1,4 +1,5 @@ { "next": "Next", - "previous": "Previous" + "previous": "Previous", + "fetchingData": "Fetching data" } diff --git a/src/assets/t9n/media-card/resources_en.json b/src/assets/t9n/media-card/resources_en.json index 21646b5de..2ba1f8072 100644 --- a/src/assets/t9n/media-card/resources_en.json +++ b/src/assets/t9n/media-card/resources_en.json @@ -1,4 +1,5 @@ { "next": "Next", - "previous": "Previous" + "previous": "Previous", + "fetchingData": "Fetching data" } diff --git a/src/assets/t9n/public-notification/resources_ar.json b/src/assets/t9n/public-notification/resources_ar.json index 962c180f4..a2d594793 100644 --- a/src/assets/t9n/public-notification/resources_ar.json +++ b/src/assets/t9n/public-notification/resources_ar.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} معالم محددة", "noNotifications": "ليس لديك قائمة إخطارات حتى الآن.", "notifications": "إخطارات", - "myLists": "بيت_Create and edit lists______________________لاحقة", + "myLists": "إنشاء وتحرير القوائم", "stepTwoFull": "إنشاء قائمة جديدة", "cancel": "إلغاء الأمر", "done": "تم", - "selectPDFLabelOption": "بيت_Format options_______________لاحقة", - "removeDuplicate": "بيت_Remove duplicates___________________لاحقة:", + "selectPDFLabelOption": "خيارات التنسيق", + "removeDuplicate": "إزالة العناصر المكررة:", "numDuplicates": "{{n}} عناصر مكررة", - "selectLayerAndAdd": "بيت_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________لاحقة.", - "selectSearchTip": "بيت_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________لاحقة.", + "selectLayerAndAdd": "قم بإنشاء قوائم بالمعالم لتصديرها كملف CSV وPDF. استخدم أدوات التحديد لاختيار المعالم المراد تضمينها ثم انقر فوق إنشاء قائمة.", + "selectSearchTip": "حدد المعالم من طبقة الإدخال لإضافتها إلى قائمتك. ارسم باستخدام أدوات الرسم، وحدد مسافة البحث، واستخدم المعالم من طبقة أخرى لتحديد المعالم المتداخلة.", "selectLayerTip": "يرجى رسم الأشكال لتحديد المعالم المطلوبة من الطبقة المحددة، وسيتم استخدام النتائج لتحديد المعالم في طبقة المرسل إليه.", "selectSketchTip": "يتم استخدام أدوات المخطط لرسم الرسومات على الخريطة وتحديد المعالم المتقاطعة في طبقة المرسل إليه.", "optionalSearchDistance": "وإضافة مسافة البحث اختياريًا.", - "listHasSetsTip": "بيت_Edit or delete existing lists or click Create new list_____________________________لاحقة.", + "listHasSetsTip": "قم بتحرير القوائم الموجودة أو حذفها أو انقر فوق إنشاء قائمة جديدة.", "uniqueCout": "عدد القيم المميزة: {{n}}", "searchDistance": "مسافة البحث", "useLayerFeatures": "استخدام معالم الطبقة", "export": "تصدير", - "exportTip": "بيت_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________لاحقة.", + "exportTip": "حدد القوائم المراد تضمينها في الملف المصدر. تصدير القوائم كملف CSV وPDF.", "title": "اللقب", "addTitle": "إضافة عنوان", "titlePlaceholder": "أدخل العنوان هنا", @@ -35,8 +35,8 @@ "pdfOptions": "خيارات PDF", "csvOptions": "خيارات CSV", "refineSelection": "تحسين التحديد", - "refineTip": "بيت_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________لاحقة.", + "refineTip": "قم بتحسين قوائمك وإنهائها باستخدام أدوات الرسم لإضافة المعالم المحددة أو إزالتها.", "refineTipNoSelections": "لا يوجد أي تحديدات لتحسينها. انتقل إلى القوائم الخاصة بي لإنشاء قائمة من المعالم.", - "duplicatesTip": "بيت_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________لاحقة.", - "exportListsLabel": "بيت_My lists_________________لاحقة" + "duplicatesTip": "تتم دائمًا إزالة المعالم المكررة. عند التمكين، ستتم مقارنة النوافذ المنبثقة من كل طبقة وستتم إزالة أي معلومات منبثقة مكررة.", + "exportListsLabel": "القوائم الخاصة بي" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_bg.json b/src/assets/t9n/public-notification/resources_bg.json index c8abaadeb..a2bcd4d14 100644 --- a/src/assets/t9n/public-notification/resources_bg.json +++ b/src/assets/t9n/public-notification/resources_bg.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} избрани обекти", "noNotifications": "Все още нямате списък с известия.", "notifications": "Известия", - "myLists": "й_Create and edit lists______________________й", + "myLists": "Създаване и редактиране на списъци", "stepTwoFull": "Създаване на нов списък", "cancel": "Отказ", "done": "Готово", - "selectPDFLabelOption": "й_Format options_______________й", - "removeDuplicate": "й_Remove duplicates___________________й:", + "selectPDFLabelOption": "Опции за форматиране", + "removeDuplicate": "Премахване на дублирания:", "numDuplicates": "{{n}} дублирания", - "selectLayerAndAdd": "й_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________й.", - "selectSearchTip": "й_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________й.", + "selectLayerAndAdd": "Създаване на списъци с обекти за експортиране като CSV и PDF. Използвайте инструменти за селекция, за да изберете кои обекти да включите, и след това натиснете върху Създаване на списък.", + "selectSearchTip": "Изберете обекти от входния слой, за да ги добавите към списъка си. Чертайте с инструменти за скициране, задайте разстояние за търсене и използвайте обекти от друг слой, за да изберете припокриващи се обекти.", "selectLayerTip": "Начертайте фигури, за да изберете обекти от избрания слой за избор; резултатите ще бъдат използвани за избор на обекти от слоя адресат", "selectSketchTip": "Използвайте инструменти за скициране, за да начертаете графики в картата, за да изберете пресичащи се обекти в слоя адресат.", "optionalSearchDistance": "и по желание добавете разстояние за търсене.", - "listHasSetsTip": "й_Edit or delete existing lists or click Create new list_____________________________й.", + "listHasSetsTip": "Редактирайте или изтрийте съществуващите списъци или натиснете върху Създаване на нов списък.", "uniqueCout": "Уникален брой: {{n}}", "searchDistance": "Търсене на разстояние", "useLayerFeatures": "Използвайте обекти на слоя", "export": "Експорт", - "exportTip": "й_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________й.", + "exportTip": "Изберете списъци, които да включите в експортирания файл. Експортирайте списъци като CSV и PDF.", "title": "Заглавие", "addTitle": "Добавяне на заглавие", "titlePlaceholder": "Въведете заглавие тук", @@ -35,8 +35,8 @@ "pdfOptions": "PDF опции", "csvOptions": "CSV опции", "refineSelection": "Прецизиране на избор", - "refineTip": "й_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________й.", + "refineTip": "Прецизирайте и завършвайте списъците си, като използвате инструментите за скициране, за да добавяте или премахвате селектирани обекти.", "refineTipNoSelections": "Няма селекции за прецизиране. Отидете в Моите списъци, за да създадете списък с обекти.", - "duplicatesTip": "й_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________й.", - "exportListsLabel": "й_My lists_________________й" + "duplicatesTip": "Дублиращите се обекти винаги се премахват. Когато е разрешено, изскачащите прозорци от всеки слой ще бъдат сравнени и всяка дублираща се изскачаща информация ще бъде премахната.", + "exportListsLabel": "Моите списъци" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_bs.json b/src/assets/t9n/public-notification/resources_bs.json index fbcb90073..52c785b30 100644 --- a/src/assets/t9n/public-notification/resources_bs.json +++ b/src/assets/t9n/public-notification/resources_bs.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} odabrani geoobjekti", "noNotifications": "Još nemate popis obavijesti.", "notifications": "Obavijesti", - "myLists": "Č_Create and edit lists______________________ž", + "myLists": "Stvaranje i uređivanje popisa", "stepTwoFull": "Stvori novi popis", "cancel": "Odustani", "done": "Gotovo", - "selectPDFLabelOption": "Č_Format options_______________ž", - "removeDuplicate": "Č_Remove duplicates___________________ž:", + "selectPDFLabelOption": "Opcije formata", + "removeDuplicate": "Ukloni duplikate:", "numDuplicates": "{{n}} duplikati", - "selectLayerAndAdd": "Č_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ž.", - "selectSearchTip": "Č_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ž.", + "selectLayerAndAdd": "Stvorite popise geoobjekata za izvoz kao CSV i PDF. Upotrijebite alate za odabir kako biste odabrali geoobjekte koje ćete uključiti, a zatim kliknite Stvori popis.", + "selectSearchTip": "Odaberite geoobjekte iz ulaznog sloja koje želite dodati na svoj popis. Crtajte alatima za skiciranje, odredite udaljenost pretraživanja i koristite geoobjekte iz drugog sloja za odabir geoobjekata koje se preklapaju.", "selectLayerTip": "Nacrtajte oblike za odabir geoobjekata iz odabranog sloja za odabir; a rezultati će se koristiti za odabir geoobjekata iz sloja primatelja", "selectSketchTip": "Koristite alate za skiciranje za crtanje grafike na karti kako biste odabrali značajke koje se presijecaju u sloju primatelja.", "optionalSearchDistance": "Opcionalno možete dodati i udaljenost pretrage.", - "listHasSetsTip": "Č_Edit or delete existing lists or click Create new list_____________________________ž.", + "listHasSetsTip": "Uredite ili izbrišite postojeće popise ili kliknite Stvori novi popis.", "uniqueCout": "Jedinstven zbroj: {{n}}", "searchDistance": "Pretraži udaljenost", "useLayerFeatures": "Upotrijebi geoobjekte sloja", "export": "Izvezi", - "exportTip": "Č_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ž.", + "exportTip": "Odaberite popise za uključivanje u izvezenu datoteku. Izvezite popise u CSV i PDF formatu.", "title": "Naziv", "addTitle": "Dodaj naslov", "titlePlaceholder": "Unesite naslov ovdje", @@ -35,8 +35,8 @@ "pdfOptions": "Opcije PDF-a", "csvOptions": "Opcije CSV-a", "refineSelection": "Pročisti odabir", - "refineTip": "Č_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ž.", + "refineTip": "Pročistite i finalizirajte svoje popise pomoću alata za skiciranje za dodavanje ili uklanjanje odabranih geoobjekata.", "refineTipNoSelections": "Nema odabira za precizirati. Idite na Moje popise da biste stvorili popis geoobjekata.", - "duplicatesTip": "Č_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ž.", - "exportListsLabel": "Č_My lists_________________ž" + "duplicatesTip": "Duplicirani geoobjekti uvijek se uklanjaju. Kada je omogućeno, skočni prozori sa svakog sloja će se uspoređivati i svi dupli podaci u skočnim prozorima bit će uklonjeni.", + "exportListsLabel": "Moji popisi" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_ca.json b/src/assets/t9n/public-notification/resources_ca.json index 55cb7457d..37b2204df 100644 --- a/src/assets/t9n/public-notification/resources_ca.json +++ b/src/assets/t9n/public-notification/resources_ca.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} entitats seleccionades", "noNotifications": "Encara no teniu cap llista de notificacions.", "notifications": "Notificacions", - "myLists": "ó_Create and edit lists______________________à", + "myLists": "Crea i edita llistes", "stepTwoFull": "Crea una llista nova", "cancel": "Cancel·la", "done": "Fet", - "selectPDFLabelOption": "ó_Format options_______________à", - "removeDuplicate": "ó_Remove duplicates___________________à:", + "selectPDFLabelOption": "Opcions de format", + "removeDuplicate": "Elimina els duplicats:", "numDuplicates": "{{n}} duplicats", - "selectLayerAndAdd": "ó_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________à.", - "selectSearchTip": "ó_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________à.", + "selectLayerAndAdd": "Creeu llistes d'entitats per exportar-les com a CSV i PDF. Feu servir eines de selecció per triar les entitats que voleu incloure i, a continuació, feu clic a Crea una llista.", + "selectSearchTip": "Seleccioneu entitats de la capa d'entrada per afegir-les a la llista. Dibuixeu amb les eines d'esbós, especifiqueu una distància de cerca i feu servir les entitats d'una altra capa per seleccionar les entitats superposades.", "selectLayerTip": "Dibuixeu formes per seleccionar entitats de la capa de selecció triada; els resultats es faran servir per seleccionar entitats de la capa de destinataris", "selectSketchTip": "Feu servir les eines d'esbós per dibuixar gràfics al mapa per seleccionar entitats que s'intersequen a la capa de destinataris.", "optionalSearchDistance": "i, opcionalment, afegiu una distància de cerca.", - "listHasSetsTip": "ó_Edit or delete existing lists or click Create new list_____________________________à.", + "listHasSetsTip": "Editeu o suprimiu llistes existents o feu clic a Crea una llista nova.", "uniqueCout": "Recompte únic: {{n}}", "searchDistance": "Distància de cerca", "useLayerFeatures": "Utilitza entitats de la capa", "export": "Exporta", - "exportTip": "ó_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________à.", + "exportTip": "Seleccioneu les llistes que voleu incloure al fitxer exportat. Exporteu llistes com a CSV i PDF.", "title": "Títol", "addTitle": "Afegeix un títol", "titlePlaceholder": "Introduïu un títol aquí", @@ -35,8 +35,8 @@ "pdfOptions": "Opcions de PDF", "csvOptions": "Opcions de CSV", "refineSelection": "Delimita la selecció", - "refineTip": "ó_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________à.", + "refineTip": "Delimiteu i enllestiu les llistes mitjançant eines d'esbós per afegir o eliminar entitats seleccionades.", "refineTipNoSelections": "No hi ha cap selecció per delimitar. Aneu a Les meves llistes per crear una llista d'entitats.", - "duplicatesTip": "ó_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________à.", - "exportListsLabel": "ó_My lists_________________à" + "duplicatesTip": "Les entitats duplicades sempre s'eliminen. Si aquesta opció està habilitada, es compararan les finestres emergents de cada capa i se n'eliminarà la informació duplicada.", + "exportListsLabel": "Les meves llistes" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_cs.json b/src/assets/t9n/public-notification/resources_cs.json index 67cee6719..4d19da484 100644 --- a/src/assets/t9n/public-notification/resources_cs.json +++ b/src/assets/t9n/public-notification/resources_cs.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} vybraných prvků", "noNotifications": "Zatím nemáte žádný seznam oznámení.", "notifications": "Oznámení", - "myLists": "Ř_Create and edit lists______________________ů", + "myLists": "Vytvořit a upravit seznamy", "stepTwoFull": "Vytvořit nový seznam", "cancel": "Storno", "done": "Hotovo", - "selectPDFLabelOption": "Ř_Format options_______________ů", - "removeDuplicate": "Ř_Remove duplicates___________________ů:", + "selectPDFLabelOption": "Možnosti formátu", + "removeDuplicate": "Odstranit duplikáty:", "numDuplicates": "{{n}} duplikátů", - "selectLayerAndAdd": "Ř_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ů.", - "selectSearchTip": "Ř_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ů.", + "selectLayerAndAdd": "Vytvořte seznamy prvků pro export do formátu CSV a PDF. Pomocí nástrojů výběru zvolte prvky, které chcete zahrnout, a pak klikněte na tlačítko Vytvořit seznam.", + "selectSearchTip": "Ze vstupní vrstvy vyberte prvky, které chcete přidat do seznamu. Kreslete pomocí nástrojů skicování, zadejte vzdálenost vyhledávání a použijte prvky z jiné vrstvy k výběru překrývajících se prvků.", "selectLayerTip": "Nakreslete do mapy tvary, pomocí nichž vyberete prvky ze zvolené vrstvy výběru. Výsledky se použijí pro výběr prvků z vrstvy adresátů.", "selectSketchTip": "Pomocí nástrojů skicování nakreslete do mapy grafiku. Tím se vyberou prvky, které leží v průniku s vrstvou adresátů.", "optionalSearchDistance": "a volitelně přidejte vzdálenost vyhledávání.", - "listHasSetsTip": "Ř_Edit or delete existing lists or click Create new list_____________________________ů.", + "listHasSetsTip": "Upravte nebo odstraňte stávající seznamy nebo klikněte na tlačítko Vytvořit nový seznam.", "uniqueCout": "Jedinečný počet: {{n}}", "searchDistance": "Vzdálenost vyhledávání", "useLayerFeatures": "Použít prvky vrstvy", "export": "Exportovat", - "exportTip": "Ř_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ů.", + "exportTip": "Vyberte seznamy, které chcete zahrnout do exportovaného souboru. Exportovat seznamy jako CSV a PDF.", "title": "Nadpis", "addTitle": "Přidat název", "titlePlaceholder": "Zde zadejte název", @@ -35,8 +35,8 @@ "pdfOptions": "Možnosti PDF", "csvOptions": "Možnosti CSV", "refineSelection": "Upřesnit výběr", - "refineTip": "Ř_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ů.", + "refineTip": "Upřesněte a dokončete své seznamy pomocí nástrojů skicování a přidejte nebo odeberte vybrané prvky.", "refineTipNoSelections": "Neexistují žádné výběry, které by bylo možné upřesnit. Přejděte na Moje seznamy a vytvořte seznam prvků.", - "duplicatesTip": "Ř_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ů.", - "exportListsLabel": "Ř_My lists_________________ů" + "duplicatesTip": "Duplicitní prvky jsou vždy odebrány. Pokud je aktivní, vyskakovací okna v jednotlivých vrstvách se porovnají a všechny duplicitní informace vyskakovacích oken budou odebrány.", + "exportListsLabel": "Moje seznamy" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_da.json b/src/assets/t9n/public-notification/resources_da.json index 8100845b4..acd0c9da7 100644 --- a/src/assets/t9n/public-notification/resources_da.json +++ b/src/assets/t9n/public-notification/resources_da.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} valgte objekter", "noNotifications": "Du har endnu ingen notifikationsliste.", "notifications": "Meddelelser", - "myLists": "ø_Create and edit lists______________________å", + "myLists": "Opret og rediger lister", "stepTwoFull": "Opret ny liste", "cancel": "Annullér", "done": "Udført", - "selectPDFLabelOption": "ø_Format options_______________å", - "removeDuplicate": "ø_Remove duplicates___________________å:", + "selectPDFLabelOption": "Formateringsindstillinger", + "removeDuplicate": "Fjern dubletter:", "numDuplicates": "{{n}} dubletter", - "selectLayerAndAdd": "ø_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________å.", - "selectSearchTip": "ø_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________å.", + "selectLayerAndAdd": "Opret lister med objekter, der kan eksporteres som CSV og PDF. Brug markeringsværktøjerne til at vælge, hvilke objekter der skal medtages, og klik derefter på Opret liste.", + "selectSearchTip": "Vælg objekter fra inputlaget, der skal tilføjes til din liste. Tegn med skitseværktøjer, angiv en søgeafstand, og brug objekter fra et andet lag til at vælge overlappende objekter.", "selectLayerTip": "Tegn former for at vælge objekter fra det valgte markeringslag; resultaterne vil blive brugt til at vælge objekter fra adressat-laget", "selectSketchTip": "Brug skitseværktøjer til at tegne grafik på kortet for at vælge objekter, der gennemskærer hinanden i adressat-laget.", "optionalSearchDistance": "og tilføj eventuelt søgeafstand.", - "listHasSetsTip": "ø_Edit or delete existing lists or click Create new list_____________________________å.", + "listHasSetsTip": "Rediger eller slet eksisterende lister, eller klik på Opret ny liste.", "uniqueCout": "Entydigt antal: {{n}}", "searchDistance": "Søgeafstand", "useLayerFeatures": "Brug lagobjekter", "export": "Eksportér", - "exportTip": "ø_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________å.", + "exportTip": "Vælg lister, der skal medtages i den eksporterede fil. Eksporter lister som CSV og PDF.", "title": "Titel", "addTitle": "Tilføj titel", "titlePlaceholder": "Indtast titel her", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-indstillinger", "csvOptions": "CSV-indstillinger", "refineSelection": "Forfin valget", - "refineTip": "ø_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________å.", + "refineTip": "Forfin og færdiggør dine lister ved at bruge skitseværktøjer til at tilføje eller fjerne objekter.", "refineTipNoSelections": "Der er ingen markeringer at forfine. Gå til Mine lister for at oprette en liste med objekter.", - "duplicatesTip": "ø_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________å.", - "exportListsLabel": "ø_My lists_________________å" + "duplicatesTip": "Dublet-objekter fjernes altid. Når den er aktiveret, sammenlignes pop-up-vinduer fra hvert lag, og eventuelle dublet-oplysninger fjernes.", + "exportListsLabel": "Mine lister" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_de.json b/src/assets/t9n/public-notification/resources_de.json index 357ab379b..153fbb383 100644 --- a/src/assets/t9n/public-notification/resources_de.json +++ b/src/assets/t9n/public-notification/resources_de.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} ausgewählte Features", "noNotifications": "Es ist noch keine Benachrichtigungsliste vorhanden.", "notifications": "Benachrichtigungen", - "myLists": "ä_Create and edit lists______________________Ü", + "myLists": "Listen erstellen und bearbeiten", "stepTwoFull": "Neue Liste erstellen", "cancel": "Abbrechen", "done": "Fertig", - "selectPDFLabelOption": "ä_Format options_______________Ü", - "removeDuplicate": "ä_Remove duplicates___________________Ü:", + "selectPDFLabelOption": "Formatoptionen", + "removeDuplicate": "Duplikate entfernen:", "numDuplicates": "{{n}} Duplikate", - "selectLayerAndAdd": "ä_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Ü.", - "selectSearchTip": "ä_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Ü.", + "selectLayerAndAdd": "Erstellen Sie Listen von Features für den Export als CSV und PDF. Wählen Sie mit den Auswahlwerkzeugen die Features aus, die Sie einbeziehen möchten, und klicken Sie dann auf \"Liste erstellen\".", + "selectSearchTip": "Wählen Sie Features aus dem Eingabe-Layer aus, um sie zur Liste hinzuzufügen. Zeichnen Sie mit Skizzenwerkzeugen, legen Sie eine Suchentfernung fest, und verwenden Sie Features aus einem anderen Layer, um überlappende Features auszuwählen.", "selectLayerTip": "Zeichnen Sie Shapes, um Features aus dem ausgewählten Auswahl-Layer auszuwählen. Die Ergebnisse werden zum Auswählen von Features aus dem Adressat-Layer verwendet.", "selectSketchTip": "Verwenden Sie Skizzenwerkzeuge, um Grafiken in der Karte zu zeichnen und überschneidende Features im Adressat-Layer auszuwählen.", "optionalSearchDistance": "Fügen Sie optional eine Suchentfernung hinzu.", - "listHasSetsTip": "ä_Edit or delete existing lists or click Create new list_____________________________Ü.", + "listHasSetsTip": "Bearbeiten oder löschen Sie vorhandene Listen, oder klicken Sie auf \"Neue Liste erstellen\".", "uniqueCout": "Eindeutige Anzahl: {{n}}", "searchDistance": "Suchentfernung", "useLayerFeatures": "Layer-Features verwenden", "export": "Exportieren", - "exportTip": "ä_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Ü.", + "exportTip": "Wählen Sie die Listen aus, die in die exportierte Datei einbezogen werden sollen. Listen können als CSV und PDF exportiert werden.", "title": "Titel", "addTitle": "Titel hinzufügen", "titlePlaceholder": "Titel hier eingeben", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-Optionen", "csvOptions": "CSV-Optionen", "refineSelection": "Auswahl verfeinern", - "refineTip": "ä_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Ü.", + "refineTip": "Verfeinern und finalisieren Sie die Listen mit Skizzenwerkzeugen, um ausgewählte Features hinzuzufügen oder zu entfernen.", "refineTipNoSelections": "Es sind keine Auswahlen zum Verfeinern vorhanden. Wechseln Sie zu \"Eigene Listen\", um eine Feature-Liste zu erstellen.", - "duplicatesTip": "ä_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Ü.", - "exportListsLabel": "ä_My lists_________________Ü" + "duplicatesTip": "Doppelte Features werden grundsätzlich entfernt. Wenn diese Option aktiviert ist, werden die Pop-ups der einzelnen Layer verglichen und alle doppelten Pop-up-Informationen entfernt.", + "exportListsLabel": "Eigene Listen" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_el.json b/src/assets/t9n/public-notification/resources_el.json index 59960ceeb..36b5ca078 100644 --- a/src/assets/t9n/public-notification/resources_el.json +++ b/src/assets/t9n/public-notification/resources_el.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} επιλεγμένα στοιχεία", "noNotifications": "Δεν έχετε ακόμη λίστα ειδοποιήσεων.", "notifications": "Ειδοποιήσεις", - "myLists": "Đ_Create and edit lists______________________ớ", + "myLists": "Δημιουργία και επεξεργασία λιστών", "stepTwoFull": "Δημιουργία νέας λίστας", "cancel": "Ακύρωση", "done": "Τέλος", - "selectPDFLabelOption": "Đ_Format options_______________ớ", - "removeDuplicate": "Đ_Remove duplicates___________________ớ:", + "selectPDFLabelOption": "Επιλογές μορφότυπου", + "removeDuplicate": "Κατάργηση διπλότυπων:", "numDuplicates": "{{n}} διπλότυπα", - "selectLayerAndAdd": "Đ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ớ.", - "selectSearchTip": "Đ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ớ.", + "selectLayerAndAdd": "Δημιουργήστε λίστες χαρακτηριστικών που μπορεί να εξαχθούν σε αρχείο CSV και PDF. Χρησιμοποιήστε την επιλογή εργαλείων για να επιλέξτε ποια εργαλεία θα συμπεριλαμβάνονται και έπειτα κάντε κλικ στη Δημιουργία λίστας.", + "selectSearchTip": "Επιλέξτε στοιχεία από το θεματικό επίπεδο εισόδου για προσθήκη στη λίστα σας. Σχεδιάστε με εργαλεία σχεδιασμού, καθορίστε μια απόσταση αναζήτησης και χρησιμοποιήστε στοιχεία από ένα άλλο θεματικό επίπεδο για να επιλέξετε επικαλυπτόμενα στοιχεία.", "selectLayerTip": "Σχεδιάστε σχήματα για να επιλέξετε στοιχεία από το επιλεγμένο θεματικό επίπεδο επιλογής, τα αποτελέσματα θα χρησιμοποιηθούν για την ειλογή στοιχείων από το θεματικό επίπεδο αποδέκτη", "selectSketchTip": "Χρησιμοποιήστε εργαλεία σχεδίασης για να σχεδιάσετε γραφικά στον χάρτη για επιλογή τεμνόμενων στοιχείων στο θεματικό επίπεδο αποδέκτη.", "optionalSearchDistance": "και προαιρετικά προσθέστε την απόσταση αναζήτησης.", - "listHasSetsTip": "Đ_Edit or delete existing lists or click Create new list_____________________________ớ.", + "listHasSetsTip": "Επεξεργαστείτε ή διαγράψτε υπάρχουσες λίστες ή κάντε κλικ στη «Δημιουργία νέας λίστας».", "uniqueCout": "Μοναδικό πλήθος: {{n}}", "searchDistance": "Απόσταση αναζήτησης", "useLayerFeatures": "Χρήση στοιχείων θεματικών επιπέδων", "export": "Εξαγωγή", - "exportTip": "Đ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ớ.", + "exportTip": "Επιλέξτε λίστες για συμπερίληψη στο εξαγόμενο αρχείο. Εξαγωγή λιστών σε CSV και PDF.", "title": "Τίτλος", "addTitle": "Προσθήκη τίτλου", "titlePlaceholder": "Εισαγωγή τίτλου εδώ", @@ -35,8 +35,8 @@ "pdfOptions": "Επιλογές PDF", "csvOptions": "Επιλογές CSV", "refineSelection": "Περιορισμός επιλογής", - "refineTip": "Đ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ớ.", + "refineTip": "Περιορίστε και οριστικοποιήστε τις λίστες σας με εργαλεία σχεδίασης για να προσθέσετε ή να καταργήσετε επιλεγμένα στοιχεία.", "refineTipNoSelections": "Δεν υπάρχουν επιλογές προς περιορισμό. Μεταβείτε στην ενότητα «Οι λίστες μου» για να δημιουργήσετε λίστα χαρακτηριστικών.", - "duplicatesTip": "Đ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ớ.", - "exportListsLabel": "Đ_My lists_________________ớ" + "duplicatesTip": "Τα αντίγραφα στοιχείων πάντα καταργούνται. Όταν ενεργοποιηθεί, τα αναδυόμενα παράθυρα από κάθε επίπεδο θα συγκριθούν και τυχόν αντίγραφα αναδυόμενων πληροφοριών θα καταργηθούν.", + "exportListsLabel": "Οι λίστες μου" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_es.json b/src/assets/t9n/public-notification/resources_es.json index ce86e33b7..3192b33ba 100644 --- a/src/assets/t9n/public-notification/resources_es.json +++ b/src/assets/t9n/public-notification/resources_es.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} entidades seleccionadas", "noNotifications": "Todavía no tiene ninguna lista de notificación.", "notifications": "Notificaciones", - "myLists": "á_Create and edit lists______________________Ó", + "myLists": "Crear y editar listas", "stepTwoFull": "Crear lista nueva", "cancel": "Cancelar", "done": "Listo", - "selectPDFLabelOption": "á_Format options_______________Ó", - "removeDuplicate": "á_Remove duplicates___________________Ó:", + "selectPDFLabelOption": "Opciones de formato", + "removeDuplicate": "Eliminar duplicados:", "numDuplicates": "{{n}} duplicados", - "selectLayerAndAdd": "á_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Ó.", - "selectSearchTip": "á_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Ó.", + "selectLayerAndAdd": "Cree listas de entidades para exportar como CSV y PDF. Utilice herramientas de selección para elegir las entidades que se van a incluir y luego haga clic en Crear lista.", + "selectSearchTip": "Seleccione entidades de la capa de entrada para agregar a su lista. Dibuje con las herramientas de bosquejo, especifique una distancia de búsqueda y utilice entidades de otra capa para seleccionar entidades superpuestas.", "selectLayerTip": "Dibuje formas para seleccionar entidades de la capa de selección elegida; los resultados se utilizarán para seleccionar entidades de la capa destinataria", "selectSketchTip": "Utilice las herramientas de boceto para dibujar gráficos en el mapa con el fin de seleccionar entidades intersecantes en la capa destinataria.", "optionalSearchDistance": "y, opcionalmente, agregar la distancia de búsqueda.", - "listHasSetsTip": "á_Edit or delete existing lists or click Create new list_____________________________Ó.", + "listHasSetsTip": "Edite o elimine las listas existentes o haga clic en Crear lista nueva.", "uniqueCout": "Recuento único: {{n}}", "searchDistance": "Distancia de búsqueda", "useLayerFeatures": "Usar entidades de capa", "export": "Exportar", - "exportTip": "á_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Ó.", + "exportTip": "Seleccione las listas que se vayan a incluir en el archivo exportado. Exporte listas como CSV y PDF.", "title": "Título", "addTitle": "Agregar título", "titlePlaceholder": "Introducir título aquí", @@ -35,8 +35,8 @@ "pdfOptions": "Opciones de PDF", "csvOptions": "Opciones de CSV", "refineSelection": "Refinar selección", - "refineTip": "á_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Ó.", + "refineTip": "Limpie y termine las listas con las herramientas de bosquejo para agregar o eliminar entidades seleccionadas.", "refineTipNoSelections": "No hay selecciones para restringir. Vaya a Mis listas para crear una lista de entidades.", - "duplicatesTip": "á_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Ó.", - "exportListsLabel": "á_My lists_________________Ó" + "duplicatesTip": "Las entidades duplicadas se eliminan siempre. Cuando se habilita, los elementos emergentes de cada capa se comparan y la información de los elementos emergentes duplicados se elimina.", + "exportListsLabel": "Mis listas" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_et.json b/src/assets/t9n/public-notification/resources_et.json index b575f0453..ac5ac2e53 100644 --- a/src/assets/t9n/public-notification/resources_et.json +++ b/src/assets/t9n/public-notification/resources_et.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} valitud objektid", "noNotifications": "Teil pole veel teadete loendit.", "notifications": "Teavitused", - "myLists": "Š_Create and edit lists______________________ä", + "myLists": "Loendite loomine ja muutmine", "stepTwoFull": "Loo uus loend", "cancel": "Loobu", "done": "Valmis", - "selectPDFLabelOption": "Š_Format options_______________ä", - "removeDuplicate": "Š_Remove duplicates___________________ä:", + "selectPDFLabelOption": "Formaadi valikud", + "removeDuplicate": "Eemalda duplikaadid:", "numDuplicates": "{{n}} duplikaati", - "selectLayerAndAdd": "Š_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ä.", - "selectSearchTip": "Š_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ä.", + "selectLayerAndAdd": "Looge objektide loend, mille saab eksportida CSV- ja PDF-failina. Valige valiku tööriistadega objektid, mis soovite kaasata, ja seejärel klõpsake nuppu Loo loend.", + "selectSearchTip": "Valige sisendkihilt objektid, mis soovite lisada oma loendisse. Joonistage visandustööriistadega, määrake otsitav vahemaa ja kasutage mõne muu kihi objekte, et valida kattuvad objektid.", "selectLayerTip": "Joonistage kujundid, et valida objekte valitud valikukihilt; tulemusi kasutatakse objektide valimiseks adressaadi kihilt", "selectSketchTip": "Kasutage visandustööriistu kaardile graafika joonistamiseks, et valida lõikuvaid objekte adressaadi kihilt.", "optionalSearchDistance": "ja soovi korral lisage otsitav vahemaa.", - "listHasSetsTip": "Š_Edit or delete existing lists or click Create new list_____________________________ä.", + "listHasSetsTip": "Redigeerige või kustutage olemasolevaid loendeid või klõpsake nuppu Loo uus loend.", "uniqueCout": "Kordumatu arv: {{n}}", "searchDistance": "Otsitav vahemaa", "useLayerFeatures": "Kasuta kihi objekte", "export": "Ekspordi", - "exportTip": "Š_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ä.", + "exportTip": "Valige eksporditavas failis kaasatavad loendid. Eksportige loendid CSV- ja PDF-failina.", "title": "Pealkiri", "addTitle": "Lisage pealkiri", "titlePlaceholder": "Sisestage pealkiri siia", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-i valikud", "csvOptions": "CSV valikud", "refineSelection": "Täpsusta valikut", - "refineTip": "Š_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ä.", + "refineTip": "Täpsustage ja vormistage lõplikult oma loendid, kasutades visandustööriistu valitud objektide lisamiseks või eemaldamiseks.", "refineTipNoSelections": "Täpsustamiseks pole ühtegi valikut. Objektiloendi loomiseks avage Minu loendid.", - "duplicatesTip": "Š_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ä.", - "exportListsLabel": "Š_My lists_________________ä" + "duplicatesTip": "Objektiduplikaadid eemaldatakse alati. Kui see on lubatud, võrreldakse iga kihi hüpikaknaid ja teabe hüpikakende duplikaadid eemaldatakse.", + "exportListsLabel": "Minu loendid" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_fi.json b/src/assets/t9n/public-notification/resources_fi.json index 31c9b11bf..fe32d8264 100644 --- a/src/assets/t9n/public-notification/resources_fi.json +++ b/src/assets/t9n/public-notification/resources_fi.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} valittua kohdetta", "noNotifications": "Sinulla ei ole vielä ilmoitusluetteloa.", "notifications": "Ilmoitukset", - "myLists": "Å_Create and edit lists______________________ö", + "myLists": "Luo ja muokkaa luetteloita", "stepTwoFull": "Luo uusi luettelo", "cancel": "Peruuta", "done": "Valmis", - "selectPDFLabelOption": "Å_Format options_______________ö", - "removeDuplicate": "Å_Remove duplicates___________________ö:", + "selectPDFLabelOption": "Muotoiluasetukset", + "removeDuplicate": "Poista kaksoiskappaleet:", "numDuplicates": "{{n}} kaksoiskappaletta", - "selectLayerAndAdd": "Å_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ö.", - "selectSearchTip": "Å_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ö.", + "selectLayerAndAdd": "Luo luettelo kohteista, jotka viedään CSV- tai PDF-tiedostoon. Valitse sisällytettävät kohteet valintatyökaluilla ja napsauta sitten Luo luettelo.", + "selectSearchTip": "Valitse luetteloosi lisättävät kohteet lähtöaineiston karttatasosta. Piirrä luonnostyökaluilla, määritä hakuetäisyys ja valitse päällekkäiset kohteet käyttämällä toisen karttatason kohteita.", "selectLayerTip": "Piirtämällä muotoja voit valita kohteita valitusta valintakarttatasosta; tulosten avulla valitaan kohteita vastaanottajan karttatasosta", "selectSketchTip": "Luonnostyökaluilla voit piirtää kaavioita karttaan ja valita leikkaavia kohteita vastaanottajan karttatasossa.", "optionalSearchDistance": "ja valinnaisesti lisätään hakuetäisyys.", - "listHasSetsTip": "Å_Edit or delete existing lists or click Create new list_____________________________ö.", + "listHasSetsTip": "Muokkaa tai poista aiemmin luotuja luetteloita tai napsauta Luo uusi luettelo.", "uniqueCout": "Yksilöllinen määrä: {{n}}", "searchDistance": "Hakuetäisyys", "useLayerFeatures": "Käytä karttatason kohteita", "export": "Vie", - "exportTip": "Å_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ö.", + "exportTip": "Valitse vietyyn tiedostoon sisällytettävät luettelot. Vie luettelot CSV- ja PDF-tiedostoina.", "title": "Otsikko", "addTitle": "Lisää otsikko", "titlePlaceholder": "Kirjoita otsikko tähän", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-asetukset", "csvOptions": "CSV-asetukset", "refineSelection": "Tarkenna valintaa", - "refineTip": "Å_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ö.", + "refineTip": "Tarkenna ja viimeistele luetteloita käyttämällä luonnostyökaluja, jotta voit lisätä tai poistaa valittuja kohteita.", "refineTipNoSelections": "Tarkennettavia valintoja ei ole. Luo kohdeluettelo siirtymällä kohtaan Omat luettelot.", - "duplicatesTip": "Å_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ö.", - "exportListsLabel": "Å_My lists_________________ö" + "duplicatesTip": "Kohteiden kaksoiskappaleet poistetaan aina. Kun toiminto on käytössä, jokaisen karttatason ponnahdusikkunoita verrataan ja mahdolliset ponnahdusikkunoiden tietojen kaksoiskappaleet poistetaan.", + "exportListsLabel": "Omat luettelot" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_fr.json b/src/assets/t9n/public-notification/resources_fr.json index 3cf451a3f..a373fcec1 100644 --- a/src/assets/t9n/public-notification/resources_fr.json +++ b/src/assets/t9n/public-notification/resources_fr.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} entités sélectionnées", "noNotifications": "Il n’existe aucune liste de notifications pour le moment.", "notifications": "Notifications", - "myLists": "æ_Create and edit lists______________________Â", + "myLists": "Créer et modifier des listes", "stepTwoFull": "Créer une nouvelle liste", "cancel": "Annuler", "done": "Terminé", - "selectPDFLabelOption": "æ_Format options_______________Â", - "removeDuplicate": "æ_Remove duplicates___________________Â:", + "selectPDFLabelOption": "Options de format", + "removeDuplicate": "Supprimer les doublons :", "numDuplicates": "{{n}} doublons", - "selectLayerAndAdd": "æ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Â.", - "selectSearchTip": "æ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Â.", + "selectLayerAndAdd": "Créez des listes d’entités à exporter au format CSV et PDF. Utilisez les outils de sélection pour choisir les entités à inclure, puis cliquez sur Créer une liste.", + "selectSearchTip": "Sélectionnez les entités de la couche en entrée à ajouter à la liste. Dessinez avec les outils de dessin, spécifiez une distance de recherche et utilisez les entités d’une autre couche pour sélectionner des entités superposées.", "selectLayerTip": "Dessinez des formes pour sélectionner des entités dans la couche de sélection choisie. Les résultats servent à sélectionner des entités dans la couche de destinataires", "selectSketchTip": "Utilisez les outils de dessin pour tracer des graphismes sur la carte et sélectionner les entités d’intersection dans la couche de destinataires.", "optionalSearchDistance": "et ajoutez éventuellement une distance de recherche.", - "listHasSetsTip": "æ_Edit or delete existing lists or click Create new list_____________________________Â.", + "listHasSetsTip": "Modifiez ou supprimez des listes existantes ou cliquez sur Créer une nouvelle liste.", "uniqueCout": "Nombre de valeurs uniques : {{n}}", "searchDistance": "Distance de recherche", "useLayerFeatures": "Utiliser des entités de la couche", "export": "Exporter", - "exportTip": "æ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Â.", + "exportTip": "Sélectionnez les listes à inclure dans le fichier exporté. Exportez les listes au format CSV et PDF.", "title": "Titre", "addTitle": "Ajouter un titre", "titlePlaceholder": "Saisir un titre ici", @@ -35,8 +35,8 @@ "pdfOptions": "Options PDF", "csvOptions": "Options CSV", "refineSelection": "Affiner la sélection", - "refineTip": "æ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Â.", + "refineTip": "Affinez et finalisez vos listes en utilisant les outils de dessin pour ajouter ou supprimer les entités sélectionnées.", "refineTipNoSelections": "Aucune sélection à affiner. Accédez à Mes listes pour créer une liste d’entités.", - "duplicatesTip": "æ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Â.", - "exportListsLabel": "æ_My lists_________________Â" + "duplicatesTip": "Les entités dupliquées sont toujours supprimées. Lorsque cette option est activée, les fenêtres contextuelles de chaque couche sont comparées et les informations dupliquées sont supprimées.", + "exportListsLabel": "Mes listes" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_he.json b/src/assets/t9n/public-notification/resources_he.json index 2e5c657db..e2c721a52 100644 --- a/src/assets/t9n/public-notification/resources_he.json +++ b/src/assets/t9n/public-notification/resources_he.json @@ -10,24 +10,24 @@ "selectedFeatures": "נבחרו {{n}} ישויות", "noNotifications": "אין לך עדיין רשימת התראות.", "notifications": "הודעות", - "myLists": "כן_Create and edit lists______________________ש", + "myLists": "יצירה ועריכה של רשימות", "stepTwoFull": "צור רשימה חדשה", "cancel": "ביטול", "done": "בוצע", - "selectPDFLabelOption": "כן_Format options_______________ש", - "removeDuplicate": "כן_Remove duplicates___________________ש:", + "selectPDFLabelOption": "אפשרויות פורמט", + "removeDuplicate": "הסר כפילויות:", "numDuplicates": "{{n}} כפילויות", - "selectLayerAndAdd": "כן_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ש.", - "selectSearchTip": "כן_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ש.", + "selectLayerAndAdd": "צור רשימות של ישויות לייצוא כקובץ CSV או PDF. השתמש בכלי בחירה כדי לקבוע אילו ישויות ייכללו, ואז לחץ על 'צור רשימה'.", + "selectSearchTip": "בחר משכבת הקלט ישויות שיתווספו לרשימה שלך. צייר בעזרת כלי סקיצה, ציין מרחק חיפוש והשתמש בישויות משכבה אחרת כדי לבחור ישויות חופפות.", "selectLayerTip": "שרטט צורות כדי לבחור ישויות משכבת הבחירה שנבחרה; התוצאות ישמשו לבחיתר יישויות משכבת הנמען.", "selectSketchTip": "השתמש בכלי שרטוט כדי לצייר גרפיקות במפה לבחירת ישויות מצלבות בשכבות הנמען.", "optionalSearchDistance": "ואופציונלית הוסף מרחק חיפוש.", - "listHasSetsTip": "כן_Edit or delete existing lists or click Create new list_____________________________ש.", + "listHasSetsTip": "ערוך או מחק רשימות קיימות או לחץ על 'צור רשימה חדשה'.", "uniqueCout": "ספירת ייחודיים: {{n}}", "searchDistance": "מרחק חיפוש", "useLayerFeatures": "השתמש בישויות שכבה", "export": "ייצא", - "exportTip": "כן_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ש.", + "exportTip": "בחר רשימות שייכללו בקובץ המיוצא. ייצא רשימות כקובץ CSV או PDF.", "title": "כותרת", "addTitle": "הוסף כותרת", "titlePlaceholder": "הוסף כותרת כאן", @@ -35,8 +35,8 @@ "pdfOptions": "אפשרויות PDF", "csvOptions": "אפשרויות CSV", "refineSelection": "חידוד בחירה", - "refineTip": "כן_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ש.", + "refineTip": "חדד והשלם את הרשימות שלך בעזרת כלי סקיצה להוספה או להסרה של ישויות שנבחרו.", "refineTipNoSelections": "אין בחירות לחידוד. עבור אל 'הרשימות שלי' כדי ליצור רשימת ישויות.", - "duplicatesTip": "כן_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ש.", - "exportListsLabel": "כן_My lists_________________ש" + "duplicatesTip": "הסר תמיד ישויות כפולות. כשאפשרות זו מופעלת, מתבצעת השוואה בין החלונות קופצים מכל שכבה וכל התוכן הכפול בחלונות אלה יוסר.", + "exportListsLabel": "הרשימות שלי" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_hr.json b/src/assets/t9n/public-notification/resources_hr.json index fbcb90073..52c785b30 100644 --- a/src/assets/t9n/public-notification/resources_hr.json +++ b/src/assets/t9n/public-notification/resources_hr.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} odabrani geoobjekti", "noNotifications": "Još nemate popis obavijesti.", "notifications": "Obavijesti", - "myLists": "Č_Create and edit lists______________________ž", + "myLists": "Stvaranje i uređivanje popisa", "stepTwoFull": "Stvori novi popis", "cancel": "Odustani", "done": "Gotovo", - "selectPDFLabelOption": "Č_Format options_______________ž", - "removeDuplicate": "Č_Remove duplicates___________________ž:", + "selectPDFLabelOption": "Opcije formata", + "removeDuplicate": "Ukloni duplikate:", "numDuplicates": "{{n}} duplikati", - "selectLayerAndAdd": "Č_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ž.", - "selectSearchTip": "Č_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ž.", + "selectLayerAndAdd": "Stvorite popise geoobjekata za izvoz kao CSV i PDF. Upotrijebite alate za odabir kako biste odabrali geoobjekte koje ćete uključiti, a zatim kliknite Stvori popis.", + "selectSearchTip": "Odaberite geoobjekte iz ulaznog sloja koje želite dodati na svoj popis. Crtajte alatima za skiciranje, odredite udaljenost pretraživanja i koristite geoobjekte iz drugog sloja za odabir geoobjekata koje se preklapaju.", "selectLayerTip": "Nacrtajte oblike za odabir geoobjekata iz odabranog sloja za odabir; a rezultati će se koristiti za odabir geoobjekata iz sloja primatelja", "selectSketchTip": "Koristite alate za skiciranje za crtanje grafike na karti kako biste odabrali značajke koje se presijecaju u sloju primatelja.", "optionalSearchDistance": "Opcionalno možete dodati i udaljenost pretrage.", - "listHasSetsTip": "Č_Edit or delete existing lists or click Create new list_____________________________ž.", + "listHasSetsTip": "Uredite ili izbrišite postojeće popise ili kliknite Stvori novi popis.", "uniqueCout": "Jedinstven zbroj: {{n}}", "searchDistance": "Pretraži udaljenost", "useLayerFeatures": "Upotrijebi geoobjekte sloja", "export": "Izvezi", - "exportTip": "Č_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ž.", + "exportTip": "Odaberite popise za uključivanje u izvezenu datoteku. Izvezite popise u CSV i PDF formatu.", "title": "Naziv", "addTitle": "Dodaj naslov", "titlePlaceholder": "Unesite naslov ovdje", @@ -35,8 +35,8 @@ "pdfOptions": "Opcije PDF-a", "csvOptions": "Opcije CSV-a", "refineSelection": "Pročisti odabir", - "refineTip": "Č_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ž.", + "refineTip": "Pročistite i finalizirajte svoje popise pomoću alata za skiciranje za dodavanje ili uklanjanje odabranih geoobjekata.", "refineTipNoSelections": "Nema odabira za precizirati. Idite na Moje popise da biste stvorili popis geoobjekata.", - "duplicatesTip": "Č_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ž.", - "exportListsLabel": "Č_My lists_________________ž" + "duplicatesTip": "Duplicirani geoobjekti uvijek se uklanjaju. Kada je omogućeno, skočni prozori sa svakog sloja će se uspoređivati i svi dupli podaci u skočnim prozorima bit će uklonjeni.", + "exportListsLabel": "Moji popisi" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_hu.json b/src/assets/t9n/public-notification/resources_hu.json index 97f0b9483..ef7e3eef5 100644 --- a/src/assets/t9n/public-notification/resources_hu.json +++ b/src/assets/t9n/public-notification/resources_hu.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} kiválasztott vektoros elem", "noNotifications": "Önnek még nincs értesítési listája.", "notifications": "Értesítések", - "myLists": "í_Create and edit lists______________________ő", + "myLists": "Listák létrehozása és szerkesztése", "stepTwoFull": "Új lista létrehozása", "cancel": "Mégse", "done": "Kész", - "selectPDFLabelOption": "í_Format options_______________ő", - "removeDuplicate": "í_Remove duplicates___________________ő:", + "selectPDFLabelOption": "Formátumbeállítások", + "removeDuplicate": "Ismétlődők eltávolítása:", "numDuplicates": "{{n}} ismétlődő", - "selectLayerAndAdd": "í_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ő.", - "selectSearchTip": "í_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ő.", + "selectLayerAndAdd": "Létrehozhatja a CSV- vagy PDF-fájlba exportálandó vektoros elemek listáit. Válassza ki a kijelölőeszközökkel a felvenni kívánt vektoros elemeket, majd kattintson a Lista létrehozása gombra.", + "selectSearchTip": "Válassza ki a listára felvenni kívánt vektoros elemeket a bemeneti rétegből. Rajzoljon a vázlateszközökkel, adjon meg egy keresési távolságot, és használja egy másik réteg vektoros elemeit az átfedő vektoros elemek kiválasztásához.", "selectLayerTip": "Alakzatok rajzolása a választott kiválasztási réteg vektoros elemeinek kijelölésére; az eredményeket a címzett réteg vektoros elemeinek kiválasztására fogja használni.", "selectSketchTip": "A vázlateszközökkel grafikákat rajzolhat a térképen a címzett réteg metszéspontjainak kijelölésére.", "optionalSearchDistance": "és opcionálisan hozzáadhatja a keresési távolságot.", - "listHasSetsTip": "í_Edit or delete existing lists or click Create new list_____________________________ő.", + "listHasSetsTip": "Szerkessze vagy törölje a meglévő listákat, vagy kattintson az Új lista létrehozása gombra.", "uniqueCout": "Egyedi szám: {{n}}", "searchDistance": "Keresési távolság", "useLayerFeatures": "Réteg vektoros elemek használata", "export": "Exportálás", - "exportTip": "í_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ő.", + "exportTip": "Válassza ki az exportált fájlba felvenni kívánt listákat. Exportálja a listákat CSV és PDF formátumban.", "title": "Cím", "addTitle": "Cím megadása", "titlePlaceholder": "Itt adja meg a címet", @@ -35,8 +35,8 @@ "pdfOptions": "PDF opciók", "csvOptions": "CSV opciók", "refineSelection": "Kijelölés finomítása", - "refineTip": "í_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ő.", + "refineTip": "Finomítsa és véglegesítse listáit a vázlateszközökkel a vektoros elemek hozzáadásához vagy eltávolításához.", "refineTipNoSelections": "Nincsenek finomítandó választások. Menjen a Saját listák menüpontba, hogy létrehozza a vektoros elemek listáját.", - "duplicatesTip": "í_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ő.", - "exportListsLabel": "í_My lists_________________ő" + "duplicatesTip": "A vektoros elemek ismétlődései mindig el lesznek távolítva. Ha engedélyezve van, az egyes rétegek előugró ablakai össze lesznek hasonlítva, és az előugró ablakok ismétlődő információi el lesznek távolítva.", + "exportListsLabel": "Saját listák" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_id.json b/src/assets/t9n/public-notification/resources_id.json index 40700dd38..663318135 100644 --- a/src/assets/t9n/public-notification/resources_id.json +++ b/src/assets/t9n/public-notification/resources_id.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} fitur yang dipilih", "noNotifications": "Anda belum memiliki daftar notifikasi.", "notifications": "Notifikasi", - "myLists": "ng_Create and edit lists______________________ny", + "myLists": "Membuat dan mengedit daftar", "stepTwoFull": "Buat daftar baru", "cancel": "Batalkan", "done": "Selesai", - "selectPDFLabelOption": "ng_Format options_______________ny", - "removeDuplicate": "ng_Remove duplicates___________________ny:", + "selectPDFLabelOption": "Opsi format", + "removeDuplicate": "Hapus duplikat:", "numDuplicates": "{{n}} duplikat", - "selectLayerAndAdd": "ng_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ny.", - "selectSearchTip": "ng_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ny.", + "selectLayerAndAdd": "Buat daftar fitur untuk diekspor sebagai CSV dan PDF. Gunakan alat seleksi untuk memilih fitur mana yang akan disertakan, lalu klik Buat daftar.", + "selectSearchTip": "Pilih fitur dari layer input untuk ditambahkan ke daftar Anda. Gambarlah dengan alat sketsa, tentukan jarak pencarian, dan gunakan fitur dari layer lain untuk memilih fitur yang tumpang tindih.", "selectLayerTip": "Gambar bentuk untuk memilih fitur dari layer pemilihan yang dipilih; hasilnya akan digunakan untuk memilih fitur dari layer penerima", "selectSketchTip": "Gunakan alat sketsa untuk menggambar grafik di peta untuk memilih fitur simpangan di layer penerima.", "optionalSearchDistance": "dan secara opsional menambahkan jarak pencarian.", - "listHasSetsTip": "ng_Edit or delete existing lists or click Create new list_____________________________ny.", + "listHasSetsTip": "Edit atau hapus daftar yang ada atau klik Buat daftar baru.", "uniqueCout": "Jumlah Unik: {{n}}", "searchDistance": "Jarak pencarian", "useLayerFeatures": "Gunakan fitur layer", "export": "Ekspor", - "exportTip": "ng_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ny.", + "exportTip": "Pilih daftar untuk disertakan dalam file yang diekspor. Ekspor daftar sebagai CSV dan PDF.", "title": "Judul", "addTitle": "Tambahkan judul", "titlePlaceholder": "Masukkan judul di sini", @@ -35,8 +35,8 @@ "pdfOptions": "Opsi PDF", "csvOptions": "Opsi CSV", "refineSelection": "Perjelas pilihan", - "refineTip": "ng_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ny.", + "refineTip": "Sempurnakan dan selesaikan daftar Anda dengan menggunakan alat sketsa untuk menambah atau menghapus fitur yang dipilih.", "refineTipNoSelections": "Tidak ada pilihan yang dapat diperjelas. Buka Daftar saya untuk membuat daftar fitur.", - "duplicatesTip": "ng_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ny.", - "exportListsLabel": "ng_My lists_________________ny" + "duplicatesTip": "Fitur duplikat selalu dihapus. Saat diaktifkan, pop-up dari setiap layer akan dibandingkan dan informasi pop-up duplikat apa pun akan dihapus.", + "exportListsLabel": "Daftar saya" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_it.json b/src/assets/t9n/public-notification/resources_it.json index c2d9c3b1b..715b58bdf 100644 --- a/src/assets/t9n/public-notification/resources_it.json +++ b/src/assets/t9n/public-notification/resources_it.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} feature selezionate", "noNotifications": "Non si dispone di alcun elenco di notifica.", "notifications": "Notifiche", - "myLists": "é_Create and edit lists______________________È", + "myLists": "Creare e modificare elenchi", "stepTwoFull": "Crea nuovo elenco", "cancel": "Annulla", "done": "Completato", - "selectPDFLabelOption": "é_Format options_______________È", - "removeDuplicate": "é_Remove duplicates___________________È:", + "selectPDFLabelOption": "Opzioni per il formato", + "removeDuplicate": "Rimuovi duplicati:", "numDuplicates": "{{n}} duplicati", - "selectLayerAndAdd": "é_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________È.", - "selectSearchTip": "é_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________È.", + "selectLayerAndAdd": "Creare elenchi di feature da esportare in formato CSV e PDF. Usare gli strumenti di selezione per scegliere quale feature utilizzare, quindi fare clic su Crea elenco.", + "selectSearchTip": "Selezionare feature dal layer di input da aggiungere all'elenco. Disegnare con gli strumenti di schizzo, specificare una distanza di ricerca e usare le feature di un altro layer per selezionare feature che si sovrappongono.", "selectLayerTip": "Disegnare delle figure per selezionare le feature dal layer di selezione scelto; i risultati verranno utilizzati per selezionare le feature dal layer destinatario", "selectSketchTip": "Utilizzare gli strumenti di disegno per disegnare figure nella mappa e selezionare feature intersecanti nel layer destinatario.", "optionalSearchDistance": "e facoltativamente aggiungere la distanza di ricerca.", - "listHasSetsTip": "é_Edit or delete existing lists or click Create new list_____________________________È.", + "listHasSetsTip": "Modificare o eliminare elenchi esistenti o fare clic su Crea nuovo elenco.", "uniqueCout": "Conteggio univoco: {{n}}", "searchDistance": "Distanza di ricerca", "useLayerFeatures": "Utilizza feature del layer", "export": "Esporta", - "exportTip": "é_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________È.", + "exportTip": "Selezionare elenchi da includere nel file esportato. Esportare elenchi in formato CSV e PDF.", "title": "Titolo", "addTitle": "Aggiungi titolo", "titlePlaceholder": "Inserire titolo qui", @@ -35,8 +35,8 @@ "pdfOptions": "Opzioni PDF", "csvOptions": "Opzioni CSV", "refineSelection": "Ottimizza selezione", - "refineTip": "é_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________È.", + "refineTip": "Affinare e finalizzare gli elenchi utilizzando gli strumenti di schizzo per aggiungere o rimuovere feature selezionate.", "refineTipNoSelections": "Non ci sono selezioni da affinare. Vai su I miei elenchi per creare un elenco di feature.", - "duplicatesTip": "é_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________È.", - "exportListsLabel": "é_My lists_________________È" + "duplicatesTip": "Le feature duplicate vengono sempre rimosse. Quando abilitato, si confrontano i pop-up di ciascun layer e tutte le informazioni pop-up duplicate saranno rimosse.", + "exportListsLabel": "I miei elenchi" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_ja.json b/src/assets/t9n/public-notification/resources_ja.json index b2e4a1917..d21a1978e 100644 --- a/src/assets/t9n/public-notification/resources_ja.json +++ b/src/assets/t9n/public-notification/resources_ja.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} の選択フィーチャ", "noNotifications": "通知リストがまだありません。", "notifications": "通知", - "myLists": "須_Create and edit lists______________________鷗", + "myLists": "リストの作成および編集", "stepTwoFull": "新しいリストの作成", "cancel": "キャンセル", "done": "完了", - "selectPDFLabelOption": "須_Format options_______________鷗", - "removeDuplicate": "須_Remove duplicates___________________鷗:", + "selectPDFLabelOption": "書式設定オプション", + "removeDuplicate": "重複を削除:", "numDuplicates": "{{n}} の重複", - "selectLayerAndAdd": "須_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________鷗.", - "selectSearchTip": "須_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________鷗.", + "selectLayerAndAdd": "CSV および PDF としてエクスポートするフィーチャのリストを作成します。 選択ツールを使用して、含めるフィーチャを選択してから、リストの作成をクリックします。", + "selectSearchTip": "リストに追加するフィーチャを入力レイヤーから選択します。 スケッチ ツールで描画して、検索距離を指定し、別のレイヤーのフィーチャを使用して、重なり合っているフィーチャを選択します。", "selectLayerTip": "図形を描画して、選択した選択レイヤーからフィーチャを選択します。結果は宛先レイヤーからのフィーチャの選択に使用されます", "selectSketchTip": "スケッチ ツールを使用して、マップにグラフィックスを描画し、宛先レイヤー内の交差するフィーチャを選択します。", "optionalSearchDistance": "必要に応じて、検索距離を追加します。", - "listHasSetsTip": "須_Edit or delete existing lists or click Create new list_____________________________鷗.", + "listHasSetsTip": "既存のリストを編集または削除するか、新しいリストの作成をクリックします。", "uniqueCout": "個別の数: {{n}}", "searchDistance": "検索距離", "useLayerFeatures": "レイヤー フィーチャの使用", "export": "エクスポート", - "exportTip": "須_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________鷗.", + "exportTip": "エクスポートしたファイルに含めるリストを選択します。 リストを CSV および PDF としてエクスポートします。", "title": "タイトル", "addTitle": "タイトルの追加", "titlePlaceholder": "ここにタイトルを入力", @@ -35,8 +35,8 @@ "pdfOptions": "PDF オプション", "csvOptions": "CSV オプション", "refineSelection": "選択の調整", - "refineTip": "須_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________鷗.", + "refineTip": "リストを絞り込んで確定するには、スケッチ ツールを使用して、選択したフィーチャを追加または削除します。", "refineTipNoSelections": "絞り込む選択セットがありません。 マイ リストに移動して、フィーチャのリストを作成します。", - "duplicatesTip": "須_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________鷗.", - "exportListsLabel": "須_My lists_________________鷗" + "duplicatesTip": "重複するフィーチャは常に削除されます。 有効化されている場合、各レイヤーのポップアップが比較され、重複するポップアップ情報がすべて削除されます。", + "exportListsLabel": "マイ リスト" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_ko.json b/src/assets/t9n/public-notification/resources_ko.json index b49dbf3f5..60ce2af04 100644 --- a/src/assets/t9n/public-notification/resources_ko.json +++ b/src/assets/t9n/public-notification/resources_ko.json @@ -10,24 +10,24 @@ "selectedFeatures": "선택한 피처 {{n}}개", "noNotifications": "아직 알림 목록이 없습니다.", "notifications": "알림", - "myLists": "한_Create and edit lists______________________빠", + "myLists": "목록 생성 및 편집", "stepTwoFull": "새 목록 생성", "cancel": "취소", "done": "완료", - "selectPDFLabelOption": "한_Format options_______________빠", - "removeDuplicate": "한_Remove duplicates___________________빠:", + "selectPDFLabelOption": "형식 옵션", + "removeDuplicate": "중복 제거:", "numDuplicates": "중복 {{n}}개", - "selectLayerAndAdd": "한_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________빠.", - "selectSearchTip": "한_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________빠.", + "selectLayerAndAdd": "CSV 및 PDF로 내보낼 피처 목록을 생성합니다. 선택 항목 도구를 사용하여 포함할 피처를 선택한 다음 목록 생성을 클릭합니다.", + "selectSearchTip": "입력 레이어에서 피처를 선택하여 목록에 추가합니다. 스케치 도구로 그리고, 검색 거리를 지정하고, 다른 레이어의 피처를 사용하여 중첩 피처를 선택합니다.", "selectLayerTip": "쉐이프를 그려 선택한 선택 레이어에서 피처를 선택합니다. 결과는 수신인 레이어에서 피처를 선택하는 데 사용됩니다.", "selectSketchTip": "스케치 도구를 사용하여 맵에 그래픽을 그려 수신인 레이어에서 교차 피처를 선택합니다.", "optionalSearchDistance": "필요에 따라 검색 거리를 추가합니다.", - "listHasSetsTip": "한_Edit or delete existing lists or click Create new list_____________________________빠.", + "listHasSetsTip": "기존 목록을 편집 또는 삭제하거나 새 목록 생성을 클릭합니다.", "uniqueCout": "고유 개수: {{n}}", "searchDistance": "검색 거리", "useLayerFeatures": "레이어 피처 사용", "export": "내보내기", - "exportTip": "한_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________빠.", + "exportTip": "내보낸 파일에 포함할 목록을 선택합니다. 목록을 CSV 및 PDF로 내보냅니다.", "title": "제목", "addTitle": "제목 추가", "titlePlaceholder": "여기에 제목 입력", @@ -35,8 +35,8 @@ "pdfOptions": "PDF 옵션", "csvOptions": "CSV 옵션", "refineSelection": "선택 항목 세부 조정", - "refineTip": "한_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________빠.", + "refineTip": "스케치 도구를 사용해 선택한 피처를 추가하거나 제거하여 목록을 세부 조정하고 마무리합니다.", "refineTipNoSelections": "세부 조정할 선택 항목이 없습니다. 내 목록으로 이동하여 피처 목록을 생성합니다.", - "duplicatesTip": "한_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________빠.", - "exportListsLabel": "한_My lists_________________빠" + "duplicatesTip": "중복 피처는 항상 제거됩니다. 활성화된 경우 각 레이어의 팝업을 비교하여 중복 팝업 정보가 모두 제거됩니다.", + "exportListsLabel": "내 목록" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_lt.json b/src/assets/t9n/public-notification/resources_lt.json index 94727df09..a0698912b 100644 --- a/src/assets/t9n/public-notification/resources_lt.json +++ b/src/assets/t9n/public-notification/resources_lt.json @@ -10,24 +10,24 @@ "selectedFeatures": "Pasirinkta elementų: {{n}}", "noNotifications": "Dar neturite pranešimų sąrašo.", "notifications": "Pranešimai", - "myLists": "Į_Create and edit lists______________________š", + "myLists": "Kurti ir redaguoti sąrašus", "stepTwoFull": "Kurti naują sąrašą", "cancel": "Atšaukti", "done": "Atlikta", - "selectPDFLabelOption": "Į_Format options_______________š", - "removeDuplicate": "Į_Remove duplicates___________________š:", + "selectPDFLabelOption": "Formato variantai", + "removeDuplicate": "Pašalinti dublikatus:", "numDuplicates": "{{n}} dublikatai (-ų)", - "selectLayerAndAdd": "Į_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________š.", - "selectSearchTip": "Į_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________š.", + "selectLayerAndAdd": "Sukurkite elementų, kuriuos norite eksportuoti į CSV ir PDF failą, sąrašus. Naudodami pasirinkimo įrankius pasirinkite, kuriuos elementus norite įtraukti, tada spustelėkite Kurti sąrašą.", + "selectSearchTip": "Iš įvesties sluoksnio pasirinkite elementus, kuriuos norite įtraukti į sąrašą. Braižykite naudodami eskizavimo įrankius, nurodykite paieškos atstumą ir naudokite kito sluoksnio elementus, kad pasirinktumėte persidengiančius elementus.", "selectLayerTip": "Braižykite figūras, kuriose galite pasirinkti elementus. Rezultatai bus naudojami adresato sluoksnio ypatybėms pasirinkti", "selectSketchTip": "Naudokite eskizų įrankius, norėdami kurti grafiką žemėlapyje, kad galėtumėte pasirinkti susikertančias adresato sluoksnio ypatybes.", "optionalSearchDistance": "ir pasirinktinai pridėti paieškos atstumą.", - "listHasSetsTip": "Į_Edit or delete existing lists or click Create new list_____________________________š.", + "listHasSetsTip": "Redaguokite arba ištrinkite esamus sąrašus arba spustelėkite Kurti naują sąrašą.", "uniqueCout": "Unikalus skaičius: {{n}}", "searchDistance": "Paieškos atstumas", "useLayerFeatures": "Naudoti sluoksnio elementus", "export": "Eksportuoti", - "exportTip": "Į_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________š.", + "exportTip": "Pasirinkite sąrašus, kuriuos norite įtraukti į eksportuotą failą. Eksportuokite sąrašus CSV ir PDF formatu.", "title": "Pavadinimas", "addTitle": "Pridėti pavadinimą", "titlePlaceholder": "Įveskite pavadinimą čia", @@ -35,8 +35,8 @@ "pdfOptions": "PDF parinktys", "csvOptions": "CSV parinktys", "refineSelection": "Tikslinti pasirinkimą", - "refineTip": "Į_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________š.", + "refineTip": "Norėdami pridėti arba pašalinti pasirinktus elementus, patikslinkite ir užbaikite sąrašus naudodami eskizavimo įrankius.", "refineTipNoSelections": "Nėra pasirinkimo apimties, kurią galima būtų patikslinti. Norėdami sukurti elementų sąrašą, eikite į Mano sąrašai.", - "duplicatesTip": "Į_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________š.", - "exportListsLabel": "Į_My lists_________________š" + "duplicatesTip": "Pasikartojantys elementai visada pašalinami. Jei ši parinktis įjungta, kiekvieno sluoksnio iššokantieji langai bus palyginami ir visa pasikartojanti iššokančiųjų langų informacija bus pašalinama.", + "exportListsLabel": "Mano sąrašai" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_lv.json b/src/assets/t9n/public-notification/resources_lv.json index ae23f84e6..b6a8851ab 100644 --- a/src/assets/t9n/public-notification/resources_lv.json +++ b/src/assets/t9n/public-notification/resources_lv.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} izvēlētie elementi", "noNotifications": "Jums vēl nav paziņojumu saraksta.", "notifications": "Paziņojumi", - "myLists": "ķ_Create and edit lists______________________ū", + "myLists": "Izveidot un rediģēt sarakstus", "stepTwoFull": "Izveidot jaunu sarakstu", "cancel": "Atcelt", "done": "Gatavs", - "selectPDFLabelOption": "ķ_Format options_______________ū", - "removeDuplicate": "ķ_Remove duplicates___________________ū:", + "selectPDFLabelOption": "Formāta opcijas", + "removeDuplicate": "Noņemt dublikātus:", "numDuplicates": "{{n}} dublikāti", - "selectLayerAndAdd": "ķ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ū.", - "selectSearchTip": "ķ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ū.", + "selectLayerAndAdd": "Izveidojiet to elementu sarakstus, ko eksportēt kā CSV un PDF. Izmantojiet izvēles rīkus, lai atlasītu, kurus elementus iekļaut, un pēc tam noklikšķiniet uz Izveidot sarakstu.", + "selectSearchTip": "Izvēlieties elementus no ievades slāņa, ko pievienot sarakstam. Zīmējiet ar skiču rīkiem, norādiet meklēšanas attālumu un izmantojiet cita slāņa elementus, lai izvēlētos elemetus, kas pārklājas.", "selectLayerTip": "Zīmējiet formas, lai atlasītu elementus no izvēlētā atlases slāņa; rezultāti tiks izmantoti, lai izvēlētu elementus no adresāta slāņa", "selectSketchTip": "Izmantojiet skiču rīkus, lai kartē uzzīmētu grafikus un adresāta slānī atlasītu krustojošos elementus.", "optionalSearchDistance": "un pēc izvēles pievienojiet meklēšanas attālumu.", - "listHasSetsTip": "ķ_Edit or delete existing lists or click Create new list_____________________________ū.", + "listHasSetsTip": "Rediģējiet vai dzēsiet esošos sarakstus vai noklikšķiniet uz Izveidot jaunu sarakstu.", "uniqueCout": "Unikāls skaits: {{n}}", "searchDistance": "Meklēšanas attālums", "useLayerFeatures": "Izmantot slāņa elementus", "export": "Eksportēt", - "exportTip": "ķ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ū.", + "exportTip": "Izvēlieties sarakstus, ko iekļaut eksportētajā failā. Esportēt sarakstus kā CSV un PDF.", "title": "Nosaukums", "addTitle": "Pievienot nosaukumu", "titlePlaceholder": "Šeit ievadiet virsrakstu", @@ -35,8 +35,8 @@ "pdfOptions": "PDF opcijas", "csvOptions": "CSV opcijas", "refineSelection": "Precizēt atlasi", - "refineTip": "ķ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ū.", + "refineTip": "Precizējiet un pabeidziet sarakstus, izmantojot skiču rīkus, lai pievienotu vai noņemtu izvēlētos elementus.", "refineTipNoSelections": "Nav atlases, ko precizēt. Atveriet Mani saraksti, lai izveidotu elementu sarakstu.", - "duplicatesTip": "ķ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ū.", - "exportListsLabel": "ķ_My lists_________________ū" + "duplicatesTip": "Dubultie elementi vienmēr tiek noņemti. Ja šī opcija ir iespējota, tiek salīdzināti katra slāņa uznirstošie logi un tiek noņemts jebkurš uznirstošās informācijas dublikāts.", + "exportListsLabel": "Mani saraksti" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_nb.json b/src/assets/t9n/public-notification/resources_nb.json index 28d2089ad..dadba9bab 100644 --- a/src/assets/t9n/public-notification/resources_nb.json +++ b/src/assets/t9n/public-notification/resources_nb.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} valgte geoobjekter", "noNotifications": "Du har ingen varslingsliste ennå.", "notifications": "Kunngjøringer", - "myLists": "å_Create and edit lists______________________ø", + "myLists": "Opprett og rediger lister", "stepTwoFull": "Opprett ny liste", "cancel": "Avbryt", "done": "Ferdig", - "selectPDFLabelOption": "å_Format options_______________ø", - "removeDuplicate": "å_Remove duplicates___________________ø:", + "selectPDFLabelOption": "Formatalternativer", + "removeDuplicate": "Fjern duplikater:", "numDuplicates": "{{n}} duplikater", - "selectLayerAndAdd": "å_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ø.", - "selectSearchTip": "å_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ø.", + "selectLayerAndAdd": "Opprett lister over geoobjekter som skal eksporteres som CSV eller PDF. Bruk valgverktøy til å velge hvilke geoobjekter som skal inkluderes, og klikk deretter på Opprett liste.", + "selectSearchTip": "Velg geoobjekter fra inndatalaget som skal legges til i listen. Tegn med skisseverktøy, angi en søkeavstand, og bruk geoobjekter fra andre lag til å velge overlappende geoobjekter.", "selectLayerTip": "Tegn former for å velge geoobjekter fra utvalgslaget som er valgt. Resultatene blir brukt til å velge geoobjekter fra adressatlaget.", "selectSketchTip": "Bruk skisseverktøy til å tegne grafikk i kartet for å velge kryssende geoobjekter i adressatlaget.", "optionalSearchDistance": "og legg eventuelt til søkeavstand.", - "listHasSetsTip": "å_Edit or delete existing lists or click Create new list_____________________________ø.", + "listHasSetsTip": "Rediger eller slett eksisterende lister, eller klikk på Opprett ny liste.", "uniqueCout": "Antall unike verdier: {{n}}", "searchDistance": "Søkeavstand", "useLayerFeatures": "Bruk laggeoobjekter", "export": "Eksporter", - "exportTip": "å_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ø.", + "exportTip": "Velg lister som skal inkluderes i den eksporterte filen. Eksporter lister som CSV og PDF.", "title": "Tittel", "addTitle": "Legg til tittel", "titlePlaceholder": "Skriv inn tittel her", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-alternativer", "csvOptions": "CSV-alternativer", "refineSelection": "Begrens utvalg", - "refineTip": "å_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ø.", + "refineTip": "Finjuster og ferdigstill listene ved å bruke skisseverktøy til å legge til eller fjerne valgte geoobjekter.", "refineTipNoSelections": "Det er ingen utvalg å finjustere. Gå til Mine lister for å opprette en liste med geoobjekter.", - "duplicatesTip": "å_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ø.", - "exportListsLabel": "å_My lists_________________ø" + "duplicatesTip": "Duplikate geoobjekter fjernes alltid. Når dette er valgt, blir popuper fra hvert lag sammenlignet og eventuell duplisert popup-informasjon blir fjernet.", + "exportListsLabel": "Mine lister" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_nl.json b/src/assets/t9n/public-notification/resources_nl.json index 81edbd83b..9b6919998 100644 --- a/src/assets/t9n/public-notification/resources_nl.json +++ b/src/assets/t9n/public-notification/resources_nl.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} geselecteerde objecten", "noNotifications": "U hebt nog geen meldingenlijst", "notifications": "Meldingen", - "myLists": "IJ_Create and edit lists______________________ä", + "myLists": "Lijsten maken en bewerken", "stepTwoFull": "Nieuwe lijst maken", "cancel": "Annuleren", "done": "Gereed", - "selectPDFLabelOption": "IJ_Format options_______________ä", - "removeDuplicate": "IJ_Remove duplicates___________________ä:", + "selectPDFLabelOption": "Indelingsopties", + "removeDuplicate": "Duplicaten verwijderen:", "numDuplicates": "{{n}} duplicaten", - "selectLayerAndAdd": "IJ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ä.", - "selectSearchTip": "IJ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ä.", + "selectLayerAndAdd": "Maak lijsten van objecten die u als CSV en PDF wilt exporteren. Gebruik selectietools om te kiezen welke objecten u wilt opnemen en klik dan op Lijst maken.", + "selectSearchTip": "Selecteer objecten in de invoerlaag die u aan uw lijst wilt toevoegen. Teken met schetstools, specificeer een zoekafstand en gebruik objecten uit een andere laag om overlappende objecten te selecteren.", "selectLayerTip": "Teken vormen om objecten uit de gekozen selectielaag te selecteren; de resultaten worden gebruikt om objecten uit de geadresseerde-laag te selecteren", "selectSketchTip": "Gebruik schetstools om illustraties op de kaart te tekenen om kruisende objecten in de geadresseerde-laag te selecteren.", "optionalSearchDistance": "en optioneel een zoekafstand toe te voegen.", - "listHasSetsTip": "IJ_Edit or delete existing lists or click Create new list_____________________________ä.", + "listHasSetsTip": "Bewerk of verwijder bestaande links of klik op Nieuwe lijst maken.", "uniqueCout": "Uniek aantal: {{n}}", "searchDistance": "Zoekafstand", "useLayerFeatures": "Laagobjecten gebruiken", "export": "Exporteren", - "exportTip": "IJ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ä.", + "exportTip": "Selecteer lijsten die u in het geëxporteerde bestand wilt opnemen. Exporteer lijsten als CSV en PDF.", "title": "Titel", "addTitle": "Titel toevoegen", "titlePlaceholder": "Voer hier een titel in", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-opties", "csvOptions": "CSV-opties", "refineSelection": "Selectie verfijnen", - "refineTip": "IJ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ä.", + "refineTip": "Verfijn en finaliseer uw lijsten door schetstools te gebruiken om geselecteerde objecten toe te voegen of te verwijderen.", "refineTipNoSelections": "Er zijn geen selecties die u kunt verfijnen Ga naar Mijn lijsten om een lijst met objecten te maken.", - "duplicatesTip": "IJ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ä.", - "exportListsLabel": "IJ_My lists_________________ä" + "duplicatesTip": "Dubbele objecten worden altijd verwijderd. Indien ingeschakeld, worden pop-ups uit elke laag vergeleken en worden alle dubbele pop-upgegevens verwijderd.", + "exportListsLabel": "Mijn lijsten" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_pl.json b/src/assets/t9n/public-notification/resources_pl.json index 0c512dfac..2831e9c55 100644 --- a/src/assets/t9n/public-notification/resources_pl.json +++ b/src/assets/t9n/public-notification/resources_pl.json @@ -10,24 +10,24 @@ "selectedFeatures": "Wybrane obiekty: {{n}}", "noNotifications": "Nie masz jeszcze listy powiadomień.", "notifications": "Powiadomienia", - "myLists": "ł_Create and edit lists______________________ą", + "myLists": "Twórz i edytuj listy", "stepTwoFull": "Utwórz nową listę", "cancel": "Anuluj", "done": "Gotowe", - "selectPDFLabelOption": "ł_Format options_______________ą", - "removeDuplicate": "ł_Remove duplicates___________________ą:", + "selectPDFLabelOption": "Opcje formatowania", + "removeDuplicate": "Usuń duplikaty:", "numDuplicates": "Duplikaty: {{n}}", - "selectLayerAndAdd": "ł_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ą.", - "selectSearchTip": "ł_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ą.", + "selectLayerAndAdd": "Twórz listy obiektów do wyeksportowania do plików CSV i PDF. Wybierz obiekty do uwzględnienia za pomocą narzędzi wyboru, a następnie kliknij opcję Utwórz listę.", + "selectSearchTip": "Wybierz obiekty z warstwy wejściowej, aby dodać je do listy. Rysuj za pomocą narzędzi do szkicowania, określ odległość wyszukiwania i użyj obiektów z innej warstwy, aby wybrać nakładające się obiekty.", "selectLayerTip": "Narysuj kształty, aby wybrać obiekty z wybranej warstwy wyboru; wyniki zostaną wykorzystane do wyboru obiektów z warstwy adresów", "selectSketchTip": "Za pomocą narzędzi do szkicowania narysuj grafiki na mapie, aby wybrać przecinające się obiekty w warstwie adresów.", "optionalSearchDistance": "i opcjonalnie dodaj odległość wyszukiwania.", - "listHasSetsTip": "ł_Edit or delete existing lists or click Create new list_____________________________ą.", + "listHasSetsTip": "Edytuj lub usuń istniejące listy albo kliknij opcję Utwórz nową listę.", "uniqueCout": "Liczba unikalnych: {{n}}", "searchDistance": "Odległość wyszukiwania", "useLayerFeatures": "Użyj obiektów warstwy", "export": "Eksportuj", - "exportTip": "ł_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ą.", + "exportTip": "Wybierz listy do uwzględnienia w eksportowanym pliku. Wyeksportuj listy do plików CSV i PDF.", "title": "Tytuł", "addTitle": "Dodaj tytuł", "titlePlaceholder": "Wprowadź tutaj tytuł", @@ -35,8 +35,8 @@ "pdfOptions": "Opcje PDF", "csvOptions": "Opcje CSV", "refineSelection": "Doprecyzuj wybór", - "refineTip": "ł_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ą.", + "refineTip": "Doprecyzuj i dokończ listy za pomocą narzędzi do szkicowania, dodając lub usuwając wybrane obiekty.", "refineTipNoSelections": "Brak selekcji do doprecyzowania. Przejdź do obszaru Moje listy, aby utworzyć listę obiektów.", - "duplicatesTip": "ł_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ą.", - "exportListsLabel": "ł_My lists_________________ą" + "duplicatesTip": "Powielone obiekty są zawsze usuwane. W przypadku ich włączenia okna podręczne z poszczególnych warstw są porównywane i wszelkie powielone informacje podręczne są usuwane.", + "exportListsLabel": "Moje listy" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_pt-BR.json b/src/assets/t9n/public-notification/resources_pt-BR.json index a7ffcc31c..c1ba2f52a 100644 --- a/src/assets/t9n/public-notification/resources_pt-BR.json +++ b/src/assets/t9n/public-notification/resources_pt-BR.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} feições selecionadas", "noNotifications": "Você ainda não tem lista de notificação.", "notifications": "Notificações", - "myLists": "ã_Create and edit lists______________________Ç", + "myLists": "Criar e editar listas", "stepTwoFull": "Criar nova lista", "cancel": "Cancelar", "done": "Concluir", - "selectPDFLabelOption": "ã_Format options_______________Ç", - "removeDuplicate": "ã_Remove duplicates___________________Ç:", + "selectPDFLabelOption": "Opções de formato", + "removeDuplicate": "Remover duplicados:", "numDuplicates": "{{n}} duplicados", - "selectLayerAndAdd": "ã_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Ç.", - "selectSearchTip": "ã_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Ç.", + "selectLayerAndAdd": "Crie listas de feições para exportar como CSV e PDF. Use as ferramentas de seleção para escolher quais feições incluir e clique em Criar lista.", + "selectSearchTip": "Selecione feições da camada de entrada para adicionar à sua lista. Desenhe com ferramentas de esboço, especifique uma distância de pesquisa e use feições de outra camada para selecionar feições sobrepostas.", "selectLayerTip": "Desenhe formas para selecionar feições da camada de seleção escolhida; os resultados serão usados para selecionar feições da camada de destino", "selectSketchTip": "Use ferramentas de esboço para desenhar gráficos no mapa para selecionar feições de intersecção na camada de destino.", "optionalSearchDistance": "e, opcionalmente, adicionar distância de pesquisa.", - "listHasSetsTip": "ã_Edit or delete existing lists or click Create new list_____________________________Ç.", + "listHasSetsTip": "Edite ou exclua listas existentes ou clique em Criar nova lista.", "uniqueCout": "Contagem Única: {{n}}", "searchDistance": "Distância de pesquisa", "useLayerFeatures": "Usar feições da camada", "export": "Exportar", - "exportTip": "ã_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Ç.", + "exportTip": "Selecione listas para incluir no arquivo exportado. Exporte listas como CSV e PDF.", "title": "Título", "addTitle": "Adicionar título", "titlePlaceholder": "Insira título aqui", @@ -35,8 +35,8 @@ "pdfOptions": "Opções do PDF", "csvOptions": "Opções do CSV", "refineSelection": "Refinar seleção", - "refineTip": "ã_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Ç.", + "refineTip": "Refine e finalize suas listas usando ferramentas de esboço para adicionar ou remover feições selecionadas.", "refineTipNoSelections": "Não há seleções para refinar. Vá até Minhas listas para criar uma lista de feições.", - "duplicatesTip": "ã_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Ç.", - "exportListsLabel": "ã_My lists_________________Ç" + "duplicatesTip": "Feições duplicadas são sempre removidas. Quando habilitado, os pop-ups de cada camada serão comparados e qualquer informação de pop-up duplicada será removida.", + "exportListsLabel": "Minhas listas" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_pt-PT.json b/src/assets/t9n/public-notification/resources_pt-PT.json index 9b79f8636..df0443222 100644 --- a/src/assets/t9n/public-notification/resources_pt-PT.json +++ b/src/assets/t9n/public-notification/resources_pt-PT.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} elemento(s) selecionado(s)", "noNotifications": "Ainda não tem nenhuma lista de notificações.", "notifications": "Notificações", - "myLists": "ã_Create and edit lists______________________Ç", + "myLists": "Criar e editar listas", "stepTwoFull": "Criar nova lista", "cancel": "Cancelar", "done": "Concluído", - "selectPDFLabelOption": "ã_Format options_______________Ç", - "removeDuplicate": "ã_Remove duplicates___________________Ç:", + "selectPDFLabelOption": "Opções de formato", + "removeDuplicate": "Remover duplicados:", "numDuplicates": "{{n}} duplicados", - "selectLayerAndAdd": "ã_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Ç.", - "selectSearchTip": "ã_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Ç.", + "selectLayerAndAdd": "Crie listas de elementos para exportar como CSV e PDF. Utilize ferramentas de seleção para escolher os elementos a incluir e, em seguida, clique em Criar lista.", + "selectSearchTip": "Selecione elementos da camada de entrada para adicionar à sua lista. Desenhe com ferramentas de desenho, especifique uma distância de pesquisa e utilize elementos de outra camada para selecionar elementos sobrepostos.", "selectLayerTip": "Desenhe formas para selecionar elementos da camada de seleção escolhida. Os resultados serão utilizados para selecionar elementos da camada de destinatário", "selectSketchTip": "Utilize ferramentas de desenho para desenhar gráficos no mapa para selecionar elementos de intersecção na camada de destinatário.", "optionalSearchDistance": "e, opcionalmente, adicionar a distância de pesquisa.", - "listHasSetsTip": "ã_Edit or delete existing lists or click Create new list_____________________________Ç.", + "listHasSetsTip": "Edite ou elimine as listas existentes ou clique em Criar nova lista.", "uniqueCout": "Contagem Única: {{n}}", "searchDistance": "Distância de pesquisa", "useLayerFeatures": "Utilizar elementos da camada", "export": "Exportar", - "exportTip": "ã_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Ç.", + "exportTip": "Selecione as listas a incluir no ficheiro exportado. Exporte listas como CSV e PDF.", "title": "Título", "addTitle": "Adicionar título", "titlePlaceholder": "Introduzir título aqui", @@ -35,8 +35,8 @@ "pdfOptions": "Opções de PDF", "csvOptions": "Opções de CSV", "refineSelection": "Refinar seleção", - "refineTip": "ã_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Ç.", + "refineTip": "Refine e finalize as suas listas ao utilizar ferramentas de desenho para adicionar ou remover elementos selecionados.", "refineTipNoSelections": "Não existem seleções para refinar. Aceda a As minhas listas para criar uma lista de elementos.", - "duplicatesTip": "ã_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Ç.", - "exportListsLabel": "ã_My lists_________________Ç" + "duplicatesTip": "Os elementos duplicados são sempre removidos. Quando esta opção está ativada, os pop-ups de cada camada são comparados e qualquer informação duplicada é removida.", + "exportListsLabel": "As minhas listas" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_ro.json b/src/assets/t9n/public-notification/resources_ro.json index ead4e1239..18a7ac5cb 100644 --- a/src/assets/t9n/public-notification/resources_ro.json +++ b/src/assets/t9n/public-notification/resources_ro.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} obiecte spațiale selectate", "noNotifications": "Încă nu aveți o listă de notificări.", "notifications": "Notificări", - "myLists": "Ă_Create and edit lists______________________ș", + "myLists": "Creare și editare liste", "stepTwoFull": "Creare listă nouă", "cancel": "Anulare", "done": "Gata", - "selectPDFLabelOption": "Ă_Format options_______________ș", - "removeDuplicate": "Ă_Remove duplicates___________________ș:", + "selectPDFLabelOption": "Opțiuni de format", + "removeDuplicate": "Eliminare duplicate:", "numDuplicates": "{{n}} duplicate", - "selectLayerAndAdd": "Ă_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ș.", - "selectSearchTip": "Ă_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ș.", + "selectLayerAndAdd": "Creați liste de obiecte spațiale pentru a exporta în format CSV și PDF. Folosiți obiectele spațiale de selecție pentru a alege de obiecte spațiale să includeți și apoi faceți clic pe Creare listă.", + "selectSearchTip": "Selectați obiecte spațiale din stratul tematic de intrare pentru a le adăuga în lista dvs. Trasați cu instrumentele de trasare, specificați o distanță de căutare și folosiți obiecte spațiale dintr-un alt strat tematic pentru a selecta obiectele spațiale suprapuse.", "selectLayerTip": "Trasați forme pentru a selecta obiecte spațiale din stratul tematic de selecție ales; rezultatele vor fi folosite pentru a selecta obiecte spațiale din stratul tematic al destinatarului", "selectSketchTip": "Folosiți instrumentele de desen pentru a trasa grafice pe hartă pentru a selecta obiecte spațiale care se intersectează în stratul tematic destinatar.", "optionalSearchDistance": "și, opțional, adăugați distanța de căutare.", - "listHasSetsTip": "Ă_Edit or delete existing lists or click Create new list_____________________________ș.", + "listHasSetsTip": "Editați sau ștergeți listele existente sau faceți clic pe Creare listă nouă.", "uniqueCout": "Număr unic: {{n}}", "searchDistance": "Căutare distanţă", "useLayerFeatures": "Utilizare obiecte spațiale strat tematic", "export": "Export", - "exportTip": "Ă_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ș.", + "exportTip": "Selectați listele pentru a le include în fișierul exportat. Exportați listele în format CSV și PDF.", "title": "Titlu", "addTitle": "Adăugați un titlu", "titlePlaceholder": "Introduceți titlul aici", @@ -35,8 +35,8 @@ "pdfOptions": "Opțiuni PDF", "csvOptions": "Opțiuni CSV", "refineSelection": "Rafinare selecție", - "refineTip": "Ă_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ș.", + "refineTip": "Rafinați și finalizați listele dvs. folosind instrumentele de schițare pentru a adăuga sau elimina obiecte spațiale selectate.", "refineTipNoSelections": "Nu există selecții de rafinat. Accesați Listele mele pentru a crea o listă de obiecte spațiale.", - "duplicatesTip": "Ă_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ș.", - "exportListsLabel": "Ă_My lists_________________ș" + "duplicatesTip": "Obiectele spațiale duplicate sunt întotdeauna eliminate. Când este activat, pop-upurile din fiecare strat tematic vor fi comparate și orice informații pop-upurile duplicate vor fi eliminate.", + "exportListsLabel": "Listele mele" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_ru.json b/src/assets/t9n/public-notification/resources_ru.json index 2f6a729e6..8b9638891 100644 --- a/src/assets/t9n/public-notification/resources_ru.json +++ b/src/assets/t9n/public-notification/resources_ru.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} выбранных объектов", "noNotifications": "У вас еще нет списка уведомлений.", "notifications": "Уведомления", - "myLists": "Ж_Create and edit lists______________________Я", + "myLists": "Создание и редактирование списков", "stepTwoFull": "Создать новый список", "cancel": "Отмена", "done": "Готово", - "selectPDFLabelOption": "Ж_Format options_______________Я", - "removeDuplicate": "Ж_Remove duplicates___________________Я:", + "selectPDFLabelOption": "Опции форматирования", + "removeDuplicate": "Удалить дубликаты:", "numDuplicates": "{{n}} дубликатов", - "selectLayerAndAdd": "Ж_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Я.", - "selectSearchTip": "Ж_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Я.", + "selectLayerAndAdd": "Создавайте списки объектов для экспорта в форматы CSV и PDF. Используйте инструменты выборки, чтобы выбрать объекты для включения, а затем щелкните Создать список.", + "selectSearchTip": "Выберите объекты из входного слоя, чтобы добавить их в список. Рисуйте с помощью инструментов скетча, указывайте расстояние поиска и используйте объекты из другого слоя для выбора перекрывающихся объектов.", "selectLayerTip": "Нарисуйте области, чтобы выбрать объекты из слоя выборки; результаты будут использоваться для выбора объектов из слоя адресатов", "selectSketchTip": "Используйте инструменты скетча, чтобы нарисовать графику на карте для выборки пересекающихся объектов в слое адресатов.", "optionalSearchDistance": "дополнительно, введите расстояние поиска.", - "listHasSetsTip": "Ж_Edit or delete existing lists or click Create new list_____________________________Я.", + "listHasSetsTip": "Редактируйте или удаляйте существующие списки или щелкните Создать новый список.", "uniqueCout": "Количество уникальных: {{n}}", "searchDistance": "Расстояние поиска", "useLayerFeatures": "Использовать слой объектов", "export": "Экспорт", - "exportTip": "Ж_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Я.", + "exportTip": "Выберите списки, которые войдут в файл экспорта. Экспорт списков в формате CSV и PDF.", "title": "Заголовок", "addTitle": "Добавить заголовок", "titlePlaceholder": "Введите заголовок здесь", @@ -35,8 +35,8 @@ "pdfOptions": "Опции PDF", "csvOptions": "Опции CSV", "refineSelection": "Уточните выборку", - "refineTip": "Ж_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Я.", + "refineTip": "Уточняйте и дорабатывайте свои списки с помощью инструментов скетча, чтобы добавлять или удалять выбранные объекты.", "refineTipNoSelections": "Выборки для уточнения отсутствуют. Перейдите в Мои списки, чтобы создать список объектов.", - "duplicatesTip": "Ж_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Я.", - "exportListsLabel": "Ж_My lists_________________Я" + "duplicatesTip": "Повторяющиеся объекты всегда удаляются. Если этот параметр включен, всплывающие окна каждого слоя будут сравниваться, а любая повторяющаяся всплывающая информация будет удалена.", + "exportListsLabel": "Мои списки" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_sk.json b/src/assets/t9n/public-notification/resources_sk.json index 5a380226a..c12a60139 100644 --- a/src/assets/t9n/public-notification/resources_sk.json +++ b/src/assets/t9n/public-notification/resources_sk.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} vybraných prvkov", "noNotifications": "Zatiaľ nemáte žiadny zoznam notifikácií.", "notifications": "Upozornenia", - "myLists": "ĺ_Create and edit lists______________________ľ", + "myLists": "Vytvorte a editujte zoznamy", "stepTwoFull": "Vytvoriť nový zoznam", "cancel": "Zrušiť", "done": "Hotovo", - "selectPDFLabelOption": "ĺ_Format options_______________ľ", - "removeDuplicate": "ĺ_Remove duplicates___________________ľ:", + "selectPDFLabelOption": "Možnosti formátu", + "removeDuplicate": "Odstrániť duplikáty:", "numDuplicates": "{{n}} duplikátov", - "selectLayerAndAdd": "ĺ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ľ.", - "selectSearchTip": "ĺ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ľ.", + "selectLayerAndAdd": "Vytváranie zoznamov prvkov na export ako CSV a PDF. Pomocou nástrojov výberu vyberte prvky, ktoré chcete zahrnúť, a potom kliknite na tlačidlo Vytvoriť zoznam.", + "selectSearchTip": "Vyberte prvky zo vstupnej vrstvy, ktoré chcete pridať do zoznamu. Kreslite pomocou nástrojov na skicovanie, zadajte vzdialenosť vyhľadávania a použite prvky z inej vrstvy na výber prekrývajúcich sa prvkov.", "selectLayerTip": "Kreslenie tvarov pre výber prvkov zo zvolenej vrstvy výberu; výsledky sa použijú na výber prvkov z vrstvy adresáta", "selectSketchTip": "Pomocou nástrojov pre skice nakreslite grafiku v mape pre výber pretínajúcich sa prvkov vo vrstve adresáta.", "optionalSearchDistance": "a voliteľne pridajte vyhľadávaciu vzdialenosť.", - "listHasSetsTip": "ĺ_Edit or delete existing lists or click Create new list_____________________________ľ.", + "listHasSetsTip": "Upravte alebo odstráňte existujúce zoznamy alebo kliknite na Vytvoriť nový zoznam.", "uniqueCout": "Počet unikátnych: {{n}}", "searchDistance": "Vyhľadávacia vzdialenosť", "useLayerFeatures": "Použiť prvky vrstvy", "export": "Export", - "exportTip": "ĺ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ľ.", + "exportTip": "Vyberte zoznamy, ktoré chcete zahrnúť do exportovaného súboru. Exportujte zoznamy ako CSV a PDF.", "title": "Názov", "addTitle": "Pridať názov", "titlePlaceholder": "Tu zadajte názov", @@ -35,8 +35,8 @@ "pdfOptions": "Možnosti PDF", "csvOptions": "Možnosti CSV", "refineSelection": "Spresniť výber", - "refineTip": "ĺ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ľ.", + "refineTip": "Spresnite a finalizujte vaše zoznamy pomocou nástrojov pre skicovanie, aby ste pridali alebo odstránili vybrané prvky.", "refineTipNoSelections": "Neexistujú žiadne výbery na spresnenie. Prejdite do časti Moje zoznamy a vytvorte zoznam prvkov.", - "duplicatesTip": "ĺ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ľ.", - "exportListsLabel": "ĺ_My lists_________________ľ" + "duplicatesTip": "Duplicitné prvky sa vždy odstránia. Ak je zapnuté, pop-up okná z každej vrstvy sa porovnajú a všetky duplicitné pop-up informácie sa odstránia.", + "exportListsLabel": "Moje zoznamy" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_sl.json b/src/assets/t9n/public-notification/resources_sl.json index 1f82915ea..e448e2676 100644 --- a/src/assets/t9n/public-notification/resources_sl.json +++ b/src/assets/t9n/public-notification/resources_sl.json @@ -10,24 +10,24 @@ "selectedFeatures": "Število izbranih geoobjektov: {{n}}", "noNotifications": "Nimate še seznama obvestil.", "notifications": "Obvestila", - "myLists": "Š_Create and edit lists______________________č", + "myLists": "Ustvarjanje in urejanje seznamov", "stepTwoFull": "Ustvari nov seznam", "cancel": "Prekliči", "done": "Končano", - "selectPDFLabelOption": "Š_Format options_______________č", - "removeDuplicate": "Š_Remove duplicates___________________č:", + "selectPDFLabelOption": "Možnosti formata", + "removeDuplicate": "Odstrani podvojitve:", "numDuplicates": "Število podvojitev {{n}}", - "selectLayerAndAdd": "Š_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________č.", - "selectSearchTip": "Š_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________č.", + "selectLayerAndAdd": "Ustvarite seznam geoobjektov, ki jih je mogoče izvoziti v datoteko CSV ali PDF. Z izbornimi orodji izberite, kateri geoobjekti bodo vključeni, nato kliknite Ustvari seznam.", + "selectSearchTip": "Izbrane geoobjekte iz vhodnega sloja bodo dodane vašemu seznamu. Narišite z orodji za skiciranje, določite razdaljo iskanja in s pomočjo geoobjekta z drugega sloja izberite geoobjekt prekrivanja.", "selectLayerTip": "Narišite oblike za izbiro geoobjektov iz izbranega sloja izbire; rezultati bodo uporabljeni za izbiro geoobjektov iz sloja naslovnika", "selectSketchTip": "Uporabite orodja za skiciranje za risanje grafik na karti za izbiro sekajočih geoobjektov na sloju naslovnika.", "optionalSearchDistance": "in izbirno dodajte iskalno razdaljo.", - "listHasSetsTip": "Š_Edit or delete existing lists or click Create new list_____________________________č.", + "listHasSetsTip": "Uredite ali izbrišite obstoječe sezname kliknite Ustvari nov seznam", "uniqueCout": "Števec enoličnih: {{n}}", "searchDistance": "Poišči razdaljo", "useLayerFeatures": "Uporabi geoobjekte sloja", "export": "Izvozi", - "exportTip": "Š_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________č.", + "exportTip": "Izberite sloje, ki bodo vključeni v izvoženo datoteko. Izvozite sezname kot CSV in PDF.", "title": "Naslov", "addTitle": "Dodaj ime", "titlePlaceholder": "Tukaj vnesi naslov", @@ -35,8 +35,8 @@ "pdfOptions": "Možnosti PDF", "csvOptions": "Možnosti CSV", "refineSelection": "Natančno določi izbiro", - "refineTip": "Š_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________č.", + "refineTip": "S pomočjo orodij za skiciranje izpopolnite in dokončajte svoje sezname, da dodate ali odstranite izbrane geoobjekte.", "refineTipNoSelections": "Za izpopolnitev ni na voljo nobene izbire. Pojdite na Moji seznami, da ustvarite seznam geoobjektov.", - "duplicatesTip": "Š_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________č.", - "exportListsLabel": "Š_My lists_________________č" + "duplicatesTip": "Podvojeni geoobjekti so vedno odstranjeni. Ko je omogočeno, bodo pojavna okna z vsakega sloja primerjana in vsako podvojeno pojavno okno bo odstranjeno.", + "exportListsLabel": "Moji seznami" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_sr.json b/src/assets/t9n/public-notification/resources_sr.json index b6ed9a5ac..dd1fc65b1 100644 --- a/src/assets/t9n/public-notification/resources_sr.json +++ b/src/assets/t9n/public-notification/resources_sr.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} selektovana(ih) geoobjek(a)ta", "noNotifications": "Još uvek nemate listu obaveštenja.", "notifications": "Obaveštenja", - "myLists": "Č_Create and edit lists______________________ž", + "myLists": "Kreiraj i uredi liste", "stepTwoFull": "Kreiraj novu listu", "cancel": "Otkaži", "done": "Završeno", - "selectPDFLabelOption": "Č_Format options_______________ž", - "removeDuplicate": "Č_Remove duplicates___________________ž:", + "selectPDFLabelOption": "Opcije za format", + "removeDuplicate": "Ukloni duplikate:", "numDuplicates": "{{n}} duplikata", - "selectLayerAndAdd": "Č_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ž.", - "selectSearchTip": "Č_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ž.", + "selectLayerAndAdd": "Kreirajte liste osobina za izvoz kao CSV i PDF. Izaberite koje alate da omogućite za izbor geoobjekata na mapi", + "selectSearchTip": "Koristite osobine iz ulaznog sloja da dodate na vašu listu. Nacrtajte uz pomoć alata za crtanje, navedite udaljenost pretrage, i koristite osobine iz drugog sloja da odaberete osobine koje se preklapaju.", "selectLayerTip": "Nacrtajte oblike da biste selektovali geoobjekte iz izabranog sloja za selekciju; rezultati će se koristiti za selekciju geoobjekata iz sloja primaoca", "selectSketchTip": "Koristite alatke za skiciranje da biste nacrtali grafiku na mapi i da biste selektovali geoobjekte koji se ukrštaju u sloju primaoca.", "optionalSearchDistance": "i opciono za dodavanje rastojanja pretrage.", - "listHasSetsTip": "Č_Edit or delete existing lists or click Create new list_____________________________ž.", + "listHasSetsTip": "Uredite ili izbrišite postojeće liste ili izaberite sloj i kliknite na Kreiraj novu listu.", "uniqueCout": "Jedinstveni broj: {{n}}", "searchDistance": "Rastojanje pretrage", "useLayerFeatures": "Koristi geoobjekte sloja", "export": "Izvezi", - "exportTip": "Č_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ž.", + "exportTip": "Odaberite liste da uključite u izvezenu datoteku. Izvezite liste kao CSV i PDF.", "title": "Naslov", "addTitle": "Dodaj naslov", "titlePlaceholder": "Unesite naslov ovde", @@ -35,8 +35,8 @@ "pdfOptions": "Opcije PDF datoteke", "csvOptions": "Opcije CSV datoteke", "refineSelection": "Precizirajte selekciju", - "refineTip": "Č_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ž.", + "refineTip": "Precizirajte i dovršite svoje liste koristeći alatke za skiciranje da biste dodali ili uklonili odabrane osobine.", "refineTipNoSelections": "Nema selekcija za preciziranje. Idite u Moje liste da biste kreirali listu geoobjekata.", - "duplicatesTip": "Č_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ž.", - "exportListsLabel": "Č_My lists_________________ž" + "duplicatesTip": "Diplirane osobine se uvek uklanjaju. Kada su omogućeni, iskačući prozori iz svakog sloja će biti upoređeni i bilo koji duplikat iskačuće informacije će biti uklonjen.", + "exportListsLabel": "Moje liste" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_sv.json b/src/assets/t9n/public-notification/resources_sv.json index a09ea3141..18b4a7e8e 100644 --- a/src/assets/t9n/public-notification/resources_sv.json +++ b/src/assets/t9n/public-notification/resources_sv.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} valda geoobjekt", "noNotifications": "Du har ingen meddelandelista än.", "notifications": "Aviseringar", - "myLists": "Å_Create and edit lists______________________ö", + "myLists": "Skapa och redigera listor", "stepTwoFull": "Skapa ny lista", "cancel": "Avbryt", "done": "Klar", - "selectPDFLabelOption": "Å_Format options_______________ö", - "removeDuplicate": "Å_Remove duplicates___________________ö:", + "selectPDFLabelOption": "Formatalternativ", + "removeDuplicate": "Ta bort dubbletter:", "numDuplicates": "{{n}} dubbletter", - "selectLayerAndAdd": "Å_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ö.", - "selectSearchTip": "Å_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ö.", + "selectLayerAndAdd": "Skapa listor över geoobjekt som ska exporteras som CSV och PDF. Använd markeringsverktyg för att välja vilka geoobjekt som ska inkluderas och klicka sedan på Skapa lista.", + "selectSearchTip": "Välj geoobjekt från indatalagret och lägg till i din lista. Rita med skissverktyg, ange ett sökavstånd och använd geoobjekt från ett annat lager för att välja överlappande geoobjekt.", "selectLayerTip": "Markera geoobjekt från det valda urvalslagret genom att rita former; resultaten används för att markera geoobjekt från mottagarlagret", "selectSketchTip": "Använd skissverktyg för att rita grafik i kartan för att välja geoobjekt som skär varandra i mottagarlagret.", "optionalSearchDistance": "och lägg till sökavstånd som tillval.", - "listHasSetsTip": "Å_Edit or delete existing lists or click Create new list_____________________________ö.", + "listHasSetsTip": "Redigera eller ta bort befintliga listor eller klicka på Skapa ny lista.", "uniqueCout": "Antal unika: {{n}}", "searchDistance": "Sökavstånd", "useLayerFeatures": "Använd lagergeoobjekt", "export": "Exportera", - "exportTip": "Å_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ö.", + "exportTip": "Välj listor att inkludera i den exporterade filen. Exportera listor som CSV och PDF.", "title": "Titel", "addTitle": "Lägg till titel", "titlePlaceholder": "Ange titel här", @@ -35,8 +35,8 @@ "pdfOptions": "PDF-alternativ", "csvOptions": "CSV-alternativ", "refineSelection": "Förfina urval", - "refineTip": "Å_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ö.", + "refineTip": "Förfina och slutför dina listor med hjälp av skissverktyg för att lägga till eller ta bort valda geoobjekt.", "refineTipNoSelections": "Det finns inga val att förfina. Gå till Mina listor för att skapa en lista över geoobjekt.", - "duplicatesTip": "Å_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ö.", - "exportListsLabel": "Å_My lists_________________ö" + "duplicatesTip": "Dubblerade geoobjekt tas alltid bort. När alternativet är aktiverat jämförs popupfönster från varje lager och eventuell dubblerad popupinformation tas bort.", + "exportListsLabel": "Mina listor" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_th.json b/src/assets/t9n/public-notification/resources_th.json index 192e9770d..546a027b2 100644 --- a/src/assets/t9n/public-notification/resources_th.json +++ b/src/assets/t9n/public-notification/resources_th.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} ฟีเจอร์ที่เลือก", "noNotifications": "คุณยังไม่มีรายการการแจ้งเตือนในขณะนี้", "notifications": "การแจ้งเตือน", - "myLists": "ก้_Create and edit lists______________________ษฺ", + "myLists": "สร้างและแก้ไขรายการ", "stepTwoFull": "สร้างรายการใหม่", "cancel": "ยกเลิก", "done": "สำเร็จ", - "selectPDFLabelOption": "ก้_Format options_______________ษฺ", - "removeDuplicate": "ก้_Remove duplicates___________________ษฺ:", + "selectPDFLabelOption": "ตัวเลือกรูปแบบ", + "removeDuplicate": "ลบรายการซ้ำ:", "numDuplicates": "{{n}} รายการซ้ำ", - "selectLayerAndAdd": "ก้_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ษฺ.", - "selectSearchTip": "ก้_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ษฺ.", + "selectLayerAndAdd": "สร้างรายการฟีเจอร์ที่จะส่งออกเป็นไฟล์ CSV และ PDF ใช้เครื่องมือการเลือก เพื่อเลือกฟีเจอร์ที่จะรวมไว้ จากนั้นคลิก สร้างรายการ", + "selectSearchTip": "เลือกฟีเจอร์จากชั้นข้อมูลอินพุทเพื่อเพิ่มลงในรายการของคุณ วาดด้วยเครื่องมือการวาด ระบุระยะทางการค้นหา แล้วใช้ฟีเจอร์จากชั้นข้อมูลอื่นในการเลือกฟีเจอร์ที่ทับซ้อนกัน", "selectLayerTip": "วาดรูปทรงเพื่อเลือกฟีเจอร์จากชั้นข้อมูลการเลือกที่ต้องการ ผลลัพธ์จะถูกนำไปใช้ในการเลือกฟีเจอร์จากชั้นข้อมูลผู้รับ", "selectSketchTip": "ใช้เครื่องมือการวาดเพื่อวาดกราฟิกในแผนที่ เพื่อเลือกฟีเจอร์ที่ตัดกันในชั้นข้อมูลผู้รับ", "optionalSearchDistance": "และเลือกเพิ่มระยะทางการค้นหาได้", - "listHasSetsTip": "ก้_Edit or delete existing lists or click Create new list_____________________________ษฺ.", + "listHasSetsTip": "แก้ไขหรือลบรายการที่มีอยู่ หรือคลิก สร้างรายการใหม่", "uniqueCout": "จำนวนที่ไม่ซ้ำกัน: {{n}}", "searchDistance": "ระยะทางการค้นหา", "useLayerFeatures": "ใช้ฟีเจอร์ชั้นข้อมูล", "export": "ส่งออก", - "exportTip": "ก้_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ษฺ.", + "exportTip": "เลือกรายการที่จะรวมไว้ในไฟล์ที่ส่งออก ส่งออกรายการในรูปแบบ CSV และ PDF", "title": "คำนำหน้า", "addTitle": "เพิ่มชื่อ", "titlePlaceholder": "ป้อนชื่อที่นี่", @@ -35,8 +35,8 @@ "pdfOptions": "ตัวเลือก PDF", "csvOptions": "ตัวเลือก CSV", "refineSelection": "ปรับแต่งการเลือก", - "refineTip": "ก้_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ษฺ.", + "refineTip": "ปรับแต่งและสรุปรายการของคุณโดยใช้เครื่องมือการวาด เพื่อเพิ่มหรือลบฟีเจอร์ที่เลือก", "refineTipNoSelections": "ไม่มีการเลือกที่จะปรับแต่ง ไปที่ รายการของฉัน เพื่อสร้างรายการฟีเจอร์", - "duplicatesTip": "ก้_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ษฺ.", - "exportListsLabel": "ก้_My lists_________________ษฺ" + "duplicatesTip": "ฟีเจอร์ที่ซ้ำจะถูกลบออกเสมอ เมื่อเปิดใช้งาน ป็อปอัพจากแต่ละชั้นข้อมูลจะถูกเปรียบเทียบ จากนั้นข้อมูลป็อปอัพใดๆ ที่ซ้ำจะถูกลบออก", + "exportListsLabel": "รายการของฉัน" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_tr.json b/src/assets/t9n/public-notification/resources_tr.json index c0b22a935..879339b2b 100644 --- a/src/assets/t9n/public-notification/resources_tr.json +++ b/src/assets/t9n/public-notification/resources_tr.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} seçilen detaylar", "noNotifications": "Henüz bir bildirim listeniz yok.", "notifications": "Bildirimler", - "myLists": "ı_Create and edit lists______________________İ", + "myLists": "Listeler oluştur ve düzenle", "stepTwoFull": "Yeni liste oluştur", "cancel": "İptal", "done": "Bitti", - "selectPDFLabelOption": "ı_Format options_______________İ", - "removeDuplicate": "ı_Remove duplicates___________________İ:", + "selectPDFLabelOption": "Biçim seçenekleri", + "removeDuplicate": "Yinelenenleri kaldır:", "numDuplicates": "{{n}} yineleme", - "selectLayerAndAdd": "ı_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________İ.", - "selectSearchTip": "ı_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________İ.", + "selectLayerAndAdd": "CSV ve PDF olarak duşa aktarmak için detay listeleri oluşturun. Hangi detayların dahil edileceğini seçmek için seçme araçlarını kullanın ve daha sonra Liste oluştur'a tıklayın.", + "selectSearchTip": "Listenize eklemek için girdi katmanınızdan detaylar seçin. Taslak çizim araçlarıyla çizin, bir arama mesafesi belirtin ve çakışan detayları seçmek için başka bir katmandan detaylar kullanın.", "selectLayerTip": "Seçilen seçim katmanından detayları seçmek için şekiller çizin; sonuçlar, alıcı katmanından detayları seçmek için kullanılacaktır", "selectSketchTip": "Alıcı katmanındaki kesişen detayları seçmek için haritada grafikler çizmek amacıyla çizim araçlarını kullanın.", "optionalSearchDistance": "ve isteğe bağlı olarak arama mesafesi ekleyin.", - "listHasSetsTip": "ı_Edit or delete existing lists or click Create new list_____________________________İ.", + "listHasSetsTip": "Mevcut listeleri düzenleyin veya silin ya da Yeni liste oluştur seçeneğine tıklayın.", "uniqueCout": "Benzersiz Sayı: {{n}}", "searchDistance": "Arama mesafesi", "useLayerFeatures": "Katman detaylarını kullan", "export": "Dışa Aktar", - "exportTip": "ı_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________İ.", + "exportTip": "Dışa aktarılan dosyaya dahil etmek için listeleri seçin. CSV ve PDF olarak listeleri dışa aktarın.", "title": "Başlık", "addTitle": "Başlık ekle", "titlePlaceholder": "Başlığı buraya girin", @@ -35,8 +35,8 @@ "pdfOptions": "PDF Seçenekleri", "csvOptions": "CSV Seçenekleri", "refineSelection": "Seçimi iyileştir", - "refineTip": "ı_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________İ.", + "refineTip": "Seçili detayları eklemek veya kaldırmak için taslak çizim araçlarını kullanarak listelerinizi iyileştirin ve sonlandırın.", "refineTipNoSelections": "İyileştirilecek bir seçim yok. Bir detaylar listesi oluşturmak için Listelerime gidin.", - "duplicatesTip": "ı_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________İ.", - "exportListsLabel": "ı_My lists_________________İ" + "duplicatesTip": "Çoklu detaylar mutlaka kaldırılır. Etkinleştirildiğinde, her katmandan gelen açılır pencereler karşılaştırılacak ve çoklu tüm açılır pencere bilgileri kaldırılacaktır.", + "exportListsLabel": "Listelerim" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_uk.json b/src/assets/t9n/public-notification/resources_uk.json index a10fe2da6..ba9f2f72c 100644 --- a/src/assets/t9n/public-notification/resources_uk.json +++ b/src/assets/t9n/public-notification/resources_uk.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} об'єкти(-ів) вибрано", "noNotifications": "У вас ще немає списку повідомлень.", "notifications": "Повідомлення", - "myLists": "ґ_Create and edit lists______________________Ї", + "myLists": "Створення та редагування списків", "stepTwoFull": "Створити новий список", "cancel": "Скасувати", "done": "Готово", - "selectPDFLabelOption": "ґ_Format options_______________Ї", - "removeDuplicate": "ґ_Remove duplicates___________________Ї:", + "selectPDFLabelOption": "Опції формату", + "removeDuplicate": "Видалити дублікати:", "numDuplicates": "{{n}} дублікати", - "selectLayerAndAdd": "ґ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________Ї.", - "selectSearchTip": "ґ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________Ї.", + "selectLayerAndAdd": "Створіть списки об'єктів для експорту у формати CSV і PDF. Використовуйте інструменти вибору, щоб вибрати, які об'єкти включити, а потім натисніть «Створити список».", + "selectSearchTip": "Виберіть об’єкти з вхідного шару, щоб додати їх до списку. Малюйте за допомогою інструментів «Скетч», вказуйте відстань пошуку та використовуйте об’єкти з іншого шару, щоб вибрати об’єкти, що перекриваються.", "selectLayerTip": "Намалюйте форми, щоб вибрати об’єкти з вибраного шару вибору; результати будуть використані для вибору об'єктів із шару адресату", "selectSketchTip": "Використовуйте інструменти ескізу, щоб намалювати графіки на карті, щоб вибрати об’єкти, що перетинаються, у шарі адресату.", "optionalSearchDistance": "і за бажанням додайте відстань пошуку.", - "listHasSetsTip": "ґ_Edit or delete existing lists or click Create new list_____________________________Ї.", + "listHasSetsTip": "Відредагуйте або видаліть наявні списки або натисніть «Створити новий список».", "uniqueCout": "Унікальна кількість: {{n}}", "searchDistance": "Відстань пошуку", "useLayerFeatures": "Використовувати об’єкти шару", "export": "Експорт", - "exportTip": "ґ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________Ї.", + "exportTip": "Виберіть списки для включення в файл експорту. Експортуйте списки як CSV і PDF.", "title": "Заголовок", "addTitle": "Додати заголовок", "titlePlaceholder": "Ввести заголовок тут", @@ -35,8 +35,8 @@ "pdfOptions": "Опції PDF", "csvOptions": "Опції CSV", "refineSelection": "Уточнити вибірку", - "refineTip": "ґ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________Ї.", + "refineTip": "Уточніть і завершіть свої списки за допомогою інструментів «Скетч», щоб додати або видалити вибрані об'єкти.", "refineTipNoSelections": "Немає вибірок для уточнення. Перейдіть в «Мої списки», щоб створити список об’єктів.", - "duplicatesTip": "ґ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________Ї.", - "exportListsLabel": "ґ_My lists_________________Ї" + "duplicatesTip": "Дубльовані об'єкти завжди видаляються. Якщо увімкнено, спливаючі вікна з кожного шару порівнюватимуться, а будь-яка повторювана інформація про спливаючі вікна буде видалена.", + "exportListsLabel": "Мої списки" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_vi.json b/src/assets/t9n/public-notification/resources_vi.json index cd7da247c..86010721b 100644 --- a/src/assets/t9n/public-notification/resources_vi.json +++ b/src/assets/t9n/public-notification/resources_vi.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} đối tượng được chọn", "noNotifications": "Bạn chưa có danh sách thông báo nào.", "notifications": "Thông báo", - "myLists": "Đ_Create and edit lists______________________ớ", + "myLists": "Tạo và chỉnh sửa danh sách", "stepTwoFull": "Tạo danh sách mới", "cancel": "Hủy", "done": "Hoàn tất", - "selectPDFLabelOption": "Đ_Format options_______________ớ", - "removeDuplicate": "Đ_Remove duplicates___________________ớ:", + "selectPDFLabelOption": "Tùy chọn định dạng", + "removeDuplicate": "Xóa các mục trùng lặp:", "numDuplicates": "{{n}} mục trùng lặp", - "selectLayerAndAdd": "Đ_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________ớ.", - "selectSearchTip": "Đ_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________ớ.", + "selectLayerAndAdd": "Tạo danh sách các đối tượng để xuất ra dưới dạng CSV và PDF. Sử dụng các công cụ lựa chọn để chọn đối tượng cần đưa vào, sau đó nhấp vào Tạo danh sách.", + "selectSearchTip": "Lựa chọn đối tượng từ lớp đầu vào để thêm vào danh sách của bạn. Vẽ bằng công cụ phác hoạ, chỉ rõ khoảng cách tìm kiếm và sử dụng các đối tượng từ các lớp khác để lựa chọn các đối tượng chồng lắp.", "selectLayerTip": "Vẽ các hình dạng để chọn đối tượng từ lớp lựa chọn đã chọn; kết quả sẽ được sử dụng để chọn các đối tượng từ lớp người nhận", "selectSketchTip": "Sử dụng các công cụ phác họa để vẽ đồ họa trong bản đồ nhằm chọn các đối tượng giao cắt trong lớp người nhận.", "optionalSearchDistance": "và thêm khoảng cách tìm kiếm tùy ý.", - "listHasSetsTip": "Đ_Edit or delete existing lists or click Create new list_____________________________ớ.", + "listHasSetsTip": "Chỉnh sửa hoặc xóa danh sách hiện có hoặc nhấp vào Tạo danh sách mới.", "uniqueCout": "Số lượng Duy nhất: {{n}}", "searchDistance": "Khoảng cách tìm kiếm", "useLayerFeatures": "Sử dụng các đối tượng trong lớp", "export": "Xuất", - "exportTip": "Đ_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________ớ.", + "exportTip": "Lựa chọn các danh sách để đưa vào tệp đã xuất. Xuất danh sách dưới dạng CSV và PDF.", "title": "Tiêu đề", "addTitle": "Thêm tiêu đề", "titlePlaceholder": "Nhập tiêu đề ở đây", @@ -35,8 +35,8 @@ "pdfOptions": "Tùy chọn PDF", "csvOptions": "Tùy chọn CSV", "refineSelection": "Lựa chọn tinh chỉnh", - "refineTip": "Đ_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________ớ.", + "refineTip": "Tinh chỉnh và hoàn thiện danh sách của bạn bằng các công cụ phác hoạ để thêm hoặc xóa đối tượng đã lựa chọn.", "refineTipNoSelections": "Không có lựa chọn nào để tinh chỉnh. Đến Danh sách của tôi để tạo danh sách đối tượng.", - "duplicatesTip": "Đ_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________ớ.", - "exportListsLabel": "Đ_My lists_________________ớ" + "duplicatesTip": "Đối tượng trùng nhau sẽ luôn bị xoá. Sau khi được bật, cửa sổ pop-up từ mỗi lớp sẽ được so sánh và tất cả các thông tin pop-up trùng nhau sẽ bị xóa.", + "exportListsLabel": "Danh sách của tôi" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_zh-CN.json b/src/assets/t9n/public-notification/resources_zh-CN.json index 72c9e3fc5..c4ceead0e 100644 --- a/src/assets/t9n/public-notification/resources_zh-CN.json +++ b/src/assets/t9n/public-notification/resources_zh-CN.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} 个所选要素", "noNotifications": "您还没有通知列表。", "notifications": "通知", - "myLists": "试_Create and edit lists______________________验", + "myLists": "创建和编辑列表", "stepTwoFull": "新建列表", "cancel": "取消", "done": "完成", - "selectPDFLabelOption": "试_Format options_______________验", - "removeDuplicate": "试_Remove duplicates___________________验:", + "selectPDFLabelOption": "格式选项", + "removeDuplicate": "移除重复项:", "numDuplicates": "{{n}} 个重复项", - "selectLayerAndAdd": "试_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________验.", - "selectSearchTip": "试_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________验.", + "selectLayerAndAdd": "创建要导出为 CSV 和 PDF 的要素列表。 使用选择工具选择要包含的要素,然后单击“创建列表”。", + "selectSearchTip": "从输入图层中选择要添加到列表中的要素。 使用草图工具进行绘制,指定搜索距离,并使用来自另一个图层的要素来选择重叠要素。", "selectLayerTip": "绘制形状以从所选选择图层中选择要素;结果将用于从地址图层中选择要素", "selectSketchTip": "使用草图工具在地图中绘制图形以选择地址图层中的相交要素。", "optionalSearchDistance": "并可选择添加搜索距离。", - "listHasSetsTip": "试_Edit or delete existing lists or click Create new list_____________________________验.", + "listHasSetsTip": "编辑或删除现有列表,或单击“新建列表”。", "uniqueCout": "唯一计数:{{n}}", "searchDistance": "搜索距离", "useLayerFeatures": "使用图层要素", "export": "导出", - "exportTip": "试_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________验.", + "exportTip": "选择要包含在导出的文件中的列表。 将列表导出为 CSV 和 PDF。", "title": "标题", "addTitle": "添加标题", "titlePlaceholder": "在此处输入标题", @@ -35,8 +35,8 @@ "pdfOptions": "PDF 选项", "csvOptions": "CSV 选项", "refineSelection": "优化选择", - "refineTip": "试_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________验.", + "refineTip": "通过使用草图工具添加或移除所选要素来优化和完成列表。", "refineTipNoSelections": "不存在要优化的选择内容。 转到“我的列表”以创建要素列表。", - "duplicatesTip": "试_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________验.", - "exportListsLabel": "试_My lists_________________验" + "duplicatesTip": "重复要素始终会被移除。 启用后,将比较每个图层的弹出窗口,并移除任何重复的弹出窗口信息。", + "exportListsLabel": "我的列表" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_zh-HK.json b/src/assets/t9n/public-notification/resources_zh-HK.json index 21beb2623..09a6a2298 100644 --- a/src/assets/t9n/public-notification/resources_zh-HK.json +++ b/src/assets/t9n/public-notification/resources_zh-HK.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} 個選擇的圖徵", "noNotifications": "您還沒有通知清單。", "notifications": "通知", - "myLists": "試_Create and edit lists______________________驗", + "myLists": "建立和編輯清單", "stepTwoFull": "建立新清單", "cancel": "取消", "done": "完成", - "selectPDFLabelOption": "試_Format options_______________驗", - "removeDuplicate": "試_Remove duplicates___________________驗:", + "selectPDFLabelOption": "格式選項", + "removeDuplicate": "移除重複項目:", "numDuplicates": "{{n}} 個重複項目", - "selectLayerAndAdd": "試_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________驗.", - "selectSearchTip": "試_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________驗.", + "selectLayerAndAdd": "建立要匯出為 CSV 和 PDF 的圖徵清單。 使用選擇工具以選擇要包含的圖徵,然後按一下「建立清單」。", + "selectSearchTip": "從輸入圖層中選擇要新增到清單中的圖徵。 使用描繪工具繪製,指定搜尋距離,並使用來自其他圖層的圖徵來選擇重疊圖徵。", "selectLayerTip": "繪製形狀以從選定的選擇圖層中選擇圖徵;結果將用於從收件者圖層中選擇圖徵", "selectSketchTip": "使用描繪工具,在地圖中繪製圖形以選擇地址圖層中的相交圖徵。", "optionalSearchDistance": "並選擇性地新增搜尋距離。", - "listHasSetsTip": "試_Edit or delete existing lists or click Create new list_____________________________驗.", + "listHasSetsTip": "編輯或刪除現有清單,或按一下「建立新清單」。", "uniqueCout": "唯一計數: {{n}}", "searchDistance": "搜尋距離", "useLayerFeatures": "使用圖層圖徵", "export": "匯出", - "exportTip": "試_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________驗.", + "exportTip": "選擇要包含在匯出檔案中的清單。 將清單匯出為 CSV 和 PDF。", "title": "標題", "addTitle": "新增標題", "titlePlaceholder": "在這裡輸入標題", @@ -35,8 +35,8 @@ "pdfOptions": "PDF 選項", "csvOptions": "CSV 選項", "refineSelection": "精細化選擇", - "refineTip": "試_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________驗.", + "refineTip": "使用描繪工具新增或移除所選圖徵,以精細化和完成您的清單。", "refineTipNoSelections": "沒有要精細化的選擇。 移至「我的清單」以建立圖徵清單。", - "duplicatesTip": "試_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________驗.", - "exportListsLabel": "試_My lists_________________驗" + "duplicatesTip": "一律移除重複的圖徵。 啟用後,將比較每個圖層的快顯視窗,並移除任何重複的快顯視窗資訊。", + "exportListsLabel": "我的清單" } \ No newline at end of file diff --git a/src/assets/t9n/public-notification/resources_zh-TW.json b/src/assets/t9n/public-notification/resources_zh-TW.json index 21beb2623..09a6a2298 100644 --- a/src/assets/t9n/public-notification/resources_zh-TW.json +++ b/src/assets/t9n/public-notification/resources_zh-TW.json @@ -10,24 +10,24 @@ "selectedFeatures": "{{n}} 個選擇的圖徵", "noNotifications": "您還沒有通知清單。", "notifications": "通知", - "myLists": "試_Create and edit lists______________________驗", + "myLists": "建立和編輯清單", "stepTwoFull": "建立新清單", "cancel": "取消", "done": "完成", - "selectPDFLabelOption": "試_Format options_______________驗", - "removeDuplicate": "試_Remove duplicates___________________驗:", + "selectPDFLabelOption": "格式選項", + "removeDuplicate": "移除重複項目:", "numDuplicates": "{{n}} 個重複項目", - "selectLayerAndAdd": "試_Create lists of features to export as CSV and PDF. Use selection tools to choose which features to include and then click Create list____________________________________________________________________驗.", - "selectSearchTip": "試_Select features from the input layer to add to your list. Draw with sketch tools, specify a search distance, and use features from another layer to select overlapping features_________________________________________________________________________________________驗.", + "selectLayerAndAdd": "建立要匯出為 CSV 和 PDF 的圖徵清單。 使用選擇工具以選擇要包含的圖徵,然後按一下「建立清單」。", + "selectSearchTip": "從輸入圖層中選擇要新增到清單中的圖徵。 使用描繪工具繪製,指定搜尋距離,並使用來自其他圖層的圖徵來選擇重疊圖徵。", "selectLayerTip": "繪製形狀以從選定的選擇圖層中選擇圖徵;結果將用於從收件者圖層中選擇圖徵", "selectSketchTip": "使用描繪工具,在地圖中繪製圖形以選擇地址圖層中的相交圖徵。", "optionalSearchDistance": "並選擇性地新增搜尋距離。", - "listHasSetsTip": "試_Edit or delete existing lists or click Create new list_____________________________驗.", + "listHasSetsTip": "編輯或刪除現有清單,或按一下「建立新清單」。", "uniqueCout": "唯一計數: {{n}}", "searchDistance": "搜尋距離", "useLayerFeatures": "使用圖層圖徵", "export": "匯出", - "exportTip": "試_Select lists to include in the exported file. Export lists as CSV and PDF______________________________________驗.", + "exportTip": "選擇要包含在匯出檔案中的清單。 將清單匯出為 CSV 和 PDF。", "title": "標題", "addTitle": "新增標題", "titlePlaceholder": "在這裡輸入標題", @@ -35,8 +35,8 @@ "pdfOptions": "PDF 選項", "csvOptions": "CSV 選項", "refineSelection": "精細化選擇", - "refineTip": "試_Refine and finalize your lists by using sketch tools to add or remove selected features_____________________________________________驗.", + "refineTip": "使用描繪工具新增或移除所選圖徵,以精細化和完成您的清單。", "refineTipNoSelections": "沒有要精細化的選擇。 移至「我的清單」以建立圖徵清單。", - "duplicatesTip": "試_Duplicate features are always removed. When enabled, pop-ups from each layer will be compared and any duplicate pop-up information will be removed___________________________________________________________________________驗.", - "exportListsLabel": "試_My lists_________________驗" + "duplicatesTip": "一律移除重複的圖徵。 啟用後,將比較每個圖層的快顯視窗,並移除任何重複的快顯視窗資訊。", + "exportListsLabel": "我的清單" } \ No newline at end of file diff --git a/src/assets/t9n/refine-selection/resources_ar.json b/src/assets/t9n/refine-selection/resources_ar.json index 731886b5a..6d67f091f 100644 --- a/src/assets/t9n/refine-selection/resources_ar.json +++ b/src/assets/t9n/refine-selection/resources_ar.json @@ -1,9 +1,9 @@ { - "add": "بيت_Add_______لاحقة", - "remove": "بيت_Remove_____________لاحقة", - "featuresAdded": "بيت_Features added: {{n}}______________________لاحقة", - "featuresRemoved": "بيت_Features removed: {{n}}________________________لاحقة", - "totalSelected": "بيت_Total selected: {{n}}______________________لاحقة", - "inputLayer": "بيت_Input layer____________لاحقة", - "inputLayerTip": "بيت_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________لاحقة." + "add": "إضافة", + "remove": "إزالة", + "featuresAdded": "المعالم التي تمت إضافتها: {{n}}", + "featuresRemoved": "المعالم التي تمت إزالتها: {{n}}", + "totalSelected": "إجمالي المحدد: {{n}}", + "inputLayer": "الطبقة المدخلة", + "inputLayerTip": "اختر طبقة الإدخال لمراجعة المعالم المحددة منها، وتحديث المعالم المحددة من طبقة إدخال واحدة في كل مرة." } diff --git a/src/assets/t9n/refine-selection/resources_bg.json b/src/assets/t9n/refine-selection/resources_bg.json index dfb431694..627e160db 100644 --- a/src/assets/t9n/refine-selection/resources_bg.json +++ b/src/assets/t9n/refine-selection/resources_bg.json @@ -1,9 +1,9 @@ { - "add": "й_Add_______й", - "remove": "й_Remove_____________й", - "featuresAdded": "й_Features added: {{n}}______________________й", - "featuresRemoved": "й_Features removed: {{n}}________________________й", - "totalSelected": "й_Total selected: {{n}}______________________й", - "inputLayer": "й_Input layer____________й", - "inputLayerTip": "й_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________й." + "add": "Добавяне", + "remove": "Премахване", + "featuresAdded": "Добавени обекти: {{n}}", + "featuresRemoved": "Премахнати обекти: {{n}}", + "totalSelected": "Общо избрани: {{n}}", + "inputLayer": "Входен слой", + "inputLayerTip": "Изберете входен слой, от който да прегледате избраните обекти, актуализирайте избраните обекти от един слой входни данни в даден момент." } diff --git a/src/assets/t9n/refine-selection/resources_bs.json b/src/assets/t9n/refine-selection/resources_bs.json index 0bef24359..b1f0f4a2b 100644 --- a/src/assets/t9n/refine-selection/resources_bs.json +++ b/src/assets/t9n/refine-selection/resources_bs.json @@ -1,9 +1,9 @@ { - "add": "Č_Add_______ž", - "remove": "Č_Remove_____________ž", - "featuresAdded": "Č_Features added: {{n}}______________________ž", - "featuresRemoved": "Č_Features removed: {{n}}________________________ž", - "totalSelected": "Č_Total selected: {{n}}______________________ž", - "inputLayer": "Č_Input layer____________ž", - "inputLayerTip": "Č_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ž." + "add": "Dodaj", + "remove": "Ukloni", + "featuresAdded": "Dodani geoobjekti: {{n}}", + "featuresRemoved": "Uklonjeni geoobjekti: {{n}}", + "totalSelected": "Ukupno odabrano: {{n}}", + "inputLayer": "Unesi sloj", + "inputLayerTip": "Odaberite ulazni sloj iz kojeg ćete pregledati odabrane geoobjekte, ažurirajte odabrane geoobjekte iz jednog po jednog ulaznog sloja." } diff --git a/src/assets/t9n/refine-selection/resources_ca.json b/src/assets/t9n/refine-selection/resources_ca.json index 8276854bf..2d30009b1 100644 --- a/src/assets/t9n/refine-selection/resources_ca.json +++ b/src/assets/t9n/refine-selection/resources_ca.json @@ -1,9 +1,9 @@ { - "add": "ó_Add_______à", - "remove": "ó_Remove_____________à", - "featuresAdded": "ó_Features added: {{n}}______________________à", - "featuresRemoved": "ó_Features removed: {{n}}________________________à", - "totalSelected": "ó_Total selected: {{n}}______________________à", - "inputLayer": "ó_Input layer____________à", - "inputLayerTip": "ó_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________à." + "add": "Afegeix", + "remove": "Elimina", + "featuresAdded": "Entitats afegides: {{n}}", + "featuresRemoved": "Entitats eliminades: {{n}}", + "totalSelected": "Total seleccionat: {{n}}", + "inputLayer": "Capa d'entrada", + "inputLayerTip": "Trieu la capa d'entrada les entitats seleccionades de la qual voleu revisar. Actualitzeu les entitats seleccionades d'una capa d'entitats cada vegada." } diff --git a/src/assets/t9n/refine-selection/resources_cs.json b/src/assets/t9n/refine-selection/resources_cs.json index 5e5b81d7d..ed7bd92bd 100644 --- a/src/assets/t9n/refine-selection/resources_cs.json +++ b/src/assets/t9n/refine-selection/resources_cs.json @@ -1,9 +1,9 @@ { - "add": "Ř_Add_______ů", - "remove": "Ř_Remove_____________ů", - "featuresAdded": "Ř_Features added: {{n}}______________________ů", - "featuresRemoved": "Ř_Features removed: {{n}}________________________ů", - "totalSelected": "Ř_Total selected: {{n}}______________________ů", - "inputLayer": "Ř_Input layer____________ů", - "inputLayerTip": "Ř_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ů." + "add": "Přidat", + "remove": "Odebrat", + "featuresAdded": "Přidané prvky: {{n}}", + "featuresRemoved": "Odebrané prvky: {{n}}", + "totalSelected": "Celkem vybráno: {{n}}", + "inputLayer": "Vstupní vrstva", + "inputLayerTip": "Zvolte vstupní vrstvu, ve které chcete vybrané prvky zkontrolovat, a aktualizujte vybrané prvky postupně po jedné vstupní vrstvě." } diff --git a/src/assets/t9n/refine-selection/resources_da.json b/src/assets/t9n/refine-selection/resources_da.json index 2508c4715..21ccd2b8e 100644 --- a/src/assets/t9n/refine-selection/resources_da.json +++ b/src/assets/t9n/refine-selection/resources_da.json @@ -1,9 +1,9 @@ { - "add": "ø_Add_______å", - "remove": "ø_Remove_____________å", - "featuresAdded": "ø_Features added: {{n}}______________________å", - "featuresRemoved": "ø_Features removed: {{n}}________________________å", - "totalSelected": "ø_Total selected: {{n}}______________________å", - "inputLayer": "ø_Input layer____________å", - "inputLayerTip": "ø_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________å." + "add": "Tilføj", + "remove": "Fjern", + "featuresAdded": "Objekter tilføjet: {{n}}", + "featuresRemoved": "Objekter fjernet: {{n}}", + "totalSelected": "I alt markeret: {{n}}", + "inputLayer": "Input-lag", + "inputLayerTip": "Vælg inputlag til at gennemgå de valgte objekter, opdater de valgte objekter fra ét inputlag ad gangen." } diff --git a/src/assets/t9n/refine-selection/resources_de.json b/src/assets/t9n/refine-selection/resources_de.json index 576abd78d..6275bb586 100644 --- a/src/assets/t9n/refine-selection/resources_de.json +++ b/src/assets/t9n/refine-selection/resources_de.json @@ -1,9 +1,9 @@ { - "add": "ä_Add_______Ü", - "remove": "ä_Remove_____________Ü", - "featuresAdded": "ä_Features added: {{n}}______________________Ü", - "featuresRemoved": "ä_Features removed: {{n}}________________________Ü", - "totalSelected": "ä_Total selected: {{n}}______________________Ü", - "inputLayer": "ä_Input layer____________Ü", - "inputLayerTip": "ä_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Ü." + "add": "Hinzufügen", + "remove": "Entfernen", + "featuresAdded": "Features hinzugefügt: {{n}}", + "featuresRemoved": "Features entfernt: {{n}}", + "totalSelected": "Insgesamt ausgewählt: {{n}}", + "inputLayer": "Eingabe-Layer", + "inputLayerTip": "Wählen Sie einen Eingabe-Layer aus, um ausgewählte Features zu überprüfen, und aktualisieren Sie ausgewählte Features einzelner Eingabe-Layer." } diff --git a/src/assets/t9n/refine-selection/resources_el.json b/src/assets/t9n/refine-selection/resources_el.json index 50f239c83..48401f5dd 100644 --- a/src/assets/t9n/refine-selection/resources_el.json +++ b/src/assets/t9n/refine-selection/resources_el.json @@ -1,9 +1,9 @@ { - "add": "Đ_Add_______ớ", - "remove": "Đ_Remove_____________ớ", - "featuresAdded": "Đ_Features added: {{n}}______________________ớ", - "featuresRemoved": "Đ_Features removed: {{n}}________________________ớ", - "totalSelected": "Đ_Total selected: {{n}}______________________ớ", - "inputLayer": "Đ_Input layer____________ớ", - "inputLayerTip": "Đ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ớ." + "add": "Προσθήκη", + "remove": "Κατάργηση", + "featuresAdded": "Προστέθηκαν στοιχεία: {{n}}", + "featuresRemoved": "Καταργήθηκαν στοιχεία: {{n}}", + "totalSelected": "Σύνολο επιλεγμένων: {{n}}", + "inputLayer": "Θεματικό επίπεδο εισόδου", + "inputLayerTip": "Επιλέξτε θεματικό επίπεδο εισόδου για να ελέγξετε επιλεγμένα στοιχεία, ενημερώστε επιλεγμένα στοιχεία από ένα θεματικό επίπεδο εισόδου κάθε φορά." } diff --git a/src/assets/t9n/refine-selection/resources_es.json b/src/assets/t9n/refine-selection/resources_es.json index 475937036..20c3b77fe 100644 --- a/src/assets/t9n/refine-selection/resources_es.json +++ b/src/assets/t9n/refine-selection/resources_es.json @@ -1,9 +1,9 @@ { - "add": "á_Add_______Ó", - "remove": "á_Remove_____________Ó", - "featuresAdded": "á_Features added: {{n}}______________________Ó", - "featuresRemoved": "á_Features removed: {{n}}________________________Ó", - "totalSelected": "á_Total selected: {{n}}______________________Ó", - "inputLayer": "á_Input layer____________Ó", - "inputLayerTip": "á_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Ó." + "add": "Añadir", + "remove": "Eliminar", + "featuresAdded": "Entidades agregadas: {{n}}", + "featuresRemoved": "Entidades eliminadas: {{n}}", + "totalSelected": "Total seleccionado: {{n}}", + "inputLayer": "Capa de entrada", + "inputLayerTip": "Elija la capa de entrada para revisar las entidades seleccionadas en ella y actualice las entidades seleccionadas en una capa de entrada de una en una." } diff --git a/src/assets/t9n/refine-selection/resources_et.json b/src/assets/t9n/refine-selection/resources_et.json index 11613ae97..ed23452db 100644 --- a/src/assets/t9n/refine-selection/resources_et.json +++ b/src/assets/t9n/refine-selection/resources_et.json @@ -1,9 +1,9 @@ { - "add": "Š_Add_______ä", - "remove": "Š_Remove_____________ä", - "featuresAdded": "Š_Features added: {{n}}______________________ä", - "featuresRemoved": "Š_Features removed: {{n}}________________________ä", - "totalSelected": "Š_Total selected: {{n}}______________________ä", - "inputLayer": "Š_Input layer____________ä", - "inputLayerTip": "Š_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ä." + "add": "Lisa", + "remove": "Eemalda", + "featuresAdded": "Lisatud objektid: {{n}}", + "featuresRemoved": "Eemaldatud objektid: {{n}}", + "totalSelected": "Kõik valitud: {{n}}", + "inputLayer": "Sisendkiht", + "inputLayerTip": "Valige sisendkiht, millel soovite valitud objektid üle vaadata, uuendage valitud objektid ühel sisendkihil korraga." } diff --git a/src/assets/t9n/refine-selection/resources_fi.json b/src/assets/t9n/refine-selection/resources_fi.json index 844618ea8..f52537388 100644 --- a/src/assets/t9n/refine-selection/resources_fi.json +++ b/src/assets/t9n/refine-selection/resources_fi.json @@ -1,9 +1,9 @@ { - "add": "Å_Add_______ö", - "remove": "Å_Remove_____________ö", - "featuresAdded": "Å_Features added: {{n}}______________________ö", - "featuresRemoved": "Å_Features removed: {{n}}________________________ö", - "totalSelected": "Å_Total selected: {{n}}______________________ö", - "inputLayer": "Å_Input layer____________ö", - "inputLayerTip": "Å_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ö." + "add": "Lisää", + "remove": "Poista", + "featuresAdded": "Lisätyt kohteet: {{n}}", + "featuresRemoved": "Poistetut kohteet: {{n}}", + "totalSelected": "Valittu yhteensä: {{n}}", + "inputLayer": "Lähtöaineiston karttataso", + "inputLayerTip": "Valitse lähtöaineiston karttataso, josta voit tarkastella valittuja kohteita. Päivitä valitut kohteet yhdestä lähtöaineiston karttatasosta kerrallaan." } diff --git a/src/assets/t9n/refine-selection/resources_fr.json b/src/assets/t9n/refine-selection/resources_fr.json index bc341dbd6..532bf6324 100644 --- a/src/assets/t9n/refine-selection/resources_fr.json +++ b/src/assets/t9n/refine-selection/resources_fr.json @@ -1,9 +1,9 @@ { - "add": "æ_Add_______Â", - "remove": "æ_Remove_____________Â", - "featuresAdded": "æ_Features added: {{n}}______________________Â", - "featuresRemoved": "æ_Features removed: {{n}}________________________Â", - "totalSelected": "æ_Total selected: {{n}}______________________Â", - "inputLayer": "æ_Input layer____________Â", - "inputLayerTip": "æ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Â." + "add": "Ajouter", + "remove": "Supprimer", + "featuresAdded": "Entités ajoutées : {{n}}", + "featuresRemoved": "Entités supprimées : {{n}}", + "totalSelected": "Nombre total d’entités sélectionnées : {{n}}", + "inputLayer": "Couche en entrée", + "inputLayerTip": "Choisissez la couche en entrée dans laquelle examiner les entités sélectionnées. Mettez à jour les entités sélectionnées d’une seule couche en entrée à la fois." } diff --git a/src/assets/t9n/refine-selection/resources_he.json b/src/assets/t9n/refine-selection/resources_he.json index e1496a1c2..631147383 100644 --- a/src/assets/t9n/refine-selection/resources_he.json +++ b/src/assets/t9n/refine-selection/resources_he.json @@ -1,9 +1,9 @@ { - "add": "כן_Add_______ש", - "remove": "כן_Remove_____________ש", - "featuresAdded": "כן_Features added: {{n}}______________________ש", - "featuresRemoved": "כן_Features removed: {{n}}________________________ש", - "totalSelected": "כן_Total selected: {{n}}______________________ש", - "inputLayer": "כן_Input layer____________ש", - "inputLayerTip": "כן_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ש." + "add": "הוספה", + "remove": "הסרה", + "featuresAdded": "ישויות שנוספו: {{n}}", + "featuresRemoved": "ישויות שהוסרו: {{n}}", + "totalSelected": "סה\"כ נבחרו: {{n}}", + "inputLayer": "שכבת קלט", + "inputLayerTip": "בחר שכבת קלט כדי לעיין בישויות שנבחרו מתוכה, עדכן את הישויות שנבחרו משכבת קלט אחת בכל פעם." } diff --git a/src/assets/t9n/refine-selection/resources_hr.json b/src/assets/t9n/refine-selection/resources_hr.json index 0bef24359..b1f0f4a2b 100644 --- a/src/assets/t9n/refine-selection/resources_hr.json +++ b/src/assets/t9n/refine-selection/resources_hr.json @@ -1,9 +1,9 @@ { - "add": "Č_Add_______ž", - "remove": "Č_Remove_____________ž", - "featuresAdded": "Č_Features added: {{n}}______________________ž", - "featuresRemoved": "Č_Features removed: {{n}}________________________ž", - "totalSelected": "Č_Total selected: {{n}}______________________ž", - "inputLayer": "Č_Input layer____________ž", - "inputLayerTip": "Č_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ž." + "add": "Dodaj", + "remove": "Ukloni", + "featuresAdded": "Dodani geoobjekti: {{n}}", + "featuresRemoved": "Uklonjeni geoobjekti: {{n}}", + "totalSelected": "Ukupno odabrano: {{n}}", + "inputLayer": "Unesi sloj", + "inputLayerTip": "Odaberite ulazni sloj iz kojeg ćete pregledati odabrane geoobjekte, ažurirajte odabrane geoobjekte iz jednog po jednog ulaznog sloja." } diff --git a/src/assets/t9n/refine-selection/resources_hu.json b/src/assets/t9n/refine-selection/resources_hu.json index 97f4fc4c1..3a9f4d5b4 100644 --- a/src/assets/t9n/refine-selection/resources_hu.json +++ b/src/assets/t9n/refine-selection/resources_hu.json @@ -1,9 +1,9 @@ { - "add": "í_Add_______ő", - "remove": "í_Remove_____________ő", - "featuresAdded": "í_Features added: {{n}}______________________ő", - "featuresRemoved": "í_Features removed: {{n}}________________________ő", - "totalSelected": "í_Total selected: {{n}}______________________ő", - "inputLayer": "í_Input layer____________ő", - "inputLayerTip": "í_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ő." + "add": "Hozzáadás", + "remove": "Eltávolítás", + "featuresAdded": "Hozzáadott vektoros elemek: {{n}}", + "featuresRemoved": "Eltávolított vektoros elemek: {{n}}", + "totalSelected": "Kijelölve összesen: {{n}}", + "inputLayer": "Bemenő réteg", + "inputLayerTip": "Válasszon bemeneti réteget a kijelölt vektoros elemek ellenőrzéséhez, valamint a kijelölt vektoros elemek egy bemeneti rétegből egyszerre történő frissítéséhez." } diff --git a/src/assets/t9n/refine-selection/resources_id.json b/src/assets/t9n/refine-selection/resources_id.json index a5ce2b6ce..7f05e3fbf 100644 --- a/src/assets/t9n/refine-selection/resources_id.json +++ b/src/assets/t9n/refine-selection/resources_id.json @@ -1,9 +1,9 @@ { - "add": "ng_Add_______ny", - "remove": "ng_Remove_____________ny", - "featuresAdded": "ng_Features added: {{n}}______________________ny", - "featuresRemoved": "ng_Features removed: {{n}}________________________ny", - "totalSelected": "ng_Total selected: {{n}}______________________ny", - "inputLayer": "ng_Input layer____________ny", - "inputLayerTip": "ng_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ny." + "add": "Tambahkan", + "remove": "Hapus", + "featuresAdded": "Fitur ditambahkan: {{n}}", + "featuresRemoved": "Fitur dihapus: {{n}}", + "totalSelected": "Total yang dipilih: {{n}}", + "inputLayer": "Layer input", + "inputLayerTip": "Pilih layer input untuk meninjau fitur yang dipilih, perbarui fitur yang dipilih dari satu layer input pada satu waktu." } diff --git a/src/assets/t9n/refine-selection/resources_it.json b/src/assets/t9n/refine-selection/resources_it.json index cda7297ac..f4d92683c 100644 --- a/src/assets/t9n/refine-selection/resources_it.json +++ b/src/assets/t9n/refine-selection/resources_it.json @@ -1,9 +1,9 @@ { - "add": "é_Add_______È", - "remove": "é_Remove_____________È", - "featuresAdded": "é_Features added: {{n}}______________________È", - "featuresRemoved": "é_Features removed: {{n}}________________________È", - "totalSelected": "é_Total selected: {{n}}______________________È", - "inputLayer": "é_Input layer____________È", - "inputLayerTip": "é_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________È." + "add": "Aggiungi", + "remove": "Rimuovi", + "featuresAdded": "Feature aggiunte: {{n}}", + "featuresRemoved": "Feature rimosse: {{n}}", + "totalSelected": "Totale selezionato: {{n}}", + "inputLayer": "Layer di input", + "inputLayerTip": "Scegliere il layer di input per rivedere, aggiornare le feature selezionate da un layer di input alla volta." } diff --git a/src/assets/t9n/refine-selection/resources_ja.json b/src/assets/t9n/refine-selection/resources_ja.json index da143a2e9..ab9550f42 100644 --- a/src/assets/t9n/refine-selection/resources_ja.json +++ b/src/assets/t9n/refine-selection/resources_ja.json @@ -1,9 +1,9 @@ { - "add": "須_Add_______鷗", - "remove": "須_Remove_____________鷗", - "featuresAdded": "須_Features added: {{n}}______________________鷗", - "featuresRemoved": "須_Features removed: {{n}}________________________鷗", - "totalSelected": "須_Total selected: {{n}}______________________鷗", - "inputLayer": "須_Input layer____________鷗", - "inputLayerTip": "須_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________鷗." + "add": "追加", + "remove": "削除", + "featuresAdded": "追加したフィーチャ数: {{n}}", + "featuresRemoved": "削除したフィーチャ数: {{n}}", + "totalSelected": "選択した総数: {{n}}", + "inputLayer": "入力レイヤー", + "inputLayerTip": "選択したフィーチャを確認するための入力レイヤーを選択し、一度に 1 つの入力レイヤーから選択したフィーチャを更新します。" } diff --git a/src/assets/t9n/refine-selection/resources_ko.json b/src/assets/t9n/refine-selection/resources_ko.json index 5c08c7b3a..9a8b6f7f6 100644 --- a/src/assets/t9n/refine-selection/resources_ko.json +++ b/src/assets/t9n/refine-selection/resources_ko.json @@ -1,9 +1,9 @@ { - "add": "한_Add_______빠", - "remove": "한_Remove_____________빠", - "featuresAdded": "한_Features added: {{n}}______________________빠", - "featuresRemoved": "한_Features removed: {{n}}________________________빠", - "totalSelected": "한_Total selected: {{n}}______________________빠", - "inputLayer": "한_Input layer____________빠", - "inputLayerTip": "한_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________빠." + "add": "추가", + "remove": "제거", + "featuresAdded": "추가된 피처 수: {{n}}", + "featuresRemoved": "제거된 피처 수: {{n}}", + "totalSelected": "선택한 총수: {{n}}", + "inputLayer": "입력 레이어", + "inputLayerTip": "선택한 피처를 검토할 입력 레이어를 선택하고, 선택한 피처를 한 번에 하나의 입력 레이어에서 업데이트합니다." } diff --git a/src/assets/t9n/refine-selection/resources_lt.json b/src/assets/t9n/refine-selection/resources_lt.json index b0f0b6e37..70a72fc18 100644 --- a/src/assets/t9n/refine-selection/resources_lt.json +++ b/src/assets/t9n/refine-selection/resources_lt.json @@ -1,9 +1,9 @@ { - "add": "Į_Add_______š", - "remove": "Į_Remove_____________š", - "featuresAdded": "Į_Features added: {{n}}______________________š", - "featuresRemoved": "Į_Features removed: {{n}}________________________š", - "totalSelected": "Į_Total selected: {{n}}______________________š", - "inputLayer": "Į_Input layer____________š", - "inputLayerTip": "Į_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________š." + "add": "Pridėti", + "remove": "Panaikinti", + "featuresAdded": "Pridėta elementų: {{n}}", + "featuresRemoved": "Pašalinta elementų: {{n}}", + "totalSelected": "Iš viso pasirinkta: {{n}}", + "inputLayer": "Įvesties sluoksnis", + "inputLayerTip": "Pasirinkite įvesties sluoksnį, jei norite peržiūrėti jame pasirinktus elementus. Vienu metu galima atnaujinti tik vieno įvesties sluoksnio pasirinktus elementus." } diff --git a/src/assets/t9n/refine-selection/resources_lv.json b/src/assets/t9n/refine-selection/resources_lv.json index b13663860..e146cc53e 100644 --- a/src/assets/t9n/refine-selection/resources_lv.json +++ b/src/assets/t9n/refine-selection/resources_lv.json @@ -1,9 +1,9 @@ { - "add": "ķ_Add_______ū", - "remove": "ķ_Remove_____________ū", - "featuresAdded": "ķ_Features added: {{n}}______________________ū", - "featuresRemoved": "ķ_Features removed: {{n}}________________________ū", - "totalSelected": "ķ_Total selected: {{n}}______________________ū", - "inputLayer": "ķ_Input layer____________ū", - "inputLayerTip": "ķ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ū." + "add": "Pievienot", + "remove": "Noņemt", + "featuresAdded": "Pievienotie elementi: {{n}}", + "featuresRemoved": "Noņemtie elementi: {{n}}", + "totalSelected": "Kopā atlasīts: {{n}}", + "inputLayer": "Ievades slānis", + "inputLayerTip": "Izvēlieties ievades slāni, kurā pārskatīt izvēlētos elementus, atjauniniet izvēlētos elelemtus pa vienam ievades slānim." } diff --git a/src/assets/t9n/refine-selection/resources_nb.json b/src/assets/t9n/refine-selection/resources_nb.json index eb123c783..ea4b26057 100644 --- a/src/assets/t9n/refine-selection/resources_nb.json +++ b/src/assets/t9n/refine-selection/resources_nb.json @@ -1,9 +1,9 @@ { - "add": "å_Add_______ø", - "remove": "å_Remove_____________ø", - "featuresAdded": "å_Features added: {{n}}______________________ø", - "featuresRemoved": "å_Features removed: {{n}}________________________ø", - "totalSelected": "å_Total selected: {{n}}______________________ø", - "inputLayer": "å_Input layer____________ø", - "inputLayerTip": "å_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ø." + "add": "Legg til", + "remove": "Fjern", + "featuresAdded": "Geoobjekter som er lagt til: {{n}}", + "featuresRemoved": "Geoobjekter som er fjernet: {{n}}", + "totalSelected": "Totalt antall valgte: {{n}}", + "inputLayer": "Inndatalag", + "inputLayerTip": "Velg inndatalag med geoobjekter som skal vurderes. Oppdater valgte geoobjekter fra et inndatalag om gangen." } diff --git a/src/assets/t9n/refine-selection/resources_nl.json b/src/assets/t9n/refine-selection/resources_nl.json index e97711648..a8ddf81d0 100644 --- a/src/assets/t9n/refine-selection/resources_nl.json +++ b/src/assets/t9n/refine-selection/resources_nl.json @@ -1,9 +1,9 @@ { - "add": "IJ_Add_______ä", - "remove": "IJ_Remove_____________ä", - "featuresAdded": "IJ_Features added: {{n}}______________________ä", - "featuresRemoved": "IJ_Features removed: {{n}}________________________ä", - "totalSelected": "IJ_Total selected: {{n}}______________________ä", - "inputLayer": "IJ_Input layer____________ä", - "inputLayerTip": "IJ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ä." + "add": "Toevoegen", + "remove": "Verwijderen", + "featuresAdded": "Toegevoegde objecten: {{n}}", + "featuresRemoved": "Verwijderde objecten: {{n}}", + "totalSelected": "Totaal geselecteerd: {{n}}", + "inputLayer": "Invoerlaag", + "inputLayerTip": "Kies een invoerlaag om geselecteerde objecten hieruit door te nemen, werk geselecteerde objecten uit één invoerlaag een voor een bij." } diff --git a/src/assets/t9n/refine-selection/resources_pl.json b/src/assets/t9n/refine-selection/resources_pl.json index bba471e7a..d3873d393 100644 --- a/src/assets/t9n/refine-selection/resources_pl.json +++ b/src/assets/t9n/refine-selection/resources_pl.json @@ -1,9 +1,9 @@ { - "add": "ł_Add_______ą", - "remove": "ł_Remove_____________ą", - "featuresAdded": "ł_Features added: {{n}}______________________ą", - "featuresRemoved": "ł_Features removed: {{n}}________________________ą", - "totalSelected": "ł_Total selected: {{n}}______________________ą", - "inputLayer": "ł_Input layer____________ą", - "inputLayerTip": "ł_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ą." + "add": "Dodaj", + "remove": "Usuń", + "featuresAdded": "Dodane obiekty: {{n}}", + "featuresRemoved": "Usunięte obiekty: {{n}}", + "totalSelected": "Wybrane łącznie: {{n}}", + "inputLayer": "Warstwa wejściowa", + "inputLayerTip": "Wybierz warstwę wejściową zawierającą wybrane obiekty, które chcesz przejrzeć. Aktualizuj wybrane obiekty z jednej warstwy wejściowej naraz." } diff --git a/src/assets/t9n/refine-selection/resources_pt-BR.json b/src/assets/t9n/refine-selection/resources_pt-BR.json index 1a3ff2742..6206aab29 100644 --- a/src/assets/t9n/refine-selection/resources_pt-BR.json +++ b/src/assets/t9n/refine-selection/resources_pt-BR.json @@ -1,9 +1,9 @@ { - "add": "ã_Add_______Ç", - "remove": "ã_Remove_____________Ç", - "featuresAdded": "ã_Features added: {{n}}______________________Ç", - "featuresRemoved": "ã_Features removed: {{n}}________________________Ç", - "totalSelected": "ã_Total selected: {{n}}______________________Ç", - "inputLayer": "ã_Input layer____________Ç", - "inputLayerTip": "ã_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Ç." + "add": "Adicionar", + "remove": "Remover", + "featuresAdded": "Feições adicionadas: {{n}}", + "featuresRemoved": "Feições removidas: {{n}}", + "totalSelected": "Total selecionado: {{n}}", + "inputLayer": "Camada de entrada", + "inputLayerTip": "Escolha a camada de entrada para revisar as feições selecionadas, atualize as feições selecionadas de uma camada de entrada por vez." } diff --git a/src/assets/t9n/refine-selection/resources_pt-PT.json b/src/assets/t9n/refine-selection/resources_pt-PT.json index 1a3ff2742..41a53bcc6 100644 --- a/src/assets/t9n/refine-selection/resources_pt-PT.json +++ b/src/assets/t9n/refine-selection/resources_pt-PT.json @@ -1,9 +1,9 @@ { - "add": "ã_Add_______Ç", - "remove": "ã_Remove_____________Ç", - "featuresAdded": "ã_Features added: {{n}}______________________Ç", - "featuresRemoved": "ã_Features removed: {{n}}________________________Ç", - "totalSelected": "ã_Total selected: {{n}}______________________Ç", - "inputLayer": "ã_Input layer____________Ç", - "inputLayerTip": "ã_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Ç." + "add": "Adicionar", + "remove": "Remover", + "featuresAdded": "Elementos adicionados: {{n}}", + "featuresRemoved": "Elementos removidos: {{n}}", + "totalSelected": "Total de selecionados: {{n}}", + "inputLayer": "Camada de entrada", + "inputLayerTip": "Escolha a camada de entrada a partir da qual pretende rever os elementos selecionados. Atualize os elementos selecionados a partir de uma camada de entrada de cada vez." } diff --git a/src/assets/t9n/refine-selection/resources_ro.json b/src/assets/t9n/refine-selection/resources_ro.json index af1042697..b4eccf9f7 100644 --- a/src/assets/t9n/refine-selection/resources_ro.json +++ b/src/assets/t9n/refine-selection/resources_ro.json @@ -1,9 +1,9 @@ { - "add": "Ă_Add_______ș", - "remove": "Ă_Remove_____________ș", - "featuresAdded": "Ă_Features added: {{n}}______________________ș", - "featuresRemoved": "Ă_Features removed: {{n}}________________________ș", - "totalSelected": "Ă_Total selected: {{n}}______________________ș", - "inputLayer": "Ă_Input layer____________ș", - "inputLayerTip": "Ă_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ș." + "add": "Adăugare", + "remove": "Eliminare", + "featuresAdded": "Obiecte spațiale adăugate: {{n}}", + "featuresRemoved": "Obiecte spațiale eliminate: {{n}}", + "totalSelected": "Total selectate: {{n}}", + "inputLayer": "Strat tematic de intrare", + "inputLayerTip": "Alegeți stratul tematic de intrare pentru a consulta obiectele spațiale din acesta, actualizați obiectele spațiale selectate dintr-un strat tematic la un moment dat." } diff --git a/src/assets/t9n/refine-selection/resources_ru.json b/src/assets/t9n/refine-selection/resources_ru.json index eba3f2faa..e77e843f1 100644 --- a/src/assets/t9n/refine-selection/resources_ru.json +++ b/src/assets/t9n/refine-selection/resources_ru.json @@ -1,9 +1,9 @@ { - "add": "Ж_Add_______Я", - "remove": "Ж_Remove_____________Я", - "featuresAdded": "Ж_Features added: {{n}}______________________Я", - "featuresRemoved": "Ж_Features removed: {{n}}________________________Я", - "totalSelected": "Ж_Total selected: {{n}}______________________Я", - "inputLayer": "Ж_Input layer____________Я", - "inputLayerTip": "Ж_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Я." + "add": "Добавить", + "remove": "Удалить", + "featuresAdded": "Добавлено объектов: {{n}}", + "featuresRemoved": "Удалено объектов: {{n}}", + "totalSelected": "Всего выбрано: {{n}}", + "inputLayer": "Входной слой", + "inputLayerTip": "Выберите входной слой для просмотра выбранных объектов, обновляйте выбранные объекты из одного входного слоя за раз." } diff --git a/src/assets/t9n/refine-selection/resources_sk.json b/src/assets/t9n/refine-selection/resources_sk.json index 5f01d9921..add5f19e6 100644 --- a/src/assets/t9n/refine-selection/resources_sk.json +++ b/src/assets/t9n/refine-selection/resources_sk.json @@ -1,9 +1,9 @@ { - "add": "ĺ_Add_______ľ", - "remove": "ĺ_Remove_____________ľ", - "featuresAdded": "ĺ_Features added: {{n}}______________________ľ", - "featuresRemoved": "ĺ_Features removed: {{n}}________________________ľ", - "totalSelected": "ĺ_Total selected: {{n}}______________________ľ", - "inputLayer": "ĺ_Input layer____________ľ", - "inputLayerTip": "ĺ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ľ." + "add": "Pridať", + "remove": "Odstrániť", + "featuresAdded": "Pridané prvky: {{n}}", + "featuresRemoved": "Odstránené prvky: {{n}}", + "totalSelected": "Celkom vybraných: {{n}}", + "inputLayer": "Vstupná vrstva", + "inputLayerTip": "Vyberte vstupnú vrstvu na preskúmanie vybraných prvkov, aktualizujte vybrané prvky z jednej vstupnej vrstvy naraz." } diff --git a/src/assets/t9n/refine-selection/resources_sl.json b/src/assets/t9n/refine-selection/resources_sl.json index c9647b62e..c2e2e354f 100644 --- a/src/assets/t9n/refine-selection/resources_sl.json +++ b/src/assets/t9n/refine-selection/resources_sl.json @@ -1,9 +1,9 @@ { - "add": "Š_Add_______č", - "remove": "Š_Remove_____________č", - "featuresAdded": "Š_Features added: {{n}}______________________č", - "featuresRemoved": "Š_Features removed: {{n}}________________________č", - "totalSelected": "Š_Total selected: {{n}}______________________č", - "inputLayer": "Š_Input layer____________č", - "inputLayerTip": "Š_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________č." + "add": "Dodaj", + "remove": "Odstrani", + "featuresAdded": "Dodani geoobjekti: {{n}}", + "featuresRemoved": "Odstranjeni geoobjekti: {{n}}", + "totalSelected": "Skupaj izbranih: {{n}}", + "inputLayer": "Vhodni sloj", + "inputLayerTip": "Izberite geobjektni sloj za pregled izbranih funkcij, posodobite izbrane funkcije iz enega geobjekta naenkrat." } diff --git a/src/assets/t9n/refine-selection/resources_sr.json b/src/assets/t9n/refine-selection/resources_sr.json index 0bef24359..b88b93bad 100644 --- a/src/assets/t9n/refine-selection/resources_sr.json +++ b/src/assets/t9n/refine-selection/resources_sr.json @@ -1,9 +1,9 @@ { - "add": "Č_Add_______ž", - "remove": "Č_Remove_____________ž", - "featuresAdded": "Č_Features added: {{n}}______________________ž", - "featuresRemoved": "Č_Features removed: {{n}}________________________ž", - "totalSelected": "Č_Total selected: {{n}}______________________ž", - "inputLayer": "Č_Input layer____________ž", - "inputLayerTip": "Č_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ž." + "add": "Dodaj", + "remove": "Ukloni", + "featuresAdded": "Dodate osobine: {{n}}", + "featuresRemoved": "Uklonjene osobine: {{n}}", + "totalSelected": "Ukupno odabrano: {{n}}", + "inputLayer": "Ulazni sloj", + "inputLayerTip": "Odaberite ulazni sloj da pregledate osobine, ažurirate odabrane osobine iz ulaznih slojeva - jedan po jedan." } diff --git a/src/assets/t9n/refine-selection/resources_sv.json b/src/assets/t9n/refine-selection/resources_sv.json index 844618ea8..8ae96107f 100644 --- a/src/assets/t9n/refine-selection/resources_sv.json +++ b/src/assets/t9n/refine-selection/resources_sv.json @@ -1,9 +1,9 @@ { - "add": "Å_Add_______ö", - "remove": "Å_Remove_____________ö", - "featuresAdded": "Å_Features added: {{n}}______________________ö", - "featuresRemoved": "Å_Features removed: {{n}}________________________ö", - "totalSelected": "Å_Total selected: {{n}}______________________ö", - "inputLayer": "Å_Input layer____________ö", - "inputLayerTip": "Å_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ö." + "add": "Lägg till", + "remove": "Ta bort", + "featuresAdded": "Tillagda geoobjekt: {{n}}", + "featuresRemoved": "Borttagna geoobjekt: {{n}}", + "totalSelected": "Totalt antal valda: {{n}}", + "inputLayer": "Indatalager", + "inputLayerTip": "Välj indatalager som valda geoobjekt ska granskas från, uppdatera valda geoobjekt från ett indatalager åt gången." } diff --git a/src/assets/t9n/refine-selection/resources_th.json b/src/assets/t9n/refine-selection/resources_th.json index 16c79dc85..e4380a872 100644 --- a/src/assets/t9n/refine-selection/resources_th.json +++ b/src/assets/t9n/refine-selection/resources_th.json @@ -1,9 +1,9 @@ { - "add": "ก้_Add_______ษฺ", - "remove": "ก้_Remove_____________ษฺ", - "featuresAdded": "ก้_Features added: {{n}}______________________ษฺ", - "featuresRemoved": "ก้_Features removed: {{n}}________________________ษฺ", - "totalSelected": "ก้_Total selected: {{n}}______________________ษฺ", - "inputLayer": "ก้_Input layer____________ษฺ", - "inputLayerTip": "ก้_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ษฺ." + "add": "เพิ่ม", + "remove": "ลบทิ้ง", + "featuresAdded": "ฟีเจอร์ที่เพิ่ม: {{n}}", + "featuresRemoved": "ฟีเจอร์ที่ลบออก: {{n}}", + "totalSelected": "ที่เลือกทั้งหมด: {{n}}", + "inputLayer": "ชั้นข้อมูลอินพุท", + "inputLayerTip": "เลือกชั้นข้อมูลอินพุทที่จะตรวจสอบฟีเจอร์ที่เลือกจาก อัปเดตฟีเจอร์ที่เลือกจากครั้งละหนึ่งชั้นข้อมูลอินพุท" } diff --git a/src/assets/t9n/refine-selection/resources_tr.json b/src/assets/t9n/refine-selection/resources_tr.json index 546067746..b875da0bf 100644 --- a/src/assets/t9n/refine-selection/resources_tr.json +++ b/src/assets/t9n/refine-selection/resources_tr.json @@ -1,9 +1,9 @@ { - "add": "ı_Add_______İ", - "remove": "ı_Remove_____________İ", - "featuresAdded": "ı_Features added: {{n}}______________________İ", - "featuresRemoved": "ı_Features removed: {{n}}________________________İ", - "totalSelected": "ı_Total selected: {{n}}______________________İ", - "inputLayer": "ı_Input layer____________İ", - "inputLayerTip": "ı_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________İ." + "add": "Ekle", + "remove": "Kaldır", + "featuresAdded": "Eklenen detaylar: {{n}}", + "featuresRemoved": "Kaldırılan detaylar: {{n}}", + "totalSelected": "Toplam seçili: {{n}}", + "inputLayer": "Girdi katman", + "inputLayerTip": "Seçili detayların inceleneceği girdi katmanını seçin, her seferinde tek bir girdi katmanında seçili detayları güncelleyin." } diff --git a/src/assets/t9n/refine-selection/resources_uk.json b/src/assets/t9n/refine-selection/resources_uk.json index 0f544d4d9..3d2993508 100644 --- a/src/assets/t9n/refine-selection/resources_uk.json +++ b/src/assets/t9n/refine-selection/resources_uk.json @@ -1,9 +1,9 @@ { - "add": "ґ_Add_______Ї", - "remove": "ґ_Remove_____________Ї", - "featuresAdded": "ґ_Features added: {{n}}______________________Ї", - "featuresRemoved": "ґ_Features removed: {{n}}________________________Ї", - "totalSelected": "ґ_Total selected: {{n}}______________________Ї", - "inputLayer": "ґ_Input layer____________Ї", - "inputLayerTip": "ґ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________Ї." + "add": "Додати", + "remove": "Вилучити", + "featuresAdded": "Об'єктів додано: {{n}}", + "featuresRemoved": "Об'єктів видалено: {{n}}", + "totalSelected": "Усього вибрано: {{n}}", + "inputLayer": "Вхідний шар", + "inputLayerTip": "Виберіть вхідний шар для перегляду вибраних об’єктів, оновіть вибрані об’єкти з одного вхідного шару за раз." } diff --git a/src/assets/t9n/refine-selection/resources_vi.json b/src/assets/t9n/refine-selection/resources_vi.json index 50f239c83..edbf4e7fb 100644 --- a/src/assets/t9n/refine-selection/resources_vi.json +++ b/src/assets/t9n/refine-selection/resources_vi.json @@ -1,9 +1,9 @@ { - "add": "Đ_Add_______ớ", - "remove": "Đ_Remove_____________ớ", - "featuresAdded": "Đ_Features added: {{n}}______________________ớ", - "featuresRemoved": "Đ_Features removed: {{n}}________________________ớ", - "totalSelected": "Đ_Total selected: {{n}}______________________ớ", - "inputLayer": "Đ_Input layer____________ớ", - "inputLayerTip": "Đ_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________ớ." + "add": "Thêm", + "remove": "Gỡ bỏ", + "featuresAdded": "Đối tượng đã thêm: {{n}}", + "featuresRemoved": "Đối tượng đã xoá: {{n}}", + "totalSelected": "Tổng số đối tượng đã chọn: {{n}}", + "inputLayer": "Lớp đầu vào", + "inputLayerTip": "Chọn lớp đầu vào để xem lại các đối tượng đã chọn, cập nhật các đối tượng đã chọn từ một lớp đầu vào tại một thời điểm." } diff --git a/src/assets/t9n/refine-selection/resources_zh-CN.json b/src/assets/t9n/refine-selection/resources_zh-CN.json index f7737d6d3..96cf0c082 100644 --- a/src/assets/t9n/refine-selection/resources_zh-CN.json +++ b/src/assets/t9n/refine-selection/resources_zh-CN.json @@ -1,9 +1,9 @@ { - "add": "试_Add_______验", - "remove": "试_Remove_____________验", - "featuresAdded": "试_Features added: {{n}}______________________验", - "featuresRemoved": "试_Features removed: {{n}}________________________验", - "totalSelected": "试_Total selected: {{n}}______________________验", - "inputLayer": "试_Input layer____________验", - "inputLayerTip": "试_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________验." + "add": "添加", + "remove": "移除", + "featuresAdded": "添加的要素:{{n}}", + "featuresRemoved": "移除的要素:{{n}}", + "totalSelected": "所选总数:{{n}}", + "inputLayer": "输入图层", + "inputLayerTip": "选择输入图层以查看所选要素,一次从一个输入图层更新所选要素。" } diff --git a/src/assets/t9n/refine-selection/resources_zh-HK.json b/src/assets/t9n/refine-selection/resources_zh-HK.json index 6ed269f9b..1b5006c59 100644 --- a/src/assets/t9n/refine-selection/resources_zh-HK.json +++ b/src/assets/t9n/refine-selection/resources_zh-HK.json @@ -1,9 +1,9 @@ { - "add": "試_Add_______驗", - "remove": "試_Remove_____________驗", - "featuresAdded": "試_Features added: {{n}}______________________驗", - "featuresRemoved": "試_Features removed: {{n}}________________________驗", - "totalSelected": "試_Total selected: {{n}}______________________驗", - "inputLayer": "試_Input layer____________驗", - "inputLayerTip": "試_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________驗." + "add": "新增", + "remove": "移除", + "featuresAdded": "已新增圖徵: {{n}}", + "featuresRemoved": "已移除圖徵: {{n}}", + "totalSelected": "選擇總計: {{n}}", + "inputLayer": "輸入圖層", + "inputLayerTip": "選擇輸入圖層以檢閱所選圖徵,一次從一個輸入圖層更新所選圖徵。" } diff --git a/src/assets/t9n/refine-selection/resources_zh-TW.json b/src/assets/t9n/refine-selection/resources_zh-TW.json index 6ed269f9b..1b5006c59 100644 --- a/src/assets/t9n/refine-selection/resources_zh-TW.json +++ b/src/assets/t9n/refine-selection/resources_zh-TW.json @@ -1,9 +1,9 @@ { - "add": "試_Add_______驗", - "remove": "試_Remove_____________驗", - "featuresAdded": "試_Features added: {{n}}______________________驗", - "featuresRemoved": "試_Features removed: {{n}}________________________驗", - "totalSelected": "試_Total selected: {{n}}______________________驗", - "inputLayer": "試_Input layer____________驗", - "inputLayerTip": "試_Choose input layer to review selected features from, update selected features from one input layer at a time________________________________________________________驗." + "add": "新增", + "remove": "移除", + "featuresAdded": "已新增圖徵: {{n}}", + "featuresRemoved": "已移除圖徵: {{n}}", + "totalSelected": "選擇總計: {{n}}", + "inputLayer": "輸入圖層", + "inputLayerTip": "選擇輸入圖層以檢閱所選圖徵,一次從一個輸入圖層更新所選圖徵。" } diff --git a/src/assets/t9n/solution-spatial-ref/resources.json b/src/assets/t9n/solution-spatial-ref/resources.json index f7e22b5bf..8793e6ba1 100644 --- a/src/assets/t9n/solution-spatial-ref/resources.json +++ b/src/assets/t9n/solution-spatial-ref/resources.json @@ -1,7 +1,6 @@ { "paramDescription": "Expose the Spatial Reference parameter and allow users to change the layers spatial reference when deploying the solution.", "specifyParam": "Spatial Reference parameter", - "spatialReferencePlaceholder": "Search for spatial reference using name or WKID", "spatialReferenceInfo": "Select the default spatial reference of the feature layers deployed with the solution.", "featureServicesHeading": "Apply spatial reference to the following layers" } diff --git a/src/assets/t9n/solution-spatial-ref/resources_en.json b/src/assets/t9n/solution-spatial-ref/resources_en.json index f7e22b5bf..8793e6ba1 100644 --- a/src/assets/t9n/solution-spatial-ref/resources_en.json +++ b/src/assets/t9n/solution-spatial-ref/resources_en.json @@ -1,7 +1,6 @@ { "paramDescription": "Expose the Spatial Reference parameter and allow users to change the layers spatial reference when deploying the solution.", "specifyParam": "Spatial Reference parameter", - "spatialReferencePlaceholder": "Search for spatial reference using name or WKID", "spatialReferenceInfo": "Select the default spatial reference of the feature layers deployed with the solution.", "featureServicesHeading": "Apply spatial reference to the following layers" } diff --git a/src/assets/t9n/solution-spatial-ref/resources_fr.json b/src/assets/t9n/solution-spatial-ref/resources_fr.json new file mode 100644 index 000000000..70a21518c --- /dev/null +++ b/src/assets/t9n/solution-spatial-ref/resources_fr.json @@ -0,0 +1,6 @@ +{ + "paramDescription": "Exposez le paramètre Spatial Reference et autorisez les utilisateurs à modifier la référence spatiale des couches lors du déploiement de la solution.", + "specifyParam": "Paramètre de référence spatiale", + "spatialReferencePlaceholder": "Rechercher une référence spatiale à l'aide du nom ou du WKID", + "spatialReferenceInfo": "Sélectionnez la référence spatiale par défaut." +} diff --git a/src/assets/t9n/solution-spatial-ref/resources_he.json b/src/assets/t9n/solution-spatial-ref/resources_he.json new file mode 100644 index 000000000..f929f5cf0 --- /dev/null +++ b/src/assets/t9n/solution-spatial-ref/resources_he.json @@ -0,0 +1,6 @@ +{ + "paramDescription": "חשוף את הפרמטר Spatial Reference ואפשר למשתמשים לשנות את ההתייחסות המרחבית לשכבות בעת פריסת הפתרון.", + "specifyParam": "פרמטר התייחסות מרחבית", + "spatialReferencePlaceholder": "חפש הפניה מרחבית באמצעות שם או WKID", + "spatialReferenceInfo": "בחר ברירת המחדל של הפניה מרחבית." +} diff --git a/src/assets/t9n/spatial-ref/resources.json b/src/assets/t9n/spatial-ref/resources.json new file mode 100644 index 000000000..27f3e89eb --- /dev/null +++ b/src/assets/t9n/spatial-ref/resources.json @@ -0,0 +1,3 @@ +{ + "spatialReferencePlaceholder": "Search for spatial reference using name or WKID" +} diff --git a/src/assets/t9n/spatial-ref/resources_en.json b/src/assets/t9n/spatial-ref/resources_en.json new file mode 100644 index 000000000..27f3e89eb --- /dev/null +++ b/src/assets/t9n/spatial-ref/resources_en.json @@ -0,0 +1,3 @@ +{ + "spatialReferencePlaceholder": "Search for spatial reference using name or WKID" +} diff --git a/src/assets/t9n/spatial-ref/resources_fr.json b/src/assets/t9n/spatial-ref/resources_fr.json new file mode 100644 index 000000000..d58570b41 --- /dev/null +++ b/src/assets/t9n/spatial-ref/resources_fr.json @@ -0,0 +1,3 @@ +{ + "spatialReferencePlaceholder": "Rechercher une référence spatiale à l'aide du nom ou du WKID" +} diff --git a/src/assets/t9n/spatial-ref/resources_he.json b/src/assets/t9n/spatial-ref/resources_he.json new file mode 100644 index 000000000..c773f0af6 --- /dev/null +++ b/src/assets/t9n/spatial-ref/resources_he.json @@ -0,0 +1,3 @@ +{ + "spatialReferencePlaceholder": "חפש הפניה מרחבית באמצעות שם או WKID" +} diff --git a/src/components.d.ts b/src/components.d.ts index c00dc6c51..47971733d 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -5,14 +5,24 @@ * It contains typing information for all components that exist in this project. */ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal"; -import { DistanceUnit, EDrawMode, EExpandType, IExportInfos, IInfoCardValues, IInventoryItem, IMapInfo, IMediaCardValues, ISearchConfiguration, ISearchResult, ISelectionSet, ISketchGraphicsChange, ISolutionSpatialReferenceInfo, ISpatialRefRepresentation, IValueChange, SelectionMode } from "./utils/interfaces"; +import { DistanceUnit, EDrawMode, ELayoutMode, IBasemapConfig, IExportInfos, IInventoryItem, IMapChange, IMapInfo, ISearchConfiguration, ISelectionSet, ISketchGraphicsChange, ISolutionSpatialReferenceInfo, ISpatialRefRepresentation, IValueChange, theme } from "./utils/interfaces"; import { UserSession } from "@esri/solution-common"; +export { DistanceUnit, EDrawMode, ELayoutMode, IBasemapConfig, IExportInfos, IInventoryItem, IMapChange, IMapInfo, ISearchConfiguration, ISelectionSet, ISketchGraphicsChange, ISolutionSpatialReferenceInfo, ISpatialRefRepresentation, IValueChange, theme } from "./utils/interfaces"; +export { UserSession } from "@esri/solution-common"; export namespace Components { - interface AddRecordModal { + interface BasemapGallery { /** - * When true the component is displayed + * IBasemapConfig: List of any basemaps to filter out from the basemap widget */ - "open": boolean; + "basemapConfig": IBasemapConfig; + /** + * esri/widgets/BasemapGallery: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html BasemapGallery instance + */ + "basemapWidget": __esri.BasemapGallery; + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; } interface BufferTools { /** @@ -28,6 +38,11 @@ export namespace Components { * esri/geometry/Geometry: https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html */ "geometries": __esri.Geometry[]; + /** + * Get the translated unit for display + * @returns Promise resolving with the translated unit + */ + "getTranslatedUnit": (unit: string) => Promise; /** * number: The component's maximum selectable value. */ @@ -50,34 +65,155 @@ export namespace Components { "unit": DistanceUnit; } interface CardManager { - } - interface CommentCard { + /** + * esri/views/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html + */ + "layer": __esri.FeatureLayer; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected": boolean; } interface CrowdsourceManager { + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + "basemapConfig": IBasemapConfig; + /** + * boolean: when true the grid will display like the previous manager app with the table across the top + */ + "classicGrid": boolean; + /** + * boolean: when true the layer table will auto refresh the data + */ + "enableAutoRefresh": boolean; + /** + * boolean: when true the basemap widget will be available + */ + "enableBasemap": boolean; + /** + * boolean: when true the export to csv button will be available + */ + "enableCSV": boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFloorFilter": boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFullscreen": boolean; + /** + * boolean: when true the home widget will be available + */ + "enableHome": boolean; + /** + * boolean: when true edits can be applied directly within the table + */ + "enableInlineEdit": boolean; + /** + * boolean: when true the legend widget will be available + */ + "enableLegend": boolean; + /** + * boolean: when true the search widget will be available + */ + "enableSearch": boolean; + /** + * boolean: when true the zoom widget will be available + */ + "enableZoom": boolean; + /** + * boolean: when true no map is displayed for the app + */ + "hideMap": boolean; /** * IMapInfo[]: array of map infos (name and id) */ "mapInfos": IMapInfo[]; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + "onlyShowUpdatableLayers": boolean; + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + "searchConfiguration": ISearchConfiguration; + /** + * boolean: when true the table will be sorted by objectid in descending order by default + */ + "showNewestFirst": boolean; + /** + * theme: "light" | "dark" theme to be used + */ + "theme": theme; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected": boolean; } interface CrowdsourceReporter { } interface DeductCalculator { } - interface EditRecordModal { + interface EditCard { + /** + * The index of the current graphic + */ + "graphicIndex": number; + /** + * esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html + */ + "graphics": __esri.Graphic[]; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; /** * When true the component is displayed */ "open": boolean; } + interface FloorFilter { + /** + * boolean: when true the Floor Filter widget will be available + */ + "enabled": boolean; + /** + * esri/widgets/FloorFilter: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FloorFilter.html FloorFilter instance + */ + "floorFilterWidget": __esri.FloorFilter; + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; + } interface InfoCard { /** - * string: the components title + * Get the current selected feature from the Features widget + * @returns Promise resolving with the current feature + */ + "getSelectedFeature": () => Promise; + /** + * esri/Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html + */ + "graphics": __esri.Graphic[]; + /** + * boolean: when true a loading indicator will be shown */ - "cardTitle": string; + "isLoading": boolean; /** - * IInfoCardValues: key value pairs to show in the components table + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ - "values": IInfoCardValues; + "mapView": __esri.MapView; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected": boolean; } interface JsonEditor { /** @@ -118,14 +254,80 @@ export namespace Components { "value": any; } interface LayerTable { + /** + * boolean: when true the layer table will auto refresh the data + */ + "enableAutoRefresh": boolean; + /** + * boolean: when true the export to csv button will be available + */ + "enableCSV": boolean; + /** + * boolean: when true edits can be applied directly within the table + */ + "enableInlineEdit": boolean; + /** + * boolean: when true the zoom button will be enabled + */ + "enableZoom": boolean; + /** + * IMapInfo: key configuration details about the current map + */ + "mapInfo": IMapInfo; /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + "onlyShowUpdatableLayers": boolean; + /** + * boolean: when true the table will be sorted by objectid in descending order by default + */ + "showNewestFirst": boolean; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected": boolean; + } + interface LayoutManager { } interface ListItem { } interface MapCard { + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + "basemapConfig": IBasemapConfig; + /** + * boolean: when true the basemap widget will be available + */ + "enableBasemap": boolean; + /** + * boolean: when true the floor filter widget will be available + */ + "enableFloorFilter": boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFullscreen": boolean; + /** + * boolean: when true the home widget will be available + */ + "enableHome": boolean; + /** + * boolean: when true the legend widget will be available + */ + "enableLegend": boolean; + /** + * boolean: when true the search widget will be available + */ + "enableSearch": boolean; + /** + * boolean: When true the map display will be hidden + */ + "hidden": boolean; /** * IMapInfo[]: array of map infos (name and id) */ @@ -134,6 +336,10 @@ export namespace Components { * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; + /** + * theme: "light" | "dark" theme to be used + */ + "theme": theme; } interface MapDrawTools { /** @@ -187,38 +393,99 @@ export namespace Components { */ "updateGraphics": () => Promise; } + interface MapFullscreen { + /** + * esri/widgets/Fullscreen: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Fullscreen.html + */ + "fullscreenWidget": __esri.Fullscreen; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; + } interface MapLayerPicker { + /** + * "transparent" | "solid": controls the button appearance when using the "dropdown" type + */ + "appearance": "transparent" | "solid"; /** * string[]: Optional list of enabled layer ids If empty all layers will be available */ "enabledLayerIds": string[]; + /** + * string[]: Optional list of enabled table ids If empty all tables will be available + */ + "enabledTableIds": string[]; /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + "onlyShowUpdatableLayers": boolean; + /** + * string: optional placeholder icon used with "combobox" type + */ + "placeholderIcon": string; + /** + * "s" | "m" | "l": scale to render the component + */ + "scale": "s" | "m" | "l"; /** * string[]: list of layer ids that have been selected by the end user */ - "selectedLayerIds": string[]; + "selectedIds": string[]; + /** + * boolean: when true standalone tables will also be available + */ + "showTables": boolean; /** - * SelectionMode: "single" | "multi" Should the component support selection against a single layer or multiple layers. + * "select" | "combobox" | "dropdown": type of component to leverage */ - "selectionMode": SelectionMode; + "type": "select" | "combobox" | "dropdown"; } - interface MapSearch { + interface MapLegend { /** - * Clears the state of the search widget - * @returns Promise that resolves when the operation is complete + * esri/widgets/Legend: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html Legend instance */ - "clear": () => Promise; + "legendWidget": __esri.Legend; /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; + } + interface MapPicker { + /** + * IMapInfo[]: array of map infos (name and id) + */ + "mapInfos": IMapInfo[]; + } + interface MapSearch { + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; + /** + * boolean: When true the selected feature popup will be shown when serach result is found + */ + "popupEnabled": boolean; + /** + * boolean: When true a graphic will be added for the search result + */ + "resultGraphicEnabled": boolean; /** * ISearchConfiguration: Configuration details for the Search widget */ "searchConfiguration": ISearchConfiguration; + /** + * string: Text entered by the end user. Used to search against the locator. + */ + "searchTerm": string; + /** + * esri/widgets/Search: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html + */ + "searchWidget": __esri.widgetsSearch; } interface MapSelectTools { /** @@ -268,7 +535,7 @@ export namespace Components { */ "layerViews": __esri.FeatureLayerView[]; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; /** @@ -304,36 +571,74 @@ export namespace Components { */ "sketchPolygonSymbol": __esri.SimpleFillSymbol; } - interface MediaCard { + interface MapTools { /** - * IMediaCardValues[]: Array of objects that contain the name, description, and image to display + * IBasemapConfig: List of any basemaps to filter out from the basemap widget */ - "values": IMediaCardValues[]; + "basemapConfig": IBasemapConfig; + /** + * boolean: when true the basemap widget will be available + */ + "enableBasemap": boolean; + /** + * boolean: when true the floor filter widget will be available + */ + "enableFloorFilter": boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFullscreen": boolean; + /** + * boolean: when true the legend widget will be available + */ + "enableLegend": boolean; + /** + * boolean: when true the search widget will be available + */ + "enableSearch": boolean; + /** + * "horizontal" | "vertical": used to control the orientation of the tools + */ + "layout": "horizontal" | "vertical"; + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView": __esri.MapView; + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + "searchConfiguration": ISearchConfiguration; } interface PciCalculator { } interface PdfDownload { + /** + * number: The default number of labels per page to export + */ + "defaultNumLabelsPerPage": number; /** * boolean: Controls the enabled/disabled state of download */ "disabled": boolean; /** * Downloads csv of mailing labels for the provided list of ids + * @param webmap Webmap containing layer * @param exportInfos Information about items to be exported * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value * @param addColumnTitle Indicates if column headings should be included in output * @returns Promise resolving when function is done */ - "downloadCSV": (exportInfos: IExportInfos, removeDuplicates: boolean, addColumnTitle?: boolean) => Promise; + "downloadCSV": (webmap: __esri.Map, exportInfos: IExportInfos, removeDuplicates: boolean, addColumnTitle?: boolean) => Promise; /** * Downloads pdf of mailing labels for the provided list of ids + * @param webmap Webmap containing layer * @param exportInfos Information about items to be exported * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value * @param title Title for each page * @param initialImageDataUrl Data URL of image for first page * @returns Promise resolving when function is done */ - "downloadPDF": (exportInfos: IExportInfos, removeDuplicates?: boolean, title?: string, initialImageDataUrl?: string) => Promise; + "downloadPDF": (webmap: __esri.Map, exportInfos: IExportInfos, removeDuplicates?: boolean, title?: string, initialImageDataUrl?: string) => Promise; } interface PublicNotification { /** @@ -360,6 +665,14 @@ export namespace Components { * number: The default value to show for the buffer unit ("feet"|"meters"|"miles"|"kilometers") */ "defaultBufferUnit": DistanceUnit; + /** + * string: The default value to use for the export title + */ + "defaultExportTitle": string; + /** + * number: The default number of labels per page to export + */ + "defaultNumLabelsPerPage": number; /** * The effect that will be applied when featureHighlightEnabled is true esri/layers/support/FeatureEffect: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureEffect.html */ @@ -369,7 +682,7 @@ export namespace Components { */ "featureHighlightEnabled": boolean; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; /** @@ -415,7 +728,7 @@ export namespace Components { */ "enabledLayerIds": string[]; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView": __esri.MapView; /** @@ -525,20 +838,10 @@ export namespace Components { "itemId": string; } interface SolutionSpatialRef { - /** - * Returns the spatial reference description of the supplied value. (Exposes protected method `_createSpatialRefDisplay` for testing.) - * @param value WKID or WKT or null for default - * @returns If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 - */ - "createSpatialRefDisplay": (value: string) => Promise; /** * The wkid that will be used as the default when no user selection has been made. */ "defaultWkid": number; - /** - * Returns the current spatial reference description. (Exposes protected variable `spatialRef` for testing.) - */ - "getSpatialRef": () => Promise; /** * When true, all but the main switch are disabled to prevent interaction. */ @@ -551,12 +854,6 @@ export namespace Components { * Contains the public value for this component, which is a wkid or a wkt. */ "value": string; - /** - * Converts a WKID into a spatial reference description. (Exposes protected method `_wkidToDisplay` for testing.) - * @param wkid WKID to look up - * @returns Description, or "WKID <wkid>" if a description doesn't exist for the WKID - */ - "wkidToDisplay": (wkid: number) => Promise; } interface SolutionTemplateData { /** @@ -583,6 +880,36 @@ export namespace Components { */ "value": string; } + interface SpatialRef { + /** + * Returns the spatial reference description of the supplied value. (Exposes protected method `_createSpatialRefDisplay` for testing.) + * @param value WKID or WKT or null for default + * @returns If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 + */ + "createSpatialRefDisplay": (value: string) => Promise; + /** + * The wkid that will be used as the default when no user selection has been made. + */ + "defaultWkid": number; + /** + * When true, all are disabled to prevent interaction. + */ + "disabled": boolean; + /** + * Returns the current spatial reference description. (Exposes protected variable `spatialRef` for testing.) + */ + "getSpatialRef": () => Promise; + /** + * Contains the public value for this component, which is a wkid or a wkt. + */ + "value": string; + /** + * Converts a WKID into a spatial reference description. (Exposes protected method `_wkidToDisplay` for testing.) + * @param wkid WKID to look up + * @returns Description, or "WKID <wkid>" if a description doesn't exist for the WKID + */ + "wkidToDisplay": (wkid: number) => Promise; + } interface StoreManager { /** * Credentials for requests @@ -606,6 +933,22 @@ export interface DeductCalculatorCustomEvent extends CustomEvent { detail: T; target: HTMLDeductCalculatorElement; } +export interface EditCardCustomEvent extends CustomEvent { + detail: T; + target: HTMLEditCardElement; +} +export interface InfoCardCustomEvent extends CustomEvent { + detail: T; + target: HTMLInfoCardElement; +} +export interface LayerTableCustomEvent extends CustomEvent { + detail: T; + target: HTMLLayerTableElement; +} +export interface LayoutManagerCustomEvent extends CustomEvent { + detail: T; + target: HTMLLayoutManagerElement; +} export interface MapCardCustomEvent extends CustomEvent { detail: T; target: HTMLMapCardElement; @@ -618,9 +961,9 @@ export interface MapLayerPickerCustomEvent extends CustomEvent { detail: T; target: HTMLMapLayerPickerElement; } -export interface MapSearchCustomEvent extends CustomEvent { +export interface MapPickerCustomEvent extends CustomEvent { detail: T; - target: HTMLMapSearchElement; + target: HTMLMapPickerElement; } export interface MapSelectToolsCustomEvent extends CustomEvent { detail: T; @@ -650,18 +993,35 @@ export interface SolutionVariablesCustomEvent extends CustomEvent { detail: T; target: HTMLSolutionVariablesElement; } +export interface SpatialRefCustomEvent extends CustomEvent { + detail: T; + target: HTMLSpatialRefElement; +} export interface StoreManagerCustomEvent extends CustomEvent { detail: T; target: HTMLStoreManagerElement; } declare global { - interface HTMLAddRecordModalElement extends Components.AddRecordModal, HTMLStencilElement { + interface HTMLBasemapGalleryElement extends Components.BasemapGallery, HTMLStencilElement { } - var HTMLAddRecordModalElement: { - prototype: HTMLAddRecordModalElement; - new (): HTMLAddRecordModalElement; + var HTMLBasemapGalleryElement: { + prototype: HTMLBasemapGalleryElement; + new (): HTMLBasemapGalleryElement; }; + interface HTMLBufferToolsElementEventMap { + "bufferComplete": __esri.Polygon | __esri.Polygon[]; + "distanceChanged": IValueChange; + "unitChanged": IValueChange; + } interface HTMLBufferToolsElement extends Components.BufferTools, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLBufferToolsElement, ev: BufferToolsCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLBufferToolsElement, ev: BufferToolsCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLBufferToolsElement: { prototype: HTMLBufferToolsElement; @@ -673,12 +1033,6 @@ declare global { prototype: HTMLCardManagerElement; new (): HTMLCardManagerElement; }; - interface HTMLCommentCardElement extends Components.CommentCard, HTMLStencilElement { - } - var HTMLCommentCardElement: { - prototype: HTMLCommentCardElement; - new (): HTMLCommentCardElement; - }; interface HTMLCrowdsourceManagerElement extends Components.CrowdsourceManager, HTMLStencilElement { } var HTMLCrowdsourceManagerElement: { @@ -691,19 +1045,59 @@ declare global { prototype: HTMLCrowdsourceReporterElement; new (): HTMLCrowdsourceReporterElement; }; + interface HTMLDeductCalculatorElementEventMap { + "deductValueComplete": string; + } interface HTMLDeductCalculatorElement extends Components.DeductCalculator, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLDeductCalculatorElement, ev: DeductCalculatorCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLDeductCalculatorElement, ev: DeductCalculatorCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLDeductCalculatorElement: { prototype: HTMLDeductCalculatorElement; new (): HTMLDeductCalculatorElement; }; - interface HTMLEditRecordModalElement extends Components.EditRecordModal, HTMLStencilElement { + interface HTMLEditCardElementEventMap { + "closeEdit": void; + "editsComplete": void; + } + interface HTMLEditCardElement extends Components.EditCard, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLEditCardElement, ev: EditCardCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLEditCardElement, ev: EditCardCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLEditCardElement: { + prototype: HTMLEditCardElement; + new (): HTMLEditCardElement; + }; + interface HTMLFloorFilterElement extends Components.FloorFilter, HTMLStencilElement { } - var HTMLEditRecordModalElement: { - prototype: HTMLEditRecordModalElement; - new (): HTMLEditRecordModalElement; + var HTMLFloorFilterElement: { + prototype: HTMLFloorFilterElement; + new (): HTMLFloorFilterElement; }; + interface HTMLInfoCardElementEventMap { + "selectionChanged": __esri.Graphic; + } interface HTMLInfoCardElement extends Components.InfoCard, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLInfoCardElement, ev: InfoCardCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLInfoCardElement, ev: InfoCardCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLInfoCardElement: { prototype: HTMLInfoCardElement; @@ -715,53 +1109,160 @@ declare global { prototype: HTMLJsonEditorElement; new (): HTMLJsonEditorElement; }; + interface HTMLLayerTableElementEventMap { + "featureSelectionChange": number[]; + "openFilterOptions": void; + } interface HTMLLayerTableElement extends Components.LayerTable, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLLayerTableElement, ev: LayerTableCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLLayerTableElement, ev: LayerTableCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLLayerTableElement: { prototype: HTMLLayerTableElement; new (): HTMLLayerTableElement; }; + interface HTMLLayoutManagerElementEventMap { + "layoutChanged": ELayoutMode; + } + interface HTMLLayoutManagerElement extends Components.LayoutManager, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLLayoutManagerElement, ev: LayoutManagerCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLLayoutManagerElement, ev: LayoutManagerCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLLayoutManagerElement: { + prototype: HTMLLayoutManagerElement; + new (): HTMLLayoutManagerElement; + }; interface HTMLListItemElement extends Components.ListItem, HTMLStencilElement { } var HTMLListItemElement: { prototype: HTMLListItemElement; new (): HTMLListItemElement; }; + interface HTMLMapCardElementEventMap { + "mapChanged": IMapChange; + "beforeMapChanged": void; + } interface HTMLMapCardElement extends Components.MapCard, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLMapCardElement, ev: MapCardCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLMapCardElement, ev: MapCardCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLMapCardElement: { prototype: HTMLMapCardElement; new (): HTMLMapCardElement; }; + interface HTMLMapDrawToolsElementEventMap { + "selectionLoadingChange": boolean; + "sketchGraphicsChange": ISketchGraphicsChange; + "drawUndo": void; + "drawRedo": void; + } interface HTMLMapDrawToolsElement extends Components.MapDrawTools, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLMapDrawToolsElement, ev: MapDrawToolsCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLMapDrawToolsElement, ev: MapDrawToolsCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLMapDrawToolsElement: { prototype: HTMLMapDrawToolsElement; new (): HTMLMapDrawToolsElement; }; + interface HTMLMapFullscreenElement extends Components.MapFullscreen, HTMLStencilElement { + } + var HTMLMapFullscreenElement: { + prototype: HTMLMapFullscreenElement; + new (): HTMLMapFullscreenElement; + }; + interface HTMLMapLayerPickerElementEventMap { + "noLayersFound": void; + "layerSelectionChange": string[]; + } interface HTMLMapLayerPickerElement extends Components.MapLayerPicker, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLMapLayerPickerElement, ev: MapLayerPickerCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLMapLayerPickerElement, ev: MapLayerPickerCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLMapLayerPickerElement: { prototype: HTMLMapLayerPickerElement; new (): HTMLMapLayerPickerElement; }; + interface HTMLMapLegendElement extends Components.MapLegend, HTMLStencilElement { + } + var HTMLMapLegendElement: { + prototype: HTMLMapLegendElement; + new (): HTMLMapLegendElement; + }; + interface HTMLMapPickerElementEventMap { + "mapInfoChange": IMapInfo; + } + interface HTMLMapPickerElement extends Components.MapPicker, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLMapPickerElement, ev: MapPickerCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLMapPickerElement, ev: MapPickerCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLMapPickerElement: { + prototype: HTMLMapPickerElement; + new (): HTMLMapPickerElement; + }; interface HTMLMapSearchElement extends Components.MapSearch, HTMLStencilElement { } var HTMLMapSearchElement: { prototype: HTMLMapSearchElement; new (): HTMLMapSearchElement; }; + interface HTMLMapSelectToolsElementEventMap { + "selectionSetChange": number; + } interface HTMLMapSelectToolsElement extends Components.MapSelectTools, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLMapSelectToolsElement, ev: MapSelectToolsCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLMapSelectToolsElement, ev: MapSelectToolsCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLMapSelectToolsElement: { prototype: HTMLMapSelectToolsElement; new (): HTMLMapSelectToolsElement; }; - interface HTMLMediaCardElement extends Components.MediaCard, HTMLStencilElement { + interface HTMLMapToolsElement extends Components.MapTools, HTMLStencilElement { } - var HTMLMediaCardElement: { - prototype: HTMLMediaCardElement; - new (): HTMLMediaCardElement; + var HTMLMapToolsElement: { + prototype: HTMLMapToolsElement; + new (): HTMLMapToolsElement; }; interface HTMLPciCalculatorElement extends Components.PciCalculator, HTMLStencilElement { } @@ -775,13 +1276,36 @@ declare global { prototype: HTMLPdfDownloadElement; new (): HTMLPdfDownloadElement; }; + interface HTMLPublicNotificationElementEventMap { + "searchConfigurationChange": ISearchConfiguration; + } interface HTMLPublicNotificationElement extends Components.PublicNotification, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLPublicNotificationElement, ev: PublicNotificationCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLPublicNotificationElement, ev: PublicNotificationCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLPublicNotificationElement: { prototype: HTMLPublicNotificationElement; new (): HTMLPublicNotificationElement; }; + interface HTMLRefineSelectionElementEventMap { + "selectionLoadingChange": boolean; + "selectionSetsChanged": ISelectionSet[]; + } interface HTMLRefineSelectionElement extends Components.RefineSelection, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLRefineSelectionElement, ev: RefineSelectionCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLRefineSelectionElement, ev: RefineSelectionCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLRefineSelectionElement: { prototype: HTMLRefineSelectionElement; @@ -793,7 +1317,18 @@ declare global { prototype: HTMLSolutionConfigurationElement; new (): HTMLSolutionConfigurationElement; }; + interface HTMLSolutionContentsElementEventMap { + "solutionItemSelected": string; + } interface HTMLSolutionContentsElement extends Components.SolutionContents, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLSolutionContentsElement, ev: SolutionContentsCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLSolutionContentsElement, ev: SolutionContentsCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLSolutionContentsElement: { prototype: HTMLSolutionContentsElement; @@ -823,7 +1358,18 @@ declare global { prototype: HTMLSolutionItemSharingElement; new (): HTMLSolutionItemSharingElement; }; + interface HTMLSolutionOrganizationVariablesElementEventMap { + "organizationVariableSelected": { itemId: string, value: string }; + } interface HTMLSolutionOrganizationVariablesElement extends Components.SolutionOrganizationVariables, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLSolutionOrganizationVariablesElement, ev: SolutionOrganizationVariablesCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLSolutionOrganizationVariablesElement, ev: SolutionOrganizationVariablesCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLSolutionOrganizationVariablesElement: { prototype: HTMLSolutionOrganizationVariablesElement; @@ -835,7 +1381,18 @@ declare global { prototype: HTMLSolutionResourceItemElement; new (): HTMLSolutionResourceItemElement; }; + interface HTMLSolutionSpatialRefElementEventMap { + "featureServiceSpatialReferenceChange": { name: string, enabled: boolean }; + } interface HTMLSolutionSpatialRefElement extends Components.SolutionSpatialRef, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLSolutionSpatialRefElement, ev: SolutionSpatialRefCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLSolutionSpatialRefElement, ev: SolutionSpatialRefCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLSolutionSpatialRefElement: { prototype: HTMLSolutionSpatialRefElement; @@ -847,37 +1404,80 @@ declare global { prototype: HTMLSolutionTemplateDataElement; new (): HTMLSolutionTemplateDataElement; }; + interface HTMLSolutionVariablesElementEventMap { + "solutionVariableSelected": { itemId: string, value: string }; + } interface HTMLSolutionVariablesElement extends Components.SolutionVariables, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLSolutionVariablesElement, ev: SolutionVariablesCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLSolutionVariablesElement, ev: SolutionVariablesCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLSolutionVariablesElement: { prototype: HTMLSolutionVariablesElement; new (): HTMLSolutionVariablesElement; }; + interface HTMLSpatialRefElementEventMap { + "spatialReferenceChange": IValueChange; + } + interface HTMLSpatialRefElement extends Components.SpatialRef, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLSpatialRefElement, ev: SpatialRefCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLSpatialRefElement, ev: SpatialRefCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLSpatialRefElement: { + prototype: HTMLSpatialRefElement; + new (): HTMLSpatialRefElement; + }; + interface HTMLStoreManagerElementEventMap { + "stateLoaded": any; + } interface HTMLStoreManagerElement extends Components.StoreManager, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLStoreManagerElement, ev: StoreManagerCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLStoreManagerElement, ev: StoreManagerCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLStoreManagerElement: { prototype: HTMLStoreManagerElement; new (): HTMLStoreManagerElement; }; interface HTMLElementTagNameMap { - "add-record-modal": HTMLAddRecordModalElement; + "basemap-gallery": HTMLBasemapGalleryElement; "buffer-tools": HTMLBufferToolsElement; "card-manager": HTMLCardManagerElement; - "comment-card": HTMLCommentCardElement; "crowdsource-manager": HTMLCrowdsourceManagerElement; "crowdsource-reporter": HTMLCrowdsourceReporterElement; "deduct-calculator": HTMLDeductCalculatorElement; - "edit-record-modal": HTMLEditRecordModalElement; + "edit-card": HTMLEditCardElement; + "floor-filter": HTMLFloorFilterElement; "info-card": HTMLInfoCardElement; "json-editor": HTMLJsonEditorElement; "layer-table": HTMLLayerTableElement; + "layout-manager": HTMLLayoutManagerElement; "list-item": HTMLListItemElement; "map-card": HTMLMapCardElement; "map-draw-tools": HTMLMapDrawToolsElement; + "map-fullscreen": HTMLMapFullscreenElement; "map-layer-picker": HTMLMapLayerPickerElement; + "map-legend": HTMLMapLegendElement; + "map-picker": HTMLMapPickerElement; "map-search": HTMLMapSearchElement; "map-select-tools": HTMLMapSelectToolsElement; - "media-card": HTMLMediaCardElement; + "map-tools": HTMLMapToolsElement; "pci-calculator": HTMLPciCalculatorElement; "pdf-download": HTMLPdfDownloadElement; "public-notification": HTMLPublicNotificationElement; @@ -893,15 +1493,24 @@ declare global { "solution-spatial-ref": HTMLSolutionSpatialRefElement; "solution-template-data": HTMLSolutionTemplateDataElement; "solution-variables": HTMLSolutionVariablesElement; + "spatial-ref": HTMLSpatialRefElement; "store-manager": HTMLStoreManagerElement; } } declare namespace LocalJSX { - interface AddRecordModal { + interface BasemapGallery { /** - * When true the component is displayed + * IBasemapConfig: List of any basemaps to filter out from the basemap widget */ - "open"?: boolean; + "basemapConfig"?: IBasemapConfig; + /** + * esri/widgets/BasemapGallery: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html BasemapGallery instance + */ + "basemapWidget"?: __esri.BasemapGallery; + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; } interface BufferTools { /** @@ -951,14 +1560,96 @@ declare namespace LocalJSX { "unit"?: DistanceUnit; } interface CardManager { - } - interface CommentCard { + /** + * esri/views/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html + */ + "layer"?: __esri.FeatureLayer; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected"?: boolean; } interface CrowdsourceManager { + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + "basemapConfig"?: IBasemapConfig; + /** + * boolean: when true the grid will display like the previous manager app with the table across the top + */ + "classicGrid"?: boolean; + /** + * boolean: when true the layer table will auto refresh the data + */ + "enableAutoRefresh"?: boolean; + /** + * boolean: when true the basemap widget will be available + */ + "enableBasemap"?: boolean; + /** + * boolean: when true the export to csv button will be available + */ + "enableCSV"?: boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFloorFilter"?: boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFullscreen"?: boolean; + /** + * boolean: when true the home widget will be available + */ + "enableHome"?: boolean; + /** + * boolean: when true edits can be applied directly within the table + */ + "enableInlineEdit"?: boolean; + /** + * boolean: when true the legend widget will be available + */ + "enableLegend"?: boolean; + /** + * boolean: when true the search widget will be available + */ + "enableSearch"?: boolean; + /** + * boolean: when true the zoom widget will be available + */ + "enableZoom"?: boolean; + /** + * boolean: when true no map is displayed for the app + */ + "hideMap"?: boolean; /** * IMapInfo[]: array of map infos (name and id) */ "mapInfos"?: IMapInfo[]; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + "onlyShowUpdatableLayers"?: boolean; + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + "searchConfiguration"?: ISearchConfiguration; + /** + * boolean: when true the table will be sorted by objectid in descending order by default + */ + "showNewestFirst"?: boolean; + /** + * theme: "light" | "dark" theme to be used + */ + "theme"?: theme; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected"?: boolean; } interface CrowdsourceReporter { } @@ -968,21 +1659,67 @@ declare namespace LocalJSX { */ "onDeductValueComplete"?: (event: DeductCalculatorCustomEvent) => void; } - interface EditRecordModal { + interface EditCard { + /** + * The index of the current graphic + */ + "graphicIndex"?: number; + /** + * esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html + */ + "graphics"?: __esri.Graphic[]; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; + /** + * Emitted on demand when the Editor widget should be closed + */ + "onCloseEdit"?: (event: EditCardCustomEvent) => void; + /** + * Emitted on demand when edits are completed on current edit layer + */ + "onEditsComplete"?: (event: EditCardCustomEvent) => void; /** * When true the component is displayed */ "open"?: boolean; } + interface FloorFilter { + /** + * boolean: when true the Floor Filter widget will be available + */ + "enabled"?: boolean; + /** + * esri/widgets/FloorFilter: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FloorFilter.html FloorFilter instance + */ + "floorFilterWidget"?: __esri.FloorFilter; + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; + } interface InfoCard { /** - * string: the components title + * esri/Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html */ - "cardTitle"?: string; + "graphics"?: __esri.Graphic[]; /** - * IInfoCardValues: key value pairs to show in the components table + * boolean: when true a loading indicator will be shown */ - "values"?: IInfoCardValues; + "isLoading"?: boolean; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; + /** + * Emitted on demand when the selected index changes + */ + "onSelectionChanged"?: (event: InfoCardCustomEvent<__esri.Graphic>) => void; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected"?: boolean; } interface JsonEditor { /** @@ -1003,14 +1740,92 @@ declare namespace LocalJSX { "value"?: any; } interface LayerTable { + /** + * boolean: when true the layer table will auto refresh the data + */ + "enableAutoRefresh"?: boolean; + /** + * boolean: when true the export to csv button will be available + */ + "enableCSV"?: boolean; + /** + * boolean: when true edits can be applied directly within the table + */ + "enableInlineEdit"?: boolean; + /** + * boolean: when true the zoom button will be enabled + */ + "enableZoom"?: boolean; + /** + * IMapInfo: key configuration details about the current map + */ + "mapInfo"?: IMapInfo; /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView"?: __esri.MapView; + /** + * Emitted on demand when a layer is selected + */ + "onFeatureSelectionChange"?: (event: LayerTableCustomEvent) => void; + /** + * Emitted on demand when the filters button is clicked + */ + "onOpenFilterOptions"?: (event: LayerTableCustomEvent) => void; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + "onlyShowUpdatableLayers"?: boolean; + /** + * boolean: when true the table will be sorted by objectid in descending order by default + */ + "showNewestFirst"?: boolean; + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + "zoomAndScrollToSelected"?: boolean; + } + interface LayoutManager { + /** + * Emitted when the layout should change + */ + "onLayoutChanged"?: (event: LayoutManagerCustomEvent) => void; } interface ListItem { } interface MapCard { + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + "basemapConfig"?: IBasemapConfig; + /** + * boolean: when true the basemap widget will be available + */ + "enableBasemap"?: boolean; + /** + * boolean: when true the floor filter widget will be available + */ + "enableFloorFilter"?: boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFullscreen"?: boolean; + /** + * boolean: when true the home widget will be available + */ + "enableHome"?: boolean; + /** + * boolean: when true the legend widget will be available + */ + "enableLegend"?: boolean; + /** + * boolean: when true the search widget will be available + */ + "enableSearch"?: boolean; + /** + * boolean: When true the map display will be hidden + */ + "hidden"?: boolean; /** * IMapInfo[]: array of map infos (name and id) */ @@ -1020,13 +1835,17 @@ declare namespace LocalJSX { */ "mapView"?: __esri.MapView; /** - * Emitted when the expand button is clicked + * Emitted before a new map is loaded */ - "onExpandMap"?: (event: MapCardCustomEvent) => void; + "onBeforeMapChanged"?: (event: MapCardCustomEvent) => void; /** * Emitted when a new map is loaded */ - "onMapChanged"?: (event: MapCardCustomEvent<__esri.MapView>) => void; + "onMapChanged"?: (event: MapCardCustomEvent) => void; + /** + * theme: "light" | "dark" theme to be used + */ + "theme"?: theme; } interface MapDrawTools { /** @@ -1086,11 +1905,29 @@ declare namespace LocalJSX { */ "undoEnabled"?: boolean; } + interface MapFullscreen { + /** + * esri/widgets/Fullscreen: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Fullscreen.html + */ + "fullscreenWidget"?: __esri.Fullscreen; + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; + } interface MapLayerPicker { + /** + * "transparent" | "solid": controls the button appearance when using the "dropdown" type + */ + "appearance"?: "transparent" | "solid"; /** * string[]: Optional list of enabled layer ids If empty all layers will be available */ "enabledLayerIds"?: string[]; + /** + * string[]: Optional list of enabled table ids If empty all tables will be available + */ + "enabledTableIds"?: string[]; /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @@ -1099,28 +1936,80 @@ declare namespace LocalJSX { * Emitted on demand when a layer is selected */ "onLayerSelectionChange"?: (event: MapLayerPickerCustomEvent) => void; + /** + * Emitted on demand when no valid layers are found + */ + "onNoLayersFound"?: (event: MapLayerPickerCustomEvent) => void; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + "onlyShowUpdatableLayers"?: boolean; + /** + * string: optional placeholder icon used with "combobox" type + */ + "placeholderIcon"?: string; + /** + * "s" | "m" | "l": scale to render the component + */ + "scale"?: "s" | "m" | "l"; /** * string[]: list of layer ids that have been selected by the end user */ - "selectedLayerIds"?: string[]; + "selectedIds"?: string[]; + /** + * boolean: when true standalone tables will also be available + */ + "showTables"?: boolean; /** - * SelectionMode: "single" | "multi" Should the component support selection against a single layer or multiple layers. + * "select" | "combobox" | "dropdown": type of component to leverage */ - "selectionMode"?: SelectionMode; + "type"?: "select" | "combobox" | "dropdown"; } - interface MapSearch { + interface MapLegend { + /** + * esri/widgets/Legend: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html Legend instance + */ + "legendWidget"?: __esri.Legend; /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView"?: __esri.MapView; + } + interface MapPicker { + /** + * IMapInfo[]: array of map infos (name and id) + */ + "mapInfos"?: IMapInfo[]; + /** + * Emitted when a new map is loaded + */ + "onMapInfoChange"?: (event: MapPickerCustomEvent) => void; + } + interface MapSearch { + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; /** - * Emitted on demand when the status of the search widget changes + * boolean: When true the selected feature popup will be shown when serach result is found */ - "onSearchChange"?: (event: MapSearchCustomEvent) => void; + "popupEnabled"?: boolean; + /** + * boolean: When true a graphic will be added for the search result + */ + "resultGraphicEnabled"?: boolean; /** * ISearchConfiguration: Configuration details for the Search widget */ "searchConfiguration"?: ISearchConfiguration; + /** + * string: Text entered by the end user. Used to search against the locator. + */ + "searchTerm"?: string; + /** + * esri/widgets/Search: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html + */ + "searchWidget"?: __esri.widgetsSearch; } interface MapSelectTools { /** @@ -1160,7 +2049,7 @@ declare namespace LocalJSX { */ "layerViews"?: __esri.FeatureLayerView[]; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView"?: __esri.MapView; /** @@ -1200,15 +2089,51 @@ declare namespace LocalJSX { */ "sketchPolygonSymbol"?: __esri.SimpleFillSymbol; } - interface MediaCard { + interface MapTools { + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + "basemapConfig"?: IBasemapConfig; + /** + * boolean: when true the basemap widget will be available + */ + "enableBasemap"?: boolean; /** - * IMediaCardValues[]: Array of objects that contain the name, description, and image to display + * boolean: when true the floor filter widget will be available */ - "values"?: IMediaCardValues[]; + "enableFloorFilter"?: boolean; + /** + * boolean: when true the fullscreen widget will be available + */ + "enableFullscreen"?: boolean; + /** + * boolean: when true the legend widget will be available + */ + "enableLegend"?: boolean; + /** + * boolean: when true the search widget will be available + */ + "enableSearch"?: boolean; + /** + * "horizontal" | "vertical": used to control the orientation of the tools + */ + "layout"?: "horizontal" | "vertical"; + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + "mapView"?: __esri.MapView; + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + "searchConfiguration"?: ISearchConfiguration; } interface PciCalculator { } interface PdfDownload { + /** + * number: The default number of labels per page to export + */ + "defaultNumLabelsPerPage"?: number; /** * boolean: Controls the enabled/disabled state of download */ @@ -1239,6 +2164,14 @@ declare namespace LocalJSX { * number: The default value to show for the buffer unit ("feet"|"meters"|"miles"|"kilometers") */ "defaultBufferUnit"?: DistanceUnit; + /** + * string: The default value to use for the export title + */ + "defaultExportTitle"?: string; + /** + * number: The default number of labels per page to export + */ + "defaultNumLabelsPerPage"?: number; /** * The effect that will be applied when featureHighlightEnabled is true esri/layers/support/FeatureEffect: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureEffect.html */ @@ -1248,7 +2181,7 @@ declare namespace LocalJSX { */ "featureHighlightEnabled"?: boolean; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView"?: __esri.MapView; /** @@ -1298,7 +2231,7 @@ declare namespace LocalJSX { */ "enabledLayerIds"?: string[]; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ "mapView"?: __esri.MapView; /** @@ -1458,6 +2391,21 @@ declare namespace LocalJSX { */ "value"?: string; } + interface SpatialRef { + /** + * The wkid that will be used as the default when no user selection has been made. + */ + "defaultWkid"?: number; + /** + * When true, all are disabled to prevent interaction. + */ + "disabled"?: boolean; + "onSpatialReferenceChange"?: (event: SpatialRefCustomEvent) => void; + /** + * Contains the public value for this component, which is a wkid or a wkt. + */ + "value"?: string; + } interface StoreManager { /** * Credentials for requests @@ -1474,24 +2422,28 @@ declare namespace LocalJSX { "value"?: string; } interface IntrinsicElements { - "add-record-modal": AddRecordModal; + "basemap-gallery": BasemapGallery; "buffer-tools": BufferTools; "card-manager": CardManager; - "comment-card": CommentCard; "crowdsource-manager": CrowdsourceManager; "crowdsource-reporter": CrowdsourceReporter; "deduct-calculator": DeductCalculator; - "edit-record-modal": EditRecordModal; + "edit-card": EditCard; + "floor-filter": FloorFilter; "info-card": InfoCard; "json-editor": JsonEditor; "layer-table": LayerTable; + "layout-manager": LayoutManager; "list-item": ListItem; "map-card": MapCard; "map-draw-tools": MapDrawTools; + "map-fullscreen": MapFullscreen; "map-layer-picker": MapLayerPicker; + "map-legend": MapLegend; + "map-picker": MapPicker; "map-search": MapSearch; "map-select-tools": MapSelectTools; - "media-card": MediaCard; + "map-tools": MapTools; "pci-calculator": PciCalculator; "pdf-download": PdfDownload; "public-notification": PublicNotification; @@ -1507,6 +2459,7 @@ declare namespace LocalJSX { "solution-spatial-ref": SolutionSpatialRef; "solution-template-data": SolutionTemplateData; "solution-variables": SolutionVariables; + "spatial-ref": SpatialRef; "store-manager": StoreManager; } } @@ -1514,24 +2467,28 @@ export { LocalJSX as JSX }; declare module "@stencil/core" { export namespace JSX { interface IntrinsicElements { - "add-record-modal": LocalJSX.AddRecordModal & JSXBase.HTMLAttributes; + "basemap-gallery": LocalJSX.BasemapGallery & JSXBase.HTMLAttributes; "buffer-tools": LocalJSX.BufferTools & JSXBase.HTMLAttributes; "card-manager": LocalJSX.CardManager & JSXBase.HTMLAttributes; - "comment-card": LocalJSX.CommentCard & JSXBase.HTMLAttributes; "crowdsource-manager": LocalJSX.CrowdsourceManager & JSXBase.HTMLAttributes; "crowdsource-reporter": LocalJSX.CrowdsourceReporter & JSXBase.HTMLAttributes; "deduct-calculator": LocalJSX.DeductCalculator & JSXBase.HTMLAttributes; - "edit-record-modal": LocalJSX.EditRecordModal & JSXBase.HTMLAttributes; + "edit-card": LocalJSX.EditCard & JSXBase.HTMLAttributes; + "floor-filter": LocalJSX.FloorFilter & JSXBase.HTMLAttributes; "info-card": LocalJSX.InfoCard & JSXBase.HTMLAttributes; "json-editor": LocalJSX.JsonEditor & JSXBase.HTMLAttributes; "layer-table": LocalJSX.LayerTable & JSXBase.HTMLAttributes; + "layout-manager": LocalJSX.LayoutManager & JSXBase.HTMLAttributes; "list-item": LocalJSX.ListItem & JSXBase.HTMLAttributes; "map-card": LocalJSX.MapCard & JSXBase.HTMLAttributes; "map-draw-tools": LocalJSX.MapDrawTools & JSXBase.HTMLAttributes; + "map-fullscreen": LocalJSX.MapFullscreen & JSXBase.HTMLAttributes; "map-layer-picker": LocalJSX.MapLayerPicker & JSXBase.HTMLAttributes; + "map-legend": LocalJSX.MapLegend & JSXBase.HTMLAttributes; + "map-picker": LocalJSX.MapPicker & JSXBase.HTMLAttributes; "map-search": LocalJSX.MapSearch & JSXBase.HTMLAttributes; "map-select-tools": LocalJSX.MapSelectTools & JSXBase.HTMLAttributes; - "media-card": LocalJSX.MediaCard & JSXBase.HTMLAttributes; + "map-tools": LocalJSX.MapTools & JSXBase.HTMLAttributes; "pci-calculator": LocalJSX.PciCalculator & JSXBase.HTMLAttributes; "pdf-download": LocalJSX.PdfDownload & JSXBase.HTMLAttributes; "public-notification": LocalJSX.PublicNotification & JSXBase.HTMLAttributes; @@ -1547,6 +2504,7 @@ declare module "@stencil/core" { "solution-spatial-ref": LocalJSX.SolutionSpatialRef & JSXBase.HTMLAttributes; "solution-template-data": LocalJSX.SolutionTemplateData & JSXBase.HTMLAttributes; "solution-variables": LocalJSX.SolutionVariables & JSXBase.HTMLAttributes; + "spatial-ref": LocalJSX.SpatialRef & JSXBase.HTMLAttributes; "store-manager": LocalJSX.StoreManager & JSXBase.HTMLAttributes; } } diff --git a/src/components/add-record-modal/add-record-modal.tsx b/src/components/add-record-modal/add-record-modal.tsx deleted file mode 100644 index ee2236b8a..000000000 --- a/src/components/add-record-modal/add-record-modal.tsx +++ /dev/null @@ -1,226 +0,0 @@ -/** @license - * Copyright 2022 Esri - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Component, Element, Host, h, Prop, State } from '@stencil/core'; -import AddRecordModal_T9n from "../../assets/t9n/add-record-modal/resources.json"; -import { getLocaleComponentStrings } from "../../utils/locale"; - -// TODO implement save logic - -@Component({ - tag: 'add-record-modal', - styleUrl: 'add-record-modal.css', - shadow: true, -}) -export class AddRecordModal { - //-------------------------------------------------------------------------- - // - // Host element access - // - //-------------------------------------------------------------------------- - @Element() el: HTMLAddRecordModalElement; - - //-------------------------------------------------------------------------- - // - // Properties (public) - // - //-------------------------------------------------------------------------- - - /** - * When true the component is displayed - */ - @Prop({ mutable: true }) open = false; - - //-------------------------------------------------------------------------- - // - // State (internal) - // - //-------------------------------------------------------------------------- - - /** - * Contains the translations for this component. - * All UI strings should be defined here. - */ - @State() _translations: typeof AddRecordModal_T9n; - - //-------------------------------------------------------------------------- - // - // Properties (protected) - // - //-------------------------------------------------------------------------- - - /** - * Handle to the element for browsing for a file. - */ - protected _browseForAttachment: HTMLInputElement; - - //-------------------------------------------------------------------------- - // - // Watch handlers - // - //-------------------------------------------------------------------------- - - //-------------------------------------------------------------------------- - // - // Methods (public) - // - //-------------------------------------------------------------------------- - - //-------------------------------------------------------------------------- - // - // Events (public) - // - //-------------------------------------------------------------------------- - - //-------------------------------------------------------------------------- - // - // Functions (lifecycle) - // - //-------------------------------------------------------------------------- - - /** - * StencilJS: Called once just after the component is first connected to the DOM. - * - * @returns Promise when complete - */ - async componentWillLoad(): Promise { - await this._getTranslations(); - } - - /** - * Renders the component. - */ - render() { - return ( - -
- -
{this._translations.addRecord}
-
-
-
- - {this._translations.source} - - -
-
- - {this._translations.publicView} - - -
-
- - {this._translations.attachments} - {/* TODO the design has this smaller with rounded border. - Can't quite get that with calcite from what I see...look more or go custom */} -
- (this._updateAttachment(event))} - ref={(el) => (this._browseForAttachment = el)} - type="file" - /> - this._browse()} - width='auto'> - {this._translations.browse} - -
-
-
-
-
- this._cancel()} - slot="secondary" - width="full" - > - {this._translations.cancel} - - this._save()} - slot="primary" - width="full" - > - {this._translations.save} - -
-
-
- ); - } - - //-------------------------------------------------------------------------- - // - // Functions (protected) - // - //-------------------------------------------------------------------------- - - /** - * Opens the browse dialog - * - * @returns void - */ - protected _browse(): void { - this._browseForAttachment.click(); - } - - /** - * Closes the modal - * - * @returns void - */ - protected _cancel(): void { - this.open = false; - } - - // TODO needs to be implemented will handle save of the record - protected _save(): void { - this.open = false; - } - - /** - * Gets the result file from browse - * - * @param event The input controls event that contains the new file - */ - protected _updateAttachment( - event: any - ): void { - const files = event.target.files; - if (files && files[0]) { - console.log(files[0]); - } - } - - /** - * Fetches the component's translations - * - * @returns Promise when complete - * @protected - */ - protected async _getTranslations(): Promise { - const messages = await getLocaleComponentStrings(this.el); - this._translations = messages[0] as typeof AddRecordModal_T9n; - } - -} diff --git a/src/components/add-record-modal/readme.md b/src/components/add-record-modal/readme.md deleted file mode 100644 index 6b07eff92..000000000 --- a/src/components/add-record-modal/readme.md +++ /dev/null @@ -1,43 +0,0 @@ -# add-record-modal - - - - - - -## Properties - -| Property | Attribute | Description | Type | Default | -| -------- | --------- | ------------------------------------ | --------- | ------- | -| `open` | `open` | When true the component is displayed | `boolean` | `false` | - - -## Dependencies - -### Depends on - -- calcite-modal -- calcite-label -- calcite-input -- calcite-button - -### Graph -```mermaid -graph TD; - add-record-modal --> calcite-modal - add-record-modal --> calcite-label - add-record-modal --> calcite-input - add-record-modal --> calcite-button - calcite-modal --> calcite-scrim - calcite-modal --> calcite-icon - calcite-scrim --> calcite-loader - calcite-input --> calcite-progress - calcite-input --> calcite-icon - calcite-button --> calcite-loader - calcite-button --> calcite-icon - style add-record-modal fill:#f9f,stroke:#333,stroke-width:4px -``` - ----------------------------------------------- - -*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/comment-card/comment-card.css b/src/components/basemap-gallery/basemap-gallery.css similarity index 100% rename from src/components/comment-card/comment-card.css rename to src/components/basemap-gallery/basemap-gallery.css diff --git a/src/components/basemap-gallery/basemap-gallery.tsx b/src/components/basemap-gallery/basemap-gallery.tsx new file mode 100644 index 000000000..841b74f27 --- /dev/null +++ b/src/components/basemap-gallery/basemap-gallery.tsx @@ -0,0 +1,199 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, Element, Host, h, Prop, Watch } from '@stencil/core'; +import { loadModules } from "../../utils/loadModules"; +import { IBasemapConfig } from '../../utils/interfaces'; + +@Component({ + tag: 'basemap-gallery', + styleUrl: 'basemap-gallery.css', + shadow: true, +}) +export class BasemapGallery { + //-------------------------------------------------------------------------- + // + // Host element access + // + //-------------------------------------------------------------------------- + + @Element() el: HTMLBasemapGalleryElement; + + //-------------------------------------------------------------------------- + // + // Properties (public) + // + //-------------------------------------------------------------------------- + + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + @Prop() basemapConfig: IBasemapConfig; + + /** + * esri/widgets/BasemapGallery: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html + * + * BasemapGallery instance + */ + @Prop() basemapWidget: __esri.BasemapGallery; + + //-------------------------------------------------------------------------- + // + // State (internal) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Properties (protected) + // + //-------------------------------------------------------------------------- + + /** + * esri/widgets/BasemapGallery: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html + * + * BasemapGallery constructor + */ + protected BasemapGallery: typeof import("esri/widgets/BasemapGallery"); + + /** + * esri/widgets/BasemapGallery/support/PortalBasemapsSource: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery-support-PortalBasemapsSource.html + * + * PortalBasemapsSource constructor + */ + protected PortalBasemapsSource: typeof import("esri/widgets/BasemapGallery/support/PortalBasemapsSource"); + + /** + * HTMLElement: The container div for the basemap gallery widget + */ + protected _basemapElement: HTMLElement; + + //-------------------------------------------------------------------------- + // + // Watch handlers + // + //-------------------------------------------------------------------------- + + @Watch("mapView") + async mapViewWatchHandler(): Promise { + await this.mapView.when(() => { + void this._initBaseMapGallery(this.mapView); + }); + } + + //-------------------------------------------------------------------------- + // + // Methods (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Events (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Functions (lifecycle) + // + //-------------------------------------------------------------------------- + + /** + * StencilJS: Called once just after the component is first connected to the DOM. + */ + async componentWillLoad(): Promise { + return this._initModules(); + } + + /** + * StencilJS: Renders the component. + */ + render() { + return ( + +
{ this._basemapElement = el }} /> + + ); + } + + /** + * StencilJS: Called once just after the component is fully loaded and the first render() occurs. + */ + async componentDidLoad(): Promise { + if (this.mapView) { + await this.mapViewWatchHandler(); + } + } + + //-------------------------------------------------------------------------- + // + // Functions (protected) + // + //-------------------------------------------------------------------------- + + /** + * Load esri javascript api modules + * + * @returns Promise resolving when function is done + * + * @protected + */ + protected async _initModules(): Promise { + const [BasemapGallery, PortalBasemapsSource] = await loadModules([ + "esri/widgets/BasemapGallery", + "esri/widgets/BasemapGallery/support/PortalBasemapsSource" + ]); + this.BasemapGallery = BasemapGallery; + this.PortalBasemapsSource = PortalBasemapsSource; + } + + /** + * Initialize the basemap gallery or reset the current view if it already exists + * + * @returns void + * + * @protected + */ + protected async _initBaseMapGallery( + view: __esri.MapView + ): Promise { + if (this.BasemapGallery) { + if (this.basemapWidget) { + this.basemapWidget.destroy(); + } + + const source = new this.PortalBasemapsSource({ + query: this.basemapConfig?.basemapGroupId ? `id:${this.basemapConfig.basemapGroupId}` : null, + filterFunction: this.basemapConfig ? (basemap: __esri.Basemap) => { + return !this.basemapConfig.basemapIdsToFilter.includes(basemap.portalItem.id); + } : () => true + }); + await source.refresh(); + + this.basemapWidget = new this.BasemapGallery({ + container: this._basemapElement, + view, + source + }); + } + } +} diff --git a/src/components/basemap-gallery/readme.md b/src/components/basemap-gallery/readme.md new file mode 100644 index 000000000..4d408b735 --- /dev/null +++ b/src/components/basemap-gallery/readme.md @@ -0,0 +1,32 @@ +# basemap-gallery + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| --------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ----------- | +| `basemapConfig` | -- | IBasemapConfig: List of any basemaps to filter out from the basemap widget | `IBasemapConfig` | `undefined` | +| `basemapWidget` | -- | esri/widgets/BasemapGallery: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html BasemapGallery instance | `BasemapGallery` | `undefined` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | + + +## Dependencies + +### Used by + + - [map-tools](../map-tools) + +### Graph +```mermaid +graph TD; + map-tools --> basemap-gallery + style basemap-gallery fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/buffer-tools/buffer-tools.tsx b/src/components/buffer-tools/buffer-tools.tsx index 7dc4d696d..6ae16fe7f 100644 --- a/src/components/buffer-tools/buffer-tools.tsx +++ b/src/components/buffer-tools/buffer-tools.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode, Watch } from "@stencil/core"; +import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, VNode, Watch } from "@stencil/core"; import { loadModules } from "../../utils/loadModules"; import BufferTools_T9n from "../../assets/t9n/buffer-tools/resources.json"; import { getLocaleComponentStrings } from "../../utils/locale"; @@ -114,6 +114,11 @@ export class BufferTools { */ protected _unitElement: HTMLCalciteSelectElement; + /** + * Key Value pair: Lookup hash for translated units + */ + protected _units: {[key: string]: string}; + //-------------------------------------------------------------------------- // // Watch handlers @@ -141,6 +146,21 @@ export class BufferTools { // //-------------------------------------------------------------------------- + /** + * Get the translated unit for display + * + * @returns Promise resolving with the translated unit + */ + @Method() + async getTranslatedUnit( + unit: string + ): Promise { + if (!this._units) { + await this._defineTranslations(); + } + return this._units[unit]; + } + //-------------------------------------------------------------------------- // // Events (public) @@ -174,7 +194,7 @@ export class BufferTools { * @returns Promise when complete */ async componentWillLoad(): Promise { - await this._getTranslations(); + await this._defineTranslations(); await this._initModules(); } @@ -195,6 +215,18 @@ export class BufferTools { // //-------------------------------------------------------------------------- + /** + * Loads translations and defines unit names using those translations. + * + * @returns Promise resolving when function is done + * + * @protected + */ + protected async _defineTranslations(): Promise { + await this._getTranslations(); + this._initTranslatedUnits(); + } + /** * Load esri javascript api modules * @@ -212,21 +244,29 @@ export class BufferTools { } /** - * Gets the nodes for each of the possible distance units - * - * @returns An array of option nodes + * Init the lookup hash for translated units * * @protected */ - protected _getUnits(): VNode[] { - const units = { + protected _initTranslatedUnits(): void { + this._units = { "feet": this._translations.feet, "meters": this._translations.meters, "miles": this._translations.miles, "kilometers": this._translations.kilometers }; - return Object.keys(units).map(u => { - return (); + } + + /** + * Gets the nodes for each of the possible distance units + * + * @returns An array of option nodes + * + * @protected + */ + protected _getUnits(): VNode[] { + return Object.keys(this._units).map(u => { + return (); }); } @@ -283,14 +323,21 @@ export class BufferTools { } this._bufferTimeout = setTimeout(() => { - // needs to be wgs 84 or Web Mercator if (this.geometries?.length > 0 && this.unit && this.distance > 0) { - const buffer = this._geometryEngine.geodesicBuffer( - this.geometries, - this.distance, - this.unit, - this.unionResults - ); + const geom = this.geometries[0]; + const sr = geom.spatialReference; + const buffer = (sr.isWGS84 || sr.isWebMercator) ? + this._geometryEngine.geodesicBuffer( + this.geometries, + this.distance, + this.unit, + this.unionResults + ) : this._geometryEngine.buffer( + this.geometries, + this.distance, + this.unit, + this.unionResults + ); this.bufferComplete.emit(buffer); } }, 400); diff --git a/src/components/buffer-tools/readme.md b/src/components/buffer-tools/readme.md index f3219a5db..2e9bdca25 100644 --- a/src/components/buffer-tools/readme.md +++ b/src/components/buffer-tools/readme.md @@ -29,6 +29,19 @@ | `unitChanged` | Emitted on demand when the unit changes | `CustomEvent` | +## Methods + +### `getTranslatedUnit(unit: string) => Promise` + +Get the translated unit for display + +#### Returns + +Type: `Promise` + +Promise resolving with the translated unit + + ## Dependencies ### Used by diff --git a/src/components/card-manager/card-manager.css b/src/components/card-manager/card-manager.css index e67c3b2e8..bb896037d 100644 --- a/src/components/card-manager/card-manager.css +++ b/src/components/card-manager/card-manager.css @@ -15,11 +15,7 @@ */ :host { - display: block; -} - -.display-inline-table { - display: inline-table; + display: block !important; } .display-flex { @@ -34,10 +30,30 @@ width: 100%; } -.w-1-2 { - width: 50%; -} - .padding-bottom-1 { padding-bottom: 1rem; } + +.padding-1 { + padding: 1rem; +} + +.position-relative { + position: relative; +} + +.focus-margin { + margin: 1px 1px 0px 1px; +} + +.overflow-auto { + overflow: auto; +} + +.height-full { + height: 100%; +} + +card-manager { + display: block; +} diff --git a/src/components/card-manager/card-manager.tsx b/src/components/card-manager/card-manager.tsx index 1fe4d3e1f..401bf43a0 100644 --- a/src/components/card-manager/card-manager.tsx +++ b/src/components/card-manager/card-manager.tsx @@ -14,16 +14,16 @@ * limitations under the License. */ -import { Component, Element, Host, h, State } from '@stencil/core'; +import { Component, Element, Host, h, Listen, Prop, State } from "@stencil/core"; import CardManager_T9n from "../../assets/t9n/card-manager/resources.json"; import { getLocaleComponentStrings } from "../../utils/locale"; - -// TODO maybe just move to the manager component directly +import { queryFeaturesByID } from "../../utils/queryUtils"; +import { getLayerOrTable } from "../../utils/mapViewUtils"; @Component({ - tag: 'card-manager', - styleUrl: 'card-manager.css', - shadow: true, + tag: "card-manager", + styleUrl: "card-manager.css", + shadow: false, }) export class CardManager { //-------------------------------------------------------------------------- @@ -39,28 +39,43 @@ export class CardManager { // //-------------------------------------------------------------------------- + /** + * esri/views/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html + */ + @Prop() layer: __esri.FeatureLayer; + + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + @Prop() zoomAndScrollToSelected: boolean; + //-------------------------------------------------------------------------- // // Properties (protected) // //-------------------------------------------------------------------------- + /** + * When true a loading indicator will be shown in the current card + */ + @State() _cardLoading = false; + + /** + * The current selected graphics + */ + @State() _graphics: __esri.Graphic[]; + /** * Contains the translations for this component. * All UI strings should be defined here. */ @State() _translations: typeof CardManager_T9n; - protected _showInfoCard; - - protected _showMediaCard; - - protected _showCommentsCard; - - protected _fakeValues; - - protected _fakeInfos; - //-------------------------------------------------------------------------- // // Watch handlers @@ -79,55 +94,75 @@ export class CardManager { // //-------------------------------------------------------------------------- + /** + * Query the layer for the provided ids and store the result graphics + */ + @Listen("featureSelectionChange", { target: "window" }) + async featureSelectionChange( + evt: CustomEvent + ): Promise { + const ids = evt.detail; + this._cardLoading = true; + // only query if we have some ids...query with no ids will result in all features being returned + const featureSet = ids.length > 0 ? await queryFeaturesByID(ids, this.layer, [], false, this.mapView.spatialReference) : []; + // https://github.com/Esri/solutions-components/issues/365 + this._graphics = featureSet.sort((a,b) => ids.indexOf(a.getObjectId()) - ids.indexOf(b.getObjectId())); + this._cardLoading = false; + } + + /** + * Get the layer view for the provided layer id + */ + @Listen("layerSelectionChange", { target: "window" }) + async layerSelectionChange( + evt: CustomEvent + ): Promise { + const id: string = evt.detail[0]; + this.layer = await getLayerOrTable(this.mapView, id); + } + //-------------------------------------------------------------------------- // // Functions (lifecycle) // //-------------------------------------------------------------------------- + /** + * StencilJS: Called once just after the component is first connected to the DOM. + * + * @returns Promise when complete + */ async componentWillLoad(): Promise { await this._getTranslations(); - - const href = window.location.href; - const url = href.substring(0, href.lastIndexOf('/')); - const img = `${url}/data/generic.png`; - this._fakeValues = [{ - name: "Filename.png", - description: "This is an example of what a media description looks like.", - url: img - }, { - name: "Filename2.png", - description: "Another example of what a media description looks like.", - url: img - }, { - name: "Filename3.png", - description: "And another example of a media description.", - url: img - }]; - this._fakeInfos = { - "Details": "Details info goes here", - "Name": "Name here", - "Phone": "(000) 000-0000", - "Email": "example@gmail.com", - "Date": "May 11, 2022" - }; } + /** + * Renders the component. + */ render() { - // const mediaCardClass =; - // const infoCardClass = ""; + const featuresClass = this._graphics?.length > 0 ? "" : "display-none"; + const messageClass = this._graphics?.length > 0 ? "display-none" : ""; + return ( -
-
- {this._translations.information} - {this._translations.media} - {/* {this._translations.comments} */} -
-
- -
+
+ +
+ +
+
+ +
+ +
{this._translations.selectFeaturesToStart}
+
+
+
); @@ -149,5 +184,4 @@ export class CardManager { const messages = await getLocaleComponentStrings(this.el); this._translations = messages[0] as typeof CardManager_T9n; } - } diff --git a/src/components/card-manager/readme.md b/src/components/card-manager/readme.md index f1d86a835..d5a1778f3 100644 --- a/src/components/card-manager/readme.md +++ b/src/components/card-manager/readme.md @@ -5,25 +5,48 @@ +## Properties + +| Property | Attribute | Description | Type | Default | +| ------------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------- | +| `layer` | -- | esri/views/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html | `FeatureLayer` | `undefined` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `zoomAndScrollToSelected` | `zoom-and-scroll-to-selected` | boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table | `boolean` | `undefined` | + + ## Dependencies +### Used by + + - [crowdsource-manager](../crowdsource-manager) + ### Depends on -- calcite-button -- [media-card](../media-card) +- calcite-shell - [info-card](../info-card) +- calcite-notice ### Graph ```mermaid graph TD; - card-manager --> calcite-button - card-manager --> media-card + card-manager --> calcite-shell card-manager --> info-card + card-manager --> calcite-notice + info-card --> calcite-shell + info-card --> calcite-loader + info-card --> calcite-button + info-card --> calcite-tooltip + info-card --> edit-card + info-card --> calcite-alert calcite-button --> calcite-loader calcite-button --> calcite-icon - media-card --> calcite-label - media-card --> calcite-button - info-card --> calcite-label + edit-card --> calcite-notice + edit-card --> calcite-loader + calcite-notice --> calcite-icon + calcite-alert --> calcite-icon + calcite-alert --> calcite-chip + calcite-chip --> calcite-icon + crowdsource-manager --> card-manager style card-manager fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/comment-card/readme.md b/src/components/comment-card/readme.md deleted file mode 100644 index 3e58c144a..000000000 --- a/src/components/comment-card/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# comment-card - - - - - - ----------------------------------------------- - -*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/crowdsource-manager/crowdsource-manager.css b/src/components/crowdsource-manager/crowdsource-manager.css index 2a00574fb..029f23917 100644 --- a/src/components/crowdsource-manager/crowdsource-manager.css +++ b/src/components/crowdsource-manager/crowdsource-manager.css @@ -17,73 +17,17 @@ :host { display: block; --calcite-label-margin-bottom: 0px; + --solutions-theme-foreground-color: var(--calcite-ui-foreground-1); } -.pad-top-51 { - padding-top: 51px; -} - -.header-title { - display: flex; - float: left; -} - -.header-controls-label { - display: flex; - float: right; -} - -.header-controls { - height: 50px; -} - -.img-background { - background-repeat: no-repeat; - background-size: 100% 100%; - width: 38px; - height: 26px; -} - -.grid-background { - background-image: url('../../assets/data/images/grid.png'); -} - -.vertical-background { - background-image: url('../../assets/data/images/horizontal.png'); -} - -.horizontal-background { - background-image: url('../../assets/data/images/vertical.png'); -} - -.action-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-grid-row-align: center; - align-items: center; - -webkit-align-content: center; - align-content: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - justify-content: center; -} - -.background-transparent { - background-color: transparent; +.padding-1-2 { + padding: 0.5rem; } .display-flex { display: flex; } -.header-text { - font-size: var(--calcite-font-size-0); - font-weight: var(--calcite-font-weight-medium); - padding-inline: 0.75rem; - padding-block: 0.875rem; - line-height: 1.25rem; -} - .width-full { width: 100%; } @@ -121,8 +65,8 @@ } .toggle-node { - width: 48px; - height: 48px; + width: 51px; + height: 51px; } .overflow-hidden { @@ -134,11 +78,87 @@ } .border { - border-width: 1px; - border-style: solid; - border-color: var(--calcite-ui-border-3); + border: 1px solid var(--calcite-ui-border-3); +} + +.border-bottom { + border-bottom: 1px solid var(--calcite-ui-border-3); +} + +.border-sides { + border-left: 1px solid var(--calcite-ui-border-3); + border-right: 1px solid var(--calcite-ui-border-3); } .position-relative { position: relative; } + +.height-50 { + height: 50%; +} + +.adjusted-height-50 { + height: calc(50% - 25px); +} + +.adjusted-height-100 { + height: calc(100% - 50px); +} + +.adjusted-height-100-50 { + height: calc(100% - 50px); +} + + +.display-none { + display: none; +} + +.height-53 { + height: 53px; +} + +.position-absolute-53 { + position: absolute; + top: 53px; +} + +.display-grid { + display: grid; +} + +.height-50-px { + height: 50px; +} + +.padding-inline-start-75 { + padding-inline-start: 0.75rem; +} + +.align-items-center { + align-items: center; +} + +.esri-floor-filter__close-levels-button { + width: 40px !important; + height: 40px !important; +} + +.esri-floor-filter__level-button { + width: 40px !important; + height: 40px !important; +} + +.esri-floor-filter__browse-button { + width: 40px !important; + height: 40px !important; +} + +.position-absolute-50 { + position: absolute; + top: 50px; + bottom: 0px; + left: 0px; + right: 0px; +} diff --git a/src/components/crowdsource-manager/crowdsource-manager.tsx b/src/components/crowdsource-manager/crowdsource-manager.tsx index 974b8a743..5aafe1a00 100644 --- a/src/components/crowdsource-manager/crowdsource-manager.tsx +++ b/src/components/crowdsource-manager/crowdsource-manager.tsx @@ -14,14 +14,14 @@ * limitations under the License. */ -import { Component, Element, Host, h, Listen, Prop, State, VNode } from '@stencil/core'; +import { Component, Element, Host, h, Listen, Prop, State, VNode, Watch } from "@stencil/core"; import CrowdsourceManager_T9n from "../../assets/t9n/crowdsource-manager/resources.json"; import { getLocaleComponentStrings } from "../../utils/locale"; -import { ELayoutMode, IMapInfo } from '../../utils/interfaces'; +import { ELayoutMode, IBasemapConfig, IMapChange, IMapInfo, ISearchConfiguration, theme } from "../../utils/interfaces"; @Component({ - tag: 'crowdsource-manager', - styleUrl: 'crowdsource-manager.css', + tag: "crowdsource-manager", + styleUrl: "crowdsource-manager.css", shadow: false, }) export class CrowdsourceManager { @@ -38,17 +38,112 @@ export class CrowdsourceManager { // //-------------------------------------------------------------------------- + /** + * boolean: when true the grid will display like the previous manager app with the table across the top + */ + @Prop() classicGrid = false; + + /** + * boolean: when true the layer table will auto refresh the data + */ + @Prop() enableAutoRefresh = false; + + /** + * boolean: when true the export to csv button will be available + */ + @Prop() enableCSV = true; + + /** + * boolean: when true the fullscreen widget will be available + */ + @Prop() enableFloorFilter = true; + + /** + * boolean: when true the fullscreen widget will be available + */ + @Prop() enableFullscreen = true; + + /** + * boolean: when true edits can be applied directly within the table + */ + @Prop() enableInlineEdit = false; + + /** + * boolean: when true the legend widget will be available + */ + @Prop() enableLegend = true; + + /** + * boolean: when true the search widget will be available + */ + @Prop() enableSearch = true; + + /** + * boolean: when true the home widget will be available + */ + @Prop() enableHome = true; + + /** + * boolean: when true the zoom widget will be available + */ + @Prop() enableZoom = true; + + /** + * boolean: when true the basemap widget will be available + */ + @Prop() enableBasemap = true; + + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + @Prop() basemapConfig: IBasemapConfig; + + /** + * boolean: when true the table will be sorted by objectid in descending order by default + */ + @Prop() showNewestFirst = true; + + /** + * boolean: when true no map is displayed for the app + */ + @Prop() hideMap = false; + /** * IMapInfo[]: array of map infos (name and id) */ @Prop() mapInfos: IMapInfo[] = []; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + @Prop() onlyShowUpdatableLayers = true; + + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + @Prop() searchConfiguration: ISearchConfiguration; + + /** + * theme: "light" | "dark" theme to be used + */ + @Prop() theme: theme = "light"; + + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + @Prop() zoomAndScrollToSelected = false; + //-------------------------------------------------------------------------- // // State (internal) // //-------------------------------------------------------------------------- + /** + * When true the info panel with the popup details will take the full height and prevent the map from displaying + */ + @State() _expandPopup = false; + /** * Contains the translations for this component. * All UI strings should be defined here. @@ -76,12 +171,36 @@ export class CrowdsourceManager { // //-------------------------------------------------------------------------- + /** + * IMapChange: The current map change details + */ + protected _mapChange: IMapChange; + + /** + * IMapInfo: The current map info stores configuration details + */ + protected _mapInfo: IMapInfo; + + /** + * boolean: When true the map view will be set after render due to popup obstructing the view + * MapView.when is not fired when mapView is not currently visible + */ + protected _shouldSetMapView = false; + //-------------------------------------------------------------------------- // // Watch handlers // //-------------------------------------------------------------------------- + /** + * When true the map zoom tools will be available + */ + @Watch("enableZoom") + enableZoomWatchHandler(): void { + this._initMapZoom(); + } + //-------------------------------------------------------------------------- // // Methods (public) @@ -95,11 +214,37 @@ export class CrowdsourceManager { //-------------------------------------------------------------------------- /** - * Handle changes to the buffer distance value + * Listen for layoutChanged event to be fired so we can adjust the layout + */ + @Listen("layoutChanged", { target: "window" }) + async layoutChanged( + evt: CustomEvent + ): Promise { + this._layoutMode = evt.detail; + } + + /** + * Listen for mapChanged event to be fired then store the new mapView so components will be updated */ @Listen("mapChanged", { target: "window" }) - mapChanged(event: CustomEvent): void { - this._mapView = event.detail; + async mapChanged( + evt: CustomEvent + ): Promise { + this._mapChange = evt.detail; + await this._mapChange.mapView.when(() => { + this._setMapView(); + }); + } + + /** + * Listen for beforeMapChanged and minimize the popup if it's expanded + */ + @Listen("beforeMapChanged", { target: "window" }) + async beforeMapChanged(): Promise { + if (this._expandPopup) { + this._shouldSetMapView = true; + this._expandPopup = false; + } } //-------------------------------------------------------------------------- @@ -108,60 +253,58 @@ export class CrowdsourceManager { // //-------------------------------------------------------------------------- + /** + * StencilJS: Called once just after the component is first connected to the DOM. + * + * @returns Promise when complete + */ async componentWillLoad(): Promise { await this._getTranslations(); } + /** + * Renders the component. + */ render() { return ( - -
-
Layout
- {this._getAction("grid-background", ELayoutMode.GRID, this._translations.grid)} - {this._getAction("horizontal-background", ELayoutMode.VERTICAL, this._translations.horizontal)} - {this._getAction("vertical-background", ELayoutMode.HORIZONTAL, this._translations.vertical)} -
- {this._getBody(this._layoutMode, this._panelOpen)} -
+ + + {this._getBody(this._layoutMode, this._panelOpen, this.hideMap)} + +
); } + /** + * Called after each render + * Used to delay the setting of the mapView when the popup is expaneded and obstructs the view + */ + componentDidRender() { + if (this._shouldSetMapView) { + this._shouldSetMapView = false; + this._setMapView(); + } + } + //-------------------------------------------------------------------------- // // Functions (protected) // //-------------------------------------------------------------------------- - protected _getAction( - imgClass: string, - layoutMode: ELayoutMode, - tip: string - ): VNode { - return ( -
- { this._setLayoutMode(layoutMode) }} - text="" - > -
- - - {tip} - -
- ); - } - + /** + * Get the icon name to use for the divider icon based on the current layout + * + * @param layoutMode ELayoutMode the current layout mode + * @param panelOpen boolean indicates if all panels are open + * + * @returns the icon name + * @protected + */ protected _getDividerIcon( layoutMode: ELayoutMode, panelOpen: boolean @@ -169,15 +312,33 @@ export class CrowdsourceManager { let icon = ""; switch (layoutMode) { case ELayoutMode.HORIZONTAL: - icon = panelOpen ? "chevrons-up" : "chevrons-down"; + icon = this.classicGrid ? + (panelOpen ? "chevrons-down" : "chevrons-up") : + (panelOpen ? "chevrons-up" : "chevrons-down"); break; - default: - icon = panelOpen ? "chevrons-left" : "chevrons-right"; + case ELayoutMode.VERTICAL: + icon = this.classicGrid ? + (panelOpen ? "chevrons-right" : "chevrons-left") : + (panelOpen ? "chevrons-left" : "chevrons-right"); + break; + case ELayoutMode.GRID: + icon = this.classicGrid ? + (panelOpen ? "chevrons-up" : "chevrons-down") : + (panelOpen ? "chevrons-left" : "chevrons-right"); break; } return icon; } + /** + * Get the css selector names to use for the map based on the current layout + * + * @param layoutMode ELayoutMode the current layout mode + * @param panelOpen boolean indicates if all panels are open + * + * @returns the css selectors + * @protected + */ protected _getMapSizeClass( layoutMode: ELayoutMode, panelOpen: boolean @@ -188,7 +349,8 @@ export class CrowdsourceManager { sizeClass = `${panelOpen ? "height-1-2" : "height-0"} width-full position-relative`; break; case ELayoutMode.GRID: - sizeClass = `height-full position-relative ${panelOpen ? "width-1-3" : "width-0"}`; + sizeClass = this.classicGrid ? `${panelOpen ? "position-relative" : "position-absolute-53"} height-full width-full display-flex` : + `height-full position-relative ${panelOpen ? "width-1-3" : "width-0"}`; break; case ELayoutMode.VERTICAL: sizeClass = `height-full position-relative ${panelOpen ? "width-1-2" : "width-0"}`; @@ -197,6 +359,15 @@ export class CrowdsourceManager { return sizeClass; } + /** + * Get the css selector names to use for the table based on the current layout + * + * @param layoutMode ELayoutMode the current layout mode + * @param panelOpen boolean indicates if all panels are open + * + * @returns the css selectors + * @protected + */ protected _getTableSizeClass( layoutMode: ELayoutMode, panelOpen: boolean @@ -207,7 +378,9 @@ export class CrowdsourceManager { sizeClass = `${panelOpen ? "height-1-2" : "height-full"} width-full display-flex flex-column`; break; case ELayoutMode.GRID: - sizeClass = `${panelOpen ? "width-2-3" : "width-full"} height-full display-flex`; + sizeClass = this.classicGrid ? + `${panelOpen ? "height-full" : "height-53"} position-relative width-full display-flex` : + `${panelOpen ? "width-2-3" : "width-full"} height-full display-flex`; break; case ELayoutMode.VERTICAL: sizeClass = `${panelOpen ? "width-1-2" : "width-full"} height-full display-flex`; @@ -216,35 +389,189 @@ export class CrowdsourceManager { return sizeClass; } + /** + * Get the table and map nodes based for the current layout + * + * @param layoutMode ELayoutMode the current layout mode + * @param panelOpen boolean indicates if all panels are open + * @param hideMap when true no map is displayed + * + * @returns the parent node that contains the table and map + * @protected + */ protected _getBody( layoutMode: ELayoutMode, - panelOpen: boolean + panelOpen: boolean, + hideMap: boolean ): VNode { - const displayFlex = layoutMode === ELayoutMode.HORIZONTAL ? "" : "display-flex"; - return ( - -
- {this._getMap(layoutMode, panelOpen)} + const contentClass = this.classicGrid && layoutMode === ELayoutMode.GRID && panelOpen ? "display-grid" : + layoutMode === ELayoutMode.HORIZONTAL ? "" : "display-flex"; + return this.classicGrid ? ( + +
{this._getTable(layoutMode, panelOpen)} + {this._getMapAndCard(layoutMode, panelOpen, hideMap)}
- +
+ ) : ( + +
+ {this._getMapAndCard(layoutMode, panelOpen, hideMap)} + {this._getTable(layoutMode, panelOpen)} +
+
); } - protected _getMap( + /** + * Get the map and card nodes based for the current layout options + * + * @param layoutMode ELayoutMode the current layout mode + * @param panelOpen boolean indicates if all panels are open + * @param hideMap when true no map is displayed + * + * @returns the map node + * @protected + */ + protected _getMapAndCard( layoutMode: ELayoutMode, - panelOpen: boolean + panelOpen: boolean, + hideMap: boolean ): VNode { const mapSizeClass = this._getMapSizeClass(layoutMode, panelOpen); - return ( + return this.classicGrid ? (
-
- -
+ {this._getCardNode()} + {this._getMapNode(layoutMode, hideMap)} +
+ ) : ( +
+ {this._getMapNode(layoutMode, hideMap)} + {this._getPopupExpandNode()} +
+ ); + } + + /** + * Get the map node based for the current layout options + * + * @param layoutMode ELayoutMode the current layout mode + * @param hideMap when true no map is displayed + * + * @returns the map node + * @protected + */ + protected _getMapNode( + layoutMode: ELayoutMode, + hideMap: boolean + ): VNode { + const mapDisplayClass = this.classicGrid && layoutMode === ELayoutMode.GRID ? "display-flex height-full width-1-2" : + layoutMode === ELayoutMode.GRID && !hideMap ? "" : "display-none"; + const mapContainerClass = this.classicGrid && layoutMode === ELayoutMode.GRID ? "width-full" : "adjusted-height-50"; + return ( +
+
+ ); + } + + /** + * Get the expand node for the popup information + * + * @returns the expand node + * @protected + */ + protected _getPopupExpandNode(): VNode { + const icon = this._expandPopup ? "chevrons-down" : "chevrons-up"; + const id = "expand-popup"; + const tooltip = this._expandPopup ? this._translations.collapsePopup : this._translations.expandPopup; + const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light"; + const popupNodeClass = !this._expandPopup ? "height-full" : "position-absolute-50"; + return ( +
+ +
+ +
+ {this._translations.information} +
+
+ this._togglePopup()} + slot="header-actions-end" + /> + + {tooltip} + + {this._getCardNode()} +
); } + /** + * Toggle the popup information + * + * @protected + */ + protected _togglePopup(): void { + this._expandPopup = !this._expandPopup; + } + + /** + * Get the card node based for the current layout options + * + * @param layoutMode ELayoutMode the current layout mode + * @param hideMap when true no map is displayed + * + * @returns the map node + * @protected + */ + protected _getCardNode(): VNode { + const cardManagerHeight = !this._expandPopup ? "height-50" : "height-full"; + const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light"; + return ( +
+ +
+ ); + } + + /** + * Get the table node based for the current layout + * + * @param layoutMode ELayoutMode the current layout mode + * @param panelOpen boolean indicates if all panels are open + * + * @returns the table node + * @protected + */ protected _getTable( layoutMode: ELayoutMode, panelOpen: boolean @@ -253,40 +580,109 @@ export class CrowdsourceManager { const icon = this._getDividerIcon(layoutMode, panelOpen); const tooltip = panelOpen ? this._translations.close : this._translations.open; const id = "toggle-layout"; - const toggleSizeClass = layoutMode === ELayoutMode.HORIZONTAL ? "divider-h" : "divider-w"; + const toggleLayout = layoutMode === ELayoutMode.HORIZONTAL || this.classicGrid ? "horizontal" : "vertical"; + const toggleSlot = this.classicGrid && layoutMode !== ELayoutMode.VERTICAL ? "footer" : + this.classicGrid && layoutMode === ELayoutMode.VERTICAL ? "panel-end" : + layoutMode === ELayoutMode.HORIZONTAL ? "header" : "panel-start"; return ( -
-
-
- this._toggleLayout()} - text="" - /> - - {tooltip} - -
-
-
- + + + this._toggleLayout()} + text="" + /> + + {tooltip} + + +
+
-
+ ); } - protected _setLayoutMode( - layoutMode: ELayoutMode - ): void { - this._layoutMode = layoutMode; - } - + /** + * Open/Close the appropriate panel. + * The panel that is toggled is dependent upon the layout mode and if using classic grid or not + * + * @returns void + * @protected + */ protected _toggleLayout(): void { this._panelOpen = !this._panelOpen; } + /** + * Get the current map info (configuration details) when maps change + * + * @returns IMapInfo for the provided id + * @protected + */ + protected _getMapInfo( + id: string + ): IMapInfo { + let mapInfo: IMapInfo; + this.mapInfos.some(mi => { + if (mi.id === id) { + mapInfo = mi; + return true; + } + }) + return mapInfo; + } + + /** + * Set the current map info when maps change + * + * @protected + */ + protected _setMapView(): void { + this._mapInfo = this._getMapInfo(this._mapChange.id); + this._mapView = this._mapChange.mapView; + this._initMapZoom(); + this._mapView.popupEnabled = false; + } + + /** + * Add/remove zoom tools based on enableZoom prop + * + * @protected + */ + protected _initMapZoom(): void { + if (!this.enableZoom) { + this._mapView.ui.remove("zoom"); + } else if (this.enableZoom) { + this._mapView.ui.add({ + component: "zoom", + position: "top-left", + index: 0 + }); + } + } + /** * Fetches the component's translations * diff --git a/src/components/crowdsource-manager/readme.md b/src/components/crowdsource-manager/readme.md index 00b014732..0d4420480 100644 --- a/src/components/crowdsource-manager/readme.md +++ b/src/components/crowdsource-manager/readme.md @@ -7,30 +7,54 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ---------- | --------- | -------------------------------------------- | ------------ | ------- | -| `mapInfos` | -- | IMapInfo[]: array of map infos (name and id) | `IMapInfo[]` | `[]` | +| Property | Attribute | Description | Type | Default | +| ------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------- | ----------- | +| `basemapConfig` | -- | IBasemapConfig: List of any basemaps to filter out from the basemap widget | `IBasemapConfig` | `undefined` | +| `classicGrid` | `classic-grid` | boolean: when true the grid will display like the previous manager app with the table across the top | `boolean` | `false` | +| `enableAutoRefresh` | `enable-auto-refresh` | boolean: when true the layer table will auto refresh the data | `boolean` | `false` | +| `enableBasemap` | `enable-basemap` | boolean: when true the basemap widget will be available | `boolean` | `true` | +| `enableCSV` | `enable-c-s-v` | boolean: when true the export to csv button will be available | `boolean` | `true` | +| `enableFloorFilter` | `enable-floor-filter` | boolean: when true the fullscreen widget will be available | `boolean` | `true` | +| `enableFullscreen` | `enable-fullscreen` | boolean: when true the fullscreen widget will be available | `boolean` | `true` | +| `enableHome` | `enable-home` | boolean: when true the home widget will be available | `boolean` | `true` | +| `enableInlineEdit` | `enable-inline-edit` | boolean: when true edits can be applied directly within the table | `boolean` | `false` | +| `enableLegend` | `enable-legend` | boolean: when true the legend widget will be available | `boolean` | `true` | +| `enableSearch` | `enable-search` | boolean: when true the search widget will be available | `boolean` | `true` | +| `enableZoom` | `enable-zoom` | boolean: when true the zoom widget will be available | `boolean` | `true` | +| `hideMap` | `hide-map` | boolean: when true no map is displayed for the app | `boolean` | `false` | +| `mapInfos` | -- | IMapInfo[]: array of map infos (name and id) | `IMapInfo[]` | `[]` | +| `onlyShowUpdatableLayers` | `only-show-updatable-layers` | boolean: When true only editable layers that support the update capability will be available | `boolean` | `true` | +| `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | +| `showNewestFirst` | `show-newest-first` | boolean: when true the table will be sorted by objectid in descending order by default | `boolean` | `true` | +| `theme` | `theme` | theme: "light" \| "dark" theme to be used | `"dark" \| "light"` | `"light"` | +| `zoomAndScrollToSelected` | `zoom-and-scroll-to-selected` | boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table | `boolean` | `false` | ## Dependencies ### Depends on +- calcite-shell - calcite-panel +- [map-card](../map-card) +- calcite-icon - calcite-action - calcite-tooltip -- calcite-shell -- [map-card](../map-card) +- [card-manager](../card-manager) +- calcite-action-bar - [layer-table](../layer-table) ### Graph ```mermaid graph TD; + crowdsource-manager --> calcite-shell crowdsource-manager --> calcite-panel + crowdsource-manager --> map-card + crowdsource-manager --> calcite-icon crowdsource-manager --> calcite-action crowdsource-manager --> calcite-tooltip - crowdsource-manager --> calcite-shell - crowdsource-manager --> map-card + crowdsource-manager --> card-manager + crowdsource-manager --> calcite-action-bar crowdsource-manager --> layer-table calcite-panel --> calcite-action calcite-panel --> calcite-action-menu @@ -42,54 +66,81 @@ graph TD; calcite-popover --> calcite-action calcite-popover --> calcite-icon calcite-scrim --> calcite-loader - map-card --> calcite-action-bar - map-card --> calcite-action-group - map-card --> calcite-action - map-card --> calcite-icon - map-card --> calcite-tooltip - map-card --> calcite-block - map-card --> calcite-pick-list - map-card --> calcite-pick-list-item + map-card --> map-picker + map-card --> map-tools + map-picker --> calcite-button + map-picker --> calcite-tooltip + map-picker --> calcite-action-bar + map-picker --> calcite-list + map-picker --> calcite-list-item + calcite-button --> calcite-loader + calcite-button --> calcite-icon calcite-action-bar --> calcite-action-group calcite-action-group --> calcite-action-menu calcite-action-group --> calcite-action - calcite-block --> calcite-scrim - calcite-block --> calcite-icon - calcite-block --> calcite-handle - calcite-block --> calcite-loader - calcite-block --> calcite-action-menu + calcite-list --> calcite-scrim + calcite-list --> calcite-stack + calcite-list --> calcite-filter + calcite-filter --> calcite-input + calcite-input --> calcite-progress + calcite-input --> calcite-icon + calcite-list-item --> calcite-icon + calcite-list-item --> calcite-handle + calcite-list-item --> calcite-action calcite-handle --> calcite-icon - calcite-pick-list-item --> calcite-icon - calcite-pick-list-item --> calcite-action + map-tools --> basemap-gallery + map-tools --> map-search + map-tools --> map-legend + map-tools --> map-fullscreen + map-tools --> floor-filter + map-tools --> calcite-action + map-tools --> calcite-icon + map-tools --> calcite-tooltip + card-manager --> calcite-shell + card-manager --> info-card + card-manager --> calcite-notice + info-card --> calcite-shell + info-card --> calcite-loader + info-card --> calcite-button + info-card --> calcite-tooltip + info-card --> edit-card + info-card --> calcite-alert + edit-card --> calcite-notice + edit-card --> calcite-loader + calcite-notice --> calcite-icon + calcite-alert --> calcite-icon + calcite-alert --> calcite-chip + calcite-chip --> calcite-icon + layer-table --> calcite-shell layer-table --> calcite-panel - layer-table --> edit-record-modal + layer-table --> calcite-loader + layer-table --> calcite-action-bar layer-table --> map-layer-picker + layer-table --> calcite-dropdown + layer-table --> calcite-action layer-table --> calcite-button - layer-table --> calcite-split-button layer-table --> calcite-dropdown-group layer-table --> calcite-dropdown-item - edit-record-modal --> calcite-modal - edit-record-modal --> calcite-label - edit-record-modal --> calcite-button - edit-record-modal --> calcite-input - calcite-modal --> calcite-scrim - calcite-modal --> calcite-icon - calcite-button --> calcite-loader - calcite-button --> calcite-icon - calcite-input --> calcite-progress - calcite-input --> calcite-icon + layer-table --> calcite-tooltip + layer-table --> calcite-modal + map-layer-picker --> calcite-tooltip + map-layer-picker --> calcite-notice map-layer-picker --> calcite-select map-layer-picker --> calcite-combobox + map-layer-picker --> calcite-dropdown + map-layer-picker --> calcite-action + map-layer-picker --> calcite-button + map-layer-picker --> calcite-dropdown-group map-layer-picker --> calcite-combobox-item map-layer-picker --> calcite-option + map-layer-picker --> calcite-dropdown-item calcite-select --> calcite-icon calcite-combobox --> calcite-chip calcite-combobox --> calcite-icon - calcite-chip --> calcite-icon calcite-combobox-item --> calcite-icon - calcite-split-button --> calcite-button - calcite-split-button --> calcite-dropdown calcite-dropdown-item --> calcite-icon + calcite-modal --> calcite-scrim + calcite-modal --> calcite-icon style crowdsource-manager fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/crowdsource-reporter/crowdsource-reporter.tsx b/src/components/crowdsource-reporter/crowdsource-reporter.tsx index ef896fdde..fdc8349c3 100644 --- a/src/components/crowdsource-reporter/crowdsource-reporter.tsx +++ b/src/components/crowdsource-reporter/crowdsource-reporter.tsx @@ -14,11 +14,11 @@ * limitations under the License. */ -import { Component, Element, Host, h } from '@stencil/core'; +import { Component, Element, Host, h } from "@stencil/core"; @Component({ - tag: 'crowdsource-reporter', - styleUrl: 'crowdsource-reporter.css', + tag: "crowdsource-reporter", + styleUrl: "crowdsource-reporter.css", shadow: true, }) export class CrowdsourceReporter { diff --git a/src/components/deduct-calculator/deduct-calculator.tsx b/src/components/deduct-calculator/deduct-calculator.tsx index 4a0146381..a12a1177b 100644 --- a/src/components/deduct-calculator/deduct-calculator.tsx +++ b/src/components/deduct-calculator/deduct-calculator.tsx @@ -20,12 +20,12 @@ // It has been requested that we have a simple way to demo and test the functionality. // I am putting here now just to keep together with other current work. -import { Component, Element, Event, EventEmitter, Host, h, VNode } from '@stencil/core'; -import { calculateDeductValue, EDistressType, ESeverity } from '../../utils/pciUtils'; +import { Component, Element, Event, EventEmitter, Host, h, VNode } from "@stencil/core"; +import { calculateDeductValue, EDistressType, ESeverity } from "../../utils/pciUtils"; @Component({ - tag: 'deduct-calculator', - styleUrl: 'deduct-calculator.css', + tag: "deduct-calculator", + styleUrl: "deduct-calculator.css", shadow: true, }) export class DeductCalculator { @@ -151,7 +151,7 @@ export class DeductCalculator { max={100} min={0} ref={(el) => { this._densityElement = el }} - type='number' + type="number" /> ); } @@ -166,7 +166,7 @@ export class DeductCalculator { */ protected _getTypeInput(): VNode { return ( - { this._typeElement = el }}> + { this._typeElement = el }}> { this._types.map((t, i) => {`${t} (${i + 1})`}) } @@ -184,7 +184,7 @@ export class DeductCalculator { */ protected _getSeverityInput(): VNode { return ( - { this._severityElement = el }}> + { this._severityElement = el }}> High Medium Low diff --git a/src/components/edit-card/edit-card.css b/src/components/edit-card/edit-card.css new file mode 100644 index 000000000..40f5ee487 --- /dev/null +++ b/src/components/edit-card/edit-card.css @@ -0,0 +1,71 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:host { + display: block; +} + +.padding-bottom-1 { + padding-bottom: 1rem; +} + +.font-bold { + font-weight: var(--calcite-font-weight-bold); +} + +.font-500 { + font-weight: var(--calcite-font-weight-medium); +} + +.font-italic { + font-style: italic; +} + +#feature-form { + --calcite-ui-background: none; + padding-top: 0px; +} + +.padding-sides-bottom-1 { + padding: 0 1rem 1rem 1rem; +} + +.position-relative { + position: relative; +} + +.esri-editor__prompt--danger { + position: relative !important; + width: 100% !important; + background-color: var(--calcite-ui-foreground-1) !important; +} + +.esri-feature__content-node { + background-color: var(--calcite-ui-foreground-1) !important; +} + +.esri-editor__panel-toolbar { + display: none !important; +} + +.position-absolute { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: auto; +} diff --git a/src/components/edit-card/edit-card.tsx b/src/components/edit-card/edit-card.tsx new file mode 100644 index 000000000..f65543cf7 --- /dev/null +++ b/src/components/edit-card/edit-card.tsx @@ -0,0 +1,413 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, Element, Event, EventEmitter, Host, h, Listen, Prop, State, Watch } from "@stencil/core"; +import { loadModules } from "../../utils/loadModules"; +import EditCard_T9n from "../../assets/t9n/edit-card/resources.json" +import { getLocaleComponentStrings } from "../../utils/locale"; +import { getAllLayers } from "../../utils/mapViewUtils"; + +@Component({ + tag: 'edit-card', + styleUrl: 'edit-card.css', + shadow: false, +}) +export class EditCard { + //-------------------------------------------------------------------------- + // + // Host element access + // + //-------------------------------------------------------------------------- + @Element() el: HTMLEditCardElement; + + //-------------------------------------------------------------------------- + // + // Properties (public) + // + //-------------------------------------------------------------------------- + + /** + * esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html + */ + @Prop({mutable: true}) graphics: __esri.Graphic[]; + + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + + /** + * When true the component is displayed + */ + @Prop({ mutable: true }) open = false; + + /** + * The index of the current graphic + */ + @Prop() graphicIndex = 0; + + //-------------------------------------------------------------------------- + // + // State (internal) + // + //-------------------------------------------------------------------------- + + /** + * boolean: When true a loading indicator will be shown while the editor loads + */ + @State() _editorLoading = false; + + /** + * Contains the translations for this component. + * All UI strings should be defined here. + */ + @State() _translations: typeof EditCard_T9n; + + //-------------------------------------------------------------------------- + // + // Properties (protected) + // + //-------------------------------------------------------------------------- + + /** + * esri/core/Accessor: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Accessor.html#WatchHandle + */ + protected _activeWorkflowHandle: __esri.WatchHandle; + + /** + * esri/core/Accessor: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Accessor.html#WatchHandle + */ + protected _addRelatedRecordHandle: __esri.WatchHandle; + + /** + * esri/core/Accessor: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Accessor.html#WatchHandle + */ + protected _attachmentHandle: __esri.WatchHandle; + + /** + * esri/core/Accessor: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Accessor.html#WatchHandle + */ + protected _editHandle: __esri.WatchHandle; + + /** + * esri/core/Accessor: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Accessor.html#WatchHandle + */ + protected _layerEditHandle: __esri.WatchHandle; + + /** + * esri/widgets/Editor: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html + * The Editor constructor + */ + protected Editor: typeof import("esri/widgets/Editor"); + + /** + * esri/widgets/Editor: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html + * The Editor instance + */ + protected _editor: __esri.Editor; + + /** + * esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html + */ + protected _layer: __esri.FeatureLayer; + + /** + * HTMLDivElement: https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement + */ + protected _editContainer: HTMLDivElement; + + /** + * any[]: Collection of edit controls created in "MULTI" edit mode + * These can be calcite-input-text, calcite-input-number, calcite-input-date-picker, calcite-input-time-picker, or calcite-combobox + */ + protected _editControlElements: any[]; + + /** + * boolean: When true edit controls will be disabled + */ + protected _editingDisabled: boolean; + + /** + * boolean: When true the Editor widget should be closed + */ + protected _shouldClose = false; + + /** + * esri/core/reactiveUtils: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-reactiveUtils.html + */ + protected reactiveUtils: typeof import("esri/core/reactiveUtils"); + + //-------------------------------------------------------------------------- + // + // Watch handlers + // + //-------------------------------------------------------------------------- + + /** + * Watch for changes to the graphics and update the feature widget + */ + @Watch("graphics") + async graphicsWatchHandler(): Promise { + if (this.graphics.length === 0) { + await this._closeEdit(); + } + } + + @Watch("open") + async openWatchHandler(v: boolean): Promise { + if (v && this.graphics?.length > 0 && this.graphicIndex > -1) { + this._editorLoading = true; + await this._initEditorWidget(); + if (this.graphicIndex > -1 && this.graphics.length > 0 && this.open && !this._shouldClose) { + await this._startUpdate(); + } + this._editorLoading = false; + } + if (!v) { + await this._closeEdit(); + } + } + + //-------------------------------------------------------------------------- + // + // Methods (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Events (public) + // + //-------------------------------------------------------------------------- + + /** + * Emitted on demand when the Editor widget should be closed + */ + @Event() closeEdit: EventEmitter; + + /** + * Emitted on demand when edits are completed on current edit layer + */ + @Event() editsComplete: EventEmitter; + + @Listen("featureSelectionChange", { target: "window" }) + async featureSelectionChange(): Promise { + await this._closeEdit(); + } + + //-------------------------------------------------------------------------- + // + // Functions (lifecycle) + // + //-------------------------------------------------------------------------- + + /** + * StencilJS: Called once just after the component is first connected to the DOM. + * + * @returns Promise when complete + */ + async componentWillLoad(): Promise { + await this._initModules(); + await this._getTranslations(); + } + + /** + * Special handeling when used with layer-table. + * This allows us to only fetch graphics when the modal is opened rather than with every render of the layer-table. + * + * @returns Promise when complete + */ + async componentWillRender(): Promise { + if (this.graphics?.length > 0 && this.graphics[0]?.layer) { + this._layer = this.graphics[0].layer as __esri.FeatureLayer; + if (this._layerEditHandle) { + this._layerEditHandle.remove(); + } + this._layerEditHandle = this._layer.on("edits", () => { + this.editsComplete.emit(); + void this._closeEdit(); + }); + } + } + + /** + * Renders the component. + */ + render() { + // This is a temp workaround hopefully...this._editingDisabled should reflect the current state but does not + // when you use MULTI edit mode...is fine in SINGLE + const editDisabled = this.graphics?.length > 0 && this.graphics[0] ? + !(this.graphics[0].layer as __esri.FeatureLayer).editingEnabled : true; + const tableNodeClass = this._editorLoading ? "display-none" : "position-absolute"; + const loadingClass = this._editorLoading ? "" : "display-none"; + return ( + +
+ { + editDisabled ? ( + +
+ {this._translations.enableEditing} +
+
+ ) : undefined + } +
+
this._editContainer = el} + /> + +
+
+ + ); + } + + //-------------------------------------------------------------------------- + // + // Functions (protected) + // + //-------------------------------------------------------------------------- + + /** + * Load esri javascript api modules + * + * @returns Promise resolving when function is done + */ + protected async _initModules(): Promise { + const [Editor, reactiveUtils] = await loadModules([ + "esri/widgets/Editor", + "esri/core/reactiveUtils" + ]); + this.Editor = Editor; + this.reactiveUtils = reactiveUtils; + } + + /** + * Init the Editor widget so we can display the popup content + * + * @returns void + */ + protected async _initEditorWidget(): Promise { + if (this.mapView && this.graphics && this.graphics.length > 0 && this.graphics[0]) { + if (this._editor) { + this._editor.destroy() + } + const container = document.createElement("div"); + const layers = await getAllLayers(this.mapView) + const layerInfos = layers.map(layer => { + return { + layer, + geometryUpdatesEnabled: false + } as __esri.LayerInfo + }); + this._editor = new this.Editor({ + allowedWorkflows: "update", + view: this.mapView, + layerInfos, + visibleElements: { + snappingControls: false, + sketchTooltipControls: false + }, + container + }); + + if (this._editHandle && this._attachmentHandle && this._activeWorkflowHandle) { + this._editHandle.remove(); + this._attachmentHandle.remove(); + this._activeWorkflowHandle.remove(); + } + + this._attachmentHandle = this.reactiveUtils.when( + () => this._editor.viewModel.state === "adding-attachment" || + this._editor.viewModel.state === "editing-attachment" || + this._editor.viewModel.state === "creating-features", + () => { + this._shouldClose = false; + } + ); + + this._editHandle = this.reactiveUtils.when( + () => this._editor.viewModel.state === "ready", + () => { + if (this._shouldClose) { + void this._closeEdit(); + } else if (this.graphicIndex > -1 && this.graphics.length > 0 && this.open && !this._shouldClose) { + void this._startUpdate(); + } + } + ); + + this._activeWorkflowHandle = this.reactiveUtils.watch( + () => (this._editor.viewModel.activeWorkflow as any)?.activeWorkflow, + (activeWorkflow) => { + if (activeWorkflow?.type === "update-table-record" || activeWorkflow?.type === "create-features") { + this._shouldClose = false; + } + } + ); + + // had issues with destroy before adding like this + this._editContainer.appendChild(container); + } + } + + /** + * Close the edit widget + * + * @returns void + */ + protected async _closeEdit(): Promise { + this._shouldClose = true; + if (this._editor?.activeWorkflow) { + await this._editor?.cancelWorkflow(); + } + this._editor?.destroy(); + this._shouldClose = false; + this.closeEdit.emit(); + } + + /** + * Start the update workflow for the editor widget + * + * @returns void + */ + protected async _startUpdate(): Promise { + await this._editor.startUpdateWorkflowAtFeatureEdit(this.graphics[this.graphicIndex]); + this._shouldClose = true; + } + + /** + * Fetches the component's translations + * + * @returns Promise when complete + */ + protected async _getTranslations(): Promise { + const messages = await getLocaleComponentStrings(this.el); + this._translations = messages[0] as typeof EditCard_T9n; + } + +} diff --git a/src/components/edit-card/readme.md b/src/components/edit-card/readme.md new file mode 100644 index 000000000..65358fcb4 --- /dev/null +++ b/src/components/edit-card/readme.md @@ -0,0 +1,49 @@ +# edit-card + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| -------------- | --------------- | --------------------------------------------------------------------------------------------------------- | ----------- | ----------- | +| `graphicIndex` | `graphic-index` | The index of the current graphic | `number` | `0` | +| `graphics` | -- | esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html | `Graphic[]` | `undefined` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `open` | `open` | When true the component is displayed | `boolean` | `false` | + + +## Events + +| Event | Description | Type | +| --------------- | ---------------------------------------------------------------- | ------------------- | +| `closeEdit` | Emitted on demand when the Editor widget should be closed | `CustomEvent` | +| `editsComplete` | Emitted on demand when edits are completed on current edit layer | `CustomEvent` | + + +## Dependencies + +### Used by + + - [info-card](../info-card) + +### Depends on + +- calcite-notice +- calcite-loader + +### Graph +```mermaid +graph TD; + edit-card --> calcite-notice + edit-card --> calcite-loader + calcite-notice --> calcite-icon + info-card --> edit-card + style edit-card fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/edit-record-modal/readme.md b/src/components/edit-record-modal/readme.md deleted file mode 100644 index 88cb4e669..000000000 --- a/src/components/edit-record-modal/readme.md +++ /dev/null @@ -1,48 +0,0 @@ -# edit-record-modal - - - - - - -## Properties - -| Property | Attribute | Description | Type | Default | -| -------- | --------- | ------------------------------------ | --------- | ------- | -| `open` | `open` | When true the component is displayed | `boolean` | `false` | - - -## Dependencies - -### Used by - - - [layer-table](../layer-table) - -### Depends on - -- calcite-modal -- calcite-label -- calcite-button -- calcite-input - -### Graph -```mermaid -graph TD; - edit-record-modal --> calcite-modal - edit-record-modal --> calcite-label - edit-record-modal --> calcite-button - edit-record-modal --> calcite-input - calcite-modal --> calcite-scrim - calcite-modal --> calcite-icon - calcite-scrim --> calcite-loader - calcite-button --> calcite-loader - calcite-button --> calcite-icon - calcite-input --> calcite-progress - calcite-input --> calcite-icon - layer-table --> edit-record-modal - style edit-record-modal fill:#f9f,stroke:#333,stroke-width:4px -``` - ----------------------------------------------- - -*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/add-record-modal/add-record-modal.css b/src/components/floor-filter/floor-filter.css similarity index 76% rename from src/components/add-record-modal/add-record-modal.css rename to src/components/floor-filter/floor-filter.css index fa6f96ed8..5fb2a40a9 100644 --- a/src/components/add-record-modal/add-record-modal.css +++ b/src/components/floor-filter/floor-filter.css @@ -16,21 +16,4 @@ :host { display: block; - --calcite-label-margin-bottom: 0px; -} - -.padding-bottom-1 { - padding-bottom: 1rem; -} - -.font-bold { - font-weight: bold; -} - -.font-500 { - font-weight: 500; -} - -.display-none { - display: none; } diff --git a/src/components/comment-card/comment-card.tsx b/src/components/floor-filter/floor-filter.tsx similarity index 51% rename from src/components/comment-card/comment-card.tsx rename to src/components/floor-filter/floor-filter.tsx index 8fb0e4120..bd5cfa18b 100644 --- a/src/components/comment-card/comment-card.tsx +++ b/src/components/floor-filter/floor-filter.tsx @@ -14,20 +14,22 @@ * limitations under the License. */ -import { Component, Element, Host, h } from '@stencil/core'; +import { Component, Element, Host, h, Prop, Watch } from '@stencil/core'; +import { loadModules } from "../../utils/loadModules"; @Component({ - tag: 'comment-card', - styleUrl: 'comment-card.css', + tag: 'floor-filter', + styleUrl: 'floor-filter.css', shadow: true, }) -export class CommentCard { +export class FloorFilter { //-------------------------------------------------------------------------- // // Host element access // //-------------------------------------------------------------------------- - @Element() el: HTMLCommentCardElement; + + @Element() el: HTMLFloorFilterElement; //-------------------------------------------------------------------------- // @@ -35,6 +37,23 @@ export class CommentCard { // //-------------------------------------------------------------------------- + /** + * boolean: when true the Floor Filter widget will be available + */ + @Prop() enabled: boolean; + + /** + * esri/widgets/FloorFilter: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FloorFilter.html + * + * FloorFilter instance + */ + @Prop() floorFilterWidget: __esri.FloorFilter; + + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + //-------------------------------------------------------------------------- // // State (internal) @@ -47,12 +66,31 @@ export class CommentCard { // //-------------------------------------------------------------------------- + /** + * esri/widgets/FloorFilter: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FloorFilter.html + * + * FloorFilter constructor + */ + protected FloorFilter: typeof import("esri/widgets/FloorFilter"); + + /** + * HTMLElement: The container div for the floor filter widget + */ + protected _floorFilterElement: HTMLElement; + //-------------------------------------------------------------------------- // // Watch handlers // //-------------------------------------------------------------------------- + @Watch("mapView") + async mapViewWatchHandler(): Promise { + await this.mapView.when(() => { + this._initFloorFilter(this.mapView); + }); + } + //-------------------------------------------------------------------------- // // Methods (public) @@ -71,10 +109,17 @@ export class CommentCard { // //-------------------------------------------------------------------------- + /** + * StencilJS: Called once just after the component is first connected to the DOM. + */ + async componentWillLoad(): Promise { + return this._initModules(); + } + render() { return ( - +
{ this._floorFilterElement = el }} /> ); } @@ -86,14 +131,38 @@ export class CommentCard { //-------------------------------------------------------------------------- /** - * Fetches the component's translations + * Load esri javascript api modules + * + * @returns Promise resolving when function is done * - * @returns Promise when complete * @protected */ - protected async _getTranslations(): Promise { - // const messages = await getLocaleComponentStrings(this.el); - // this._translations = messages[0] as typeof BufferTools_T9n; + protected async _initModules(): Promise { + const [FloorFilter] = await loadModules([ + "esri/widgets/FloorFilter" + ]); + this.FloorFilter = FloorFilter; } + /** + * Initialize the floor filter or reset the current view if it already exists + * + * @returns void + * + * @protected + */ + protected _initFloorFilter( + view: __esri.MapView + ): void { + if (view && this.enabled && this.FloorFilter && (view?.map as any)?.floorInfo) { + if (!this.floorFilterWidget) { + this.floorFilterWidget = new this.FloorFilter({ + container: this._floorFilterElement, + view + }); + } else { + this.floorFilterWidget.view = view; + } + } + } } diff --git a/src/components/floor-filter/readme.md b/src/components/floor-filter/readme.md new file mode 100644 index 000000000..be5673eca --- /dev/null +++ b/src/components/floor-filter/readme.md @@ -0,0 +1,32 @@ +# floor-filter + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ----------- | +| `enabled` | `enabled` | boolean: when true the Floor Filter widget will be available | `boolean` | `undefined` | +| `floorFilterWidget` | -- | esri/widgets/FloorFilter: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FloorFilter.html FloorFilter instance | `FloorFilter` | `undefined` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | + + +## Dependencies + +### Used by + + - [map-tools](../map-tools) + +### Graph +```mermaid +graph TD; + map-tools --> floor-filter + style floor-filter fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/info-card/info-card.css b/src/components/info-card/info-card.css index 23e46c8d1..0ca048d9e 100644 --- a/src/components/info-card/info-card.css +++ b/src/components/info-card/info-card.css @@ -38,6 +38,10 @@ tr:nth-child(odd) { border-bottom: 1px solid var(--calcite-ui-border-1); } +.padding-1-2 { + padding: 0.5rem; +} + .padding-top-1-2 { padding-top: 0.5rem; } @@ -45,3 +49,47 @@ tr:nth-child(odd) { .font-color-3 { color: var(--calcite-ui-text-3); } + +.display-none { + display: none !important; +} + +.display-flex { + display: flex; +} + +.position-absolute { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: auto; +} + +.esri-features__footer { + display: none !important; +} + +.button-container { + justify-content: space-between; + align-items: center; +} + +.top-border { + border-top: 1px solid var(--calcite-ui-border-1); +} + +.min-width-100 { + min-width: 100px; +} + +.width-100 { + width: 100%; +} + +.esri-features__container { + padding: 0.5rem !important; + background-color: var(--calcite-ui-foreground-1) !important; + height: 100% !important; +} diff --git a/src/components/info-card/info-card.tsx b/src/components/info-card/info-card.tsx index 86cf2378d..39b2c8419 100644 --- a/src/components/info-card/info-card.tsx +++ b/src/components/info-card/info-card.tsx @@ -14,13 +14,15 @@ * limitations under the License. */ -import { Component, Element, Host, h, Prop, VNode } from '@stencil/core'; -import { IInfoCardValues } from '../../utils/interfaces'; +import { Component, Element, Event, EventEmitter, Host, h, Listen, Method, Prop, State, Watch } from "@stencil/core"; +import InfoCard_T9n from "../../assets/t9n/info-card/resources.json"; +import { getLocaleComponentStrings } from "../../utils/locale"; +import { loadModules } from "../../utils/loadModules"; @Component({ - tag: 'info-card', - styleUrl: 'info-card.css', - shadow: true, + tag: "info-card", + styleUrl: "info-card.css", + shadow: false, }) export class InfoCard { //-------------------------------------------------------------------------- @@ -38,14 +40,24 @@ export class InfoCard { //-------------------------------------------------------------------------- /** - * string: the components title + * esri/Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html */ - @Prop() cardTitle = ""; + @Prop() graphics: __esri.Graphic[]; /** - * IInfoCardValues: key value pairs to show in the components table + * boolean: when true a loading indicator will be shown */ - @Prop() values: IInfoCardValues = {}; + @Prop() isLoading = false; + + /** + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + @Prop() zoomAndScrollToSelected: boolean; //-------------------------------------------------------------------------- // @@ -53,54 +65,235 @@ export class InfoCard { // //-------------------------------------------------------------------------- + /** + * boolean: When true a alert will be shown to indicate a problem or confirm the current action + */ + @State() _alertOpen = false; + + /** + * string: Current index of total string + * This value is not displayed but will force a render if it changes + */ + @State() _count = ""; + + /** + * When true the add record modal will be displayed + */ + @State() _editRecordOpen = false; + + /** + * Contains the translations for this component. + * All UI strings should be defined here. + */ + @State() _translations: typeof InfoCard_T9n; + //-------------------------------------------------------------------------- // // Properties (protected) // //-------------------------------------------------------------------------- + /** + * esri/widgets/Feature: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Feature.html + * used for module import + */ + protected Features: typeof import("esri/widgets/Features"); + + /** + * boolean: When false alerts will be shown to indicate that the layer must have editing enabled for edit actions + */ + protected _editEnabled: boolean; + + /** + * esri/widgets/Feature: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Feature.html + * used for widget instance + */ + protected _features: __esri.Features; + + /** + * esri/core/reactiveUtils: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-reactiveUtils.html + */ + protected reactiveUtils: typeof import("esri/core/reactiveUtils"); + //-------------------------------------------------------------------------- // // Watch handlers // //-------------------------------------------------------------------------- + /** + * Watch for changes to the graphic and update the feature widget + */ + @Watch("graphics") + async graphicsWatchHandler(): Promise { + if (!this._features) { + await this._initFeaturesWidget(); + } + if (this.graphics.length > 0) { + const featureLayer = (this.graphics[0]?.layer as __esri.FeatureLayer); + this._editEnabled = featureLayer.editingEnabled && featureLayer.capabilities.operations.supportsUpdate; + this._features.open({ + features: this.graphics + }); + } else { + this._features.clear(); + this._features.close(); + } + } + + /** + * Watch for changes to the mapView and re-init the Feature widget + */ + @Watch("mapView") + async mapViewWatchHandler(): Promise { + return await this._initFeaturesWidget(); + } + //-------------------------------------------------------------------------- // // Methods (public) // //-------------------------------------------------------------------------- + /** + * Get the current selected feature from the Features widget + * + * @returns Promise resolving with the current feature + */ + @Method() + async getSelectedFeature(): Promise { + return this._features.selectedFeature; + } + //-------------------------------------------------------------------------- // // Events (public) // //-------------------------------------------------------------------------- + /** + * Emitted on demand when the selected index changes + */ + @Event() selectionChanged: EventEmitter<__esri.Graphic>; + + /** + * Respond to and close the edit record display + * + * @returns a promise when the operation has completed + */ + @Listen("closeEdit", { target: "window" }) + async closeEdit(): Promise { + this._editRecordOpen = false; + } + //-------------------------------------------------------------------------- // // Functions (lifecycle) // //-------------------------------------------------------------------------- + /** + * StencilJS: Called once just after the component is first connected to the DOM. + * + * @returns Promise when complete + */ + async componentWillLoad(): Promise { + await this._initModules(); + await this._getTranslations(); + } + /** * Renders the component. */ render() { + const loadingClass = this.isLoading ? "" : "display-none"; + const featureNodeClass = this.isLoading || this._editRecordOpen ? "display-none" : "position-absolute"; + const editClass = !this.isLoading && this._editRecordOpen ? "position-absolute" : "display-none"; + const editButtonClass = !this.isLoading && this._editRecordOpen ? "display-none" : ""; + const nextBackDisabled = this._features?.features?.length < 2; return ( -
-
- {this.cardTitle} -
-
- - - {this._getRows()} - -
+ + +
+
+
+ this._openEditRecord()} + width="full" + > + {this._translations.edit} + + + {this._translations.edit} + +
+
+
+ this._back()} + width="full" + > + {this._translations.back} + + + {this._translations.back} + +
+
+ {this._getCount()} +
+
+ this._next()} + width="full" + > + {this._translations.next} + + + {this._translations.next} + +
+
-
+ + this._alertClosed()} + open={this._alertOpen} + placement="top" + > +
+ {this._translations.editDisabled} +
+
+ {this._translations.enableEditing} +
+
+
); } @@ -112,27 +305,127 @@ export class InfoCard { //-------------------------------------------------------------------------- /** - * Render the user defined values as table rows + * Load esri javascript api modules + * + * @returns Promise resolving when function is done + * + * @protected + */ + protected async _initModules(): Promise { + const [Features, reactiveUtils] = await loadModules([ + "esri/widgets/Features", + "esri/core/reactiveUtils" + ]); + this.Features = Features; + this.reactiveUtils = reactiveUtils; + } + + /** + * Init the Feature widget so we can display the popup content + * + * @returns a promise when the operation has completed + * + * @protected + */ + protected async _initFeaturesWidget(): Promise { + return await this.mapView.when(() => { + if (!this._features) { + this._features = new this.Features({ + view: this.mapView, + container: "features-node", + visibleElements: { + actionBar: false, + closeButton: false, + heading: true + } + }); + if (this.zoomAndScrollToSelected) { + this.reactiveUtils.watch( + () => this._features.selectedFeatureIndex, + (i) => { + if (i > -1) { + this.selectionChanged.emit(this._features.selectedFeature); + } + }); + } + } else { + this._features.view = this.mapView; + } + }); + } + + /** + * Set the alertOpen member to false when the alert is closed + * + * @returns void + */ + protected _alertClosed(): void { + this._alertOpen = false; + } + + /** + * Close the edit record + * + * @returns void + */ + protected _editRecordClosed(): void { + this._editRecordOpen = false; + } + + /** + * Open the edit record + * + * @returns void + */ + protected _openEditRecord(): void { + if (this._editEnabled) { + this._editRecordOpen = true; + } else { + this._alertOpen = true; + } + } + + /** + * Go to the previous feature in the features widget + * + * @returns void + */ + protected _back(): void { + this._features.previous(); + this._count = this._getCount(); + } + + /** + * Go to the next feature in the features widget + * + * @returns void + */ + protected _next(): void { + this._features.next(); + this._count = this._getCount(); + } + + /** + * Get the current index of total string + * + * @returns the index of total string + */ + protected _getCount(): string { + const index = (this._features?.viewModel.selectedFeatureIndex + 1).toString(); + const total = this._features?.features?.length.toString(); + return this._translations.indexOfTotal + .replace("{{index}}", index) + .replace("{{total}}", total); + } + + /** + * Fetches the component's translations * - * @returns array of row nodes + * @returns Promise when complete * @protected */ - protected _getRows(): VNode[] { - return Object.keys(this.values).map(k => { - return ( - - - - {k} - - - - - {this.values[k]} - - - - ); - }) + protected async _getTranslations(): Promise { + const messages = await getLocaleComponentStrings(this.el); + this._translations = messages[0] as typeof InfoCard_T9n; } } diff --git a/src/components/info-card/readme.md b/src/components/info-card/readme.md index 9012d6115..1c9ffa0fa 100644 --- a/src/components/info-card/readme.md +++ b/src/components/info-card/readme.md @@ -7,10 +7,32 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ----------- | ------------ | ---------------------------------------------------------------- | ----------------- | ------- | -| `cardTitle` | `card-title` | string: the components title | `string` | `""` | -| `values` | -- | IInfoCardValues: key value pairs to show in the components table | `IInfoCardValues` | `{}` | +| Property | Attribute | Description | Type | Default | +| ------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------- | ----------- | +| `graphics` | -- | esri/Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html | `Graphic[]` | `undefined` | +| `isLoading` | `is-loading` | boolean: when true a loading indicator will be shown | `boolean` | `false` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `zoomAndScrollToSelected` | `zoom-and-scroll-to-selected` | boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table | `boolean` | `undefined` | + + +## Events + +| Event | Description | Type | +| ------------------ | ------------------------------------------------- | ---------------------- | +| `selectionChanged` | Emitted on demand when the selected index changes | `CustomEvent` | + + +## Methods + +### `getSelectedFeature() => Promise` + +Get the current selected feature from the Features widget + +#### Returns + +Type: `Promise` + +Promise resolving with the current feature ## Dependencies @@ -21,12 +43,30 @@ ### Depends on -- calcite-label +- calcite-shell +- calcite-loader +- calcite-button +- calcite-tooltip +- [edit-card](../edit-card) +- calcite-alert ### Graph ```mermaid graph TD; - info-card --> calcite-label + info-card --> calcite-shell + info-card --> calcite-loader + info-card --> calcite-button + info-card --> calcite-tooltip + info-card --> edit-card + info-card --> calcite-alert + calcite-button --> calcite-loader + calcite-button --> calcite-icon + edit-card --> calcite-notice + edit-card --> calcite-loader + calcite-notice --> calcite-icon + calcite-alert --> calcite-icon + calcite-alert --> calcite-chip + calcite-chip --> calcite-icon card-manager --> info-card style info-card fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/layer-table/layer-table.css b/src/components/layer-table/layer-table.css index 14ed9a931..ef4ca747d 100644 --- a/src/components/layer-table/layer-table.css +++ b/src/components/layer-table/layer-table.css @@ -18,8 +18,16 @@ display: block; } -.table-div { - height: calc(100% - 35px); +.height-full { + height: 100%; +} + +.height-full-adjusted { + height: calc(100% - 20px); +} + +.width-full { + width: 100%; } .display-flex { @@ -29,3 +37,66 @@ .table-border { border: 1px solid var(--calcite-ui-border-2); } + +.border-end { + border-inline-end: 1px solid var(--calcite-ui-border-2); +} + +.border-bottom { + border-bottom: 1px solid var(--calcite-ui-border-2); +} + +.padding-5 { + padding: 5px; +} + +.padding-end-1 { + padding-inline-end: 1rem; +} + +.height-51 { + height: 51px; +} + +.bottom-left { + position: absolute; + left: 0; + bottom: 0; + padding-left: 5px; +} + +html[dir="rtl"] .bottom-left { + position: absolute; + right: 0; + bottom: 0; + padding-right: 5px; +} + +.height-19 { + height: 19px; +} + +.background { + background-color: var(--calcite-ui-background); +} + +.text-color { + color: var(--calcite-ui-text-1); +} + +.align-center { + align-items: center; +} + +.danger-color { + color: var(--calcite-ui-danger); +} + +.esri-feature-table vaadin-grid { + border: none !important; +} + +vaadin-grid-cell-content { + padding: var(--lumo-space-xs) var(--lumo-space-m) !important; + font-size: 14px !important; +} diff --git a/src/components/layer-table/layer-table.tsx b/src/components/layer-table/layer-table.tsx index 3a597b74b..a1b7a22f4 100644 --- a/src/components/layer-table/layer-table.tsx +++ b/src/components/layer-table/layer-table.tsx @@ -14,18 +14,18 @@ * limitations under the License. */ -import { Component, Element, Host, h, Prop, State, VNode, Watch } from '@stencil/core'; +import { Component, Element, Event, EventEmitter, Host, h, Listen, Prop, State, VNode, Watch } from "@stencil/core"; import LayerTable_T9n from "../../assets/t9n/layer-table/resources.json"; import { loadModules } from "../../utils/loadModules"; import { getLocaleComponentStrings } from "../../utils/locale"; -import { getMapLayerView, goToSelection, getMapLayerIds } from "../../utils/mapViewUtils"; -import { queryAllFeatures } from "../../utils/queryUtils"; +import { getLayerOrTable, goToSelection } from "../../utils/mapViewUtils"; +import { queryAllIds } from "../../utils/queryUtils"; import * as downloadUtils from "../../utils/downloadUtils"; -import { IExportInfos } from "../../utils/interfaces"; +import { IExportInfos, ILayerInfo, IMapClick, IMapInfo, IToolInfo, IToolSizeInfo } from "../../utils/interfaces"; @Component({ - tag: 'layer-table', - styleUrl: 'layer-table.css', + tag: "layer-table", + styleUrl: "layer-table.css", shadow: false, // FeatureTable styles don't load in shadow dom }) export class LayerTable { @@ -42,11 +42,51 @@ export class LayerTable { // //-------------------------------------------------------------------------- + /** + * boolean: when true the layer table will auto refresh the data + */ + @Prop() enableAutoRefresh: boolean; + + /** + * boolean: when true the export to csv button will be available + */ + @Prop() enableCSV: boolean; + + /** + * boolean: when true edits can be applied directly within the table + */ + @Prop() enableInlineEdit: boolean; + + /** + * boolean: when true the zoom button will be enabled + */ + @Prop() enableZoom: boolean; + + /** + * IMapInfo: key configuration details about the current map + */ + @Prop() mapInfo: IMapInfo; + /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @Prop() mapView: __esri.MapView; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + @Prop() onlyShowUpdatableLayers: boolean; + + /** + * boolean: when true the table will be sorted by objectid in descending order by default + */ + @Prop() showNewestFirst: boolean; + + /** + * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table + */ + @Prop() zoomAndScrollToSelected: boolean; + //-------------------------------------------------------------------------- // // State (internal) @@ -54,15 +94,45 @@ export class LayerTable { //-------------------------------------------------------------------------- /** - * esri/views/layers/FeatureLayerView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-FeatureLayerView.html + * boolean: When true the user will be asked to confirm the delete operation + */ + @State() _confirmDelete = false; + + /** + * IToolSizeInfo[]: The controls that currently fit based on toolbar size + */ + @State() _controlsThatFit: IToolSizeInfo[]; + + /** + * boolean: When true a loading indicator will be shown in place of the layer table + */ + @State() _fetchingData = false; + + /** + * boolean: When true a loading indicator will be shown in the delete button */ - @State() _layerView: __esri.FeatureLayerView; + @State() _isDeleting = false; /** - * A list of indexes that are currently selected + * esri/views/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html + */ + @State() _layer: __esri.FeatureLayer; + + /** + * number[]: A list of indexes that are currently selected */ @State() _selectedIndexes: number[] = []; + /** + * boolean: When true only selected records will be shown in the table + */ + @State() _showOnlySelected = false; + + /** + * boolean: When true the user has defined a sort order that should override the default order + */ + @State() _sortActive = false; + /** * Contains the translations for this component. * All UI strings should be defined here. @@ -81,19 +151,39 @@ export class LayerTable { protected FeatureTable: typeof import("esri/widgets/FeatureTable"); /** - * HTMLEditRecordModalElement: Modal used to edit multiple records + * number[]: A list of all IDs for the current layer + */ + protected _allIds: number[] = []; + + /** + * boolean: When false alerts will be shown to indicate that the layer must have editing enabled for edit actions + */ + protected _editEnabled: boolean; + + /** + * IToolSizeInfo[]: The default list of tool size info for tools that should display outside of the dropdown + */ + protected _defaultVisibleToolSizeInfos: IToolSizeInfo[]; + + /** + * boolean: When false alerts will be shown to indicate that the layer must have delete and editing enabled + */ + protected _deleteEnabled: boolean; + + /** + * IHandle: The map click handle */ - protected _editMultipleMpdal: HTMLEditRecordModalElement; + protected _mapClickHandle: IHandle; /** - * string[]: List of field names to display + * esri/core/reactiveUtils: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-reactiveUtils.html */ - protected _fieldNames: string[] = []; + protected reactiveUtils: typeof import("esri/core/reactiveUtils"); /** - * esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html + * ResizeObserver: The observer that watches for toolbar size changes */ - protected _graphics: __esri.Graphic[] = []; + protected _resizeObserver: ResizeObserver; /** * HTMLCalciteCheckboxElement: Element to force selection of all records @@ -110,16 +200,130 @@ export class LayerTable { */ protected _tableNode: HTMLDivElement; + /** + * bool: When true the table is being sorted + */ + protected _tableSorting = false; + + /** + * any: Timeout used to limit redundancy for toolbar resizing + */ + protected _timeout: any; + + /** + * HTMLDivElement: The toolbars containing node + */ + protected _toolbar: HTMLDivElement; + + /** + * IToolSizeInfo[]: Id and Width for the current tools + */ + protected _toolbarSizeInfos: IToolSizeInfo[]; + + /** + * IToolInfo[]: Key details used for creating the tools + */ + protected _toolInfos: IToolInfo[]; + //-------------------------------------------------------------------------- // // Watch handlers // //-------------------------------------------------------------------------- + /** + * Reset the toolInfos when zoom tool is enabled/disabled + */ + @Watch("enableZoom") + enableZoomWatchHandler(): void { + if (this._toolInfos?.length > 0) { + this._initToolInfos(); + } + } + + /** + * Reset the toolInfos when export csv is enabled/disabled + */ + @Watch("enableCSV") + enableCSVWatchHandler(): void { + if (this._toolInfos?.length > 0) { + this._initToolInfos(); + } + } + + /** + * Update the table when enableInlineEdit is enabled/disabled + */ + @Watch("enableInlineEdit") + enableInlineEditWatchHandler(): void { + if (this._table) { + this._table.editingEnabled = this._editEnabled && this.enableInlineEdit; + } + } + + /** + * watch for changes to the list of controls that will currently fit in the display + */ + @Watch("_controlsThatFit") + _controlsThatFitWatchHandler(): void { + const ids = this._controlsThatFit ? this._controlsThatFit.reduce((prev, cur) => { + prev.push(cur.id) + return prev; + }, []) : []; + this._toolInfos = this._toolInfos.map(ti => { + if (ti && this._controlsThatFit) { + const id = this._getId(ti.icon); + ti.isOverflow = ids.indexOf(id) < 0; + return ti; + } + }) + } + + /** + * watch for changes in map view and get the first layer + */ @Watch("mapView") async mapViewWatchHandler(): Promise { - const mapLayerIds = await getMapLayerIds(this.mapView); - this._layerView = await getMapLayerView(this.mapView, mapLayerIds[0]); + if (this._mapClickHandle) { + this._mapClickHandle.remove(); + } + if (this.mapView) { + this._mapClickHandle = this.reactiveUtils.on( + () => this.mapView, + "click", + (event) => { + void this._mapClicked(event); + } + ); + } + } + + /** + * watch for changes in layer view and verify if it has editing enabled + */ + @Watch("_layer") + async _layerWatchHandler(): Promise { + this._fetchingData = true; + await this._resetTable(); + this._fetchingData = false; + } + + /** + * watch for selection changes + */ + @Watch("_selectedIndexes") + async _selectedIndexesWatchHandler(): Promise { + this._validateEnabledActions(); + } + + /** + * When sortActive is false the user has not defined a sort and we should use the default sort + */ + @Watch("_sortActive") + async _sortActiveWatchHandler(): Promise { + if (!this._sortActive) { + await this._sortTable(); + } } //-------------------------------------------------------------------------- @@ -134,6 +338,71 @@ export class LayerTable { // //-------------------------------------------------------------------------- + /** + * Emitted on demand when a layer is selected + */ + @Event() featureSelectionChange: EventEmitter; + + /** + * Emitted on demand when the filters button is clicked + */ + @Event({ + eventName: 'openFilterOptions', + composed: true, + bubbles: true + }) openFilterOptions: EventEmitter; + + /** + * Scroll and zoom to the selected feature from the Features widget. + * + * @param evt CustomEvent the graphic for the current selection + */ + @Listen("selectionChanged", { target: "window" }) + async selectionChanged( + evt: CustomEvent + ): Promise { + if (this.zoomAndScrollToSelected) { + const g: __esri.Graphic = evt.detail; + const oid = g.getObjectId(); + const i: number = this._table.viewModel.getObjectIdIndex(oid); + + this._table.scrollToIndex(i); + const layer = g.layer; + const layerViews = this.mapView.allLayerViews.toArray(); + let layerView: __esri.FeatureLayerView; + layerViews.some(lv => { + if (lv.layer.title === layer.title && lv.layer.type === 'feature') { + layerView = lv as __esri.FeatureLayerView; + return true; + } + }); + + if (layerView) { + await goToSelection([oid], layerView, this.mapView, true); + } + } + } + + /** + * Refresh the table when edits are completed + * + */ + @Listen("editsComplete", { target: "window" }) + async editsComplete(): Promise { + await this._refresh(); + } + + /** + * Refresh the table when edits are completed + * + */ + @Listen("noLayersFound", { target: "window" }) + noLayersFound(): void { + this._layer = undefined; + this._allIds = []; + this._clearSelection(); + } + //-------------------------------------------------------------------------- // // Functions (lifecycle) @@ -148,32 +417,62 @@ export class LayerTable { async componentWillLoad(): Promise { await this._getTranslations(); await this._initModules(); + this._initToolInfos(); + this._resizeObserver = new ResizeObserver(() => this._onResize()); } /** * Renders the component. */ render() { - if (!this._layerView) { - return null; - } + const tableNodeClass = this._fetchingData ? "display-none" : ""; + const loadingClass = this._fetchingData ? "" : "display-none"; + const total = this._allIds.length.toString(); + const selected = this._selectedIndexes.length.toString(); return ( - {this._getTableControlRow()} -
- -
- -
- this._editMultipleMpdal = el} - /> + + {this._getTableControlRow("header")} +
+ + +
+ +
+ { + this._translations.recordsSelected + .replace("{{total}}", total) + .replace("{{selected}}", selected) + } +
+
+ + {this._deleteMessage()} ); } + /** + * Called once after the component is loaded + */ + async componentDidLoad(): Promise { + this._resizeObserver.observe(this._toolbar) + } + + /** + * Called after the component is rendered + */ + componentDidRender(): void { + this._updateToolbar(); + } + //-------------------------------------------------------------------------- // // Functions (protected) @@ -188,146 +487,772 @@ export class LayerTable { * @protected */ protected async _initModules(): Promise { - const [FeatureTable] = await loadModules([ - "esri/widgets/FeatureTable" + const [FeatureTable, reactiveUtils] = await loadModules([ + "esri/widgets/FeatureTable", + "esri/core/reactiveUtils" ]); this.FeatureTable = FeatureTable; + this.reactiveUtils = reactiveUtils; + } + + /** + * Update the toolbar when its size changes + * + * @returns void + */ + protected _onResize(): void { + this._updateToolbar() } /** * Gets a row of controls that can be used for various interactions with the table * + * @param slot string optional slot to display the control within + * * @returns The dom node that contains the controls */ - protected _getTableControlRow(): VNode { - const featuresSelected = this._selectedIndexes.length > 0; - const multiFeaturesSelected = this._selectedIndexes.length > 1; + protected _getTableControlRow( + slot?: string + ): VNode { + const id = "more-table-options"; return ( -
- this._layerSelectionChanged(evt)} - /> -
- this._zoom()} - > - {this._translations.zoom} - - this._editMultiple()} - > - {this._translations.editMultiple} - - this._delete()} - > - {this._translations.delete} - - this._toolbar = el} + slot={slot} + > + {this._getActionBar()} + {this._getDropdown(id)} + {this._getToolTip("", "bottom", id, this._translations.moreOptions)} +
+ ); + } + + /** + * Gets a row of controls that can be used for various interactions with the table + * + * @param slot string optional slot to display the control within + * + * @returns The dom node that contains the controls + */ + protected _getActionBar(): VNode { + return ( + +
+ - - this._selectAll(true)} - > - {this._translations.selectAll} - - this._showSelected()} - > - {this._translations.showSelected} - - this._clearSelection()} - > - {this._translations.clearSelection} - - this._switchSelected()} - > - {this._translations.switchSelected} - + mapView={this.mapView} + onLayerSelectionChange={(evt) => this._layerSelectionChanged(evt)} + onlyShowUpdatableLayers={this.onlyShowUpdatableLayers} + placeholderIcon="layers" + scale="l" + showTables={true} + type="dropdown" + /> +
+ {this._getActions()} +
+ ); + } + + /** + * Get the actions that are used for various interactions with the table + * + * @returns VNode[] the action nodes + */ + protected _getActions(): VNode[] { + const actions = this._getActionItems(); + return actions.reduce((prev, cur) => { + if (cur && !cur.isOverflow) { + prev.push( + cur.isDanger ? + this._getDangerAction(cur.icon, cur.label, cur.func, cur.disabled) : + this._getAction(cur.icon, cur.label, cur.func, cur.disabled) + ) + } + return prev; + }, []) + } + + /** + * Update actions enabled prop based on number of selected indexes + * + * @returns void + */ + _validateEnabledActions(): void { + const featuresSelected = this._featuresSelected(); + const selectionDependant = [ + "zoom-to-object", + "trash", + "erase", + "selected-items-filter" + ]; + this._toolInfos.forEach(ti => { + if (ti && selectionDependant.indexOf(ti.icon) > -1) { + ti.disabled = !featuresSelected; + } + }); + } + + /** + * Get the full list of toolInfos. + * Order is important. They should be listed in the order they should display in the UI from + * Left to Right for the action bar and Top to Bottom for the dropdown. + * + * @returns void + */ + protected _initToolInfos(): void { + const featuresSelected = this._featuresSelected(); + const featuresEmpty = this._featuresEmpty(); + this._toolInfos = [this.enableZoom ? { + icon: "zoom-to-object", + label: this._translations.zoom, + func: () => this._zoom(), + disabled: !featuresSelected, + isOverflow: false + } : undefined, + this.mapInfo?.filters ? { + icon: "filter", + label: this._translations.filters, + func: () => this._filter(), + disabled: false, + isOverflow: false + } : undefined, + this._deleteEnabled ? { + icon: "trash", + label: this._translations.delete, + func: () => this._delete(), + disabled: !featuresSelected, + isDanger: true, + isOverflow: false + } : undefined, { + icon: "erase", + label: this._translations.clearSelection, + func: () => this._clearSelection(), + disabled: !featuresSelected, + isOverflow: false + }, { + icon: "selected-items-filter", + label: this._showOnlySelected ? this._translations.showAll : this._translations.showSelected, + func: () => this._toggleShowSelected(), + disabled: !featuresSelected, + isOverflow: false + }, { + icon: "list-check-all", + func: () => this._selectAll(), + label: this._translations.selectAll, + disabled: featuresEmpty, + isOverflow: false + }, { + icon: "compare", + func: () => this._switchSelected(), + label: this._translations.switchSelected, + disabled: featuresEmpty, + isOverflow: false + }, { + icon: "refresh", + func: () => this._refresh(), + label: this._translations.refresh, + disabled: false, + isOverflow: false + }, + this.enableCSV ? { + icon: "export", + func: () => void this._exportToCSV(), + label: this._translations.exportCSV, + disabled: featuresEmpty, + isOverflow: false + } : undefined]; + + this._defaultVisibleToolSizeInfos = undefined; + } + + /** + * Returns true when one ore more features are selected + * + * @returns boolean + */ + protected _featuresSelected(): boolean { + return this._selectedIndexes.length > 0; + } + + /** + * Return true when we have no features + * + * @returns boolean + */ + protected _featuresEmpty(): boolean { + return this._allIds.length === 0; + } + + /** + * Add/Remove tools from the action bar and dropdown based on available size + * + * @returns void + */ + protected _updateToolbar(): void { + if (this._timeout) { + clearTimeout(this._timeout) + } + + this._timeout = setTimeout(() => { + clearTimeout(this._timeout) + + this._setToolbarSizeInfos(); + + const toolbarWidth = this._toolbar.offsetWidth; + let controlsWidth = this._toolbarSizeInfos.reduce((prev, cur) => { + prev += cur.width; + return prev; + }, 0); + + const skipControls = ["solutions-more", "solutions-map-layer-picker-container"]; + if (controlsWidth > toolbarWidth) { + if (this._toolbarSizeInfos.length > 0) { + const controlsThatFit = [...this._toolbarSizeInfos].reverse().reduce((prev, cur) => { + if (skipControls.indexOf(cur.id) < 0) { + if (controlsWidth > toolbarWidth) { + controlsWidth -= cur.width; + } else { + prev.push(cur); + } + } + return prev; + }, []).reverse(); + + this._setControlsThatFit(controlsThatFit, skipControls); + } + } else { + if (this._defaultVisibleToolSizeInfos) { + const currentTools = this._toolbarSizeInfos.reduce((prev, cur) => { + prev.push(cur.id); + return prev; + }, []); + + let forceFinish = false; + const controlsThatFit = [...this._defaultVisibleToolSizeInfos].reduce((prev, cur) => { + if (!forceFinish && skipControls.indexOf(cur.id) < 0 && + (currentTools.indexOf(cur.id) > -1 || (controlsWidth + cur.width) <= toolbarWidth) + ) { + if (currentTools.indexOf(cur.id) < 0) { + controlsWidth += cur.width; + } + prev.push(cur); + } else if (skipControls.indexOf(cur.id) < 0 && (controlsWidth + cur.width) > toolbarWidth) { + // exit the first time we evalute this as true...otherwise it will add the next control that will fit + // and not preserve the overall order of controls + forceFinish = true; + } + return prev; + }, []); + + this._setControlsThatFit(controlsThatFit, skipControls); + } + } + }, 5); + } + + /** + * Validate if controls that fit the current display has changed or + * is different from what is currently displayed + * + * @returns void + */ + _setControlsThatFit( + controlsThatFit: IToolSizeInfo[], + skipControls: string[] + ): void { + let update = JSON.stringify(controlsThatFit) !== JSON.stringify(this._controlsThatFit); + const actionbar = document.getElementById("solutions-action-bar"); + actionbar.childNodes.forEach((n: any) => { + if (skipControls.indexOf(n.id) < 0 && !update) { + update = this._controlsThatFit.map(c => c.id).indexOf(n.id) < 0; + } + }) + if (update) { + this._controlsThatFit = [...controlsThatFit]; + } + } + + /** + * Get the id and size for the toolbars current items + * + * @returns void + */ + protected _setToolbarSizeInfos(): void { + let hasWidth = false; + this._toolbarSizeInfos = []; + this._toolbar.childNodes.forEach((c: any, i) => { + // handle the action bar + if (i === 0) { + c.childNodes.forEach((actionbarChild: any) => { + this._toolbarSizeInfos.push({ + id: actionbarChild.id, + width: actionbarChild.offsetWidth + }); + if (!hasWidth) { + hasWidth = actionbarChild.offsetWidth > 0; + } + }); + } else if (!c.referenceElement) { + // skip tooltips + this._toolbarSizeInfos.push({ + id: c.id, + width: c.offsetWidth + }); + if (!hasWidth) { + hasWidth = c.offsetWidth > 0; + } + } + }); + if (hasWidth && !this._defaultVisibleToolSizeInfos) { + this._defaultVisibleToolSizeInfos = [...this._toolbarSizeInfos]; + } + } + + /** + * Get a list of toolInfos that should display outside of the dropdown + * + * @returns IToolInfo[] the list of toolInfos that should not display in the overflow dropdown + */ + protected _getActionItems(): IToolInfo[] { + return this._toolInfos.filter(toolInfo => toolInfo && !toolInfo.isOverflow) + } + + /** + * Get a list of toolInfos that should display in the dropdown + * + * @param id string the id for the dropdown and its tooltip + * + * @returns VNode the dropdown node + */ + protected _getDropdown( + id: string + ): VNode { + const dropdownItems = this._getDropdownItems(); + return dropdownItems.length > 0 ? ( + + + + {this._translations.more} + + + + { + dropdownItems.map(item => { + return ( this._exportToCSV()} + iconStart={item.icon} + onClick={item.func} > - {this._translations.exportCSV} + {item.label} - - -
+ ) + }) + } + + + ) : undefined; + } + + /** + * Get a list of toolInfos that should display in the dropdown + * + * @returns IToolInfo[] the list of toolInfos that should display in the dropdown + */ + protected _getDropdownItems(): IToolInfo[] { + return this._toolInfos.filter(toolInfo => toolInfo && toolInfo.isOverflow) + } + + /** + * Get an action and tooltip + * + * @param icon string the name of the icon to display, will also be used as the id + * @param label string the text to display and label the action + * @param func any the function to execute + * @param disabled boolean when true the user will not be able to interact with the action + * + * @returns VNode The node representing the DOM element that will contain the action + */ + protected _getAction( + icon: string, + label: string, + func: any, + disabled: boolean + ): VNode { + const _disabled = this._layer === undefined ? true : disabled; + return ( +
+ + {this._getToolTip("", "bottom", icon, label)}
- ); + ) + } + + /** + * Get a tooltip + * + * @param label string accessible name for the component + * @param placement string where the tooltip should display + * @param referenceElement string the element the tooltip will be associated with + * @param text string the text to display in the tooltip + * + * @returns VNode The tooltip node + */ + protected _getToolTip( + label: string, + placement: string, + referenceElement: string, + text: string + ): VNode { + return ( + + {text} + + ) + } + + /** + * Get an id with a prefix to the user supplied value + * + * @param id the unique value for the id + * + * @returns the new id with the prefix value + */ + protected _getId( + id: string + ): string { + return `solutions-action-${id}`; + } + + /** + * Get an action with danger color icon and text + * + * @param icon string the name of the icon to display, will also be used as the id + * @param label string the text to display and label the action + * @param func any the function to execute + * @param disabled boolean when true the user will not be able to interact with the action + * + * @returns VNode The node representing the DOM element that will contain the action + */ + private _getDangerAction( + icon: string, + label: string, + func: any, + disabled: boolean + ): VNode { + const _disabled = this._layer === undefined ? true : disabled; + return ( +
+ + + {label} + + + {this._getToolTip("", "bottom", icon, label)} +
+ ) } /** * Store a reference to the table node after it's first created * and initializes the FeatureTable * + * @param node HTMLDivElement The node representing the DOM element that will contain the widget. + * * @returns void */ - private onTableNodeCreate = (node: HTMLDivElement) => { + private onTableNodeCreate = ( + node: HTMLDivElement + ) => { this._tableNode = node; - this._getTable(node); } /** * Initialize the FeatureTable * + * @param node HTMLDivElement The node representing the DOM element that will contain the widget. + * * @returns void */ - protected _getTable(node: HTMLDivElement): void { - if (this._layerView?.layer) { - this._table = new this.FeatureTable({ - layer: this._layerView.layer, - view: this.mapView, - editingEnabled: true, - highlightOnRowSelectEnabled: true, - multiSortEnabled: false, - visibleElements: { - header: false, - menu: false - }, - container: node - } as __esri.FeatureTableProperties); + protected async _getTable( + node: HTMLDivElement, + columnTemplates?: __esri.FieldColumnTemplate[] + ): Promise { + if (this._layer) { + await this._layer.when(() => { + this._table = new this.FeatureTable({ + autoRefreshEnabled: this.enableAutoRefresh, + layer: this._layer, + view: this.mapView, + editingEnabled: this._editEnabled && this.enableInlineEdit, + highlightEnabled: true, + multiSortEnabled: false, + visibleElements: { + header: false, + menu: false + }, + tableTemplate: { + columnTemplates + }, + container: node + } as __esri.FeatureTableProperties); + }); + + this._checkEditEnabled(); + + await this._table.when(() => { + this._table.highlightIds.on("change", () => { + // https://github.com/Esri/solutions-components/issues/365 + this._selectedIndexes = this._table.highlightIds.toArray().reverse(); + if (this._showOnlySelected) { + if (this._featuresSelected()) { + this._table.filterBySelection(); + } else { + this._toggleShowSelected(); + } + } + this.featureSelectionChange.emit(this._selectedIndexes); + }); + + this.reactiveUtils.watch( + () => this._table.activeSortOrders, + (sortOrders) => { + this._sortActive = this._layer ? (sortOrders.length > 0 && sortOrders[0]?.direction === "asc" || sortOrders[0]?.direction === "desc") || + sortOrders[0]?.direction === null && sortOrders[0]?.fieldName === this._layer.objectIdField : false; + }); + }); } } /** - * Select or deselect all rows + * Reset basic table props * - * @param checked When true all rows will be selected + * @returns void + */ + protected async _resetTable(): Promise { + this._clearSelection(); + this._allIds = []; + this.featureSelectionChange.emit(this._selectedIndexes); + + const columnTemplates = this._getColumnTemplates(this._layer.id, this._layer?.popupTemplate?.fieldInfos); + this._allIds = await queryAllIds(this._layer); + + if (!this._table) { + await this._getTable(this._tableNode, columnTemplates); + } else if (columnTemplates) { + this._table.tableTemplate.columnTemplates = columnTemplates; + } + + this._table.layer = this._layer; + this._table.view = this.mapView; + this._checkEditEnabled(); + this._table.editingEnabled = this._editEnabled && this.enableInlineEdit; + this._initToolInfos(); + + await this._table.when(() => { + this._table.highlightIds.removeAll(); + this._table.clearSelectionFilter(); + }); + + this._showOnlySelected = false; + this._sortActive = false; + await this._sortTable(); + } + + /** + * Verify edit capabilities of the layer * * @returns void */ - protected _selectAll( - checked: boolean - ): void { - this._selectedIndexes = checked ? this._graphics.map((_g, i) => i) : []; + protected _checkEditEnabled(): void { + this._editEnabled = this._layer.editingEnabled && this._layer.capabilities.operations.supportsUpdate; + this._deleteEnabled = this._layer.editingEnabled && this._layer.capabilities.operations.supportsDelete; + } + + /** + * Sort the objectid field in descending order + * + * @returns void + */ + protected async _sortTable(): Promise { + if (this._table && this._layer && !this._sortActive) { + if (!this._tableSorting && this.showNewestFirst) { + this._tableSorting = true; + await this._table.when(); + await this._layer.when(() => { + this._table.sortColumn(this._layer.objectIdField, "desc"); + this._tableSorting = false; + }); + } + } + } + + /** + * Show delete confirmation message + * + * @returns node to confirm or deny the delete operation + */ + protected _deleteMessage(): VNode { + return ( + this._deleteClosed()} + open={this._confirmDelete} + > + +
+ {this._translations.confirm} +
+ this._deleteClosed()} + slot="secondary" + width="full" + > + {this._translations.cancel} + + void this._deleteFeatures()} + slot="primary" width="full"> + {this._translations.delete} + +
+ ); + } + + /** + * Delete the currently selected features + * + * @returns void + */ + protected async _deleteFeatures(): Promise { + this._isDeleting = true; + const deleteFeatures = this._table.highlightIds.toArray().map((objectId) => { + return {objectId}; + }) + await this._layer.applyEdits({ + deleteFeatures + }); + await this._table.refresh(); + this._allIds = await queryAllIds(this._layer); + this._isDeleting = false; + this._deleteClosed(); + } + + /** + * Handle map click events to keep table and map click selection in sync + * + * @param evt IMapClick map click event details + * + * @returns void + */ + protected async _mapClicked( + evt: IMapClick + ): Promise { + const opts = { + include: this._layer + }; + const hitTestResult = await this.mapView.hitTest(evt.screenPoint, opts); + if (hitTestResult.results.length > 0) { + hitTestResult.results.forEach((result: any) => { + this._clearSelection(); + const id = (result.graphic as __esri.Graphic).getObjectId(); + const index = this._table.highlightIds.indexOf(id); + if (index > -1) { + this._table.highlightIds.removeAt(index); + } else { + this._table.highlightIds.add(id); + } + }); + if (this._showOnlySelected) { + this._table.filterBySelection(); + } + } } - // need to discuss with team - protected _showSelected(): void { - console.log("_showSelected"); + /** + * Set the alertOpen member to false when the alert is closed + * + * @returns void + */ + protected _deleteClosed(): void { + this._confirmDelete = false; + } + + /** + * Select or deselect all rows + * + * @returns void + */ + protected _selectAll(): void { + const ids = this._allIds; + this._table.highlightIds.removeAll(); + this._table.highlightIds.addMany(ids); + this._selectedIndexes = ids; + } + + /** + * Toggle the show only selected flag + * When showOnly is true only the selected features will be shown in the table + * + * @returns void + */ + protected _toggleShowSelected(): void { + this._showOnlySelected = !this._showOnlySelected; + if (this._showOnlySelected) { + this._table.filterBySelection(); + } else { + this._table.clearSelectionFilter(); + } } /** @@ -337,6 +1262,16 @@ export class LayerTable { */ protected _clearSelection(): void { this._selectedIndexes = []; + this._table?.highlightIds.removeAll(); + } + + /** + * Show the filter options + * + * @returns void + */ + protected _filter(): void { + this.openFilterOptions.emit(); } /** @@ -346,12 +1281,15 @@ export class LayerTable { */ protected _switchSelected(): void { const currentIndexes = [...this._selectedIndexes]; - this._selectedIndexes = this._graphics.reduce((prev, _cur, i) => { - if (currentIndexes.indexOf(i) < 0) { - prev.push(i); + this._table.highlightIds.removeAll(); + const ids = this._allIds.reduce((prev, _cur) => { + if (currentIndexes.indexOf(_cur) < 0) { + prev.push(_cur); } return prev; - }, []); + }, []).sort((a,b) => a - b); + this._table.highlightIds.addMany(ids); + this._selectedIndexes = ids; } /** @@ -359,106 +1297,110 @@ export class LayerTable { * * @returns a promise that will resolve when the operation is complete */ - protected _exportToCSV(): void { + protected async _exportToCSV(): Promise { const exportInfos: IExportInfos = {}; - exportInfos[this._layerView.layer.id] = { - selectionSetNames: [], - ids: this._getSelectedIds(), - layerView: this._layerView + const ids = this._table.highlightIds.toArray(); + exportInfos[this._layer.id] = { + selectionSetNames: [this._layer.title], + ids, + layer: this._layer } void downloadUtils.downloadCSV( + null,//??? exportInfos, false, // formatUsingLayerPopup + false, // removeDuplicates true, // addColumnTitle ); } /** - * Zoom to all selected features + * Refreshes the table and maintains the curent scroll position * - * @returns a promise that will resolve when the operation is complete + * @returns void */ - protected _zoom(): void { - const ids = this._getSelectedIds(); - void goToSelection(ids, this._layerView, this.mapView, true); + protected async _refresh(): Promise { + await this._table.refresh(); + this.featureSelectionChange.emit(this._selectedIndexes); } /** - * Open the edit multiple modal + * Zoom to all selected features * - * @returns void + * @returns a promise that will resolve when the operation is complete */ - protected _editMultiple(): void { - this._editMultipleMpdal.open = true; + protected _zoom(): void { + this._table.zoomToSelection(); } /** - * Delete all selected records + * Delete all selected records or shows an alert if the layer does not have editing enabled * * @returns a promise that will resolve when the operation is complete */ protected _delete(): void { - console.log("delete") + this._confirmDelete = true; } /** - * Get the graphics for all selected indexes + * Handles layer selection change to show new table * - * @param indexes the indexes for the graphics to fetch + * @param evt CustomEvent the id for the current layer * - * @returns An array of selected graphics - */ - protected _getGraphics( - indexes: number[] - ): __esri.Graphic[] { - return this._graphics.filter((_g, i) => indexes.indexOf(i) > -1); - } - - /** - * Gets the object ids for all selected rows - * - * @returns An array of object ids + * @returns a promise that will resolve when the operation is complete */ - protected _getSelectedIds(): number[] { - const graphics = this._getGraphics(this._selectedIndexes); - return graphics.map(g => g.getObjectId()); + protected async _layerSelectionChanged( + evt: CustomEvent + ): Promise { + const id: string = evt.detail[0]; + if (id !== this._layer?.id || this._featuresEmpty()) { + this._fetchingData = true; + const layer = await getLayerOrTable(this.mapView, id); + await layer.when(() => { + this._layer = layer; + }); + } + this._fetchingData = false; } /** - * Update the selected indexes based on the current row + * Get any columnt templates for the current map * - * @param index the index of the selected row + * @param id item ID of the current map * - * @returns void + * @returns a list of column templates if they exist */ - protected _rowSelected( - index: number - ): void { - const indexOfSelected = this._selectedIndexes.indexOf(index); - if (indexOfSelected > -1) { - this._selectedIndexes.splice(indexOfSelected, 1); - this._selectedIndexes = [...this._selectedIndexes]; - } else { - this._selectedIndexes = [...this._selectedIndexes, index]; - } - } + protected _getColumnTemplates( + id: string, + fieldInfos: __esri.FieldInfo[] + ): __esri.FieldColumnTemplate[] { + let layerInfo: ILayerInfo; + this.mapInfo.layerInfos?.some(li => { + if (li.id === id) { + layerInfo = li; + return true; + } + }); - /** - * Handles layer selection change to show new table - * - * @returns a promise that will resolve when the operation is complete - */ - protected async _layerSelectionChanged( - evt: CustomEvent - ): Promise { - const layerName: string = evt.detail[0]; - this._layerView = await getMapLayerView(this.mapView, layerName); - // TODO rethink this...when we use later we need to be able to lookup with name - this._fieldNames = this._layerView.layer.fields.map(f => f.alias || f.name); - this._graphics = await queryAllFeatures(0, this._layerView.layer, []); - this._selectedIndexes = []; - this._table.layer = this._layerView.layer; - this._table.render(); + let columnTemplates = layerInfo?.columnTemplates; + if (fieldInfos) { + columnTemplates = columnTemplates ? columnTemplates.map(columnTemplate => { + fieldInfos.some(fieldInfo => { + if (fieldInfo.fieldName === columnTemplate.fieldName) { + columnTemplate.label = fieldInfo.label; + return true; + } + }); + return columnTemplate; + }) : fieldInfos.map(fieldInfo => { + return { + type: "field", + fieldName: fieldInfo.fieldName, + label: fieldInfo.label + } as __esri.FieldColumnTemplate; + }) + } + return columnTemplates; } /** diff --git a/src/components/layer-table/readme.md b/src/components/layer-table/readme.md index dba3d1d54..2e6436d15 100644 --- a/src/components/layer-table/readme.md +++ b/src/components/layer-table/readme.md @@ -7,9 +7,25 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| --------- | --------- | ------------------------------------------------------------------------------------------------------ | --------- | ----------- | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------- | ----------- | +| `enableAutoRefresh` | `enable-auto-refresh` | boolean: when true the layer table will auto refresh the data | `boolean` | `undefined` | +| `enableCSV` | `enable-c-s-v` | boolean: when true the export to csv button will be available | `boolean` | `undefined` | +| `enableInlineEdit` | `enable-inline-edit` | boolean: when true edits can be applied directly within the table | `boolean` | `undefined` | +| `enableZoom` | `enable-zoom` | boolean: when true the zoom button will be enabled | `boolean` | `undefined` | +| `mapInfo` | -- | IMapInfo: key configuration details about the current map | `IMapInfo` | `undefined` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `onlyShowUpdatableLayers` | `only-show-updatable-layers` | boolean: When true only editable layers that support the update capability will be available | `boolean` | `undefined` | +| `showNewestFirst` | `show-newest-first` | boolean: when true the table will be sorted by objectid in descending order by default | `boolean` | `undefined` | +| `zoomAndScrollToSelected` | `zoom-and-scroll-to-selected` | boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table | `boolean` | `undefined` | + + +## Events + +| Event | Description | Type | +| ------------------------ | ---------------------------------------------------- | ----------------------- | +| `featureSelectionChange` | Emitted on demand when a layer is selected | `CustomEvent` | +| `openFilterOptions` | Emitted on demand when the filters button is clicked | `CustomEvent` | ## Dependencies @@ -20,24 +36,34 @@ ### Depends on +- calcite-shell - calcite-panel -- [edit-record-modal](../edit-record-modal) +- calcite-loader +- calcite-action-bar - [map-layer-picker](../map-layer-picker) +- calcite-dropdown +- calcite-action - calcite-button -- calcite-split-button - calcite-dropdown-group - calcite-dropdown-item +- calcite-tooltip +- calcite-modal ### Graph ```mermaid graph TD; + layer-table --> calcite-shell layer-table --> calcite-panel - layer-table --> edit-record-modal + layer-table --> calcite-loader + layer-table --> calcite-action-bar layer-table --> map-layer-picker + layer-table --> calcite-dropdown + layer-table --> calcite-action layer-table --> calcite-button - layer-table --> calcite-split-button layer-table --> calcite-dropdown-group layer-table --> calcite-dropdown-item + layer-table --> calcite-tooltip + layer-table --> calcite-modal calcite-panel --> calcite-action calcite-panel --> calcite-action-menu calcite-panel --> calcite-scrim @@ -48,28 +74,31 @@ graph TD; calcite-popover --> calcite-action calcite-popover --> calcite-icon calcite-scrim --> calcite-loader - edit-record-modal --> calcite-modal - edit-record-modal --> calcite-label - edit-record-modal --> calcite-button - edit-record-modal --> calcite-input - calcite-modal --> calcite-scrim - calcite-modal --> calcite-icon - calcite-button --> calcite-loader - calcite-button --> calcite-icon - calcite-input --> calcite-progress - calcite-input --> calcite-icon + calcite-action-bar --> calcite-action-group + calcite-action-group --> calcite-action-menu + calcite-action-group --> calcite-action + map-layer-picker --> calcite-tooltip + map-layer-picker --> calcite-notice map-layer-picker --> calcite-select map-layer-picker --> calcite-combobox + map-layer-picker --> calcite-dropdown + map-layer-picker --> calcite-action + map-layer-picker --> calcite-button + map-layer-picker --> calcite-dropdown-group map-layer-picker --> calcite-combobox-item map-layer-picker --> calcite-option + map-layer-picker --> calcite-dropdown-item + calcite-notice --> calcite-icon calcite-select --> calcite-icon calcite-combobox --> calcite-chip calcite-combobox --> calcite-icon calcite-chip --> calcite-icon + calcite-button --> calcite-loader + calcite-button --> calcite-icon calcite-combobox-item --> calcite-icon - calcite-split-button --> calcite-button - calcite-split-button --> calcite-dropdown calcite-dropdown-item --> calcite-icon + calcite-modal --> calcite-scrim + calcite-modal --> calcite-icon crowdsource-manager --> layer-table style layer-table fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/layout-manager/layout-manager.css b/src/components/layout-manager/layout-manager.css new file mode 100644 index 000000000..0e4ae9087 --- /dev/null +++ b/src/components/layout-manager/layout-manager.css @@ -0,0 +1,76 @@ +/** @license + * Copyright 2023 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:host { + display: block; +} + +.action-center { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-grid-row-align: center; + align-items: center; + -webkit-align-content: center; + align-content: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; +} + +.display-flex { + display: flex; +} + +.icon-color { + --calcite-ui-icon-color: var(--calcite-ui-brand); +} + +.icon { + cursor: pointer; +} + +.tooltip-message { + padding: 5px 8px; + font-weight: var(--calcite-font-weight-normal); + color: var(--calcite-ui-text-2); +} + +.header-text { + font-size: var(--calcite-font-size-0); + font-weight: var(--calcite-font-weight-medium); + padding-inline: 0.75rem; + padding-block: 0.875rem; + line-height: 1.25rem; +} + +.img-background { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 38px; + height: 26px; +} + +.grid-background { + background-image: url('../../assets/data/images/grid.png'); +} + +.horizontal-background { + background-image: url('../../assets/data/images/horizontal.png'); +} + +.vertical-background { + background-image: url('../../assets/data/images/vertical.png'); +} diff --git a/src/components/media-card/media-card.tsx b/src/components/layout-manager/layout-manager.tsx similarity index 50% rename from src/components/media-card/media-card.tsx rename to src/components/layout-manager/layout-manager.tsx index 7752c28ba..46ac13df6 100644 --- a/src/components/media-card/media-card.tsx +++ b/src/components/layout-manager/layout-manager.tsx @@ -1,5 +1,5 @@ /** @license - * Copyright 2022 Esri + * Copyright 2023 Esri * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,23 +14,24 @@ * limitations under the License. */ -import { Component, Element, Host, h, Prop, State, Watch } from '@stencil/core'; -import MediaCard_T9n from "../../assets/t9n/media-card/resources.json"; +import { Component, Element, Event, EventEmitter, Host, h, State, VNode } from "@stencil/core"; +import LayoutManager_T9n from "../../assets/t9n/layout-manager/resources.json"; import { getLocaleComponentStrings } from "../../utils/locale"; -import { IMediaCardValues } from '../../utils/interfaces'; +import { ELayoutMode } from "../../utils/interfaces"; @Component({ - tag: 'media-card', - styleUrl: 'media-card.css', + tag: 'layout-manager', + styleUrl: 'layout-manager.css', shadow: true, }) -export class MediaCard { +export class LayoutManager { //-------------------------------------------------------------------------- // // Host element access // //-------------------------------------------------------------------------- - @Element() el: HTMLMediaCardElement; + + @Element() el: HTMLLayoutManagerElement; //-------------------------------------------------------------------------- // @@ -38,27 +39,17 @@ export class MediaCard { // //-------------------------------------------------------------------------- - /** - * IMediaCardValues[]: Array of objects that contain the name, description, and image to display - */ - @Prop() values: IMediaCardValues[] = []; - //-------------------------------------------------------------------------- // // State (internal) // //-------------------------------------------------------------------------- - /** - * The index controls what image from values to display - */ - @State() _index = -1; - /** * Contains the translations for this component. * All UI strings should be defined here. */ - @State() _translations: typeof MediaCard_T9n; + @State() _translations: typeof LayoutManager_T9n; //-------------------------------------------------------------------------- // @@ -66,27 +57,17 @@ export class MediaCard { // //-------------------------------------------------------------------------- + /** + * Controls the layout of the application + */ + protected _layoutMode: ELayoutMode = ELayoutMode.GRID; + //-------------------------------------------------------------------------- // // Watch handlers // //-------------------------------------------------------------------------- - /** - * Called each time the values prop is changed. - * Reset the _index value accordingly. - */ - @Watch("values") - geometriesWatchHandler(values: any, oldValues: any): void { - if (values && JSON.stringify(values) !== JSON.stringify(oldValues || [])) { - if (values?.length > 0) { - this._initIndex(); - } else { - this._index = -1; - } - } - } - //-------------------------------------------------------------------------- // // Methods (public) @@ -99,6 +80,11 @@ export class MediaCard { // //-------------------------------------------------------------------------- + /** + * Emitted when the layout should change + */ + @Event() layoutChanged: EventEmitter; + //-------------------------------------------------------------------------- // // Functions (lifecycle) @@ -114,67 +100,36 @@ export class MediaCard { await this._getTranslations(); } - /** - * StencilJS: Called once just after the component is fully loaded and the first render() occurs. - * Using this as the Watch on values does not fire on initial load. - * - * @returns Promise when complete - */ - async componentDidLoad(): Promise { - if (this._index === -1 && this.values?.length > 0) { - this._initIndex(); - } - } - /** * Renders the component. */ render() { - const v = this.values?.length > 0 ? this.values[this._index] : undefined; - const total = (this.values || []).length; - const imgNum = this._index + 1; return ( -
-
- -
- - - {v?.name} - - - - - {v?.description} - - -
- -
-
- - - {`${imgNum} of ${total}`} +
+
+ + + + {this._translations.appInfo} - +
-
- this._decrementIndex()} - >{this._translations.previous} - - this._incrementIndex()} - >{this._translations.next} - +
+ {this._translations.layout}
+ {this._getAction("grid-background", ELayoutMode.GRID, this._translations.grid)} + {this._getAction("vertical-background", ELayoutMode.VERTICAL, this._translations.vertical)} + {this._getAction("horizontal-background", ELayoutMode.HORIZONTAL, this._translations.horizontal)}
); @@ -187,30 +142,51 @@ export class MediaCard { //-------------------------------------------------------------------------- /** - * Resets the index to 0 + * Store and emit the current layout mode * - * @protected - */ - protected _initIndex(): void { - this._index = 0; - } - - /** - * Adds 1 to the current index + * @param imgClass string the css class to use + * @param layoutMode ELayoutMode the associated layout mode for the current action + * @param tip string the value to display as the tooltip for the action * * @protected */ - protected _incrementIndex(): void { - this._index += 1; + protected _getAction( + imgClass: string, + layoutMode: ELayoutMode, + tip: string + ): VNode { + return ( +
+ { this._setLayoutMode(layoutMode) }} + text="" + > +
+ + + {tip} + +
+ ); } /** - * Subtracts 1 from the current index + * Store and emit the current layout mode + * + * @param layoutMode ELayoutMode the current layout mode * * @protected */ - protected _decrementIndex(): void { - this._index -= 1; + protected _setLayoutMode( + layoutMode: ELayoutMode + ): void { + this._layoutMode = layoutMode; + this.layoutChanged.emit(this._layoutMode); } /** @@ -221,7 +197,7 @@ export class MediaCard { */ protected async _getTranslations(): Promise { const messages = await getLocaleComponentStrings(this.el); - this._translations = messages[0] as typeof MediaCard_T9n; + this._translations = messages[0] as typeof LayoutManager_T9n; } } diff --git a/src/components/layout-manager/readme.md b/src/components/layout-manager/readme.md new file mode 100644 index 000000000..b3579704d --- /dev/null +++ b/src/components/layout-manager/readme.md @@ -0,0 +1,40 @@ +# layout-manager + + + + + + +## Events + +| Event | Description | Type | +| --------------- | ------------------------------------- | --------------------------------------------------------------------------------- | +| `layoutChanged` | Emitted when the layout should change | `CustomEvent` | + + +## Dependencies + +### Depends on + +- calcite-icon +- calcite-popover +- calcite-action +- calcite-tooltip + +### Graph +```mermaid +graph TD; + layout-manager --> calcite-icon + layout-manager --> calcite-popover + layout-manager --> calcite-action + layout-manager --> calcite-tooltip + calcite-popover --> calcite-action + calcite-popover --> calcite-icon + calcite-action --> calcite-loader + calcite-action --> calcite-icon + style layout-manager fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/map-card/map-card.css b/src/components/map-card/map-card.css index d6ad639ae..9d1bf846b 100644 --- a/src/components/map-card/map-card.css +++ b/src/components/map-card/map-card.css @@ -20,95 +20,14 @@ --calcite-block-padding: 0; } -.action-bar-size { - height: 3.5rem; - width: 100%; -} - -.action-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-grid-row-align: center; - align-items: center; - -webkit-align-content: center; - align-content: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - justify-content: center; -} - -.border-bottom-1 { - border-width: 0px; - border-bottom-width: 1px; - border-style: solid; - border-color: var(--calcite-ui-border-3); -} - -.width-1-7 { - width: 14.28%; -} - -.width-1-6 { - width: 16.66%; -} - -.width-full { - width: 100%; -} - -.height-full { - height: 100%; -} - -.display-flex { - display: flex; -} - -.display-grid { - display: inline-grid; -} - -/* only used if we need to do the map action seperately */ -.block-button { - border-bottom: 0; -} - -.block-button:hover { - background-color: var(--calcite-ui-foreground-2); -} - -.block-button:active { - background-color: var(--calcite-ui-foreground-3); -} - -.map-list { - position: absolute; - inset: 3.5rem 0 0 0; - display: flex; - flex-direction: column; - overflow: hidden; - animation: calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out; - background-color: var(--calcite-scrim-background); - z-index: 1; - width: 100%; - height: fit-content; -} - .map-height { - height: calc(100% - 58px); + height: calc(100% - 51px); } -.display-none { - display: none; +.box-shadow { + box-shadow: none !important; } -/* Not sure how else to do this - tried navigation gamepad settings but enabled: false still shows this */ - -.esri-zoom { - display: none !important; +.visibility-hidden { + visibility: hidden; } - -/* .block-button:focus { - @apply bg-foreground-2 text-color-1 fill-color-1 focus-inset; -} */ diff --git a/src/components/map-card/map-card.tsx b/src/components/map-card/map-card.tsx index 4ac7439ec..8c1f0942a 100644 --- a/src/components/map-card/map-card.tsx +++ b/src/components/map-card/map-card.tsx @@ -14,23 +14,20 @@ * limitations under the License. */ -import { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode, Watch } from '@stencil/core'; -import MapCard_T9n from "../../assets/t9n/map-card/resources.json"; +import { Component, Element, Event, EventEmitter, Host, h, Listen, Prop, State, Watch } from "@stencil/core"; import { loadModules } from "../../utils/loadModules"; -import { getLocaleComponentStrings } from "../../utils/locale"; -import { EExpandType, IMapInfo } from "../../utils/interfaces"; +import { IBasemapConfig, IMapChange, IMapInfo, ISearchConfiguration, theme } from "../../utils/interfaces"; // TODO navigation and accessability isn't right for the map list // tab does not go into the list when it's open // focus is not set when it opens -// TODO clarify what the Home and List buttons are supposed to do -// TODO handle zoom in/out +// TODO clarify what the List button is supposed to do // TODO map list button tooltip does not work // TODO map list should close if the user clicks something else...hope this will be easy when I figure out how to set focus when it opens @Component({ - tag: 'map-card', - styleUrl: 'map-card.css', + tag: "map-card", + styleUrl: "map-card.css", shadow: false, }) export class MapCard { @@ -48,6 +45,46 @@ export class MapCard { // //-------------------------------------------------------------------------- + /** + * boolean: when true the home widget will be available + */ + @Prop() enableHome: boolean; + + /** + * boolean: when true the legend widget will be available + */ + @Prop() enableLegend: boolean; + + /** + * boolean: when true the floor filter widget will be available + */ + @Prop() enableFloorFilter: boolean; + + /** + * boolean: when true the fullscreen widget will be available + */ + @Prop() enableFullscreen: boolean; + + /** + * boolean: when true the search widget will be available + */ + @Prop() enableSearch: boolean; + + /** + * boolean: when true the basemap widget will be available + */ + @Prop() enableBasemap: boolean; + + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + @Prop() basemapConfig: IBasemapConfig; + + /** + * boolean: When true the map display will be hidden + */ + @Prop() hidden: boolean; + /** * IMapInfo[]: array of map infos (name and id) */ @@ -58,6 +95,11 @@ export class MapCard { */ @Prop() mapView: __esri.MapView; + /** + * theme: "light" | "dark" theme to be used + */ + @Prop() theme: theme; + //-------------------------------------------------------------------------- // // State (internal) @@ -65,20 +107,14 @@ export class MapCard { //-------------------------------------------------------------------------- /** - * boolean: controls the state of the map list - */ - @State() _mapListExpanded = false; - - /** - * Contains the translations for this component. - * All UI strings should be defined here. + * ISearchConfiguration: Configuration details for the Search widget */ - @State() _translations: typeof MapCard_T9n; + @State() _searchConfiguration: ISearchConfiguration; /** - * string: id of the map to display + * IMapInfo: id and name of the map to display */ - @State() _webMapId = ""; + @State() _webMapInfo: IMapInfo; //-------------------------------------------------------------------------- // @@ -86,6 +122,11 @@ export class MapCard { // //-------------------------------------------------------------------------- + /** + * esri/widgets/Home: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Home.html + */ + protected Home: typeof import("esri/widgets/Home"); + /** * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @@ -96,6 +137,11 @@ export class MapCard { */ protected WebMap: typeof import("esri/WebMap"); + /** + * esri/widgets/Home: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Home.html + */ + protected _homeWidget: __esri.Home; + /** * string: the id of map currently displayed */ @@ -106,6 +152,11 @@ export class MapCard { */ protected _mapDiv: HTMLDivElement; + /** + * HTMLMapToolsElement: the container div for the map tools + */ + protected _mapTools: HTMLMapToolsElement; + //-------------------------------------------------------------------------- // // Watch handlers @@ -113,23 +164,11 @@ export class MapCard { //-------------------------------------------------------------------------- /** - * Called each time the _webMapId prop is changed. + * Add/remove home widget */ - @Watch("_webMapId") - _webMapIdWatchHandler(v: any, oldV: any): void { - if (v && JSON.stringify(v) !== JSON.stringify(oldV)) { - this._loadMap(v); - } - } - - /** - * Called each time the mapInfos prop is changed. - */ - @Watch("mapInfos") - mapInfosWatchHandler(v: any, oldV: any): void { - if (v && JSON.stringify(v) !== JSON.stringify(oldV)) { - this._loadMap(v[0].id); - } + @Watch("enableHome") + enableHomeWatchHandler(): void { + this._initHome(); } //-------------------------------------------------------------------------- @@ -145,14 +184,24 @@ export class MapCard { //-------------------------------------------------------------------------- /** - * Emitted when the expand button is clicked + * Emitted when a new map is loaded */ - @Event() expandMap: EventEmitter; + @Event() mapChanged: EventEmitter; /** - * Emitted when a new map is loaded + * Emitted before a new map is loaded */ - @Event() mapChanged: EventEmitter<__esri.MapView>; + @Event() beforeMapChanged: EventEmitter; + + /** + * Listen for changes to map info and load the appropriate map + */ + @Listen("mapInfoChange", { target: "window" }) + async mapInfoChange( + evt: CustomEvent + ): Promise { + await this._loadMap(evt.detail); + } //-------------------------------------------------------------------------- // @@ -164,27 +213,31 @@ export class MapCard { * StencilJS: Called once just after the component is first connected to the DOM. */ async componentWillLoad(): Promise { - await this._getTranslations(); await this._initModules(); } - /** - * StencilJS: Called after every render. - */ - componentDidRender() { - // the container node for the map view needs to exist before the view is created - this._loadMap(this._webMapId); - } - /** * Renders the component. */ render() { + const mapClass = this.hidden ? "visibility-hidden" : ""; + const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light"; return ( - {this._getToolbar()} - {this._getMapNameList(this._mapListExpanded)} -
(this._mapDiv = el)}/> + +
(this._mapDiv = el)}/> + this._mapTools = el} + searchConfiguration={this._searchConfiguration} + /> ); } @@ -203,53 +256,35 @@ export class MapCard { * @protected */ protected async _initModules(): Promise { - const [WebMap, MapView] = await loadModules([ + const [WebMap, MapView, Home] = await loadModules([ "esri/WebMap", - "esri/views/MapView" + "esri/views/MapView", + "esri/widgets/Home" ]); this.WebMap = WebMap; this.MapView = MapView; + this.Home = Home; } /** - * Create the toolbar (controls used for map and app interactions) - * - * @returns The dom node with the toolbar - * - * @protected - */ - protected _getToolbar(): VNode { - return ( -
- - {this._getMapPicker()} - {this._getActionGroup("home", false, this._translations.home, () => this._goHome())} - {this._getActionGroup("list", false, this._translations.list, () => this._showList())} - {this._getActionGroup("magnifying-glass-plus", false, this._translations.search, () => this._search())} - {this._getActionGroup("plus", false, this._translations.zoomIn, () => this._zoomIn())} - {this._getActionGroup("minus", false, this._translations.zoomOut, () => this._zoomOut())} - {this._getActionGroup("expand", false, this._translations.expand, () => this._expand())} - -
- ); - } - - /** - * Load the webmap for the provided id + * Load the webmap for the provided webMapInfo * - * @param id the webmap id to load + * @param webMapInfo the webmap id and name to load * * @returns void * * @protected */ - protected _loadMap( - id: string - ): void { + protected async _loadMap( + webMapInfo: IMapInfo + ): Promise { + let id = webMapInfo?.id; // on the first render use the first child of the provided mapInfos - if (id === "" && this.mapInfos.length > 0) { - id = this.mapInfos[0].id; - } + this._webMapInfo = (id === "" || !id) && this.mapInfos.length > 0 ? + this.mapInfos[0] : webMapInfo; + + id = this._webMapInfo.id; + if (this._loadedId !== id) { const webMap = new this.WebMap({ portalItem: { id } @@ -258,189 +293,39 @@ export class MapCard { this.mapView = new this.MapView({ container: this._mapDiv, map: webMap, - // TODO consider this more...seems to cause less overflow issues when the component is resized resizeAlign: "top-left" }); this._loadedId = id; - this.mapChanged.emit(this.mapView); - } - } + this._searchConfiguration = this._webMapInfo.searchConfiguration; - /** - * Get a calcite action group for the current action - * - * @param icon the icon to display for the current action - * @param disabled should the action be disabled - * @param tip information tip to display helpful details to end user - * @param func the associated onClick function to execute - * - * @returns the dom node for the action group - * - * @protected - */ - protected _getActionGroup( - icon: string, - disabled: boolean, - tip: string, - func: any - ): VNode { - return ( - - - - - - {tip} - - - ); - } - - /** - * Get a calcite action group for the map list - * Actions do not support multiple icons so this uses a block - * - * @returns the dom node for the action group - * - * @protected - */ - protected _getMapPicker(): VNode { - const mapListIcon = this._mapListExpanded ? "chevron-up" : "chevron-down"; - return ( - - this._chooseMap()} - > - - - - {this._translations.mapName} - - - - ); - } - - /** - * Get a pick list for all maps in mapInfos - * - * @param show boolean to indicate if the list should be shown or hidden - * - * @returns the dom node for the list of maps - * - * @protected - */ - protected _getMapNameList( - show: boolean - ): VNode { - const listClass = show ? "map-list" : "display-none"; - return ( -
- - {this.mapInfos.map(mapInfo => { - return ( - this._webMapSelected(mapInfo.id)} - selected={mapInfo.id === this._loadedId} - value={mapInfo.id} - /> - ) - })} - -
- ); - } - - /** - * Fired when the user clicks on the map list - * - * @param id the web map id selected from the list - * - * @returns void - * - * @protected - */ - protected _webMapSelected( - id: string - ): void { - this._mapListExpanded = false; - this._webMapId = id; - } + this.beforeMapChanged.emit(); - /** - * Toggles the open/close state of the map list - * - * @returns the dom node for the action group - * - * @protected - */ - protected _chooseMap(): void { - this._mapListExpanded = !this._mapListExpanded; - if (this._mapListExpanded) { - //const mapList = document.getElementById("mapList"); - // TODO figure out why this doesn't work - //await (mapList.children[0] as HTMLCalcitePickListItemElement).setFocus(); + await this.mapView.when(() => { + this._initHome(); + this.mapView.ui.add(this._mapTools, { position: "top-right", index: 0}); + this.mapChanged.emit({ + id: id, + mapView: this.mapView + }); + }); } } - // Need to discuss this with the team - protected _goHome(): void { - alert("go home") - } - - // need to discuss this with the team - protected _showList(): void { - alert("show list") - } - - // Need to discuss this with the team - protected _search(): void { - alert("search") - } - - // Need to explore map fixed zoom in considerations - protected _zoomIn(): void { - alert("zoom in") - } - - // Need to explore map fixed zoom out considerations - protected _zoomOut(): void { - alert("zoom out") - } - - /** - * Emit the expand map event - * - * @returns void - * - * @protected - */ - protected _expand(): void { - this.expandMap.emit(EExpandType.EXPAND); - } - /** - * Fetches the component's translations + * Add/remove the home widget base on enableHome prop * - * @returns Promise when complete * @protected */ - protected async _getTranslations(): Promise { - const messages = await getLocaleComponentStrings(this.el); - this._translations = messages[0] as typeof MapCard_T9n; + protected _initHome(): void { + if (this.enableHome) { + this._homeWidget = new this.Home({ + view: this.mapView + }); + this.mapView.ui.add(this._homeWidget, { position: "top-left", index: 3 }); + } else if (this._homeWidget){ + this.mapView.ui.remove(this._homeWidget); + } } } diff --git a/src/components/map-card/readme.md b/src/components/map-card/readme.md index a96afea70..826d246bf 100644 --- a/src/components/map-card/readme.md +++ b/src/components/map-card/readme.md @@ -7,18 +7,27 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ---------- | --------- | ------------------------------------------------------------------------------------------------------ | ------------ | ----------- | -| `mapInfos` | -- | IMapInfo[]: array of map infos (name and id) | `IMapInfo[]` | `[]` | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | ------------------- | ----------- | +| `basemapConfig` | -- | IBasemapConfig: List of any basemaps to filter out from the basemap widget | `IBasemapConfig` | `undefined` | +| `enableBasemap` | `enable-basemap` | boolean: when true the basemap widget will be available | `boolean` | `undefined` | +| `enableFloorFilter` | `enable-floor-filter` | boolean: when true the floor filter widget will be available | `boolean` | `undefined` | +| `enableFullscreen` | `enable-fullscreen` | boolean: when true the fullscreen widget will be available | `boolean` | `undefined` | +| `enableHome` | `enable-home` | boolean: when true the home widget will be available | `boolean` | `undefined` | +| `enableLegend` | `enable-legend` | boolean: when true the legend widget will be available | `boolean` | `undefined` | +| `enableSearch` | `enable-search` | boolean: when true the search widget will be available | `boolean` | `undefined` | +| `hidden` | `hidden` | boolean: When true the map display will be hidden | `boolean` | `undefined` | +| `mapInfos` | -- | IMapInfo[]: array of map infos (name and id) | `IMapInfo[]` | `[]` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `theme` | `theme` | theme: "light" \| "dark" theme to be used | `"dark" \| "light"` | `undefined` | ## Events -| Event | Description | Type | -| ------------ | ----------------------------------------- | --------------------------------------------------------- | -| `expandMap` | Emitted when the expand button is clicked | `CustomEvent` | -| `mapChanged` | Emitted when a new map is loaded | `CustomEvent` | +| Event | Description | Type | +| ------------------ | ---------------------------------- | ------------------------- | +| `beforeMapChanged` | Emitted before a new map is loaded | `CustomEvent` | +| `mapChanged` | Emitted when a new map is loaded | `CustomEvent` | ## Dependencies @@ -29,26 +38,21 @@ ### Depends on -- calcite-action-bar -- calcite-action-group -- calcite-action -- calcite-icon -- calcite-tooltip -- calcite-block -- calcite-pick-list -- calcite-pick-list-item +- [map-picker](../map-picker) +- [map-tools](../map-tools) ### Graph ```mermaid graph TD; - map-card --> calcite-action-bar - map-card --> calcite-action-group - map-card --> calcite-action - map-card --> calcite-icon - map-card --> calcite-tooltip - map-card --> calcite-block - map-card --> calcite-pick-list - map-card --> calcite-pick-list-item + map-card --> map-picker + map-card --> map-tools + map-picker --> calcite-button + map-picker --> calcite-tooltip + map-picker --> calcite-action-bar + map-picker --> calcite-list + map-picker --> calcite-list-item + calcite-button --> calcite-loader + calcite-button --> calcite-icon calcite-action-bar --> calcite-action-group calcite-action-group --> calcite-action-menu calcite-action-group --> calcite-action @@ -58,15 +62,25 @@ graph TD; calcite-action --> calcite-icon calcite-popover --> calcite-action calcite-popover --> calcite-icon - calcite-block --> calcite-scrim - calcite-block --> calcite-icon - calcite-block --> calcite-handle - calcite-block --> calcite-loader - calcite-block --> calcite-action-menu + calcite-list --> calcite-scrim + calcite-list --> calcite-stack + calcite-list --> calcite-filter calcite-scrim --> calcite-loader + calcite-filter --> calcite-input + calcite-input --> calcite-progress + calcite-input --> calcite-icon + calcite-list-item --> calcite-icon + calcite-list-item --> calcite-handle + calcite-list-item --> calcite-action calcite-handle --> calcite-icon - calcite-pick-list-item --> calcite-icon - calcite-pick-list-item --> calcite-action + map-tools --> basemap-gallery + map-tools --> map-search + map-tools --> map-legend + map-tools --> map-fullscreen + map-tools --> floor-filter + map-tools --> calcite-action + map-tools --> calcite-icon + map-tools --> calcite-tooltip crowdsource-manager --> map-card style map-card fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/map-draw-tools/map-draw-tools.css b/src/components/map-draw-tools/map-draw-tools.css index 597a1880c..6475f567c 100644 --- a/src/components/map-draw-tools/map-draw-tools.css +++ b/src/components/map-draw-tools/map-draw-tools.css @@ -74,6 +74,7 @@ html[dir="rtl"] .main-label { display: flex; flex-flow: row wrap; padding: 0; + justify-content: flex-start !important; } .esri-sketch__section { diff --git a/src/components/map-draw-tools/map-draw-tools.tsx b/src/components/map-draw-tools/map-draw-tools.tsx index 5899e0957..78d3868fc 100644 --- a/src/components/map-draw-tools/map-draw-tools.tsx +++ b/src/components/map-draw-tools/map-draw-tools.tsx @@ -165,6 +165,7 @@ export class MapDrawTools { @Watch("graphics") graphicsWatchHandler(v: any, oldV: any): void { if (v && v.length > 0 && JSON.stringify(v) !== JSON.stringify(oldV) && this._sketchGraphicsLayer) { + this._updateGraphicsSymbols(v); this._sketchGraphicsLayer.removeAll(); this._sketchGraphicsLayer.addMany(v); } @@ -396,7 +397,7 @@ export class MapDrawTools { }, undoRedoMenu: false, settingsMenu: this.drawMode === EDrawMode.SKETCH - } as any // temp workaround since we need duplicateButton flag that is not in 4.26 types but will be in the 4.27 modules we get from IA + } }); this._sketchViewModel = new this.SketchViewModel({ @@ -521,6 +522,29 @@ export class MapDrawTools { }, 100); } + /** + * Any time graphics are added update the symbology so they will always be consistent + * regardless of where they are from. + * https://github.com/Esri/solutions-components/issues/246 + * + * reshape tool only supports a single graphic + * + * @protected + */ + protected _updateGraphicsSymbols( + graphics: __esri.Graphic[] + ): void { + // graphics will only be of one gemetry type + const graphic = graphics[0]; + const type = graphic.geometry.type; + const symbol = type === "point" ? this.pointSymbol : + type === "polyline" ? this.polylineSymbol : + type === "polygon" ? this.polygonSymbol : undefined; + if (symbol) { + graphics.forEach(g => g.symbol = symbol); + } + } + /** * Fetches the component's translations * diff --git a/src/components/edit-record-modal/edit-record-modal.css b/src/components/map-fullscreen/map-fullscreen.css similarity index 74% rename from src/components/edit-record-modal/edit-record-modal.css rename to src/components/map-fullscreen/map-fullscreen.css index 3e15a49e7..5fb2a40a9 100644 --- a/src/components/edit-record-modal/edit-record-modal.css +++ b/src/components/map-fullscreen/map-fullscreen.css @@ -17,19 +17,3 @@ :host { display: block; } - -.padding-bottom-1 { - padding-bottom: 1rem; -} - -.font-bold { - font-weight: var(--calcite-font-weight-bold); -} - -.font-500 { - font-weight: var(--calcite-font-weight-medium); -} - -.font-italic { - font-style: italic; -} diff --git a/src/components/edit-record-modal/edit-record-modal.tsx b/src/components/map-fullscreen/map-fullscreen.tsx similarity index 52% rename from src/components/edit-record-modal/edit-record-modal.tsx rename to src/components/map-fullscreen/map-fullscreen.tsx index 0d5701d8f..b55cbc881 100644 --- a/src/components/edit-record-modal/edit-record-modal.tsx +++ b/src/components/map-fullscreen/map-fullscreen.tsx @@ -14,22 +14,20 @@ * limitations under the License. */ -import { Component, Element, Host, h, Prop, State, VNode } from '@stencil/core'; -import EditRecordModal_T9n from "../../assets/t9n/edit-record-modal/resources.json"; -import { getLocaleComponentStrings } from "../../utils/locale"; +import { Component, Host, h, Prop, Watch } from '@stencil/core'; +import { loadModules } from "../../utils/loadModules"; @Component({ - tag: 'edit-record-modal', - styleUrl: 'edit-record-modal.css', + tag: 'map-fullscreen', + styleUrl: 'map-fullscreen.css', shadow: true, }) -export class EditRecordModal { +export class MapFullscreen { //-------------------------------------------------------------------------- // // Host element access // //-------------------------------------------------------------------------- - @Element() el: HTMLEditRecordModalElement; //-------------------------------------------------------------------------- // @@ -38,9 +36,14 @@ export class EditRecordModal { //-------------------------------------------------------------------------- /** - * When true the component is displayed + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ - @Prop({ mutable: true }) open = false; + @Prop() mapView: __esri.MapView; + + /** + * esri/widgets/Fullscreen: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Fullscreen.html + */ + @Prop() fullscreenWidget: __esri.Fullscreen; //-------------------------------------------------------------------------- // @@ -48,24 +51,40 @@ export class EditRecordModal { // //-------------------------------------------------------------------------- - /** - * Contains the translations for this component. - * All UI strings should be defined here. - */ - @State() _translations: typeof EditRecordModal_T9n; - //-------------------------------------------------------------------------- // // Properties (protected) // //-------------------------------------------------------------------------- + /** + * esri/widgets/Fullscreen: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Fullscreen.html + */ + protected Fullscreen: typeof import("esri/widgets/Fullscreen"); + + /** + * HTMLElement: The container div for the Fullscreen widget + */ + protected _fullscreenElement: HTMLElement; + //-------------------------------------------------------------------------- // // Watch handlers // //-------------------------------------------------------------------------- + /** + * Called each time the mapView prop is changed. + * + * @returns Promise when complete + */ + @Watch("mapView") + async mapViewWatchHandler(): Promise { + await this.mapView.when(() => { + this._initFullscreenWidget(); + }); + } + //-------------------------------------------------------------------------- // // Methods (public) @@ -86,11 +105,9 @@ export class EditRecordModal { /** * StencilJS: Called once just after the component is first connected to the DOM. - * - * @returns Promise when complete */ async componentWillLoad(): Promise { - await this._getTranslations(); + await this._initModules(); } /** @@ -99,82 +116,59 @@ export class EditRecordModal { render() { return ( -
- -
{this._translations.editMultiple}
-
- - {this._translations.infoMessage} - - {this._getFieldInputs()} -
- this._cancel()} - slot="secondary" - width="full" - > - {this._translations.cancel} - - this._save()} - slot="primary" - width="full" - > - {this._translations.save} - -
-
+
{ this._fullscreenElement = el }} /> ); } + /** + * StencilJS: Called just after the component updates. + * It's never called during the first render(). + */ + async componentDidUpdate(): Promise { + this._initFullscreenWidget(); + } + + /** + * StencilJS: Called once just after the component is fully loaded and the first render() occurs. + */ + async componentDidLoad(): Promise { + this._initFullscreenWidget(); + } + //-------------------------------------------------------------------------- // // Functions (protected) // //-------------------------------------------------------------------------- - protected _getFieldInputs(): VNode[] { - // TODO don't follow what these are so just hard-coding for now - const labels = [ - this._translations.label, - this._translations.label, - this._translations.label, - this._translations.label, - this._translations.label - ]; - - return labels.map(label => { - return ( -
- - {label} - - -
- ); - }); - } - - protected _cancel(): void { - this.open = false; - } - - protected _save(): void { - this.open = false; + /** + * Load esri javascript api modules + * + * @returns Promise resolving when function is done + * + * @protected + */ + protected async _initModules(): Promise { + const [Fullscreen] = await loadModules([ + "esri/widgets/Fullscreen" + ]); + this.Fullscreen = Fullscreen; } /** - * Fetches the component's translations + * Initialize the search widget * - * @returns Promise when complete * @protected */ - protected async _getTranslations(): Promise { - const messages = await getLocaleComponentStrings(this.el); - this._translations = messages[0] as typeof EditRecordModal_T9n; + protected _initFullscreenWidget(): void { + if (this.mapView && this._fullscreenElement && !this.fullscreenWidget) { + this.fullscreenWidget = new this.Fullscreen({ + view: this.mapView + }); + } else if (this.fullscreenWidget) { + this.fullscreenWidget.view = this.mapView; + } } } diff --git a/src/components/map-fullscreen/readme.md b/src/components/map-fullscreen/readme.md new file mode 100644 index 000000000..74645aa6f --- /dev/null +++ b/src/components/map-fullscreen/readme.md @@ -0,0 +1,31 @@ +# map-fullscreen + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------------- | ------------ | ----------- | +| `fullscreenWidget` | -- | esri/widgets/Fullscreen: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Fullscreen.html | `Fullscreen` | `undefined` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | + + +## Dependencies + +### Used by + + - [map-tools](../map-tools) + +### Graph +```mermaid +graph TD; + map-tools --> map-fullscreen + style map-fullscreen fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/map-layer-picker/map-layer-picker.css b/src/components/map-layer-picker/map-layer-picker.css index 46ed1ddb9..160e4dd25 100644 --- a/src/components/map-layer-picker/map-layer-picker.css +++ b/src/components/map-layer-picker/map-layer-picker.css @@ -20,14 +20,29 @@ .map-layer-picker-container { width: 100%; + height: 100%; } .map-layer-picker { position: relative; width: 100%; display: inline-block; + height: 100%; } .padding-bottom-1 { padding-bottom: 1rem; } + +.layer-picker-dropdown { + height: 100%; + width: 100%; +} + +.max-width-350 { + max-width: 350px; +} + +.height-100 { + height: 100%; +} diff --git a/src/components/map-layer-picker/map-layer-picker.tsx b/src/components/map-layer-picker/map-layer-picker.tsx index 7be5360f0..72863fc25 100644 --- a/src/components/map-layer-picker/map-layer-picker.tsx +++ b/src/components/map-layer-picker/map-layer-picker.tsx @@ -15,9 +15,11 @@ */ import { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode, Watch } from "@stencil/core"; -import { getMapLayerHash, getMapLayerIds } from "../../utils/mapViewUtils"; -import { SelectionMode } from "../../utils/interfaces"; +import MapLayerPicker_T9n from "../../assets/t9n/map-layer-picker/resources.json"; +import { getLocaleComponentStrings } from "../../utils/locale"; +import { getMapLayerHash, getMapTableHash } from "../../utils/mapViewUtils"; import state from "../../utils/publicNotificationStore"; +import { IMapItemHash } from "../../utils/interfaces"; @Component({ tag: "map-layer-picker", @@ -38,28 +40,57 @@ export class MapLayerPicker { // //-------------------------------------------------------------------------- + /** + * "transparent" | "solid": controls the button appearance when using the "dropdown" type + */ + @Prop() appearance: "transparent" | "solid" = "transparent"; + /** * string[]: Optional list of enabled layer ids * If empty all layers will be available */ @Prop() enabledLayerIds: string[] = []; + /** + * string[]: Optional list of enabled table ids + * If empty all tables will be available + */ + @Prop() enabledTableIds: string[] = []; + /** * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @Prop() mapView: __esri.MapView; + /** + * boolean: When true only editable layers that support the update capability will be available + */ + @Prop() onlyShowUpdatableLayers: boolean; + + /** + * string: optional placeholder icon used with "combobox" type + */ + @Prop() placeholderIcon = ""; + /** * string[]: list of layer ids that have been selected by the end user */ - @Prop({ mutable: true }) selectedLayerIds: string[] = []; + @Prop({ mutable: true }) selectedIds: string[] = []; /** - * SelectionMode: "single" | "multi" - * - * Should the component support selection against a single layer or multiple layers. + * "s" | "m" | "l": scale to render the component */ - @Prop({ mutable: true, reflect: true }) selectionMode: SelectionMode = "single"; + @Prop() scale: "s" | "m" | "l" = "m"; + + /** + * boolean: when true standalone tables will also be available + */ + @Prop() showTables: boolean; + + /** + * "select" | "combobox" | "dropdown": type of component to leverage + */ + @Prop() type: "select" | "combobox" | "dropdown" = "select"; //-------------------------------------------------------------------------- // @@ -68,9 +99,25 @@ export class MapLayerPicker { //-------------------------------------------------------------------------- /** - * string[]: list of layer ids from the map + * boolean: when true the map contains valid layers and all expected tools will be enabled + */ + @State() _hasValidLayers = true; + + /** + * string[]: list of layer and table (if showTables is true) ids from the map + */ + @State() ids: string[] = []; + + /** + * string: current layer name to display when using "dropdown" type + */ + @State() selectedName = ""; + + /** + * Contains the translations for this component. + * All UI strings should be defined here. */ - @State() layerIds: string[] = []; + @State() _translations: typeof MapLayerPicker_T9n; //-------------------------------------------------------------------------- // @@ -81,7 +128,17 @@ export class MapLayerPicker { /** * HTMLCalciteSelectElement: The html element for selecting layers */ - protected _layerElement: HTMLCalciteSelectElement; + protected _layerElement: HTMLCalciteSelectElement | HTMLCalciteComboboxElement; + + /** + * IMapItemHash: id/name lookup + */ + protected _layerNameHash: IMapItemHash; + + /** + * IMapItemHash: id/name lookup + */ + protected _tableNameHash: IMapItemHash; //-------------------------------------------------------------------------- // @@ -94,12 +151,14 @@ export class MapLayerPicker { * */ @Watch("mapView") - async watchStateHandler(newValue: boolean, oldValue: boolean): Promise { - if (newValue !== oldValue) { - await this._setLayers(); - if (this.selectionMode === "single") { - this.layerSelectionChange.emit([this.layerIds[0]]); - } + async mapViewWatchHandler(): Promise { + await this._setLayers(); + if (this.ids.length > 0) { + this._hasValidLayers = true; + this._setSelectedLayer(this.ids[0]); + } else { + this._hasValidLayers = false; + this.noLayersFound.emit(); } } @@ -115,6 +174,12 @@ export class MapLayerPicker { // //-------------------------------------------------------------------------- + /** + * Emitted on demand when no valid layers are found + * + */ + @Event() noLayersFound: EventEmitter; + /** * Emitted on demand when a layer is selected * @@ -131,10 +196,11 @@ export class MapLayerPicker { * StencilJS: Called once just after the component is first connected to the DOM. */ async componentWillLoad(): Promise { + await this._getTranslations(); await this._setLayers(); - if (this.selectionMode === "single" && (this.layerIds.length > 0 || this.selectedLayerIds.length === 1)) { + if (this.ids.length > 0 || this.selectedIds.length === 1) { this.layerSelectionChange.emit( - this.selectedLayerIds.length === 1 ? [this.selectedLayerIds[0]] : [this.layerIds[0]] + this.selectedIds.length === 1 ? [this.selectedIds[0]] : [this.ids[0]] ); } } @@ -143,17 +209,44 @@ export class MapLayerPicker { * Renders the component. */ render(): VNode { + const id = "map-layer-picker"; return (
- {this.selectionMode === "multi" ? this._getCombobox() : this._getSelect()} + { + !this._hasValidLayers ? this._getInvalidPlaceholder() : this.type === "combobox" ? this._getCombobox(id) : + this.type === "select" ? this._getSelect(id) : this._getDropdown(id) + } + + {this._translations.switchLayer} +
); } + /** + * StencilJS: Called once just after the component is fully loaded and the first render() occurs. + */ + async componentDidLoad(): Promise { + if (this.ids.length > 0 || this.selectedIds.length === 1) { + const id = this.selectedIds.length === 1 ? this.selectedIds[0] : this.ids[0]; + if (this.type === "select") { + this._layerElement.value = id; + } else if (this.type === "dropdown") { + this.selectedName = Object.keys(this._layerNameHash).indexOf(id) > -1 ? + this._layerNameHash[id].name : Object.keys(this._tableNameHash).indexOf(id) > -1 ? + this._tableNameHash[id].name : ""; + } + } + } + //-------------------------------------------------------------------------- // // Functions (protected) @@ -161,65 +254,172 @@ export class MapLayerPicker { //-------------------------------------------------------------------------- /** - * Create a list of layers from the map + * Create a notice to inform the user that no layers were found * + * @returns Calcite Notice component with the message + */ + protected _getInvalidPlaceholder(): VNode { + return ( +
+ +
{this._translations.noLayersFound}
+
+ + {this._translations.enableEditUpdate} + +
+ ); + } + + /** + * Create a list of layers from the map * Used for selecting a single layer. * + * @param id the id for the select component used to support the tooltip + * * @returns Calcite Select component with the ids of the layers from the map */ - _getSelect(): VNode { + _getSelect( + id: string + ): VNode { return ( this._layerSelectionChange(evt)} + onCalciteSelectChange={() => this._layerSelectionChange()} ref={(el) => { this._layerElement = el }} + scale={this.scale} > - {this._addMapLayersOptions()} + {this._getMapLayerOptions()} ); } /** * Create a list of layer ids from the map - * * Used for selecting multiple layers * + * @param id the id for the combobox component used to support the tooltip + * * @returns Calcite ComboBox component with the ids of the layers from the map */ - _getCombobox(): VNode { + _getCombobox( + id: string + ): VNode { return ( this._layerSelectionChange(evt)} - selection-mode={this.selectionMode} + onCalciteComboboxChange={() => this._layerSelectionChange()} + placeholder-icon={this.placeholderIcon} + ref={(el) => { this._layerElement = el }} + scale={this.scale} + selection-mode="single" > - {this._addMapLayersOptions()} + {this._getMapLayerOptions()} ); } /** - * Hydrate a select or combobox component with the ids of the layers in the map + * Hydrate a dropdown component with items to display the layer names * - * @returns Array of ComboBox items or Select options for the ids of the layers - */ - _addMapLayersOptions(): VNode[] { - return this.layerIds.reduce((prev, cur) => { - if (state.managedLayers.indexOf(state.layerNameHash[cur]) < 0 && (this.enabledLayerIds.length > 0 ? this.enabledLayerIds.indexOf(cur) > -1 : true)) { - prev.push( - this.selectionMode === "multi" && this.selectedLayerIds.indexOf(cur) > -1 ? - () : - this.selectionMode === "multi" ? - () : - this.selectedLayerIds.indexOf(cur) > -1 ? - () : - () - ); + * @param id the id for the dropdown component used to support the tooltip + * + * @returns Array of Dropdown items with layer names + */ + _getDropdown( + id: string + ): VNode { + return ( + + + +
+ {this.selectedName} +
+
+
+ + {this._getMapLayerOptions()} + +
+ ); + } + + /** + * Get the appropriate type of dom nodes for each valid layer or table + * + * @returns Array of dom nodes with the names of the layers and optionally of the tables + */ + _getMapLayerOptions(): VNode[] { + return this.ids.reduce((prev, cur) => { + if (this._validLayer(cur)) { + prev.push(this._getItem(cur, "layer")); + } else if (this._validTable(cur)) { + prev.push(this._getItem(cur, "table")); } return prev; }, []); } + /** + * Get the appropriate type of dom node for the current layer or table id + * + * @returns A dom node with the name of the layer or table + */ + _getItem( + id: string, + itemType: "layer" | "table" + ): VNode { + const item = itemType === "layer" ? this._layerNameHash[id] : this._tableNameHash[id]; + const disabled = this.onlyShowUpdatableLayers ? !item.supportsUpdate : false; + const name = item.name; + return this.type === "combobox" ? () : + this.type === "select" ? () : + ( + void this._setSelectedLayer(id)} + > + {name} + + ); + } + + /** + * Store the layer name based on the user selection + */ + _setSelectedLayer( + id: string + ): void { + const item = Object.keys(this._layerNameHash).indexOf(id) > -1 ? + this._layerNameHash[id] : Object.keys(this._tableNameHash).indexOf(id) > -1 ? + this._tableNameHash[id] : undefined; + this.selectedName = item?.name; + this.selectedIds = [id]; + this.layerSelectionChange.emit(this.selectedIds); + } + /** * Fetch the ids of the layers from the map * @@ -227,21 +427,70 @@ export class MapLayerPicker { */ async _setLayers(): Promise { if (this.mapView) { - const mapLayerIds = await getMapLayerIds(this.mapView); - this.layerIds = mapLayerIds.filter(n => this.enabledLayerIds?.length > 0 ? this.enabledLayerIds.indexOf(n) > -1 : true); - await this._initLayerHashState(); + await this._initLayerTableHash(); + const mapLayerIds = this.onlyShowUpdatableLayers ? + this._getEditableIds(this._layerNameHash) : Object.keys(this._layerNameHash); + const mapTableIds = this.showTables ? this.onlyShowUpdatableLayers ? + this._getEditableIds(this._tableNameHash) : Object.keys(this._tableNameHash) : []; + this.ids = [ + ...mapLayerIds.reverse().filter(n => this.enabledLayerIds?.length > 0 ? this.enabledLayerIds.reverse().indexOf(n) > -1 : true), + ...mapTableIds.reverse().filter(n => this.enabledTableIds?.length > 0 ? this.enabledTableIds.reverse().indexOf(n) > -1 : true), + ]; } } + /** + * Fetch the ids of all layers that support edits with the update capability + * + * @returns array of layer ids + */ + protected _getEditableIds( + hash: IMapItemHash + ): string[] { + return Object.keys(hash).reduce((prev, cur) => { + if (hash[cur].supportsUpdate) { + prev.push(cur); + } + return prev; + }, []); + } + /** * Create a layer id:title hash for layer name display * * @returns Promise when the operation has completed */ - protected async _initLayerHashState(): Promise { - if (this.mapView) { - state.layerNameHash = await getMapLayerHash(this.mapView); - } + protected async _initLayerTableHash(): Promise { + this._layerNameHash = await getMapLayerHash(this.mapView, this.onlyShowUpdatableLayers); + this._tableNameHash = this.showTables ? await getMapTableHash( + this.mapView, this.onlyShowUpdatableLayers) : {}; + } + + /** + * Evaluate if the id exists in the current hash and verify if it should be excluded + * + * @returns boolean when true the layer will be used in the current layer picker type + */ + protected _validLayer( + id: string + ): boolean { + const name = this._layerNameHash[id]?.name; + return name && state.managedLayers.indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ? + this.enabledLayerIds.indexOf(id) > -1 : true); + } + + /** + * Evaluate if the id exists in the current hash and verify if it should be excluded + * + * @returns boolean when true the table will be used in the current layer picker type + */ + protected _validTable( + id: string + ): boolean { + const name = this._tableNameHash[id]?.name; + const validName = name && this.showTables; + return validName ? state.managedTables.indexOf(name) < 0 && + (this.enabledTableIds.length > 0 ? this.enabledTableIds.indexOf(id) > -1 : true) : validName; } /** @@ -249,13 +498,22 @@ export class MapLayerPicker { * * @returns Promise when the operation has completed */ - _layerSelectionChange(evt: CustomEvent): void { - this.selectedLayerIds = this.selectionMode === "single" ? - [this._layerElement.value] : evt.detail?.selectedItems.map( - (item: HTMLCalciteComboboxItemElement) => { - return item.value; - } - ) || []; - this.layerSelectionChange.emit(this.selectedLayerIds); + _layerSelectionChange(): void { + const ids = Array.isArray(this._layerElement.value) ? this._layerElement.value : [this._layerElement.value]; + if (JSON.stringify(ids) !== JSON.stringify([""])) { + this.selectedIds = ids; + this.layerSelectionChange.emit(this.selectedIds); + } + } + + /** + * Fetches the component's translations + * + * @returns Promise when complete + * @protected + */ + protected async _getTranslations(): Promise { + const messages = await getLocaleComponentStrings(this.el); + this._translations = messages[0] as typeof MapLayerPicker_T9n; } } diff --git a/src/components/map-layer-picker/readme.md b/src/components/map-layer-picker/readme.md index ea26b8764..fcf58fc3b 100644 --- a/src/components/map-layer-picker/readme.md +++ b/src/components/map-layer-picker/readme.md @@ -7,19 +7,26 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ------------------ | ---------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------- | ----------- | -| `enabledLayerIds` | -- | string[]: Optional list of enabled layer ids If empty all layers will be available | `string[]` | `[]` | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | -| `selectedLayerIds` | -- | string[]: list of layer ids that have been selected by the end user | `string[]` | `[]` | -| `selectionMode` | `selection-mode` | SelectionMode: "single" \| "multi" Should the component support selection against a single layer or multiple layers. | `"multi" \| "single"` | `"single"` | +| Property | Attribute | Description | Type | Default | +| ------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------- | --------------- | +| `appearance` | `appearance` | "transparent" \| "solid": controls the button appearance when using the "dropdown" type | `"solid" \| "transparent"` | `"transparent"` | +| `enabledLayerIds` | -- | string[]: Optional list of enabled layer ids If empty all layers will be available | `string[]` | `[]` | +| `enabledTableIds` | -- | string[]: Optional list of enabled table ids If empty all tables will be available | `string[]` | `[]` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `onlyShowUpdatableLayers` | `only-show-updatable-layers` | boolean: When true only editable layers that support the update capability will be available | `boolean` | `undefined` | +| `placeholderIcon` | `placeholder-icon` | string: optional placeholder icon used with "combobox" type | `string` | `""` | +| `scale` | `scale` | "s" \| "m" \| "l": scale to render the component | `"l" \| "m" \| "s"` | `"m"` | +| `selectedIds` | -- | string[]: list of layer ids that have been selected by the end user | `string[]` | `[]` | +| `showTables` | `show-tables` | boolean: when true standalone tables will also be available | `boolean` | `undefined` | +| `type` | `type` | "select" \| "combobox" \| "dropdown": type of component to leverage | `"combobox" \| "dropdown" \| "select"` | `"select"` | ## Events -| Event | Description | Type | -| ---------------------- | ------------------------------------------ | ----------------------- | -| `layerSelectionChange` | Emitted on demand when a layer is selected | `CustomEvent` | +| Event | Description | Type | +| ---------------------- | ------------------------------------------------ | ----------------------- | +| `layerSelectionChange` | Emitted on demand when a layer is selected | `CustomEvent` | +| `noLayersFound` | Emitted on demand when no valid layers are found | `CustomEvent` | ## Dependencies @@ -32,23 +39,43 @@ ### Depends on +- calcite-tooltip +- calcite-notice - calcite-select - calcite-combobox +- calcite-dropdown +- calcite-action +- calcite-button +- calcite-dropdown-group - calcite-combobox-item - calcite-option +- calcite-dropdown-item ### Graph ```mermaid graph TD; + map-layer-picker --> calcite-tooltip + map-layer-picker --> calcite-notice map-layer-picker --> calcite-select map-layer-picker --> calcite-combobox + map-layer-picker --> calcite-dropdown + map-layer-picker --> calcite-action + map-layer-picker --> calcite-button + map-layer-picker --> calcite-dropdown-group map-layer-picker --> calcite-combobox-item map-layer-picker --> calcite-option + map-layer-picker --> calcite-dropdown-item + calcite-notice --> calcite-icon calcite-select --> calcite-icon calcite-combobox --> calcite-chip calcite-combobox --> calcite-icon calcite-chip --> calcite-icon + calcite-action --> calcite-loader + calcite-action --> calcite-icon + calcite-button --> calcite-loader + calcite-button --> calcite-icon calcite-combobox-item --> calcite-icon + calcite-dropdown-item --> calcite-icon layer-table --> map-layer-picker map-select-tools --> map-layer-picker refine-selection --> map-layer-picker diff --git a/src/components/map-legend/map-legend.css b/src/components/map-legend/map-legend.css new file mode 100644 index 000000000..5d4e87f30 --- /dev/null +++ b/src/components/map-legend/map-legend.css @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/src/components/map-legend/map-legend.tsx b/src/components/map-legend/map-legend.tsx new file mode 100644 index 000000000..8c5a5c3b1 --- /dev/null +++ b/src/components/map-legend/map-legend.tsx @@ -0,0 +1,175 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, Element, Host, h, Prop, Watch } from '@stencil/core'; +import { loadModules } from "../../utils/loadModules"; + +@Component({ + tag: 'map-legend', + styleUrl: 'map-legend.css', + shadow: true, +}) +export class MapLegend { + //-------------------------------------------------------------------------- + // + // Host element access + // + //-------------------------------------------------------------------------- + + @Element() el: HTMLMapLegendElement; + + //-------------------------------------------------------------------------- + // + // Properties (public) + // + //-------------------------------------------------------------------------- + + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + + /** + * esri/widgets/Legend: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html + * + * Legend instance + */ + @Prop() legendWidget: __esri.Legend; + + //-------------------------------------------------------------------------- + // + // State (internal) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Properties (protected) + // + //-------------------------------------------------------------------------- + + /** + * esri/widgets/Legend: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html + * + * Legend constructor + */ + protected Legend: typeof import("esri/widgets/Legend"); + + /** + * HTMLElement: The container div for the basemap gallery widget + */ + protected _legendElement: HTMLElement; + + //-------------------------------------------------------------------------- + // + // Watch handlers + // + //-------------------------------------------------------------------------- + + @Watch("mapView") + async mapViewWatchHandler(): Promise { + await this.mapView.when(() => { + this._initLegend(this.mapView); + }); + } + + //-------------------------------------------------------------------------- + // + // Methods (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Events (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Functions (lifecycle) + // + //-------------------------------------------------------------------------- + + /** + * StencilJS: Called once just after the component is first connected to the DOM. + */ + async componentWillLoad(): Promise { + return this._initModules(); + } + + /** + * StencilJS: Renders the component. + */ + render() { + return ( + +
{ this._legendElement = el }} /> + + ); + } + + /** + * StencilJS: Called once just after the component is fully loaded and the first render() occurs. + */ + async componentDidLoad(): Promise { + if (this.mapView) { + await this.mapViewWatchHandler(); + } + } + + //-------------------------------------------------------------------------- + // + // Functions (protected) + // + //-------------------------------------------------------------------------- + + /** + * Load esri javascript api modules + * + * @returns Promise resolving when function is done + * + * @protected + */ + protected async _initModules(): Promise { + const [Legend] = await loadModules([ + "esri/widgets/Legend" + ]); + this.Legend = Legend; + } + + /** + * Initialize the basemap gallery or reset the current view if it already exists + * + * @returns void + * + * @protected + */ + protected _initLegend( + view: __esri.MapView + ): void { + if (view && this.Legend) { + if (!this.legendWidget) { + this.legendWidget = new this.Legend({ + container: this._legendElement, + view + }); + } else { + this.legendWidget.view = view; + } + } + } +} diff --git a/src/components/map-legend/readme.md b/src/components/map-legend/readme.md new file mode 100644 index 000000000..a211d9c82 --- /dev/null +++ b/src/components/map-legend/readme.md @@ -0,0 +1,31 @@ +# map-legend + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| -------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------- | --------- | ----------- | +| `legendWidget` | -- | esri/widgets/Legend: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html Legend instance | `Legend` | `undefined` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | + + +## Dependencies + +### Used by + + - [map-tools](../map-tools) + +### Graph +```mermaid +graph TD; + map-tools --> map-legend + style map-legend fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/media-card/media-card.css b/src/components/map-picker/map-picker.css similarity index 53% rename from src/components/media-card/media-card.css rename to src/components/map-picker/map-picker.css index 4b51c87d6..2fc75dadc 100644 --- a/src/components/media-card/media-card.css +++ b/src/components/map-picker/map-picker.css @@ -1,5 +1,5 @@ /** @license - * Copyright 2022 Esri + * Copyright 2023 Esri * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,41 +16,49 @@ :host { display: block; - --calcite-label-margin-bottom: 0; + --solutions-theme-foreground-color: var(--calcite-ui-foreground-1); } -.padding-bottom-1 { - padding-bottom: 1rem; +.width-full { + width: 100%; } -.padding-start-1 { - padding-inline-start: 1rem; +.height-full { + height: 100%; } .display-flex { display: flex; } -.font-italic { - font-style: italic; +.border-bottom-1 { + border-width: 0px; + border-bottom-width: 1px; + border-style: solid; + border-color: var(--calcite-ui-border-3); } -.button-width { - min-width: 120px; +.action-bar-size { + height: 51px; + width: 100%; } -.button-container { +.map-list { + position: absolute; display: flex; - justify-content: space-between; + flex-direction: column; + overflow: hidden; + animation: calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out; + background-color: var(--calcite-ui-background); + z-index: 1000; + width: 100%; + height: fit-content; } -.count-container { - display: flex; - align-items: center; +.display-none { + display: none; } -.img-container { - object-fit: scale-down; - width: 100%; - height: 100%; +.align-center { + align-items: center; } diff --git a/src/components/map-picker/map-picker.tsx b/src/components/map-picker/map-picker.tsx new file mode 100644 index 000000000..74db80b0d --- /dev/null +++ b/src/components/map-picker/map-picker.tsx @@ -0,0 +1,313 @@ +/** @license + * Copyright 2023 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode, Watch } from '@stencil/core'; +import { IMapInfo } from "../../utils/interfaces"; +import MapPicker_T9n from "../../assets/t9n/map-picker/resources.json"; +import { getLocaleComponentStrings } from "../../utils/locale"; + +@Component({ + tag: 'map-picker', + styleUrl: 'map-picker.css', + shadow: true, +}) +export class MapPicker { + //-------------------------------------------------------------------------- + // + // Host element access + // + //-------------------------------------------------------------------------- + + @Element() el: HTMLMapPickerElement; + + //-------------------------------------------------------------------------- + // + // Properties (public) + // + //-------------------------------------------------------------------------- + + /** + * IMapInfo[]: array of map infos (name and id) + */ + @Prop() mapInfos: IMapInfo[] = []; + + //-------------------------------------------------------------------------- + // + // State (internal) + // + //-------------------------------------------------------------------------- + + /** + * boolean: controls the state of the map list + */ + @State() _mapListExpanded = false; + + /** + * Contains the translations for this component. + * All UI strings should be defined here. + */ + @State() _translations: typeof MapPicker_T9n; + + /** + * IMapInfo: id and name of the map to display + */ + @State() _webMapInfo: IMapInfo; + + //-------------------------------------------------------------------------- + // + // Properties (protected) + // + //-------------------------------------------------------------------------- + + /** + * HTMLCalciteListElement: this list of map names + */ + protected _list: HTMLCalciteListElement; + + /** + * string: the id of map currently displayed + */ + protected _loadedId = ""; + + //-------------------------------------------------------------------------- + // + // Watch handlers + // + //-------------------------------------------------------------------------- + + /** + * Called each time the _webMapInfo prop is changed. + */ + @Watch("_webMapInfo") + _webMapInfoWatchHandler(v: IMapInfo, oldV: IMapInfo): void { + if (v && JSON.stringify(v) !== JSON.stringify(oldV)) { + this._loadedId = v?.id; + this.mapInfoChange.emit(v); + } + } + + /** + * Called each time the mapInfos prop is changed. + */ + @Watch("mapInfos") + async mapInfosWatchHandler(v: IMapInfo[], oldV: IMapInfo[]): Promise { + if (v && JSON.stringify(v) !== JSON.stringify(oldV)) { + this._webMapSelected(v[0]); + } + } + + //-------------------------------------------------------------------------- + // + // Methods (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Events (public) + // + //-------------------------------------------------------------------------- + + /** + * Emitted when a new map is loaded + */ + @Event() mapInfoChange: EventEmitter; + + //-------------------------------------------------------------------------- + // + // Functions (lifecycle) + // + //-------------------------------------------------------------------------- + + /** + * StencilJS: Called once just after the component is first connected to the DOM. + * + * @returns Promise when complete + */ + async componentWillLoad(): Promise { + await this._getTranslations(); + } + + /** + * Renders the component. + */ + render() { + return ( + + {this._getToolbar()} + {this._getMapNameList(this._mapListExpanded)} + + ); + } + + /** + * Called after each render + */ + async componentDidRender() { + if (this._mapListExpanded) { + await this._list.setFocus(); + } + } + + /** + * Called once after the component has loaded + */ + async componentDidLoad() { + const webMapInfo = this.mapInfos && this.mapInfos.length > 0 ? this.mapInfos[0] : undefined; + if (webMapInfo) { + this._webMapSelected(webMapInfo); + } + } + + //-------------------------------------------------------------------------- + // + // Functions (protected) + // + //-------------------------------------------------------------------------- + + /** + * Get a calcite action group for the map list + * Actions do not support multiple icons so this uses a block + * + * @returns the dom node for the action group + * + * @protected + */ + protected _getMapPicker(): VNode { + const id = "map-picker-expand-toggle"; + const mapListIcon = this._mapListExpanded ? "chevron-up" : "chevron-down"; + return ( +
+ this._chooseMap()} + width="full" + > + {this._webMapInfo?.name} + + + + {this._translations.switchMap} + + +
+ ); + } + + /** + * Create the toolbar (controls used for map and app interactions) + * + * @returns The dom node with the toolbar + * + * @protected + */ + protected _getToolbar(): VNode { + return ( +
+ + {this._getMapPicker()} + +
+ ); + } + + /** + * Get a pick list for all maps in mapInfos + * + * @param show boolean to indicate if the list should be shown or hidden + * + * @returns the dom node for the list of maps + * + * @protected + */ + protected _getMapNameList( + show: boolean + ): VNode { + const listClass = show ? "map-list" : "display-none"; + return ( +
+ this._list = el} + selectionAppearance="border" + > + {this.mapInfos.map(mapInfo => { + return ( + this._webMapSelected(mapInfo)} + selected={mapInfo.id === this._loadedId} + value={mapInfo.id} + /> + ) + })} + +
+ ); + } + + /** + * Fired when the user clicks on the map list + * + * @param webMapInfo the web map id and name selected from the list + * + * @returns void + * + * @protected + */ + protected _webMapSelected( + webMapInfo: IMapInfo + ): void { + this._mapListExpanded = false; + this._webMapInfo = webMapInfo; + } + + /** + * Toggles the open/close state of the map list + * + * @returns the dom node for the action group + * + * @protected + */ + protected _chooseMap(): void { + this._mapListExpanded = !this._mapListExpanded; + } + + /** + * Fetches the component's translations + * + * @returns Promise when complete + * @protected + */ + protected async _getTranslations(): Promise { + const messages = await getLocaleComponentStrings(this.el); + this._translations = messages[0] as typeof MapPicker_T9n; + } +} diff --git a/src/components/map-picker/readme.md b/src/components/map-picker/readme.md new file mode 100644 index 000000000..148f7da19 --- /dev/null +++ b/src/components/map-picker/readme.md @@ -0,0 +1,72 @@ +# map-picker + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| ---------- | --------- | -------------------------------------------- | ------------ | ------- | +| `mapInfos` | -- | IMapInfo[]: array of map infos (name and id) | `IMapInfo[]` | `[]` | + + +## Events + +| Event | Description | Type | +| --------------- | -------------------------------- | ----------------------- | +| `mapInfoChange` | Emitted when a new map is loaded | `CustomEvent` | + + +## Dependencies + +### Used by + + - [map-card](../map-card) + +### Depends on + +- calcite-button +- calcite-tooltip +- calcite-action-bar +- calcite-list +- calcite-list-item + +### Graph +```mermaid +graph TD; + map-picker --> calcite-button + map-picker --> calcite-tooltip + map-picker --> calcite-action-bar + map-picker --> calcite-list + map-picker --> calcite-list-item + calcite-button --> calcite-loader + calcite-button --> calcite-icon + calcite-action-bar --> calcite-action-group + calcite-action-group --> calcite-action-menu + calcite-action-group --> calcite-action + calcite-action-menu --> calcite-action + calcite-action-menu --> calcite-popover + calcite-action --> calcite-loader + calcite-action --> calcite-icon + calcite-popover --> calcite-action + calcite-popover --> calcite-icon + calcite-list --> calcite-scrim + calcite-list --> calcite-stack + calcite-list --> calcite-filter + calcite-scrim --> calcite-loader + calcite-filter --> calcite-input + calcite-input --> calcite-progress + calcite-input --> calcite-icon + calcite-list-item --> calcite-icon + calcite-list-item --> calcite-handle + calcite-list-item --> calcite-action + calcite-handle --> calcite-icon + map-card --> map-picker + style map-picker fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/map-search/map-search.tsx b/src/components/map-search/map-search.tsx index b98404108..b31a1c06c 100644 --- a/src/components/map-search/map-search.tsx +++ b/src/components/map-search/map-search.tsx @@ -14,16 +14,14 @@ * limitations under the License. */ -import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, VNode } from "@stencil/core"; +import { Component, Host, h, Prop, Watch } from "@stencil/core"; import { loadModules } from "../../utils/loadModules"; -import { ILayerSourceConfigItem, ILocatorSourceConfigItem, ISearchConfiguration, ISearchResult } from "../../utils/interfaces"; -import MapSearch_T9n from "../../assets/t9n/map-search/resources.json"; -import { getLocaleComponentStrings } from "../../utils/locale"; +import { ILayerSourceConfigItem, ILocatorSourceConfigItem, ISearchConfiguration } from "../../utils/interfaces"; @Component({ - tag: "map-search", - styleUrl: "map-search.css", - shadow: false, + tag: 'map-search', + styleUrl: 'map-search.css', + shadow: true, }) export class MapSearch { //-------------------------------------------------------------------------- @@ -31,7 +29,6 @@ export class MapSearch { // Host element access // //-------------------------------------------------------------------------- - @Element() el: HTMLElement; //-------------------------------------------------------------------------- // @@ -40,32 +37,41 @@ export class MapSearch { //-------------------------------------------------------------------------- /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @Prop() mapView: __esri.MapView; /** - * ISearchConfiguration: Configuration details for the Search widget + * boolean: When true the selected feature popup will be shown when serach result is found */ - @Prop({mutable: true}) searchConfiguration: ISearchConfiguration; + @Prop() popupEnabled = false; - //-------------------------------------------------------------------------- - // - // State (internal) - // - //-------------------------------------------------------------------------- + /** + * boolean: When true a graphic will be added for the search result + */ + @Prop() resultGraphicEnabled = false; + + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + @Prop() searchConfiguration: ISearchConfiguration; /** * string: Text entered by the end user. * Used to search against the locator. */ - @State() _searchTerm: string; + @Prop() searchTerm: string; /** - * Contains the translations for this component. - * All UI strings should be defined here. + * esri/widgets/Search: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html */ - @State() protected _translations: typeof MapSearch_T9n; + @Prop() searchWidget: __esri.widgetsSearch; + + //-------------------------------------------------------------------------- + // + // State (internal) + // + //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // @@ -88,11 +94,6 @@ export class MapSearch { */ protected _searchElement: HTMLElement; - /** - * esri/widgets/Search: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html - */ - protected _searchWidget: __esri.widgetsSearch; - /** * An array of objects representing the results of search */ @@ -104,33 +105,39 @@ export class MapSearch { // //-------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // - // Methods (public) - // - //-------------------------------------------------------------------------- + /** + * Called each time the searchConfiguration prop is changed. + * + * @returns Promise when complete + */ + @Watch("searchConfiguration") + async watchSearchConfigurationHandler(): Promise { + this._initSearchWidget(); + } /** - * Clears the state of the search widget + * Called each time the mapView prop is changed. * - * @returns Promise that resolves when the operation is complete + * @returns Promise when complete */ - @Method() - async clear(): Promise { - this._searchWidget.clear(); + @Watch("mapView") + async mapViewWatchHandler(): Promise { + await this.mapView.when(() => { + this._initSearchWidget(); + }); } //-------------------------------------------------------------------------- // - // Events (public) + // Methods (public) // //-------------------------------------------------------------------------- - /** - * Emitted on demand when the status of the search widget changes - * - */ - @Event() searchChange: EventEmitter; + //-------------------------------------------------------------------------- + // + // Events (public) + // + //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // @@ -140,25 +147,22 @@ export class MapSearch { /** * StencilJS: Called once just after the component is first connected to the DOM. - * - * @returns Promise when complete */ async componentWillLoad(): Promise { - await this._getTranslations(); await this._initModules(); } /** * StencilJS: Called once just after the component is fully loaded and the first render() occurs. */ - componentDidLoad(): void { - this._init(); + async componentDidLoad(): Promise { + return this._initSearchWidget(); } /** * Renders the component. */ - render(): VNode { + render() { return (
{ this._searchElement = el }} /> @@ -191,45 +195,30 @@ export class MapSearch { /** * Initialize the search widget * - * @returns Promise resolving when function is done - */ - protected _init(): void { - this._initSearchWidget(); - } - - /** - * Initialize the search widget and listen to key events - * * @protected */ protected _initSearchWidget(): void { - if (this.mapView && this._searchElement) { - const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView); + if (this.mapView && this._searchElement && !this.searchWidget) { - const searchOptions: __esri.widgetsSearchProperties = { + let searchOptions: __esri.widgetsSearchProperties = { view: this.mapView, container: this._searchElement, - searchTerm: this._searchTerm, - ...searchConfiguration + searchTerm: this.searchTerm }; - this._searchWidget = new this.Search(searchOptions); - - this._searchWidget.on("search-clear", () => { - this._searchResult = undefined; - this.searchChange.emit(this._searchResult); - }); - - this._searchWidget.on("select-result", (searchResults) => { - this._searchResult = undefined; - if (searchResults.result) { - this._searchResult = searchResults.result; - this.searchChange.emit({ - graphics: [searchResults.result.feature], - name: searchResults.result.name || "" - }); + if (this.searchConfiguration) { + const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView); + searchOptions = { + ...searchConfiguration } - }); + } + this.searchWidget = new this.Search(searchOptions); + this.searchWidget.popupEnabled = this.popupEnabled; + this.searchWidget.resultGraphicEnabled = this.resultGraphicEnabled; + } else { + if (this.searchWidget) { + this.searchWidget.view = this.mapView; + } } } @@ -245,41 +234,48 @@ export class MapSearch { searchConfiguration: ISearchConfiguration, view: __esri.MapView ): ISearchConfiguration { - const sources = searchConfiguration?.sources; - if (sources) { - sources.forEach(source => { + const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources"; + const sources = searchConfiguration.sources; + + if (sources?.length > 0) { + searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false; + + sources.forEach((source) => { const isLayerSource = source.hasOwnProperty("layer"); if (isLayerSource) { const layerSource = source as ILayerSourceConfigItem; - const layerFromMap = layerSource.layer?.id - ? view.map.findLayerById(layerSource.layer.id) - : null; + const layerId = layerSource.layer?.id; + const layerFromMap = layerId ? view.map.findLayerById(layerId) : null; + const layerUrl = layerSource?.layer?.url; if (layerFromMap) { layerSource.layer = layerFromMap as __esri.FeatureLayer; - } else if (layerSource?.layer?.url) { - layerSource.layer = new this.FeatureLayer(layerSource?.layer?.url as any); + } else if (layerUrl) { + layerSource.layer = new this.FeatureLayer(layerUrl as any); } } }); - } - searchConfiguration?.sources?.forEach(source => { - const isLocatorSource = source.hasOwnProperty("locator"); - if (isLocatorSource) { - const locatorSource = source as ILocatorSourceConfigItem; - locatorSource.url = locatorSource.url; - delete locatorSource.url; + + sources?.forEach((source) => { + const isLocatorSource = source.hasOwnProperty("locator"); + if (isLocatorSource) { + const locatorSource = (source as ILocatorSourceConfigItem); + if (locatorSource?.name === "ArcGIS World Geocoding Service") { + const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"]; + locatorSource.outFields = outFields; + locatorSource.singleLineFieldName = "SingleLine"; + } + + locatorSource.url = locatorSource.url; + delete locatorSource.url; + } + }); + } else { + searchConfiguration = { + ...searchConfiguration, + includeDefaultSources: true } - }); + } return searchConfiguration; } - /** - * Fetches the component's translations - * - * @protected - */ - protected async _getTranslations(): Promise { - const translations = await getLocaleComponentStrings(this.el); - this._translations = translations[0] as typeof MapSearch_T9n; - } } diff --git a/src/components/map-search/readme.md b/src/components/map-search/readme.md index 520f87be1..68971dc97 100644 --- a/src/components/map-search/readme.md +++ b/src/components/map-search/readme.md @@ -7,31 +7,28 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| --------------------- | --------- | ------------------------------------------------------------------------------------------------------ | ---------------------- | ----------- | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | -| `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ---------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------- | ---------------------- | ----------- | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `popupEnabled` | `popup-enabled` | boolean: When true the selected feature popup will be shown when serach result is found | `boolean` | `false` | +| `resultGraphicEnabled` | `result-graphic-enabled` | boolean: When true a graphic will be added for the search result | `boolean` | `false` | +| `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | +| `searchTerm` | `search-term` | string: Text entered by the end user. Used to search against the locator. | `string` | `undefined` | +| `searchWidget` | -- | esri/widgets/Search: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html | `widgetsSearch` | `undefined` | -## Events +## Dependencies -| Event | Description | Type | -| -------------- | -------------------------------------------------------------- | ---------------------------- | -| `searchChange` | Emitted on demand when the status of the search widget changes | `CustomEvent` | +### Used by + - [map-tools](../map-tools) -## Methods - -### `clear() => Promise` - -Clears the state of the search widget - -#### Returns - -Type: `Promise` - -Promise that resolves when the operation is complete - +### Graph +```mermaid +graph TD; + map-tools --> map-search + style map-search fill:#f9f,stroke:#333,stroke-width:4px +``` ---------------------------------------------- diff --git a/src/components/map-search/test/map-search.spec.tsx b/src/components/map-search/test/map-search.spec.tsx deleted file mode 100644 index af0a9e267..000000000 --- a/src/components/map-search/test/map-search.spec.tsx +++ /dev/null @@ -1,62 +0,0 @@ -/** @license - * Copyright 2022 Esri - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { h } from '@stencil/core'; -import { newSpecPage } from '@stencil/core/testing'; -import { MapSearch } from '../map-search'; -import * as locale from "../../../utils/locale"; -import * as translations from "../../../assets/t9n/map-search/resources.json"; - -jest.setTimeout(30000); - -afterEach(() => { - jest.restoreAllMocks(); -}); - -let mapView; - -beforeEach(() => { - jest.spyOn(locale, "getLocaleComponentStrings").mockImplementation(() => [ - translations - ] as any); - - mapView = { - map: { - layers: { - add: () => {}, - getItemAt: () => { return -1 }, - findIndex: () => { return -1 } - } - } - } as unknown as any; -}); - -describe('map-search', () => { - xit('renders', async () => { - const page = await newSpecPage({ - components: [MapSearch], - template: () => (), - }); - expect(page.root).toEqualHtml(` - -
-
- `); - - await page.root.clear(); - - }); -}); diff --git a/src/components/map-select-tools/map-select-tools.tsx b/src/components/map-select-tools/map-select-tools.tsx index a91271d45..003e0bd05 100644 --- a/src/components/map-select-tools/map-select-tools.tsx +++ b/src/components/map-select-tools/map-select-tools.tsx @@ -16,7 +16,7 @@ import { Component, Element, Event, EventEmitter, Host, h, Method, Listen, Prop, State, VNode, Watch } from "@stencil/core"; import { loadModules } from "../../utils/loadModules"; -import { highlightFeatures, getMapLayerView, goToSelection } from "../../utils/mapViewUtils"; +import { highlightFeatures, getFeatureLayerView, goToSelection } from "../../utils/mapViewUtils"; import { getQueryGeoms, queryFeaturesByGeometry, queryObjectIds } from "../../utils/queryUtils"; import { DistanceUnit, EWorkflowType, ILayerSourceConfigItem, ILocatorSourceConfigItem, ISearchConfiguration, ISelectionSet } from "../../utils/interfaces"; import state from "../../utils/publicNotificationStore"; @@ -89,7 +89,7 @@ export class MapSelectTools { @Prop() layerViews: __esri.FeatureLayerView[] = []; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @Prop() mapView: __esri.MapView; @@ -365,7 +365,7 @@ export class MapSelectTools { async getSelection(): Promise { // Allow any non whitespace if (!/\S+/gm.test(this._selectionLabel)) { - this._updateLabel(); + await this._updateLabel(); } return { id: this.isUpdate ? this.selectionSet.id : Date.now(), @@ -411,18 +411,18 @@ export class MapSelectTools { * Handle changes to the buffer distance value */ @Listen("distanceChanged", { target: "window" }) - distanceChanged(event: CustomEvent): void { - this._distanceChanged(event.detail); + async distanceChanged(event: CustomEvent): Promise { + await this._distanceChanged(event.detail); } /** * Handle changes to the buffer unit */ @Listen("unitChanged", { target: "window" }) - unitChanged(event: CustomEvent): void { + async unitChanged(event: CustomEvent): Promise { if (event.detail.newValue !== event.detail.oldValue) { this._unit = event.detail.newValue; - this._updateLabel(); + await this._updateLabel(); } } @@ -444,7 +444,12 @@ export class MapSelectTools { * StencilJS: Called once just after the component is fully loaded and the first render() occurs. */ async componentDidLoad(): Promise { - return this._init(); + await this._init(); + await this._searchWidget.when(() => { + this._searchWidget.allPlaceholder = this.searchConfiguration?.allPlaceholder && + this.searchConfiguration.allPlaceholder.toLowerCase() !== "find address or place" ? + this.searchConfiguration.allPlaceholder : this._translations.placeholder; + }) } /** @@ -568,8 +573,8 @@ export class MapSelectTools { enabledLayerIds={this.selectionLayerIds} mapView={this.mapView} onLayerSelectionChange={(evt) => { void this._layerSelectionChange(evt) }} - selectedLayerIds={this.layerViews.map(l => l.layer.id)} - selectionMode={"single"} + selectedIds={this.layerViews.map(l => l.layer.id)} + showTables={false} />
@@ -644,8 +649,8 @@ export class MapSelectTools { enabledLayerIds={this.enabledLayerIds} mapView={this.mapView} onLayerSelectionChange={(evt) => this._inputLayerSelectionChange(evt)} - selectedLayerIds={this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : []} - selectionMode={"single"} + selectedIds={this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : []} + showTables={false} />
@@ -753,6 +758,7 @@ export class MapSelectTools { this._searchWidget = new this.Search(searchOptions); this._searchWidget.popupEnabled = false; + this._searchWidget.resultGraphicEnabled = false; this._searchWidget.on("search-clear", () => { const clearLabel = this._searchClearLabel(); @@ -765,7 +771,7 @@ export class MapSelectTools { const useOIDs = searchResults.source?.layer?.id && searchResults.source.layer.id === this.selectLayerView.layer.id; const oids = useOIDs ? [searchResults.result.feature.getObjectId()] : undefined; this._workflowType = EWorkflowType.SEARCH; - this._updateLabel(); + void this._updateLabel(); const graphics = [searchResults.result.feature]; this._updateSelection( @@ -774,7 +780,7 @@ export class MapSelectTools { oids ); this._drawTools.graphics = graphics; - this._drawTools.updateGraphics(); + this._searchWidget.resultGraphic.visible = false; } else { const clearLabel = this._searchClearLabel(); void this._clearResults(false, clearLabel); @@ -896,7 +902,7 @@ export class MapSelectTools { this._drawTools.updateGraphics(); } - this._updateLabel(); + await this._updateLabel(); this._clearSearchWidget(); if (this._useLayerFeaturesEnabled && !forceUpdate) { // Will only ever be a single graphic @@ -1034,7 +1040,7 @@ export class MapSelectTools { // mock this b/c the tools can store a value that is different than what is shown in the map // this occurs when a distance is set but then buffer is disabled - this._distanceChanged({ + await this._distanceChanged({ oldValue, newValue }); @@ -1131,7 +1137,7 @@ export class MapSelectTools { * * @protected */ - protected _updateLabel(): void { + protected async _updateLabel(): Promise { const hasSketch = this._selectionLabel.indexOf(this._translations.sketch) > -1; const hasSelect = this._selectionLabel.indexOf(this._translations.select) > -1; const hasSearch = this._selectionLabel.indexOf(this._searchResult?.name) > -1; @@ -1140,7 +1146,8 @@ export class MapSelectTools { this._workflowType === EWorkflowType.SELECT ? this._translations.select : this._translations.sketch; - const unit = !this._unit ? this._bufferTools.unit : this._unit; + const _unit = !this._unit ? this._bufferTools.unit : this._unit; + const unit = await this._bufferTools.getTranslatedUnit(_unit) const distance = isNaN(this._distance) ? this._bufferTools.distance : this._distance; this._selectionLabel = hasSketch || hasSelect || hasSearch || !this._selectionLabel ? @@ -1160,7 +1167,7 @@ export class MapSelectTools { ): Promise { if (Array.isArray(evt.detail) && evt.detail.length > 0) { const layerPromises = evt.detail.map(id => { - return getMapLayerView(this.mapView, id) + return getFeatureLayerView(this.mapView, id) }); return Promise.all(layerPromises).then((layerViews) => { @@ -1192,8 +1199,8 @@ export class MapSelectTools { ): Promise { const id: string = evt?.detail?.length > 0 ? evt.detail[0] : ""; if (!this.selectLayerView || id !== this.selectLayerView.layer.id) { - this.selectLayerView = await getMapLayerView(this.mapView, id); - this._updateLabel(); + this.selectLayerView = await getFeatureLayerView(this.mapView, id); + await this._updateLabel(); this._bufferGeometry ? await this._selectFeatures([this._bufferGeometry]) : await this._highlightWithOIDsOrGeoms(); @@ -1203,10 +1210,10 @@ export class MapSelectTools { /** * Handle changes to the buffer distance value */ - protected _distanceChanged(detail: any): void { + protected async _distanceChanged(detail: any): Promise { if (detail.newValue !== detail.oldValue) { this._distance = detail.newValue; - this._updateLabel(); + await this._updateLabel(); } } diff --git a/src/components/map-select-tools/readme.md b/src/components/map-select-tools/readme.md index 813b502f0..6f81fd9b4 100644 --- a/src/components/map-select-tools/readme.md +++ b/src/components/map-select-tools/readme.md @@ -18,7 +18,7 @@ | `geometries` | -- | esri/geometry: https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry.html | `Geometry[]` | `[]` | | `isUpdate` | `is-update` | boolean: When true a new label is not generated for the stored selection set | `boolean` | `false` | | `layerViews` | -- | esri/views/layers/FeatureLayerView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-FeatureLayerView.html | `FeatureLayerView[]` | `[]` | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | | `noResultText` | `no-result-text` | string: The value to show for no results when left empty the default text "0 selected features from {layerTitle}" will be shown | `string` | `undefined` | | `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | | `selectLayerView` | -- | esri/views/layers/FeatureLayerView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-FeatureLayerView.html | `FeatureLayerView` | `undefined` | @@ -104,14 +104,25 @@ graph TD; calcite-input --> calcite-icon calcite-select --> calcite-icon calcite-slider --> calcite-graph + map-layer-picker --> calcite-tooltip + map-layer-picker --> calcite-notice map-layer-picker --> calcite-select map-layer-picker --> calcite-combobox + map-layer-picker --> calcite-dropdown + map-layer-picker --> calcite-action + map-layer-picker --> calcite-button + map-layer-picker --> calcite-dropdown-group map-layer-picker --> calcite-combobox-item map-layer-picker --> calcite-option + map-layer-picker --> calcite-dropdown-item + calcite-notice --> calcite-icon calcite-combobox --> calcite-chip calcite-combobox --> calcite-icon calcite-chip --> calcite-icon + calcite-button --> calcite-loader + calcite-button --> calcite-icon calcite-combobox-item --> calcite-icon + calcite-dropdown-item --> calcite-icon calcite-input-message --> calcite-icon public-notification --> map-select-tools style map-select-tools fill:#f9f,stroke:#333,stroke-width:4px diff --git a/src/components/map-tools/map-tools.css b/src/components/map-tools/map-tools.css new file mode 100644 index 000000000..3c96d1cc1 --- /dev/null +++ b/src/components/map-tools/map-tools.css @@ -0,0 +1,49 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:host { + display: block; +} + +.display-none { + display: none; +} + +.margin-top-1-2 { + margin-top: 0.5rem; +} + +.square-40 { + width: 40px; + height: 40px; +} + +.width-40 { + width: 40px; +} + +.square-40-41 { + width: 40px; + height: 41px; +} + +.border-bottom { + border-bottom: 1px solid var(--calcite-ui-border-3); +} + +.box-shadow { + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); +} diff --git a/src/components/map-tools/map-tools.tsx b/src/components/map-tools/map-tools.tsx new file mode 100644 index 000000000..7d9539b99 --- /dev/null +++ b/src/components/map-tools/map-tools.tsx @@ -0,0 +1,492 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, Element, Host, h, Prop, State, VNode, Watch } from '@stencil/core'; +import MapTools_T9n from "../../assets/t9n/map-tools/resources.json"; +import { getLocaleComponentStrings } from "../../utils/locale"; +import { IBasemapConfig, ISearchConfiguration } from "../../utils/interfaces"; + +@Component({ + tag: 'map-tools', + styleUrl: 'map-tools.css', + shadow: true, +}) +export class MapTools { + //-------------------------------------------------------------------------- + // + // Host element access + // + //-------------------------------------------------------------------------- + + @Element() el: HTMLMapToolsElement; + + //-------------------------------------------------------------------------- + // + // Properties (public) + // + //-------------------------------------------------------------------------- + + /** + * boolean: when true the legend widget will be available + */ + @Prop() enableLegend: boolean; + + /** + * boolean: when true the floor filter widget will be available + */ + @Prop() enableFloorFilter: boolean; + + /** + * boolean: when true the fullscreen widget will be available + */ + @Prop() enableFullscreen: boolean; + + /** + * boolean: when true the search widget will be available + */ + @Prop() enableSearch: boolean; + + /** + * boolean: when true the basemap widget will be available + */ + @Prop() enableBasemap: boolean; + + /** + * IBasemapConfig: List of any basemaps to filter out from the basemap widget + */ + @Prop() basemapConfig: IBasemapConfig; + + /** + * "horizontal" | "vertical": used to control the orientation of the tools + */ + @Prop() layout: "horizontal" | "vertical" = "vertical"; + + /** + * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + */ + @Prop() mapView: __esri.MapView; + + /** + * ISearchConfiguration: Configuration details for the Search widget + */ + @Prop() searchConfiguration: ISearchConfiguration; + + //-------------------------------------------------------------------------- + // + // State (internal) + // + //-------------------------------------------------------------------------- + + /** + * When true the map supports floor awareness + */ + @State() _hasFloorInfo = false; + + /** + * Contains the translations for this component. + * All UI strings should be defined here. + */ + @State() _translations: typeof MapTools_T9n; + + /** + * When true the tool action bar will be displayed + */ + @State() _showTools = true; + + /** + * When true the basemap picker will be displayed + */ + @State() _showBasemapWidget = false; + + /** + * When true the floor filter widget will be displayed + */ + @State() _showFloorFilter = false; + + /** + * When true the map will be displayed in fullscreen mode + */ + @State() _showFullscreen = false; + + /** + * When true the legend widget will be displayed + */ + @State() _showLegendWidget = false; + + /** + * When true the search widget will be displayed + */ + @State() _showSearchWidget = false; + + //-------------------------------------------------------------------------- + // + // Properties (protected) + // + //-------------------------------------------------------------------------- + + /** + * HTMLMapSearchElement: The search element node + */ + protected _basemapElement: HTMLBasemapGalleryElement; + + /** + * HTMLFloorFilterElement: The floor filter element node + */ + protected _floorFilterElement: HTMLFloorFilterElement; + + /** + * HTMLMapFullscreenElement: The fullscreen element node + */ + protected _fullscreenElement: HTMLMapFullscreenElement; + + /** + * HTMLLegendElement: The legend element node + */ + protected _legendElement: HTMLMapLegendElement; + + /** + * HTMLMapSearchElement: The search element node + */ + protected _searchElement: HTMLMapSearchElement; + + //-------------------------------------------------------------------------- + // + // Watch handlers + // + //-------------------------------------------------------------------------- + + /** + * When the mapView loads check if it supports floor awareness + */ + @Watch("mapView") + async mapViewWatchHandler(): Promise { + await this.mapView.when(() => { + this._hasFloorInfo = (this.mapView?.map as any)?.floorInfo; + }); + } + + /** + * When the _showBasemapWidget property is true display the basemap gallery + */ + @Watch("_showBasemapWidget") + async _showBasemapWidgetWatchHandler( + v: boolean + ): Promise { + if (v) { + this.mapView.ui.add(this._basemapElement.basemapWidget, { + position: "top-right", + index: 1 + }); + } else { + this.mapView.ui.remove(this._basemapElement.basemapWidget); + } + } + + /** + * When the _showBasemapWidget property is true display the basemap gallery + */ + @Watch("_showFloorFilter") + async _showFloorFilterWatchHandler( + v: boolean + ): Promise { + const widget = this._floorFilterElement.floorFilterWidget; + if (v) { + this.mapView.ui.add(widget, { + position: "top-right", + index: 1 + }); + } else { + this.mapView.ui.remove(widget); + } + } + + /** + * When the _showFullscreen property is true the app will consume the full screen + */ + @Watch("_showFullscreen") + async _showFullscreenWatchHandler( + v: boolean + ): Promise { + const fs = this._fullscreenElement.fullscreenWidget; + if (v) { + fs.viewModel.enter(); + } else { + fs.viewModel.exit(); + } + } + + /** + * When the _showLegendWidget property is true display the search widget + */ + @Watch("_showLegendWidget") + async _showLegendWidgetWatchHandler( + v: boolean + ): Promise { + if (v) { + this.mapView.ui.add(this._legendElement.legendWidget, { + position: "top-right", + index: 1 + }); + } else { + this.mapView.ui.remove(this._legendElement.legendWidget); + } + } + + /** + * When the _showSearchWidget property is true display the search widget + */ + @Watch("_showSearchWidget") + async _showSearchWidgetWatchHandler( + v: boolean + ): Promise { + if (v) { + this.mapView.ui.add(this._searchElement.searchWidget, { + position: "top-right", + index: 1 + }); + } else { + this.mapView.ui.remove(this._searchElement.searchWidget); + } + } + + //-------------------------------------------------------------------------- + // + // Methods (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Events (public) + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Functions (lifecycle) + // + //-------------------------------------------------------------------------- + + /** + * StencilJS: Called once just after the component is first connected to the DOM. + */ + async componentWillLoad(): Promise { + await this._getTranslations(); + } + + /** + * StencilJS: Renders the component. + */ + render() { + const toggleIcon = this._showTools ? "chevrons-up" : "chevrons-down"; + const toolsClass = this._showTools ? "" : "display-none"; + const searchClass = this._showSearchWidget ? "" : "display-none"; + const basemapClass = this._showBasemapWidget ? "" : "display-none"; + const legendClass = this._showLegendWidget ? "" : "display-none"; + const floorFilterClass = this._showFloorFilter ? "" : "display-none"; + const fullscreenClass = this._showFullscreen ? "" : "display-none"; + const fullscreenIcon = this._showFullscreen ? "full-screen-exit" : "full-screen"; + const fullscreenTip = this._showFullscreen ? this._translations.exitFullscreen : this._translations.enterFullscreen; + const expandTip = this._showTools ? this._translations.collapse : this._translations.expand; + const containerClass = !this.enableBasemap && !this.enableFullscreen && !this.enableLegend && !this.enableSearch ? "display-none" : ""; + return ( + +
+
+ {this._getActionGroup(toggleIcon, false, expandTip, () => this._toggleTools())} +
+
+ { + this.enableLegend ? + this._getActionGroup("legend", false, this._translations.legend, () => this._showLegend()) : + undefined + } + { + this.enableSearch ? + this._getActionGroup("magnifying-glass", false, this._translations.search, () => this._search()) : + undefined + } + { + this.enableFullscreen ? + this._getActionGroup(fullscreenIcon, false, fullscreenTip, () => this._expand()) : + undefined + } + { + this.enableBasemap ? + this._getActionGroup("basemap", false, this._translations.basemap, () => this._toggleBasemapPicker()) : + undefined + } + { + this.enableFloorFilter && this._hasFloorInfo ? + this._getActionGroup("urban-model", false, this._translations.floorFilter, () => this._toggleFloorFilter()) : + undefined + } +
+
+ {this._basemapElement = el}} + /> + { this._searchElement = el }} + resultGraphicEnabled={true} + searchConfiguration={this.searchConfiguration} + /> + {this._legendElement = el}} + /> + {this._fullscreenElement = el}} + /> + {this._floorFilterElement = el}} + /> +
+ ); + } + + //-------------------------------------------------------------------------- + // + // Functions (protected) + // + //-------------------------------------------------------------------------- + + /** + * Get a calcite action group for the current action + * + * @param icon the icon to display for the current action + * @param disabled should the action be disabled + * @param tip information tip to display helpful details to end user + * @param func the associated onClick function to execute + * + * @returns the dom node for the action group + * + * @protected + */ + protected _getActionGroup( + icon: string, + disabled: boolean, + tip: string, + func: any + ): VNode { + return ( +
+ + + + + {tip} + +
+ ); + } + + // need to discuss this with the team + protected _showLegend(): void { + this._showLegendWidget = !this._showLegendWidget; + this._showTools = false; + } + + // Need to discuss this with the team + protected _search(): void { + this._showSearchWidget = !this._showSearchWidget; + this._showTools = false; + } + + /** + * Show/Hide the basemap picker + * + * @returns void + * + * @protected + */ + protected _toggleBasemapPicker(): void { + this._showBasemapWidget = !this._showBasemapWidget; + this._showTools = false; + } + + /** + * Show/Hide the floor filter + * + * @returns void + * + * @protected + */ + protected _toggleFloorFilter(): void { + this._showFloorFilter = !this._showFloorFilter; + this._showTools = false; + } + + /** + * Enter/Exit fullscreen mode + * + * @returns void + * + * @protected + */ + protected _expand(): void { + this._showFullscreen = !this._showFullscreen; + } + + /** + * Show/Hide the map tools + * + * @returns void + * + * @protected + */ + protected _toggleTools(): void { + if (!this._showTools) { + this._showBasemapWidget = false; + this._showSearchWidget = false; + this._showLegendWidget = false; + this._showFloorFilter = false; + } + this._showTools = !this._showTools; + } + + /** + * Fetches the component's translations + * + * @returns Promise when complete + * @protected + */ + protected async _getTranslations(): Promise { + const messages = await getLocaleComponentStrings(this.el); + this._translations = messages[0] as typeof MapTools_T9n; + } +} diff --git a/src/components/map-tools/readme.md b/src/components/map-tools/readme.md new file mode 100644 index 000000000..0925b87c0 --- /dev/null +++ b/src/components/map-tools/readme.md @@ -0,0 +1,59 @@ +# map-tools + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| --------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------ | +| `basemapConfig` | -- | IBasemapConfig: List of any basemaps to filter out from the basemap widget | `IBasemapConfig` | `undefined` | +| `enableBasemap` | `enable-basemap` | boolean: when true the basemap widget will be available | `boolean` | `undefined` | +| `enableFloorFilter` | `enable-floor-filter` | boolean: when true the floor filter widget will be available | `boolean` | `undefined` | +| `enableFullscreen` | `enable-fullscreen` | boolean: when true the fullscreen widget will be available | `boolean` | `undefined` | +| `enableLegend` | `enable-legend` | boolean: when true the legend widget will be available | `boolean` | `undefined` | +| `enableSearch` | `enable-search` | boolean: when true the search widget will be available | `boolean` | `undefined` | +| `layout` | `layout` | "horizontal" \| "vertical": used to control the orientation of the tools | `"horizontal" \| "vertical"` | `"vertical"` | +| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | + + +## Dependencies + +### Used by + + - [map-card](../map-card) + +### Depends on + +- [basemap-gallery](../basemap-gallery) +- [map-search](../map-search) +- [map-legend](../map-legend) +- [map-fullscreen](../map-fullscreen) +- [floor-filter](../floor-filter) +- calcite-action +- calcite-icon +- calcite-tooltip + +### Graph +```mermaid +graph TD; + map-tools --> basemap-gallery + map-tools --> map-search + map-tools --> map-legend + map-tools --> map-fullscreen + map-tools --> floor-filter + map-tools --> calcite-action + map-tools --> calcite-icon + map-tools --> calcite-tooltip + calcite-action --> calcite-loader + calcite-action --> calcite-icon + map-card --> map-tools + style map-tools fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/media-card/readme.md b/src/components/media-card/readme.md deleted file mode 100644 index 33a65fa60..000000000 --- a/src/components/media-card/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# media-card - - - - - - -## Properties - -| Property | Attribute | Description | Type | Default | -| -------- | --------- | --------------------------------------------------------------------------------------------- | -------------------- | ------- | -| `values` | -- | IMediaCardValues[]: Array of objects that contain the name, description, and image to display | `IMediaCardValues[]` | `[]` | - - -## Dependencies - -### Used by - - - [card-manager](../card-manager) - -### Depends on - -- calcite-label -- calcite-button - -### Graph -```mermaid -graph TD; - media-card --> calcite-label - media-card --> calcite-button - calcite-button --> calcite-loader - calcite-button --> calcite-icon - card-manager --> media-card - style media-card fill:#f9f,stroke:#333,stroke-width:4px -``` - ----------------------------------------------- - -*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/pdf-download/pdf-download.tsx b/src/components/pdf-download/pdf-download.tsx index f742accb5..497c22a8b 100644 --- a/src/components/pdf-download/pdf-download.tsx +++ b/src/components/pdf-download/pdf-download.tsx @@ -42,6 +42,11 @@ export class PdfDownload { // //-------------------------------------------------------------------------- + /** + * number: The default number of labels per page to export + */ + @Prop() defaultNumLabelsPerPage: number; + /** * boolean: Controls the enabled/disabled state of download */ @@ -90,6 +95,7 @@ export class PdfDownload { /** * Downloads csv of mailing labels for the provided list of ids * + * @param webmap Webmap containing layer * @param exportInfos Information about items to be exported * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value * @param addColumnTitle Indicates if column headings should be included in output @@ -97,11 +103,13 @@ export class PdfDownload { */ @Method() async downloadCSV( + webmap: __esri.Map, exportInfos: IExportInfos, removeDuplicates: boolean, addColumnTitle = true ): Promise { - void downloadUtils.downloadCSV( + return downloadUtils.downloadCSV( + webmap, exportInfos, true, // formatUsingLayerPopup removeDuplicates, @@ -112,6 +120,7 @@ export class PdfDownload { /** * Downloads pdf of mailing labels for the provided list of ids * + * @param webmap Webmap containing layer * @param exportInfos Information about items to be exported * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value * @param title Title for each page @@ -120,14 +129,16 @@ export class PdfDownload { */ @Method() async downloadPDF( + webmap: __esri.Map, exportInfos: IExportInfos, removeDuplicates = false, title = "", initialImageDataUrl = "" ): Promise { - void downloadUtils.downloadPDF( + return downloadUtils.downloadPDF( + webmap, exportInfos, - this._labelInfoElement.selectedOption.value as downloadUtils.ILabel, + this._labelInfoElement.selectedOption?.value as downloadUtils.ILabel, removeDuplicates, title, initialImageDataUrl @@ -169,7 +180,7 @@ export class PdfDownload { ); } - componentDidRender(): void { + componentDidLoad(): void { // Render the options outside of Stencil's rendering so that it doesn't mangle RTL text with embedded LTR this._renderOptions(); } @@ -234,11 +245,16 @@ export class PdfDownload { const _b = parseInt(b.descriptionPDF.labelsPerPageDisplay, 10); return _a < _b ? -1 : _a > _b ? 1 : 0 }); - sortedPdfIndo.forEach((l) => { + sortedPdfIndo.forEach((l, i) => { const option = document.createElement("calcite-option"); option.value = l; option.innerHTML = this._getLabelSizeText(l); this._labelInfoElement.appendChild(option); + if (this.defaultNumLabelsPerPage ? parseInt(l.descriptionPDF.labelsPerPageDisplay, 10) === this.defaultNumLabelsPerPage : i === 0) { + // Setting selected wasn't enough to trigger it being the 'selectedOption' + option.selected = true; + this._labelInfoElement.selectedOption = option; + } }); } diff --git a/src/components/pdf-download/readme.md b/src/components/pdf-download/readme.md index 1bb321a9f..6e9c1a49d 100644 --- a/src/components/pdf-download/readme.md +++ b/src/components/pdf-download/readme.md @@ -7,14 +7,15 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ---------- | ---------- | -------------------------------------------------------- | --------- | ------- | -| `disabled` | `disabled` | boolean: Controls the enabled/disabled state of download | `boolean` | `false` | +| Property | Attribute | Description | Type | Default | +| ------------------------- | ----------------------------- | -------------------------------------------------------- | --------- | ----------- | +| `defaultNumLabelsPerPage` | `default-num-labels-per-page` | number: The default number of labels per page to export | `number` | `undefined` | +| `disabled` | `disabled` | boolean: Controls the enabled/disabled state of download | `boolean` | `false` | ## Methods -### `downloadCSV(exportInfos: IExportInfos, removeDuplicates: boolean, addColumnTitle?: boolean) => Promise` +### `downloadCSV(webmap: __esri.Map, exportInfos: IExportInfos, removeDuplicates: boolean, addColumnTitle?: boolean) => Promise` Downloads csv of mailing labels for the provided list of ids @@ -24,7 +25,7 @@ Type: `Promise` Promise resolving when function is done -### `downloadPDF(exportInfos: IExportInfos, removeDuplicates?: boolean, title?: string, initialImageDataUrl?: string) => Promise` +### `downloadPDF(webmap: __esri.Map, exportInfos: IExportInfos, removeDuplicates?: boolean, title?: string, initialImageDataUrl?: string) => Promise` Downloads pdf of mailing labels for the provided list of ids diff --git a/src/components/public-notification/public-notification.css b/src/components/public-notification/public-notification.css index ae1b719cc..d6b94b22e 100644 --- a/src/components/public-notification/public-notification.css +++ b/src/components/public-notification/public-notification.css @@ -43,18 +43,6 @@ width: 33.33%; } -.action-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-grid-row-align: center; - align-items: center; - -webkit-align-content: center; - align-content: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - justify-content: center; -} - .width-full { width: 100%; } @@ -224,3 +212,7 @@ --calcite-ui-foreground-2: var(--calcite-ui-brand-hover); --calcite-ui-text-1: var(--calcite-ui-text-inverse) } + +.word-wrap-anywhere { + word-wrap: anywhere; +} diff --git a/src/components/public-notification/public-notification.tsx b/src/components/public-notification/public-notification.tsx index 5b3898847..f7e0e25c7 100644 --- a/src/components/public-notification/public-notification.tsx +++ b/src/components/public-notification/public-notification.tsx @@ -73,6 +73,16 @@ export class PublicNotification { */ @Prop() defaultBufferUnit: DistanceUnit; + /** + * string: The default value to use for the export title + */ + @Prop() defaultExportTitle = ""; + + /** + * number: The default number of labels per page to export + */ + @Prop() defaultNumLabelsPerPage = 6; + /** * The effect that will be applied when featureHighlightEnabled is true * @@ -87,7 +97,7 @@ export class PublicNotification { @Prop() featureHighlightEnabled: boolean; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @Prop() mapView: __esri.MapView; @@ -172,6 +182,11 @@ export class PublicNotification { */ @State() _exportType: EExportType = EExportType.PDF; + /** + * boolean: Flag that will control a loading indicator on the export button + */ + @State() _fetchingData = false; + /** * boolean: When window size is 600px or less this value will be true */ @@ -259,10 +274,15 @@ export class PublicNotification { */ protected _mediaQuery: MediaQueryList; + /** + * Component that contains the text to be used as the title for PDF pages + */ + protected _titleElement: HTMLCalciteInputTextElement; + /** * Text to be used as title on PDF pages */ - protected _title: HTMLCalciteInputTextElement; + protected _titleValue = undefined; /** * number: The number of selected features @@ -357,11 +377,13 @@ export class PublicNotification { this._checkPopups(); if (this.mapView?.popup) { - this.mapView.popup.autoOpenEnabled = pageType !== EPageType.LIST ? false : this._popupsEnabled; + this.mapView.popupEnabled = pageType !== EPageType.LIST ? false : this._popupsEnabled; } if (pageType === EPageType.EXPORT) { + this._fetchingData = true; this._numDuplicates = await this._getNumDuplicates(); + this._fetchingData = false; } this._clearHighlight(); @@ -586,9 +608,9 @@ export class PublicNotification { pageType: EPageType, tip: string ): VNode { - const sizeClass = this.showRefineSelection ? " w-1-3" : " w-1-2"; + const sizeClass = this.showRefineSelection ? "w-1-3" : "w-1-2"; return ( - +
{this._getLabel(this._translations.myLists)} - {this._getNotice(hasSets ? this._translations.listHasSetsTip : this._translations.selectLayerAndAdd, "padding-sides-1 padding-bottom-1")} + {this._getNotice(hasSets ? this._translations.listHasSetsTip : this._translations.selectLayerAndAdd, "padding-sides-1 padding-bottom-1", "word-wrap-anywhere")} {hasSets ? this._getSelectionSetList() : (this._getOnboardingImage())}
{ this._setPageType(EPageType.SELECT) }} width="full">{this._translations.add} @@ -779,7 +801,7 @@ export class PublicNotification { */ protected async _getNumDuplicates(): Promise { const exportInfos: IExportInfos = this._getExportInfos(); - const labels = await consolidateLabels(exportInfos); + const labels = await consolidateLabels(this.mapView.map, exportInfos); const duplicatesRemoved = removeDuplicateLabels(labels); return labels.length - duplicatesRemoved.length; } @@ -852,7 +874,7 @@ export class PublicNotification { return ( {this._getLabel(this._translations.stepTwoFull, true)} - {this._getNotice(noticeText)} + {this._getNotice(noticeText, "padding-1", "word-wrap-anywhere")}
void this._export()} width="full" > @@ -1009,6 +1032,7 @@ export class PublicNotification { protected _getExportOptions(): VNode { const displayClass = this._exportType === EExportType.PDF ? "display-block" : "display-none"; const titleOptionsClass = this._addTitle ? "display-block" : "display-none"; + const title = this._titleValue ? this._titleValue : this.defaultExportTitle ? this.defaultExportTitle : ""; return (
{this._getLabel(this._translations.pdfOptions, true)} @@ -1021,6 +1045,7 @@ export class PublicNotification {
{ this._downloadTools = el }} /> @@ -1042,8 +1067,10 @@ export class PublicNotification { {this._getLabel(this._translations.title, true, "")} this._changeTitle()} placeholder={this._translations.titlePlaceholder} - ref={(el) => { this._title = el }} + ref={(el) => { this._titleElement = el }} + value={title} />
@@ -1141,6 +1168,13 @@ export class PublicNotification { ) } + /** + * Store the user defined title value + */ + protected _changeTitle(): void { + this._titleValue = this._titleElement.value; + } + /** * Create an informational notice * @@ -1152,11 +1186,12 @@ export class PublicNotification { */ protected _getNotice( message: string, - noticeClass = "padding-1" + noticeClass = "padding-1", + messageClass = "" ): VNode { return ( -
{message}
+
{message}
); } @@ -1245,7 +1280,9 @@ export class PublicNotification { return ss; }); this._downloadActive = isActive; + this._fetchingData = true; this._numDuplicates = await this._getNumDuplicates(); + this._fetchingData = false; await this._highlightFeatures(); } @@ -1265,20 +1302,26 @@ export class PublicNotification { initialImageDataUrl = screenshot?.dataUrl; } + this._fetchingData = true; // Create the labels for each selection set - void this._downloadTools.downloadPDF( + await this._downloadTools.downloadPDF( + this.mapView.map, exportInfos, this._removeDuplicates.checked, - this._addTitle ? this._title.value : "", + this._addTitle ? this._titleElement.value : "", initialImageDataUrl ); + this._fetchingData = false; } if (this._exportType === EExportType.CSV) { - void this._downloadTools.downloadCSV( + this._fetchingData = true; + await this._downloadTools.downloadCSV( + this.mapView.map, exportInfos, this._removeDuplicates.checked ); + this._fetchingData = false; } } @@ -1517,7 +1560,7 @@ export class PublicNotification { */ protected _checkPopups(): void { if (typeof this._popupsEnabled !== 'boolean') { - this._popupsEnabled = this.mapView?.popup.autoOpenEnabled; + this._popupsEnabled = this.mapView?.popupEnabled; } } diff --git a/src/components/public-notification/readme.md b/src/components/public-notification/readme.md index fe8fb5ace..3b5e35158 100644 --- a/src/components/public-notification/readme.md +++ b/src/components/public-notification/readme.md @@ -7,25 +7,27 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | --------------------- | -| `addresseeLayerIds` | -- | string[]: List of layer ids that should be shown as potential addressee layers | `string[]` | `[]` | -| `bufferColor` | `buffer-color` | string \| number[] \| object with r, g, b, a: https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html | `any` | `[227, 139, 79, 0.8]` | -| `bufferOutlineColor` | `buffer-outline-color` | string \| number[] \| object with r, g, b, a: https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html | `any` | `[255, 255, 255]` | -| `customLabelEnabled` | `custom-label-enabled` | boolean: When true the user can define a name for each notification list | `boolean` | `undefined` | -| `defaultBufferDistance` | `default-buffer-distance` | number: The default value to show for the buffer distance | `number` | `undefined` | -| `defaultBufferUnit` | `default-buffer-unit` | number: The default value to show for the buffer unit ("feet"\|"meters"\|"miles"\|"kilometers") | `"feet" \| "kilometers" \| "meters" \| "miles"` | `undefined` | -| `featureEffect` | -- | The effect that will be applied when featureHighlightEnabled is true esri/layers/support/FeatureEffect: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureEffect.html | `FeatureEffect` | `undefined` | -| `featureHighlightEnabled` | `feature-highlight-enabled` | boolean: When enabled features will be highlighted when their notification list item is clicked. | `boolean` | `undefined` | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | -| `noResultText` | `no-result-text` | string: The value to show for no results when left empty the default text "0 selected features from {layerTitle}" will be shown | `string` | `undefined` | -| `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | -| `selectionLayerIds` | -- | string[]: List of layer ids that should be shown as potential selection layers when skectching with "Use layer features" option | `string[]` | `[]` | -| `showRefineSelection` | `show-refine-selection` | boolean: When true the refine selection workflow will be included in the UI | `boolean` | `false` | -| `showSearchSettings` | `show-search-settings` | boolean: When false no buffer distance or unit controls will be exposed | `boolean` | `true` | -| `sketchLineSymbol` | `sketch-line-symbol` | esri/symbols/SimpleLineSymbol \| JSON representation : https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm | `any` | `undefined` | -| `sketchPointSymbol` | `sketch-point-symbol` | esri/symbols/SimpleMarkerSymbol \| JSON representation: https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm | `any` | `undefined` | -| `sketchPolygonSymbol` | `sketch-polygon-symbol` | esri/symbols/SimpleFillSymbol \| JSON representation: https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleFillSymbol.html A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm | `any` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | --------------------- | +| `addresseeLayerIds` | -- | string[]: List of layer ids that should be shown as potential addressee layers | `string[]` | `[]` | +| `bufferColor` | `buffer-color` | string \| number[] \| object with r, g, b, a: https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html | `any` | `[227, 139, 79, 0.8]` | +| `bufferOutlineColor` | `buffer-outline-color` | string \| number[] \| object with r, g, b, a: https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html | `any` | `[255, 255, 255]` | +| `customLabelEnabled` | `custom-label-enabled` | boolean: When true the user can define a name for each notification list | `boolean` | `undefined` | +| `defaultBufferDistance` | `default-buffer-distance` | number: The default value to show for the buffer distance | `number` | `undefined` | +| `defaultBufferUnit` | `default-buffer-unit` | number: The default value to show for the buffer unit ("feet"\|"meters"\|"miles"\|"kilometers") | `"feet" \| "kilometers" \| "meters" \| "miles"` | `undefined` | +| `defaultExportTitle` | `default-export-title` | string: The default value to use for the export title | `string` | `""` | +| `defaultNumLabelsPerPage` | `default-num-labels-per-page` | number: The default number of labels per page to export | `number` | `6` | +| `featureEffect` | -- | The effect that will be applied when featureHighlightEnabled is true esri/layers/support/FeatureEffect: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureEffect.html | `FeatureEffect` | `undefined` | +| `featureHighlightEnabled` | `feature-highlight-enabled` | boolean: When enabled features will be highlighted when their notification list item is clicked. | `boolean` | `undefined` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `noResultText` | `no-result-text` | string: The value to show for no results when left empty the default text "0 selected features from {layerTitle}" will be shown | `string` | `undefined` | +| `searchConfiguration` | -- | ISearchConfiguration: Configuration details for the Search widget | `ISearchConfiguration` | `undefined` | +| `selectionLayerIds` | -- | string[]: List of layer ids that should be shown as potential selection layers when skectching with "Use layer features" option | `string[]` | `[]` | +| `showRefineSelection` | `show-refine-selection` | boolean: When true the refine selection workflow will be included in the UI | `boolean` | `false` | +| `showSearchSettings` | `show-search-settings` | boolean: When false no buffer distance or unit controls will be exposed | `boolean` | `true` | +| `sketchLineSymbol` | `sketch-line-symbol` | esri/symbols/SimpleLineSymbol \| JSON representation : https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm | `any` | `undefined` | +| `sketchPointSymbol` | `sketch-point-symbol` | esri/symbols/SimpleMarkerSymbol \| JSON representation: https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm | `any` | `undefined` | +| `sketchPolygonSymbol` | `sketch-polygon-symbol` | esri/symbols/SimpleFillSymbol \| JSON representation: https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleFillSymbol.html A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. https://developers.arcgis.com/documentation/common-data-types/symbol-objects.htm | `any` | `undefined` | ## Events @@ -101,11 +103,15 @@ graph TD; calcite-button --> calcite-loader calcite-button --> calcite-icon calcite-list --> calcite-scrim + calcite-list --> calcite-stack calcite-list --> calcite-filter calcite-filter --> calcite-input calcite-input --> calcite-progress calcite-input --> calcite-icon calcite-list-item --> calcite-icon + calcite-list-item --> calcite-handle + calcite-list-item --> calcite-action + calcite-handle --> calcite-icon map-select-tools --> map-draw-tools map-select-tools --> calcite-label map-select-tools --> calcite-icon @@ -123,14 +129,23 @@ graph TD; buffer-tools --> calcite-slider calcite-select --> calcite-icon calcite-slider --> calcite-graph + map-layer-picker --> calcite-tooltip + map-layer-picker --> calcite-notice map-layer-picker --> calcite-select map-layer-picker --> calcite-combobox + map-layer-picker --> calcite-dropdown + map-layer-picker --> calcite-action + map-layer-picker --> calcite-button + map-layer-picker --> calcite-dropdown-group map-layer-picker --> calcite-combobox-item map-layer-picker --> calcite-option + map-layer-picker --> calcite-dropdown-item + calcite-notice --> calcite-icon calcite-combobox --> calcite-chip calcite-combobox --> calcite-icon calcite-chip --> calcite-icon calcite-combobox-item --> calcite-icon + calcite-dropdown-item --> calcite-icon calcite-input-message --> calcite-icon calcite-segmented-control-item --> calcite-icon pdf-download --> calcite-select @@ -146,7 +161,6 @@ graph TD; refine-selection --> map-draw-tools refine-selection --> calcite-list refine-selection --> calcite-list-item - calcite-notice --> calcite-icon style public-notification fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/public-notification/test/public-notification.e2e.ts b/src/components/public-notification/test/public-notification.e2e.ts deleted file mode 100644 index 88e8a1f0d..000000000 --- a/src/components/public-notification/test/public-notification.e2e.ts +++ /dev/null @@ -1,121 +0,0 @@ -/** @license - * Copyright 2022 Esri - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { newE2EPage } from '@stencil/core/testing'; -import * as locale from "../../../utils/locale";; -import * as translations from "../../../assets/t9n/public-notification/resources.json"; -import { geometryEngine } from "../../../utils/test/mocks/jsApi"; -import * as queryUtils from "../../../utils/queryUtils"; -import * as mapViewUtils from "../../../utils/mapViewUtils"; -import * as publicNotificationUtils from "../../../utils/publicNotificationUtils"; - -jest.setTimeout(50000); - -afterEach(() => { - jest.restoreAllMocks(); -}); - -let mapView; - -beforeEach(() => { - jest.spyOn(locale, "getLocaleComponentStrings").mockImplementation(() => [ - translations - ] as any); - - jest.spyOn(mapViewUtils, "highlightFeatures").mockImplementation(jest.fn()); - jest.spyOn(publicNotificationUtils, "getSelectionIds").mockImplementation(jest.fn()); - - jest.spyOn(console, 'warn').mockImplementation(() => {}); - - mapView = { - map: { - layers: { - add: () => {}, - getItemAt: () => { return -1 }, - findIndex: () => { return -1 } - } - } - } as unknown as any; -}); - -// This keeps timing out every so often...will look more -xdescribe('public-notification', () => { - it('renders', async () => { - jest.useFakeTimers(); - - const getSelectionSetQueryMock = jest.fn(); - jest.spyOn(queryUtils, "getSelectionSetQuery").mockImplementation(getSelectionSetQueryMock); - - const page = await newE2EPage(); - await page.setContent(''); - await page.waitForChanges(); - - const element = await page.find('public-notification'); - expect(element).toHaveClass('hydrated'); - - // These cause errors to be thrown - // element.setProperty("addresseeLayer", new LayerView() as unknown as any); - // element.setProperty("mapView", mapView); - // await page.waitForChanges(); - - const infoMessage = await element.find(".info-message"); - expect(infoMessage.innerHTML).toContain(translations.noNotifications); - - const notice = await page.find("calcite-notice"); - expect(notice.innerText).toContain(translations.selectLayerAndAdd); - - const addBtn = await element.find("calcite-button"); - expect(addBtn.innerText).toContain(translations.add); - - // TODO understand why this causes failures in the test - // this is really the only way to change pageType - //await addBtn.click(); - //await page.waitForChanges(); - }); - - it('renders with selection set', async () => { - jest.useFakeTimers(); - - const getSelectionSetQueryMock = jest.fn(); - jest.spyOn(queryUtils, "getSelectionSetQuery").mockImplementation(getSelectionSetQueryMock); - - const page = await newE2EPage(); - await page.setContent(''); - await page.waitForChanges(); - - const element = await page.find('public-notification'); - expect(element).toHaveClass('hydrated'); - - // These cause errors to be thrown - // element.setProperty("addresseeLayer", new LayerView() as unknown as any); - // element.setProperty("mapView", mapView); - //await page.waitForChanges(); - - const infoMessage = await element.find(".info-message"); - expect(infoMessage.innerHTML).toContain(translations.noNotifications); - - const notice = await page.find("calcite-notice"); - expect(notice.innerText).toContain(translations.selectLayerAndAdd); - - const addBtn = await element.find("calcite-button"); - expect(addBtn.innerText).toContain(translations.add); - - // TODO understand why this causes failures in the test - // this is really the only way to change pageType - //await addBtn.click(); - //await page.waitForChanges(); - }); -}); diff --git a/src/components/refine-selection/readme.md b/src/components/refine-selection/readme.md index e4c39545f..f027f4539 100644 --- a/src/components/refine-selection/readme.md +++ b/src/components/refine-selection/readme.md @@ -11,7 +11,7 @@ | --------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ----------- | | `addresseeLayer` | -- | esri/views/layers/FeatureLayerView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-FeatureLayerView.html | `FeatureLayerView` | `undefined` | | `enabledLayerIds` | -- | string[]: Optional list of enabled layer ids If empty all layers will be available | `string[]` | `[]` | -| `mapView` | -- | esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | +| `mapView` | -- | esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html | `MapView` | `undefined` | | `selectionSets` | -- | utils/interfaces/ISelectionSet: An array of user defined selection sets | `ISelectionSet[]` | `[]` | | `sketchLineSymbol` | -- | esri/symbols/SimpleLineSymbol \| JSON representation : https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html | `SimpleLineSymbol` | `undefined` | | `sketchPointSymbol` | -- | esri/symbols/SimpleMarkerSymbol \| JSON representation: https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html | `SimpleMarkerSymbol` | `undefined` | @@ -56,28 +56,43 @@ graph TD; refine-selection --> map-draw-tools refine-selection --> calcite-list refine-selection --> calcite-list-item + map-layer-picker --> calcite-tooltip + map-layer-picker --> calcite-notice map-layer-picker --> calcite-select map-layer-picker --> calcite-combobox + map-layer-picker --> calcite-dropdown + map-layer-picker --> calcite-action + map-layer-picker --> calcite-button + map-layer-picker --> calcite-dropdown-group map-layer-picker --> calcite-combobox-item map-layer-picker --> calcite-option + map-layer-picker --> calcite-dropdown-item + calcite-notice --> calcite-icon calcite-select --> calcite-icon calcite-combobox --> calcite-chip calcite-combobox --> calcite-icon calcite-chip --> calcite-icon + calcite-action --> calcite-loader + calcite-action --> calcite-icon + calcite-button --> calcite-loader + calcite-button --> calcite-icon calcite-combobox-item --> calcite-icon + calcite-dropdown-item --> calcite-icon calcite-popover --> calcite-action calcite-popover --> calcite-icon - calcite-action --> calcite-loader - calcite-action --> calcite-icon calcite-segmented-control-item --> calcite-icon map-draw-tools --> calcite-action calcite-list --> calcite-scrim + calcite-list --> calcite-stack calcite-list --> calcite-filter calcite-scrim --> calcite-loader calcite-filter --> calcite-input calcite-input --> calcite-progress calcite-input --> calcite-icon calcite-list-item --> calcite-icon + calcite-list-item --> calcite-handle + calcite-list-item --> calcite-action + calcite-handle --> calcite-icon public-notification --> refine-selection style refine-selection fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/refine-selection/refine-selection.css b/src/components/refine-selection/refine-selection.css index bf2805874..95d94ed0c 100644 --- a/src/components/refine-selection/refine-selection.css +++ b/src/components/refine-selection/refine-selection.css @@ -108,3 +108,7 @@ html[dir="rtl"] .main-label { .font-weight-500 { font-weight: 500; } + +.word-wrap-anywhere { + word-wrap: anywhere; +} diff --git a/src/components/refine-selection/refine-selection.tsx b/src/components/refine-selection/refine-selection.tsx index 2de3a1bba..4af4e5a61 100644 --- a/src/components/refine-selection/refine-selection.tsx +++ b/src/components/refine-selection/refine-selection.tsx @@ -16,7 +16,7 @@ import { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode } from "@stencil/core"; import { EDrawMode, ESelectionMode, EWorkflowType, IRefineOperation, ISelectionSet } from "../../utils/interfaces"; -import { getIdSets, getMapLayerView, highlightAllFeatures } from "../../utils/mapViewUtils"; +import { getIdSets, getFeatureLayerView, highlightAllFeatures } from "../../utils/mapViewUtils"; import { queryFeaturesByGeometry } from "../../utils/queryUtils"; import RefineSelection_T9n from "../../assets/t9n/refine-selection/resources.json"; import state from "../../utils/publicNotificationStore"; @@ -54,7 +54,7 @@ export class RefineSelection { @Prop() enabledLayerIds: string[] = []; /** - * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html + * esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ @Prop() mapView: __esri.MapView; @@ -212,8 +212,8 @@ export class RefineSelection { mapView={this.mapView} onLayerSelectionChange={(evt) => { void this._layerSelectionChange(evt) }} ref={(el) => { this._layerPicker = el }} - selectedLayerIds={[this._refineLayer.layer.id]} - selectionMode={"single"} + selectedIds={[this._refineLayer.layer.id]} + showTables={false} /> this._setSelectionMode(ESelectionMode.ADD)} value={ESelectionMode.ADD} > @@ -242,7 +242,7 @@ export class RefineSelection { this._setSelectionMode(ESelectionMode.REMOVE)} value={ESelectionMode.REMOVE} > @@ -387,7 +387,7 @@ export class RefineSelection { refineInfo[id] = { addIds: [], removeIds: [], - layerView: await getMapLayerView(this.mapView, id) + layerView: await getFeatureLayerView(this.mapView, id) }; if (selectionSet) { diff --git a/src/components/solution-configuration/readme.md b/src/components/solution-configuration/readme.md index b02ec8835..e1db66775 100644 --- a/src/components/solution-configuration/readme.md +++ b/src/components/solution-configuration/readme.md @@ -134,9 +134,10 @@ graph TD; calcite-action-group --> calcite-action solution-spatial-ref --> calcite-label solution-spatial-ref --> calcite-switch - solution-spatial-ref --> calcite-input - solution-spatial-ref --> calcite-tree - solution-spatial-ref --> calcite-tree-item + solution-spatial-ref --> spatial-ref + spatial-ref --> calcite-input + spatial-ref --> calcite-tree + spatial-ref --> calcite-tree-item style solution-configuration fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/solution-spatial-ref/readme.md b/src/components/solution-spatial-ref/readme.md index 4a92c12f3..987bad790 100644 --- a/src/components/solution-spatial-ref/readme.md +++ b/src/components/solution-spatial-ref/readme.md @@ -22,42 +22,6 @@ | `featureServiceSpatialReferenceChange` | | `CustomEvent<{ name: string; enabled: boolean; }>` | -## Methods - -### `createSpatialRefDisplay(value: string) => Promise` - -Returns the spatial reference description of the supplied value. -(Exposes protected method `_createSpatialRefDisplay` for testing.) - -#### Returns - -Type: `Promise` - -If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 - -### `getSpatialRef() => Promise` - -Returns the current spatial reference description. -(Exposes protected variable `spatialRef` for testing.) - -#### Returns - -Type: `Promise` - - - -### `wkidToDisplay(wkid: number) => Promise` - -Converts a WKID into a spatial reference description. -(Exposes protected method `_wkidToDisplay` for testing.) - -#### Returns - -Type: `Promise` - -Description, or "WKID <wkid>" if a description doesn't exist for the WKID - - ## Dependencies ### Used by @@ -68,18 +32,17 @@ Description, or "WKID <wkid>" if a description doesn't exist for the WKID - calcite-label - calcite-switch -- calcite-input -- calcite-tree -- calcite-tree-item +- [spatial-ref](../spatial-ref) ### Graph ```mermaid graph TD; solution-spatial-ref --> calcite-label solution-spatial-ref --> calcite-switch - solution-spatial-ref --> calcite-input - solution-spatial-ref --> calcite-tree - solution-spatial-ref --> calcite-tree-item + solution-spatial-ref --> spatial-ref + spatial-ref --> calcite-input + spatial-ref --> calcite-tree + spatial-ref --> calcite-tree-item calcite-input --> calcite-progress calcite-input --> calcite-icon calcite-tree-item --> calcite-icon diff --git a/src/components/solution-spatial-ref/solution-spatial-ref.scss b/src/components/solution-spatial-ref/solution-spatial-ref.scss index 29df64a65..510728cfa 100644 --- a/src/components/solution-spatial-ref/solution-spatial-ref.scss +++ b/src/components/solution-spatial-ref/solution-spatial-ref.scss @@ -18,7 +18,7 @@ @apply m-inline-end-2; } -.spatial-ref-switch-title { +.spatial-ref-component { @apply mt-2.5 m-inline-start-10; } @@ -51,12 +51,6 @@ opacity-40; } -.spatial-ref-container { - max-height: 200px; - @apply overflow-y-auto - mb-4; -} - .spatial-ref-desc { padding-bottom: .5rem; @apply p-inline-start-1; diff --git a/src/components/solution-spatial-ref/solution-spatial-ref.tsx b/src/components/solution-spatial-ref/solution-spatial-ref.tsx index c1ad4ee2c..b62cbf372 100644 --- a/src/components/solution-spatial-ref/solution-spatial-ref.tsx +++ b/src/components/solution-spatial-ref/solution-spatial-ref.tsx @@ -14,14 +14,12 @@ * limitations under the License. */ -import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch, VNode } from '@stencil/core'; import '@esri/calcite-components'; -import { wkids } from './spatialreferences'; -import state from "../../utils/solution-store"; -import { nodeListToArray } from '../../utils/common'; -import { ISpatialRefRepresentation, IWkidDescription } from '../../utils/interfaces'; import SolutionSpatialRef_T9n from '../../assets/t9n/solution-spatial-ref/resources.json'; +import state from "../../utils/solution-store"; +import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, VNode } from '@stencil/core'; import { getLocaleComponentStrings } from '../../utils/locale'; +import { nodeListToArray } from '../../utils/common'; @Component({ tag: 'solution-spatial-ref', @@ -50,25 +48,15 @@ export class SolutionSpatialRef { @Prop({ mutable: true, reflect: true }) defaultWkid = 102100; /** - * When true, all but the main switch are disabled to prevent interaction. + * Indicates if the control has been enabled. + * The first time Spatial Reference has been enabled it should enable all feature services. */ - @Prop({ mutable: true, reflect: true }) locked = true; + @State() loaded = false; /** - * Contains the public value for this component, which is a wkid or a wkt. - */ - @Prop({ mutable: true, reflect: true }) value: string = this.defaultWkid.toString(); - - @Watch("value") - valueChanged(newValue: string): void { - this.spatialRef = this._createSpatialRefDisplay(newValue); - this._updateStore(); - const searchBox = document.getElementById("calcite-sr-search") as HTMLCalciteInputElement; - if (searchBox) { - searchBox.value = this._srSearchText = ""; - } - this._clearSelection(); - } + * When true, all but the main switch are disabled to prevent interaction. + */ + @Prop({ mutable: true, reflect: true }) locked = true; /** * List of service names the spatial reference should apply to @@ -76,10 +64,9 @@ export class SolutionSpatialRef { @Prop({ mutable: true, reflect: true }) services: string[] = []; /** - * Indicates if the control has been enabled. - * The first time Spatial Reference has been enabled it should enable all feature services. - */ - @State() loaded = false; + * Contains the public value for this component, which is a wkid or a wkt. + */ + @Prop({ mutable: true, reflect: true }) value: string = this.defaultWkid.toString(); //-------------------------------------------------------------------------- // @@ -87,11 +74,6 @@ export class SolutionSpatialRef { // //-------------------------------------------------------------------------- - constructor() { - this.spatialRef = this._createSpatialRefDisplay(this.value); - this.locked = typeof this.value === "undefined"; - } - /** * StencilJS: Called once just after the component is first connected to the DOM. */ @@ -105,37 +87,28 @@ export class SolutionSpatialRef { render(): VNode { return ( -
- {this._translations.paramDescription} -
- -
- - {this._translations.spatialReferenceInfo} - - -
- - {this._getTreeContent()} - +
+
+ {this._translations.paramDescription} +
+ +
+ + {this._translations.spatialReferenceInfo} + + + {this._getFeatureServices(this.services)}
- {this._getFeatureServices(this.services)}
); @@ -147,11 +120,6 @@ export class SolutionSpatialRef { // //-------------------------------------------------------------------------- - /** - * Internal representation of component's value for display purposes. - */ - @State() protected spatialRef: ISpatialRefRepresentation; - /** * Current text that is being used to filter the list of spatial references. */ @@ -177,85 +145,26 @@ export class SolutionSpatialRef { @Event() featureServiceSpatialReferenceChange: EventEmitter<{ name: string, enabled: boolean }>; + /** + * Handle changes to the buffer distance value + */ + @Listen("spatialReferenceChange", { target: "window" }) + spatialReferenceChange(event: CustomEvent): void { + this.value = event.detail.newValue; + } + //-------------------------------------------------------------------------- // // Public Methods (async) // //-------------------------------------------------------------------------- - /** - * Returns the spatial reference description of the supplied value. - * (Exposes protected method `_createSpatialRefDisplay` for testing.) - * - * @param value WKID or WKT or null for default - * @returns If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 - */ - @Method() - async createSpatialRefDisplay(value: string): Promise { - return this._createSpatialRefDisplay(value); - } - - /** - * Returns the current spatial reference description. - * (Exposes protected variable `spatialRef` for testing.) - */ - @Method() - async getSpatialRef(): Promise { - return this.spatialRef; - } - - /** - * Converts a WKID into a spatial reference description. - * (Exposes protected method `_wkidToDisplay` for testing.) - * - * @param wkid WKID to look up - * @returns Description, or "WKID <wkid>" if a description doesn't exist for the WKID - */ - @Method() - async wkidToDisplay(wkid: number): Promise { - return this._wkidToDisplay(wkid); - } - //-------------------------------------------------------------------------- // // Private Methods // //-------------------------------------------------------------------------- - /** - * Returns the spatial reference description of the supplied value. - * - * @param value WKID or WKT or null for default - * @returns If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 - */ - protected _createSpatialRefDisplay(value: string): ISpatialRefRepresentation { - let spatialRef: ISpatialRefRepresentation; - - if (!value) { - spatialRef = { - display: this._wkidToDisplay(this.defaultWkid), - usingWkid: true, - wkid: this.defaultWkid, - wkt: "" - } - } else { - const wkid = Number.parseInt(value); - spatialRef = isNaN(wkid) ? { - display: value, - usingWkid: false, - wkid: 0, - wkt: value - } : { - display: this._wkidToDisplay(wkid), - usingWkid: true, - wkid: wkid, - wkt: "" - }; - } - - return spatialRef; - } - /** * Toggles the ability to set the default spatial reference. */ @@ -287,26 +196,6 @@ export class SolutionSpatialRef { services.forEach(name => this._updateEnabledServices({ detail: { switched: true } }, name)); } - /** - * Stores the wkid as the components value. - */ - protected _setSpatialRef(wkid: string): void { - if (this.value !== wkid) { - this.value = wkid; - } - } - - /** - * Converts a WKID into a spatial reference description. - * - * @param wkid WKID to look up - * @returns Description, or "WKID <wkid>" if a description doesn't exist for the WKID - */ - protected _wkidToDisplay(wkid: number): string { - const description: IWkidDescription = wkids[wkid]; - return description ? description.label + " (" + wkid.toString() + ")" : "WKID " + wkid.toString(); - } - /** * Create a switch control for each of the services * @@ -343,7 +232,7 @@ export class SolutionSpatialRef { protected _updateStore(): void { const spatialReferenceInfo = state.getStoreInfo("spatialReferenceInfo"); spatialReferenceInfo.enabled = !this.locked; - spatialReferenceInfo.spatialReference = this.spatialRef.wkid; + spatialReferenceInfo.spatialReference = this.value; state.setStoreInfo("spatialReferenceInfo", spatialReferenceInfo); } @@ -361,120 +250,6 @@ export class SolutionSpatialRef { }); } - /** - * Select the first child on Enter key click - * OR - * Clear any selection while user is entering values and use the default wkid - * - * @param event The keyboard event - */ - protected _inputKeyDown( - event: KeyboardEvent - ): void { - if (event.key === "Enter") { - this._selectFirstChild(true); - } else { - if (this._srSearchText?.length > 1) { - this._clearSelection(); - this._setSpatialRef(this.defaultWkid.toString()); - } - } - } - - /** - * Clear any selected items in the elements tree. - * - */ - protected _clearSelection(): void { - const selectedItems = nodeListToArray( - this.el.querySelectorAll("calcite-tree-item[selected]") - ); - selectedItems.forEach((treeItem: HTMLCalciteTreeItemElement) => { - treeItem.selected = false; - }); - } - - /** - * Select the first child from the tree. - * - * @param autoFocus Boolean to indicate if focus should also be shifted to the first child. - * - */ - protected _selectFirstChild( - autoFocus: boolean - ): void { - const wkidContainer = document.getElementById("solution-wkid-container"); - if (wkidContainer && wkidContainer.firstChild) { - const firstChild = wkidContainer.firstChild as HTMLCalciteTreeItemElement; - firstChild.selected = true; - this._setSpatialRef(firstChild.id); - if (autoFocus) { - firstChild.focus(); - } - } - } - - /** - * Set the search text State and cause render. - * - * @param event the event to get the value from - * - */ - protected _searchSpatialReferences( - event: CustomEvent - ): void { - this._srSearchText = event.detail.value; - } - - /** - * Get the tree items for the current spatial reference search - * - */ - protected _getTreeContent(): VNode { - const id = "solution-wkid-container"; - const containerClass = "spatial-ref-container"; - if (this._srSearchText && this._srSearchText !== "" && this._srSearchText.length > 1) { - const regEx = new RegExp(`${this._srSearchText}`, 'gi'); - const matches = Object.keys(wkids).filter(wkid => { - return regEx.test(wkid.toString()) || regEx.test(wkids[wkid].label); - }); - return matches.length > 0 ? ( -
- {matches.map((wkid) => this._getTreeItem(wkid, false))} -
- ) : (null); - } else { - return ( -
- {this._getTreeItem(this.value.toString(), true)} -
- ); - } - } - - /** - * Get the individual spatial reference tree item - * - * @param wkid The wkid for the spatial reference that will be displayed. - * @param selected Should the item be selected by default. - * - */ - protected _getTreeItem( - wkid: string, - selected: boolean - ): VNode { - return ( - this._setSpatialRef(wkid)} - selected={selected} - > -
{`${wkids[wkid].label} (${wkid})`}
-
- ) - } - /** * Fetches the component's translations * diff --git a/src/components/solution-spatial-ref/test/solution-spatial-ref.e2e.ts b/src/components/solution-spatial-ref/test/solution-spatial-ref.e2e.ts index d95f6bbdd..10ff721e8 100644 --- a/src/components/solution-spatial-ref/test/solution-spatial-ref.e2e.ts +++ b/src/components/solution-spatial-ref/test/solution-spatial-ref.e2e.ts @@ -14,22 +14,39 @@ * limitations under the License. */ -// import { newE2EPage } from '@stencil/core/testing'; +import { E2EPage, newE2EPage } from '@stencil/core/testing'; describe('solution-spatial-ref', () => { + + let page: E2EPage; + beforeEach(async () => { + page = await newE2EPage(); + }); + it('renders', async () => { - //TEST commented out for now. - // need to work out how we pass translations - // e2e tests don't seem to support a similar apporach to the unit tests where we can use template to load JSX - // could flatten the translations further so it would contain no sub groups - // could set default translations for each file - // and could still have a test to compare the default with the actual as a way to verify - expect("a").toEqual("a"); - - // const page = await newE2EPage(); - // await page.setContent(''); - - // const element = await page.find('solution-spatial-ref'); - // expect(element).toHaveClass('hydrated'); + await page.setContent(''); + + const solution_spatial_ref = await page.find('solution-spatial-ref'); + expect(solution_spatial_ref).toHaveClass('hydrated'); + expect(await solution_spatial_ref.getProperty('defaultWkid')).toBe(102100); + expect(await solution_spatial_ref.getProperty('value')).toBe('102100'); }); + + it('echoes value of contained spatial-ref component', async () => { + await page.setContent(''); + await page.waitForChanges(); + + const newSpatialRef = '2243'; + const spatial_ref = await page.find('spatial-ref'); + await page.waitForChanges(); + await spatial_ref.setProperty('value', newSpatialRef); + await page.waitForChanges(); + /* + expect(await spatial_ref.getProperty('value')).toBe(newSpatialRef); + */ + + const solution_spatial_ref = await page.find('solution-spatial-ref'); + expect(await solution_spatial_ref.getProperty('value')).toBe(newSpatialRef); + }); + }); \ No newline at end of file diff --git a/src/components/solution-spatial-ref/test/solution-spatial-ref.spec.tsx b/src/components/solution-spatial-ref/test/solution-spatial-ref.spec.tsx index dcb1ae5a8..9f41d8c8b 100644 --- a/src/components/solution-spatial-ref/test/solution-spatial-ref.spec.tsx +++ b/src/components/solution-spatial-ref/test/solution-spatial-ref.spec.tsx @@ -14,13 +14,19 @@ * limitations under the License. */ +import * as locale from '../../../utils/locale'; +import state from "../../../utils/solution-store"; +import { h } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; import { SolutionSpatialRef } from '../solution-spatial-ref'; -import { h } from '@stencil/core'; -import state from "../../../utils/solution-store"; -xdescribe('solution-spatial-ref', () => { +describe('solution-spatial-ref', () => { + beforeEach(() => { + jest.spyOn(locale, 'getLocaleComponentStrings').mockImplementation( + () => Promise.resolve([{"spatialReferencePlaceholder": "Search for spatial reference using name or WKID"}, "en"]) + ); + state._testAccess("_emptyTheStore"); state.setStoreInfo("spatialReferenceInfo", { enabled: true, @@ -31,6 +37,11 @@ xdescribe('solution-spatial-ref', () => { spatialReference: undefined }); }); + + afterEach(() => { + jest.clearAllMocks(); + }); + it('renders', async () => { const page = await newSpecPage({ components: [SolutionSpatialRef], @@ -40,175 +51,35 @@ xdescribe('solution-spatial-ref', () => { ) }); expect(page.root).toEqualHtml(` - - -
- Select the spatial reference of the feature layers deployed with the solution. - - -
- -
- -
- WGS 1984 Web Mercator Auxiliary Sphere (102100) -
-
-
-
+ +
+
+
-
- - - + +
+ + + +
+ + + +
`); }); - it('creates description for known WKID', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.wkidToDisplay(4326) - .then( - result => expect(result).toEqual('GCS WGS 1984 (4326)') - ); - }); - - it('creates description for unknown WKID', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.wkidToDisplay(0) - .then( - result => expect(result).toEqual('WKID 0') - ); - }); - - it('creates description for default component value', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.createSpatialRefDisplay(null) - .then( - result => { - expect(result.display).toEqual('WGS 1984 Web Mercator Auxiliary Sphere (102100)'); - expect(result.usingWkid).toBeTruthy(); - expect(result.wkid).toEqual(102100); - expect(result.wkt).toEqual(''); - } - ); - }); - - it('creates description for WKID component value', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.createSpatialRefDisplay("4151") - .then( - result => { - expect(result.display).toEqual('GCS Swiss TRF 1995 (4151)'); - expect(result.usingWkid).toBeTruthy(); - expect(result.wkid).toEqual(4151); - expect(result.wkt).toEqual(''); - } - ); - }); - - it('creates description for WKT component value', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.createSpatialRefDisplay('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]') - .then( - result => { - expect(result.display).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'); - expect(result.usingWkid).toBeFalsy(); - expect(result.wkid).toEqual(0); - expect(result.wkt).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'); - } - ); - }); - - it('sets default component value', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.getSpatialRef() - .then( - result => { - expect(result.display).toEqual('WGS 1984 Web Mercator Auxiliary Sphere (102100)'); - expect(result.usingWkid).toBeTruthy(); - expect(result.wkid).toEqual(102100); - expect(result.wkt).toEqual(''); - } - ); - }); - - it('sets WKID component value', async () => { - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.getSpatialRef() - .then( - result => { - expect(result.display).toEqual('GCS Swiss TRF 1995 (4151)'); - expect(result.usingWkid).toBeTruthy(); - expect(result.wkid).toEqual(4151); - expect(result.wkt).toEqual(''); - } - ); - }); - - it('sets WKT component value', async () => { - const v: string = `PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`; - await newSpecPage({ - components: [SolutionSpatialRef], - template: () => ( - - ) - }); - const component = document.querySelector('solution-spatial-ref'); - component.getSpatialRef() - .then( - result => { - expect(result.display).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'); - expect(result.usingWkid).toBeFalsy(); - expect(result.wkid).toEqual(0); - expect(result.wkt).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'); - } - ); - }); -}); \ No newline at end of file +}); diff --git a/src/components/spatial-ref/readme.md b/src/components/spatial-ref/readme.md new file mode 100644 index 000000000..c4896bd66 --- /dev/null +++ b/src/components/spatial-ref/readme.md @@ -0,0 +1,88 @@ +# spatial-ref + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| ------------- | -------------- | ------------------------------------------------------------------------------- | --------- | ----------------------------- | +| `defaultWkid` | `default-wkid` | The wkid that will be used as the default when no user selection has been made. | `number` | `102100` | +| `disabled` | `disabled` | When true, all are disabled to prevent interaction. | `boolean` | `false` | +| `value` | `value` | Contains the public value for this component, which is a wkid or a wkt. | `string` | `this.defaultWkid.toString()` | + + +## Events + +| Event | Description | Type | +| ------------------------ | ----------- | --------------------------- | +| `spatialReferenceChange` | | `CustomEvent` | + + +## Methods + +### `createSpatialRefDisplay(value: string) => Promise` + +Returns the spatial reference description of the supplied value. +(Exposes protected method `_createSpatialRefDisplay` for testing.) + +#### Returns + +Type: `Promise` + +If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 + +### `getSpatialRef() => Promise` + +Returns the current spatial reference description. +(Exposes protected variable `spatialRef` for testing.) + +#### Returns + +Type: `Promise` + + + +### `wkidToDisplay(wkid: number) => Promise` + +Converts a WKID into a spatial reference description. +(Exposes protected method `_wkidToDisplay` for testing.) + +#### Returns + +Type: `Promise` + +Description, or "WKID <wkid>" if a description doesn't exist for the WKID + + +## Dependencies + +### Used by + + - [solution-spatial-ref](../solution-spatial-ref) + +### Depends on + +- calcite-input +- calcite-tree +- calcite-tree-item + +### Graph +```mermaid +graph TD; + spatial-ref --> calcite-input + spatial-ref --> calcite-tree + spatial-ref --> calcite-tree-item + calcite-input --> calcite-progress + calcite-input --> calcite-icon + calcite-tree-item --> calcite-icon + calcite-tree-item --> calcite-checkbox + solution-spatial-ref --> spatial-ref + style spatial-ref fill:#f9f,stroke:#333,stroke-width:4px +``` + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/src/components/spatial-ref/spatial-ref.scss b/src/components/spatial-ref/spatial-ref.scss new file mode 100644 index 000000000..8c7008526 --- /dev/null +++ b/src/components/spatial-ref/spatial-ref.scss @@ -0,0 +1,23 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.spatial-ref-container { + max-height: 200px; + @apply + overflow-y-auto + mb-4; +} + diff --git a/src/components/spatial-ref/spatial-ref.tsx b/src/components/spatial-ref/spatial-ref.tsx new file mode 100644 index 000000000..cb1cd7ea5 --- /dev/null +++ b/src/components/spatial-ref/spatial-ref.tsx @@ -0,0 +1,390 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import '@esri/calcite-components'; +import SpatialRef_T9n from '../../assets/t9n/spatial-ref/resources.json'; +import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch, VNode } from '@stencil/core'; +import { getLocaleComponentStrings } from '../../utils/locale'; +import { ISpatialRefRepresentation, IWkidDescription } from '../../utils/interfaces'; +import { IValueChange } from "../../utils/interfaces"; +import { nodeListToArray } from '../../utils/common'; +import { wkids } from './spatialreferences'; + +@Component({ + tag: 'spatial-ref', + styleUrl: 'spatial-ref.scss', + shadow: false +}) +export class SpatialRef { + + //-------------------------------------------------------------------------- + // + // Host element access + // + //-------------------------------------------------------------------------- + + @Element() el: HTMLSpatialRefElement; + + //-------------------------------------------------------------------------- + // + // Properties (public) + // + //-------------------------------------------------------------------------- + + /** + * The wkid that will be used as the default when no user selection has been made. + */ + @Prop({ mutable: true, reflect: true }) defaultWkid = 102100; + + /** + * When true, all are disabled to prevent interaction. + */ + @Prop({ mutable: true, reflect: true }) disabled = false; + + /** + * Contains the public value for this component, which is a wkid or a wkt. + */ + @Prop({ mutable: true, reflect: true }) value: string = this.defaultWkid.toString(); + + @Watch("value") + valueChanged(newValue: string): void { + this.spatialReferenceChange.emit({ + oldValue: this.value, + newValue: newValue + }); + this._spatialRef = this._createSpatialRefDisplay(newValue); + const searchBox = document.getElementById("calcite-sr-search") as HTMLCalciteInputElement; + if (searchBox) { + searchBox.value = this._srSearchText = ""; + } + this._clearSelection(); + } + + //-------------------------------------------------------------------------- + // + // Lifecycle + // + //-------------------------------------------------------------------------- + + constructor() { + this._spatialRef = this._createSpatialRefDisplay(this.value); + } + + /** + * StencilJS: Called once just after the component is first connected to the DOM. + */ + componentWillLoad(): Promise { + return this._getTranslations(); + } + + /** + * Renders the component. + */ + render(): VNode { + return ( + +
+ this._searchInputKeyDown(evt)} + placeholder={this._translations.spatialReferencePlaceholder} + /> + + {this._getTreeContent()} + +
+
+ ); + } + + //-------------------------------------------------------------------------- + // + // Properties (protected) + // + //-------------------------------------------------------------------------- + + /** + * Internal representation of component's value for display purposes. + */ + @State() protected _spatialRef: ISpatialRefRepresentation; + + /** + * Current text that is being used to filter the list of spatial references. + */ + @State() protected _srSearchText: string; + + /** + * Contains the translations for this component. + * All UI strings should be defined here. + */ + @State() protected _translations: typeof SpatialRef_T9n; + + protected _lastHighlightedSref: number; + + //-------------------------------------------------------------------------- + // + // Event Listeners + // + //-------------------------------------------------------------------------- + + //-------------------------------------------------------------------------- + // + // Events + // + //-------------------------------------------------------------------------- + + @Event() spatialReferenceChange: EventEmitter; + + //-------------------------------------------------------------------------- + // + // Public Methods (async) + // + //-------------------------------------------------------------------------- + + /** + * Returns the spatial reference description of the supplied value. + * (Exposes protected method `_createSpatialRefDisplay` for testing.) + * + * @param value WKID or WKT or null for default + * @returns If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 + */ + @Method() + async createSpatialRefDisplay(value: string): Promise { + return this._createSpatialRefDisplay(value); + } + + /** + * Returns the current spatial reference description. + * (Exposes protected variable `spatialRef` for testing.) + */ + @Method() + async getSpatialRef(): Promise { + return this._spatialRef; + } + + /** + * Converts a WKID into a spatial reference description. + * (Exposes protected method `_wkidToDisplay` for testing.) + * + * @param wkid WKID to look up + * @returns Description, or "WKID <wkid>" if a description doesn't exist for the WKID + */ + @Method() + async wkidToDisplay(wkid: number): Promise { + return this._wkidToDisplay(wkid); + } + + //-------------------------------------------------------------------------- + // + // Private Methods + // + //-------------------------------------------------------------------------- + + /** + * Returns the spatial reference description of the supplied value. + * + * @param value WKID or WKT or null for default + * @returns If component is using a WKID, description using WKID; otherwise, the WKT; defaults to 102100 + */ + protected _createSpatialRefDisplay(value: string): ISpatialRefRepresentation { + let spatialRef: ISpatialRefRepresentation; + + if (!value) { + spatialRef = { + display: this._wkidToDisplay(this.defaultWkid), + usingWkid: true, + wkid: this.defaultWkid, + wkt: "" + } + } else { + const wkid = Number.parseInt(value); + spatialRef = isNaN(wkid) ? { + display: value, + usingWkid: false, + wkid: 0, + wkt: value + } : { + display: this._wkidToDisplay(wkid), + usingWkid: true, + wkid: wkid, + wkt: "" + }; + } + + return spatialRef; + } + + /** + * Stores the wkid as the components value. + */ + protected _setSpatialRef(wkid: string): void { + if (this.value !== wkid) { + this.value = wkid; + } + } + + /** + * Converts a WKID into a spatial reference description. + * + * @param wkid WKID to look up + * @returns Description, or "WKID <wkid>" if a description doesn't exist for the WKID + */ + protected _wkidToDisplay(wkid: number): string { + const description: IWkidDescription = wkids[wkid]; + return description ? description.label + " (" + wkid.toString() + ")" : "WKID " + wkid.toString(); + } + + /** + * Sets the search text State and cause render; if Enter key, selects the first child. + * + * @param event The keyboard event + */ + protected _searchInputKeyDown( + event: KeyboardEvent + ): void { + if (event.key === "Enter") { + this._selectFirstChild(); + } else { + const searchBox = document.getElementById("calcite-sr-search") as HTMLCalciteInputElement; + if (searchBox) { + this._srSearchText = searchBox.value; + } + } + } + + /** + * Tracks the movement through the list of projections, and selects the one for which Enter is used twice. + * + * @param event The keyboard event + */ + protected _projListInputKeyDown( + event: KeyboardEvent + ): void { + const highlightedSref = (event.target as any).id; + if (event.key === "Enter" && this._lastHighlightedSref === highlightedSref) { + // "Enter" twice on the same projection selects it + this._clearSelection(); + this._setSpatialRef(this._lastHighlightedSref.toString()); + } else { + // Save the projection in case it's selected a second time + this._lastHighlightedSref = highlightedSref; + } +} + + /** + * Clear any selected items in the elements tree. + * + */ + protected _clearSelection(): void { + const selectedItems = nodeListToArray( + this.el.querySelectorAll("calcite-tree-item[selected]") + ); + selectedItems.forEach((treeItem: HTMLCalciteTreeItemElement) => { + treeItem.selected = false; + }); + } + + /** + * Select the first child from the tree. + * + * @param autoFocus Boolean to indicate if focus should also be shifted to the first child. + * + */ + protected _selectFirstChild( + ): void { + const wkidContainer = document.getElementById("solution-wkid-container"); + if (wkidContainer && wkidContainer.firstChild) { + const firstChild = wkidContainer.firstChild as HTMLCalciteTreeItemElement; + firstChild.selected = true; + this._setSpatialRef(firstChild.id); + } + } + + /** + * Get the tree items for the current spatial reference search + * + */ + public _getTreeContent(): VNode { + const id = "solution-wkid-container"; + const containerClass = "spatial-ref-container"; + if (this._srSearchText && this._srSearchText.length > 1) { + const regEx = new RegExp(`${this._srSearchText}`, 'gi'); + const matches = Object.keys(wkids).filter(wkid => { + return regEx.test(wkid.toString()) || regEx.test(wkids[wkid].label); + }); + return matches.length > 0 ? ( +
this._projListInputKeyDown(evt)} + > + {matches.map((wkid) => this._getTreeItem(wkid, false))} +
+ ) : (null); + } else { + return ( +
+ {this._getTreeItem(this.value.toString(), true)} +
+ ); + } + } + + /** + * Get the individual spatial reference tree item + * + * @param wkid The wkid for the spatial reference that will be displayed. + * @param selected Should the item be selected by default. + * + */ + protected _getTreeItem( + wkid: string, + selected: boolean + ): VNode { + const label = wkids[wkid]?.label; + return label ? + ( + this._setSpatialRef(wkid)} + selected={selected} + > +
{`${label} (${wkid})`}
+
+ ) : ( + this._setSpatialRef(wkid)} + selected={selected} + > +
{`${wkid}`}
+
+ ); + } + + /** + * Fetches the component's translations + * + * @protected + */ + protected async _getTranslations(): Promise { + const translations = await getLocaleComponentStrings(this.el); + this._translations = translations[0] as typeof SpatialRef_T9n; + } +} diff --git a/src/components/solution-spatial-ref/spatialreferences.ts b/src/components/spatial-ref/spatialreferences.ts similarity index 100% rename from src/components/solution-spatial-ref/spatialreferences.ts rename to src/components/spatial-ref/spatialreferences.ts diff --git a/src/components/spatial-ref/test/spatial-ref.e2e.ts b/src/components/spatial-ref/test/spatial-ref.e2e.ts new file mode 100644 index 000000000..59a303a80 --- /dev/null +++ b/src/components/spatial-ref/test/spatial-ref.e2e.ts @@ -0,0 +1,81 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { E2EPage, newE2EPage } from '@stencil/core/testing'; + +describe('spatial-ref', () => { + + let page: E2EPage; + beforeEach(async () => { + page = await newE2EPage(); + }); + + it('renders', async () => { + await page.setContent(''); + + const spatial_ref = await page.find('spatial-ref'); + expect(spatial_ref).toHaveClass('hydrated'); + expect(await spatial_ref.getProperty('defaultWkid')).toBe(102100); + expect(await spatial_ref.getProperty('value')).toBe('102100'); + }); + + it('select first value after typing in search field', async () => { + await page.setContent(''); + + const spatial_ref = await page.find('spatial-ref'); + expect(await spatial_ref.getProperty('value')).toBe('102100'); + + const input = await page.find('calcite-input >>> input'); + await input.focus(); + await page.keyboard.type('wyoming'); + await page.waitForChanges(); + await page.keyboard.press('Enter'); + await page.waitForChanges(); + expect(await spatial_ref.getProperty('value')).toBe('2862'); + }); + + xit('select tabbed-to value after typing in search field', async () => { + await page.setContent(''); + + const spatial_ref = await page.find('spatial-ref'); + expect(await spatial_ref.getProperty('value')).toBe('102100'); + + const input = await page.find('calcite-input >>> input'); + await input.focus(); + await page.keyboard.type('wyoming'); + await page.waitForChanges(); + + // Enter the list of suggested projections + await page.keyboard.press('Tab'); + await page.waitForChanges(); + + // And tab down to one of them + await page.keyboard.press('Tab'); + await page.waitForChanges(); + await page.keyboard.press('Tab'); + await page.waitForChanges(); + await page.keyboard.press('Tab'); + await page.waitForChanges(); + + // Select it, and use second selection to make it the current projection + await page.keyboard.press('Enter'); + await page.waitForChanges(); + await page.keyboard.press('Enter'); + await page.waitForChanges(); + expect(await spatial_ref.getProperty('value')).toBe('2865'); + }); + +}); diff --git a/src/components/spatial-ref/test/spatial-ref.spec.tsx b/src/components/spatial-ref/test/spatial-ref.spec.tsx new file mode 100644 index 000000000..9cf30a6d2 --- /dev/null +++ b/src/components/spatial-ref/test/spatial-ref.spec.tsx @@ -0,0 +1,203 @@ +/** @license + * Copyright 2022 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as locale from '../../../utils/locale'; +import { h } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; +import { SpatialRef } from '../spatial-ref'; + +describe('spatial-ref', () => { + + beforeEach(() => { + jest.spyOn(locale, 'getLocaleComponentStrings').mockImplementation( + () => Promise.resolve([{"spatialReferencePlaceholder": "Search for spatial reference using name or WKID"}, "en"]) + ); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it('renders', async () => { + const page = await newSpecPage({ + components: [SpatialRef], + supportsShadowDom: false, + template: () => ( + + ) + }); + expect(page.root).toEqualHtml(` + +
+ + +
+ +
+ WGS 1984 Web Mercator Auxiliary Sphere (102100) +
+
+
+
+
+
+ `); + }); + + it('creates description for known WKID', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.wkidToDisplay(4326) + .then( + result => expect(result).toEqual('GCS WGS 1984 (4326)') + ); + }); + + it('creates description for unknown WKID', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.wkidToDisplay(0) + .then( + result => expect(result).toEqual('WKID 0') + ); + }); + + it('creates description for default component value', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.createSpatialRefDisplay(null) + .then( + result => { + expect(result.display).toEqual('WGS 1984 Web Mercator Auxiliary Sphere (102100)'); + expect(result.usingWkid).toBeTruthy(); + expect(result.wkid).toEqual(102100); + expect(result.wkt).toEqual(''); + } + ); + }); + + it('creates description for WKID component value', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.createSpatialRefDisplay("4151") + .then( + result => { + expect(result.display).toEqual('GCS Swiss TRF 1995 (4151)'); + expect(result.usingWkid).toBeTruthy(); + expect(result.wkid).toEqual(4151); + expect(result.wkt).toEqual(''); + } + ); + }); + + it('creates description for WKT component value', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.createSpatialRefDisplay('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]') + .then( + result => { + expect(result.display).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'); + expect(result.usingWkid).toBeFalsy(); + expect(result.wkid).toEqual(0); + expect(result.wkt).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'); + } + ); + }); + + it('sets default component value', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.getSpatialRef() + .then( + result => { + expect(result.display).toEqual('WGS 1984 Web Mercator Auxiliary Sphere (102100)'); + expect(result.usingWkid).toBeTruthy(); + expect(result.wkid).toEqual(102100); + expect(result.wkt).toEqual(''); + } + ); + }); + + it('sets WKID component value', async () => { + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.getSpatialRef() + .then( + result => { + expect(result.display).toEqual('GCS Swiss TRF 1995 (4151)'); + expect(result.usingWkid).toBeTruthy(); + expect(result.wkid).toEqual(4151); + expect(result.wkt).toEqual(''); + } + ); + }); + + it('sets WKT component value', async () => { + const v: string = `PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`; + await newSpecPage({ + components: [SpatialRef], + template: () => ( + + ) + }); + const component = document.querySelector('spatial-ref'); + component.getSpatialRef() + .then( + result => { + expect(result.display).toEqual(v); + expect(result.usingWkid).toBeFalsy(); + expect(result.wkid).toEqual(0); + expect(result.wkt).toEqual(v); + } + ); + }); + +}); \ No newline at end of file diff --git a/src/demos/buffer-tools.html b/src/demos/buffer-tools.html index e39d297f4..2c97e870f 100644 --- a/src/demos/buffer-tools.html +++ b/src/demos/buffer-tools.html @@ -46,12 +46,12 @@ - + diff --git a/src/demos/comment-card.html b/src/demos/comment-card.html deleted file mode 100644 index a038a0e55..000000000 --- a/src/demos/comment-card.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - Comment Card - - - - - - - - - - - - - - - - -
- - - diff --git a/src/demos/crowdsource-manager.html b/src/demos/crowdsource-manager.html index a5415233f..971183726 100644 --- a/src/demos/crowdsource-manager.html +++ b/src/demos/crowdsource-manager.html @@ -28,31 +28,112 @@ } - + + + - + + + diff --git a/src/demos/crowdsource-reporter.html b/src/demos/crowdsource-reporter.html index d1ef120f4..a9fffa884 100644 --- a/src/demos/crowdsource-reporter.html +++ b/src/demos/crowdsource-reporter.html @@ -47,13 +47,13 @@ - + + diff --git a/src/demos/add-record-modal.html b/src/demos/edit-card.html similarity index 92% rename from src/demos/add-record-modal.html rename to src/demos/edit-card.html index 4c9156723..c58f95925 100644 --- a/src/demos/add-record-modal.html +++ b/src/demos/edit-card.html @@ -5,7 +5,7 @@ name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /> - Add Record Modal + Edit Card - - - - - - - - - - - diff --git a/src/demos/index.html b/src/demos/index.html index 9531b360e..19eb92649 100644 --- a/src/demos/index.html +++ b/src/demos/index.html @@ -171,7 +171,7 @@

Crowdsource Manager

<add-record-modal>
  • - <edit-record-modal> + <edit-card>
  • diff --git a/src/demos/layer-table.html b/src/demos/layer-table.html index 8460696cf..c01343b0b 100644 --- a/src/demos/layer-table.html +++ b/src/demos/layer-table.html @@ -45,12 +45,12 @@ - + + + + + - - - - - -
    - - - diff --git a/src/demos/map-select-tools.html b/src/demos/map-select-tools.html index 407fda1db..02b0353fa 100644 --- a/src/demos/map-select-tools.html +++ b/src/demos/map-select-tools.html @@ -46,12 +46,12 @@ - + - - - - - - - - diff --git a/src/demos/new-public-notification.html b/src/demos/new-public-notification.html index d5c8be776..ea27aee05 100644 --- a/src/demos/new-public-notification.html +++ b/src/demos/new-public-notification.html @@ -55,30 +55,46 @@ - + -

    Demo Solution Spatial Reference

    - +
    + + + +

    Demo Spatial Reference

    +
    +
    + +
    +
    + + + + + + diff --git a/src/utils/downloadUtils.ts b/src/utils/downloadUtils.ts index 88fbb101d..eeeaad5ac 100644 --- a/src/utils/downloadUtils.ts +++ b/src/utils/downloadUtils.ts @@ -21,6 +21,7 @@ import { ILabel, exportPDF } from "./pdfUtils"; import { loadModules } from "./loadModules"; import { queryFeaturesByID } from "./queryUtils"; import { IExportInfo, IExportInfos } from "../utils/interfaces"; +import * as common from "@esri/solution-common"; export { ILabel } from "./pdfUtils"; @@ -32,27 +33,59 @@ interface IArcadeExecutorPromises { [expressionName: string]: Promise<__esri.ArcadeExecutor>; } -interface IAttributeDomains { +export interface IAttributeOrigNames { + [lowercaseName: string]: string; +} + +export interface IAttributeDomains { [attributeName: string]: __esri.CodedValueDomain | __esri.RangeDomain | __esri.InheritedDomain | null; } -interface IAttributeFormats { +export interface IAttributeFormats { [attributeName: string]: __esri.FieldInfoFormat; } -interface IAttributeTypes { +export interface IAttributeTypes { [attributeName: string]: string; } -interface ILayerRelationshipQuery { +export interface ILabelFormat { + type: "pattern" | "executor" | "unsupported"; + format: string | __esri.ArcadeExecutor | undefined; +} + +export interface ILabelFormatProps { + layer: __esri.FeatureLayer; + attributeFormats: IAttributeFormats; + relationshipId: number | undefined; + labelFormat: ILabelFormat; +} + +export interface ILayerRelationshipQuery { layer: __esri.FeatureLayer; relatedQuery: IRelatedFeaturesQuery; } -interface ILayerRelationshipQueryHash { +export interface ILayerRelationshipQueryHash { [relationshipId: string]: ILayerRelationshipQuery; } +/** + * Related record query request options with new exceededTransferLimit property. + */ +export interface IQueryRelatedOptionsOffset extends IQueryRelatedOptions { + params: { + resultOffset: number; + } +} + +/** + * Related record response structure with new exceededTransferLimit property. + */ +export interface IQueryRelatedResponseOffset extends IQueryRelatedResponse { + exceededTransferLimit?: boolean; +} + // Class RelationshipQuery doesn't appear to work, and so since // https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#queryRelatedFeatures // says that the relationshipQuery argument is autocast, we'll set up a variant for the class @@ -65,12 +98,56 @@ interface IRelatedFeaturesQuery { const lineSeparatorChar = "|"; +import { + IFeature, + IQueryRelatedOptions, + IQueryRelatedResponse, + IRelatedRecordGroup, + queryRelated +} from "@esri/arcgis-rest-feature-layer"; + //#endregion +// ------------------------------------------------------------------------------------------------------------------ // //#region Public functions +/** + * Create and consolidate labels from all layers + * + * @param webmap Webmap containing layer + * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames) + * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false, + * all attributes are exported + * @param includeHeaderNames Add the label format at the front of the list of generated labels + * @returns selectionSetNames that will be used for export filenames + */ +export async function consolidateLabels( + webmap: __esri.Map, + exportInfos: IExportInfos, + formatUsingLayerPopup = true, + includeHeaderNames = false, + isCSVExport = false +): Promise { + const labelRequests = []; + + Object.keys(exportInfos).forEach(k => { + const labelInfo: IExportInfo = exportInfos[k]; + labelRequests.push( + _prepareLabels(webmap, labelInfo.layerView?.layer || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames) + ); + if (isCSVExport) { + // add the layer id as a temp value separator that we can use to split values for CSV export + labelRequests.push(Promise.resolve([[k]])); + } + }); + + const labels = await Promise.all(labelRequests); + return labels.reduce((prev, cur) => prev.concat(cur), []); +} + /** * Downloads csv of mailing labels for the provided list of ids * + * @param webmap Webmap containing layer * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames) * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false, * all attributes are exported @@ -79,12 +156,13 @@ const lineSeparatorChar = "|"; * @returns Promise resolving when function is done */ export async function downloadCSV( + webmap: __esri.Map, exportInfos: IExportInfos, formatUsingLayerPopup: boolean, removeDuplicates = false, addColumnTitle = false ): Promise { - let labels = await consolidateLabels(exportInfos, formatUsingLayerPopup, addColumnTitle, true); + let labels = await consolidateLabels(webmap, exportInfos, formatUsingLayerPopup, addColumnTitle, true); labels = removeDuplicates ? removeDuplicateLabels(labels) : labels; const layerIds = Object.keys(exportInfos); @@ -110,6 +188,7 @@ export async function downloadCSV( /** * Downloads csv of mailing labels for the provided list of ids * + * @param webmap Webmap containing layer * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames) * @param labelPageDescription Provides PDF page layout info * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value @@ -118,13 +197,14 @@ export async function downloadCSV( * @returns Promise resolving when function is done */ export async function downloadPDF( + webmap: __esri.Map, exportInfos: IExportInfos, labelPageDescription: ILabel, removeDuplicates = false, title = "", initialImageDataUrl = "" ): Promise { - let labels = await consolidateLabels(exportInfos); + let labels = await consolidateLabels(webmap, exportInfos); const selectionSetNames = _getSelectionSetNames(exportInfos); labels = @@ -135,64 +215,57 @@ export async function downloadPDF( labels = removeDuplicates ? removeDuplicateLabels(labels) : labels; - exportPDF(_createFilename(selectionSetNames), labels, labelPageDescription, title, initialImageDataUrl); + const exportTitle = title ? title : _createFilename(selectionSetNames); + exportPDF(exportTitle, labels, labelPageDescription, title, initialImageDataUrl); return Promise.resolve(); } -//#endregion -//#region Private functions - /** - * Converts a set of fieldInfos into template lines. + * Remove any duplicate labels * - * @param fieldInfos Layer's fieldInfos structure - * @param bypassFieldVisiblity Indicates if the configured fieldInfo visibility property should be ignored - * @return Label spec with lines separated by `lineSeparatorChar` + * @param labels Labels to evaluate for duplicates + * @returns labels with duplicates removed */ -export function _convertPopupFieldsToLabelSpec( - fieldInfos: __esri.FieldInfo[], - bypassFieldVisiblity = false -): string { - const labelSpec: string[] = []; - - // Every visible attribute is used - fieldInfos.forEach( - fieldInfo => { - if (fieldInfo.visible || bypassFieldVisiblity) { - labelSpec.push(`{${fieldInfo.fieldName}}`); - } - } +export function removeDuplicateLabels( + labels: string[][] +): string[][] { + const labelsAsStrings: string[] = labels.map(label => JSON.stringify(label)); + const uniqueLabels = new Set(labelsAsStrings); + return Array.from(uniqueLabels, + labelString => JSON.parse(labelString) ); +} - return labelSpec.join(lineSeparatorChar); -}; +//#endregion +// ------------------------------------------------------------------------------------------------------------------ // +//#region Private functions /** * Converts the text of a custom popup into a multiline label specification; conversion splits text into - * lines on
    s, and removes HTML tags. It does not handle Arcade and related records. + * lines on
    s, and removes HTML tags. * - * @param popupInfo Layer's popupInfo structure containing description, fieldInfos, and expressionInfos, e.g., + * @param labelText Layer's popup text, e.g., * "
    {NAME}
    {STREET}
    {CITY}, {STATE} {ZIP} 
    " - * @return Label spec with lines separated by `lineSeparatorChar` + * @return Cleaned-up popup text with lines separated by `lineSeparatorChar` */ -export function _convertPopupTextToLabelSpec( - popupInfo: string, +export function _cleanupLabel( + labelText: string, ): string { // Replace
    variants with the line separator character - popupInfo = popupInfo.replace(//gi, lineSeparatorChar); + labelText = labelText.replace(//gi, lineSeparatorChar); // Replace

    variants with the line separator character, except in the first position - popupInfo = popupInfo.replace(/]*>/gi, lineSeparatorChar).trim().replace(/^\|/, ""); + labelText = labelText.replace(/]*>/gi, lineSeparatorChar).trim().replace(/^\|/, ""); // Remove

    - popupInfo = popupInfo.replace(/<\/p>/gi, ""); + labelText = labelText.replace(/<\/p>/gi, ""); // Replace \n with the line separator character - popupInfo = popupInfo.replace(/\n/gi, "|"); + labelText = labelText.replace(/\n/gi, "|"); // Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations - let labelSpec = popupInfo + labelText = labelText .replace(/<[\s.]*[^<>]*\/?>/gi, "") .replace(/\xA0/gi, " ") .replace(/</gi, "<") @@ -200,20 +273,104 @@ export function _convertPopupTextToLabelSpec( .replace(/ /gi, " "); // Trim each line - labelSpec = labelSpec.replace(/\s*\|\s*/g, "|"); + labelText = labelText.replace(/\s*\|\s*/g, "|"); // Remove empty lines - while (labelSpec.match(/\|\|/)) { - labelSpec = labelSpec.replace(/\|\|/, "|"); + while (labelText.match(/\|\|/)) { + labelText = labelText.replace(/\|\|/, "|"); } // Remove leading and trailing line feeds - labelSpec = labelSpec.replace(/^\|/, ""); - labelSpec = labelSpec.replace(/\|$/, ""); + labelText = labelText.replace(/^\|/, ""); + labelText = labelText.replace(/\|$/, ""); - return labelSpec.trim(); + return labelText; }; +/** + * Converts a set of fieldInfos into template lines. + * + * @param fieldInfos Layer's fieldInfos structure + * @param bypassFieldVisiblity Indicates if the configured fieldInfo visibility property should be ignored + * @return "pattern" label spec with lines separated by `lineSeparatorChar` + */ +export function _convertPopupFieldsToLabelSpec( + fieldInfos: __esri.FieldInfo[], + bypassFieldVisiblity = false +): ILabelFormat { + const labelSpec: string[] = []; + + // Every visible attribute is used + fieldInfos.forEach( + fieldInfo => { + if (fieldInfo.visible || bypassFieldVisiblity) { + labelSpec.push(`{${fieldInfo.fieldName}}`); + } + } + ); + + return { + type: "pattern", + format: labelSpec.join(lineSeparatorChar) + } as ILabelFormat; +}; + +/** + * Converts the text of a custom popup into a multiline label specification; conversion splits text into + * lines on
    s, and removes HTML tags. It does not handle Arcade and related records. + * + * @param labelText Layer's labelText structure containing description, fieldInfos, and expressionInfos, e.g., + * "
    {NAME}
    {STREET}
    {CITY}, {STATE} {ZIP} 
    " + * @return "pattern" label spec with lines separated by `lineSeparatorChar` + */ +export function _convertPopupTextToLabelSpec( + popupInfo: string, +): ILabelFormat { + return { + type: "pattern", + format: _cleanupLabel(popupInfo) + } as ILabelFormat; +}; + +/** + * Converts an Arcade expression of a custom popup into a multiline label specification. + * + * @param expressionInfo Structure containing expression and info about it + * @return Promise resolving to an "executor" label spec + */ +export async function _convertPopupArcadeToLabelSpec( + expressionInfo: __esri.ElementExpressionInfo +): Promise { + // Generate an Arcade executor + const [arcade] = await loadModules(["esri/arcade"]); + const labelingProfile: __esri.Profile = { + variables: [ + { + name: "$feature", + type: "feature" + }, + { + name: "$layer", + type: "featureSet" + }, + { + name: "$datastore", + type: "featureSetCollection" + }, + { + name: "$map", + type: "featureSetCollection" + } + ] + }; + const executor = await arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile); + + return Promise.resolve({ + type: "executor", + format: executor + } as ILabelFormat); +} + /** * Extracts Arcade expressions from the lines of a label format and creates an Arcade executor for each * referenced expression name. @@ -310,41 +467,280 @@ export function _createFilename( } /** - * Creates relationship queries for each relationship flag in a popup. - * @param layer Layer whose popup is to be examined - * @return Hash of relationships by their id, or null if there are no relationship flags in the - * popup; each relationship has the properties layer and relatedQuery for the related layer - * and the query for that layer + * Extracts Arcade expression references from the lines of a label format. + * + * @param labelFormat Label to examine + * @return Array of Arcade expression references, e.g., ["{expression/expr1}", "{expression/expr2}"] + */ +export function _getExpressionsFromLabel( + labelFormat: string +): string[] { + const arcadeExpressionRegExp = /\{expression\/\w+\}/g; + return labelFormat.match(arcadeExpressionRegExp) ?? []; +} + +/** + * Gets the related records for a feature service. + * + * @param url Feature service's URL, e.g., layer.url + * @param layerId Id of layer within a feature service + * @param relationshipId Id of relationship + * @param objectIds Objects in the feature service whose related records are sought + * @returns Promise resolving to an array of objects and their related records */ -export function _createRelationshipQueries( +export function _getFeatureServiceRelatedRecords( + url: string, + layerId: number, + relationshipId?: number, + objectIds?: number[] +): Promise { + // See if the URL points to a service rather than a layer + const endOfUrl = url.substring(url.lastIndexOf("/") + 1); + if (isNaN(parseInt(endOfUrl))) { + url += "/" + layerId.toString(); + } + + const options: IQueryRelatedOptions = { + definitionExpression: "1=1", + httpMethod: "POST", + objectIds, + outFields: "*", + relationshipId, + url + } + + return _getFeatureServiceRelatedRecordsTranche(options); +} + +/** + * Gets a tranche of related records for a feature service. + * + * @param options Options for arcgis-rest-js' queryRelated function + * @param relationships Array of related records accumulated so far + * @param resultOffset Number of records already retrieved + * @returns Promise resolving to an array of objects and their related records + */ +export function _getFeatureServiceRelatedRecordsTranche( + options: IQueryRelatedOptions, + relationships: IRelatedRecordGroup[] = [], + resultOffset = 0 +): Promise { + return queryRelated({ + ...options, + params: { + resultOffset + } + } as IQueryRelatedOptionsOffset) + .then( + (response: IQueryRelatedResponseOffset) => { + relationships.push(...response.relatedRecordGroups); + + // If exceededTransferLimit is true, then there are more records to retrieve and the feature service + // supports the resultOffset parameter + return response.exceededTransferLimit ? _getFeatureServiceRelatedRecordsTranche( + options, relationships, resultOffset + response.relatedRecordGroups.length) : Promise.resolve(relationships); + } + ); +} + +/** + * Extracts field name expressions from the lines of a label format. + * + * @param labelFormat Label to examine + * @returns Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"] + */ +export function _getFieldExpressionsFromLabel( + labelFormat: string +): string[] { + // Get all fields + const fieldExpressions: string[] = []; + + let iStart = 0; + while (iStart < labelFormat.length) { + const iOpen = labelFormat.indexOf("{", iStart); // Find the next open brace + if (iOpen < 0) { break; } // No more open braces + const iClose = labelFormat.indexOf("}", iOpen); // Find the matching close brace + if (iClose < 0) { break; } // No more close braces + const fieldName = labelFormat.substring(iOpen, iClose + 1); // Extract the field name with braces + fieldExpressions.push(fieldName); + iStart = iClose + 1; // Start looking for the next field name after the close brace + } + + // Get the Arcade expressions + const arcadeExpressions = _getExpressionsFromLabel(labelFormat); + + // Remove the Arcade expressions from the returned list of field expressions + return fieldExpressions.filter(fieldExpression => arcadeExpressions.indexOf(fieldExpression) < 0); +} + +/** + * Extracts field names from field name expressions. + * + * @param fieldExpressions Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"] + * @returns Array of field names, e.g., ["NAME", "STREET", "CITY", "STATE", "ZIP"] + */ +export function _getFieldNamesFromFieldExpressions( + fieldExpressions: string[] +): string[] { + return fieldExpressions.map( + expr => expr.substring(1, expr.length - 1) + ) +} + +/** + * Extracts the label format from the layer. + * + * @param webmap Webmap containing layer + * @param layer Layer with label format + * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false, + * all attributes are exported + * @returns A Promise resolving to the format of a single label with fields coerced to lowercase, e.g., + * for ILabelFormatProps type "pattern": "{name}|{street}|{city}, {state} {zip}" + */ +export async function _getLabelFormat( + webmap: __esri.Map, layer: __esri.FeatureLayer, -): ILayerRelationshipQueryHash { - - const relationships: ILayerRelationshipQueryHash = {}; - const relationshipFieldPattern = /\{relationships\/\d+\//gm; - const relationshipIdPattern = /\d+/; - - // Test if this popup has any relationship references - const matches = layer.popupTemplate.content[0].text.match(relationshipFieldPattern); - if (matches) { - matches.forEach(match => { - // Add a query to a found relationship if we don't already have one - const id = match.match(relationshipIdPattern)[0]; - if (!relationships.hasOwnProperty(id)) { - const relatedQuery: IRelatedFeaturesQuery = { - outFields: ['*'], - relationshipId: id, - returnGeometry: false - }; - relationships[id] = { - layer, - relatedQuery - } as ILayerRelationshipQuery; + formatUsingLayerPopup: boolean +): Promise { + let labelFormatProps: ILabelFormatProps = { + layer, + attributeFormats: {}, + relationshipId: undefined, + labelFormat: { + type: "unsupported", + format: undefined + } + }; + + if (layer.popupEnabled) { + layer.popupTemplate.fieldInfos.forEach( + // Extract any format info that we have + fieldInfo => { + if (fieldInfo.format) { + labelFormatProps.attributeFormats[fieldInfo.fieldName.toLowerCase()] = fieldInfo.format; + } } - }); + ); + + // What is the nature of the label content? + + // Fields list + if (formatUsingLayerPopup) { + const labelFormatType = layer.popupTemplate?.content[0]?.type; + + if (labelFormatType === "relationship") { + const relationshipId = layer.popupTemplate.content[0].relationshipId; + + // Get related layer + const layerRelationship = layer.relationships.find(relationship => relationship.id === relationshipId); + let webmapLayers = webmap.layers.toArray().concat(webmap.tables.toArray()) as __esri.FeatureLayer[]; + webmapLayers = webmapLayers.filter( + (webmapLayer: __esri.FeatureLayer) => + webmapLayer.type === "feature" && webmapLayer.layerId === layerRelationship.relatedTableId + ); + + if (webmapLayers.length > 0) { + labelFormatProps = await _getLabelFormat(webmap, webmapLayers[0], formatUsingLayerPopup); + labelFormatProps.relationshipId = relationshipId; + + } else { + // Related layer info is not in webmap; get the label info from the related layer + webmapLayers = webmap.layers.toArray().concat(webmap.tables.toArray()) as __esri.FeatureLayer[]; + + // Keep only feature layers and tables that have the type "feature" and whose layerId doesn't + // match the one we entered this function with and who have a URL that we can query + const relationshipCandidatePromises: Promise[] = []; + webmapLayers = webmapLayers.filter( + (webmapLayer: __esri.FeatureLayer) => { + if (webmapLayer.type === "feature" && webmapLayer.layerId != layer.layerId && webmapLayer.url) { + // Query the feature layer/table for properties missing from the webmap version + const webmapLayerUrl = webmapLayer.url + "/" + webmapLayer.layerId.toString(); + relationshipCandidatePromises.push( + common.getJson(webmapLayerUrl/*, authentication*/) + ); + return true; + } else { + return false; + } + } + ) + + // Of the queried feature layers/tables, find the one with the matching relationship id + const relationshipCandidates = await Promise.all(relationshipCandidatePromises); + let labelFormatPropsPromise: Promise; + if ( + !relationshipCandidates.some( + (candidateLayer: any, i: number) => { + if ( + candidateLayer.relationships + && candidateLayer.relationships.some(relationship => relationship.id === relationshipId) + ) { + // Found the matching relationship; get the label format from it + labelFormatPropsPromise = _getLabelFormat(webmap, webmapLayers[i], formatUsingLayerPopup); + return true; + } else { + return false; + } + } + ) + ) { + // Fallback to all fields + labelFormatProps.labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos); + } else { + labelFormatProps = await labelFormatPropsPromise; + labelFormatProps.relationshipId = relationshipId; + } + } + + } else if (labelFormatType === "fields") { + labelFormatProps.labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos); + + // If popup is configured with "no attribute information", then no fields will visible + if ((labelFormatProps.labelFormat.format as string).length === 0) { + // Can we use the popup title? + labelFormatProps.labelFormat = layer.popupTemplate.title && typeof layer.popupTemplate.title === "string" ? + { type: "pattern", format: layer.popupTemplate.title } as ILabelFormat + : + // Otherwise revert to using attributes + _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true); + } + + // Example text: '

    {name} {age} years  

    started: {start}

    ' + } else if (labelFormatType === "text") { + labelFormatProps.labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text); + + // Example expression: 'var feat = $feature\nvar label = `\n\t${feat["name"]} ${feat["age"]} years
    \n\tstarted: ${feat["start"]}\n`\n\nreturn { \n type : \'text\', \n text : label\n}', + } else if (labelFormatType === "expression") { + labelFormatProps.labelFormat = await _convertPopupArcadeToLabelSpec(layer.popupTemplate.content[0].expressionInfo); + + // Fallback to all fields + } else { + labelFormatProps.labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos); + } + } } - return relationships; + return Promise.resolve(labelFormatProps); +} + +/** + * Extract selectionSetNames from the provided exportInfos + * + * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames) + * @returns selectionSetNames that will be used for export filenames + */ +export function _getSelectionSetNames( + exportInfos: IExportInfos, + id = /.+/ +): string[] { + let selectionSetNames: string[] = []; + Object.keys(exportInfos).forEach(k => { + const exportInfo: IExportInfo = exportInfos[k]; + if (id.test(k)) { + selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames); + } + }); + return selectionSetNames; } /** @@ -355,19 +751,23 @@ export function _createRelationshipQueries( * @param attributeDomain Domain info for attribute, if any * @param attributeFormat Format info for attribute, if any * @param intl esri/intl - * @return Attribute value modified appropriate to domain and type + * @return Attribute value modified appropriate to domain and type and converted to a string */ -function _prepareAttributeValue( +export function _prepareAttributeValue( attributeValue: any, attributeType: string, attributeDomain: __esri.CodedValueDomain | __esri.RangeDomain | __esri.InheritedDomain | null, attributeFormat: __esri.FieldInfoFormat, intl: any -): any { +): string { + if (attributeValue === null || typeof attributeValue === "undefined") { + return ""; + } + if (attributeDomain && (attributeDomain as __esri.CodedValueDomain).type === "coded-value") { // "coded-value" domain field const value = (attributeDomain as __esri.CodedValueDomain).getName(attributeValue); - return value; + return value.toString(); } else { // Non-domain field or unsupported domain type let value = attributeValue; @@ -375,7 +775,7 @@ function _prepareAttributeValue( switch (attributeType) { case "date": if (attributeFormat?.dateFormat) { - const dateFormatIntlOptions = intl.convertDateFormatToIntlOptions(attributeFormat.dateFormat); + const dateFormatIntlOptions = intl.convertDateFormatToIntlOptions(attributeFormat.dateFormat as any); value = intl.formatDate(value, dateFormatIntlOptions); } else { value = intl.formatDate(value); @@ -386,6 +786,26 @@ function _prepareAttributeValue( value = value.replace(/\xe2\x80\xaf/g, ""); break; + case "date-only": + // Value is a string, e.g., "2020-12-08" + if (attributeFormat?.dateFormat) { + const dateFormatIntlOptions = intl.convertDateFormatToIntlOptions(attributeFormat.dateFormat as any); + value = intl.formatDateOnly(value, dateFormatIntlOptions); + } else { + value = intl.formatDateOnly(value); + } + break; + + case "time-only": + // Value is a string, e.g., "14:51:44.2533333" + if (attributeFormat?.dateFormat) { + const dateFormatIntlOptions = intl.convertDateFormatToIntlOptions(attributeFormat.dateFormat as any); + value = intl.formatTimeOnly(value, dateFormatIntlOptions); + } else { + value = intl.formatTimeOnly(value); + } + break; + case "double": case "integer": case "long": @@ -405,6 +825,7 @@ function _prepareAttributeValue( /** * Creates labels from items. * + * @param webmap Webmap containing layer * @param layer Layer from which to fetch features * @param ids List of ids to download * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false, @@ -412,272 +833,273 @@ function _prepareAttributeValue( * @param includeHeaderNames Add the label format at the front of the list of generated labels * @returns Promise resolving when function is done */ -async function _prepareLabels( +export async function _prepareLabels( + webmap: __esri.Map, layer: __esri.FeatureLayer, ids: number[], formatUsingLayerPopup = true, includeHeaderNames = false ): Promise { - const [intl] = await loadModules(["esri/intl"]); - - // Get the features to export - const featureSet = await queryFeaturesByID(ids, layer); - - // Get field data types. Do we have any domain-based fields? - const attributeTypes: IAttributeTypes = {}; - const attributeDomains: IAttributeDomains = {}; - layer.fields.forEach( - field => { - attributeTypes[field.name] = field.type; - attributeDomains[field.name] = field.domain; - } - ); - const attributeFormats: IAttributeFormats = {}; - // Get the label formatting, if any - let labelFormat: string; - let relationshipQueries: ILayerRelationshipQueryHash = {}; - let arcadeExecutors: IArcadeExecutors = {}; - if (layer.popupEnabled) { - layer.popupTemplate.fieldInfos.forEach( - // Extract any format info that we have - fieldInfo => { - if (fieldInfo.format) { - attributeFormats[fieldInfo.fieldName] = fieldInfo.format; - } + const labelFormatProps: ILabelFormatProps = await _getLabelFormat(webmap, layer, formatUsingLayerPopup); + + // Because the label may actually come from a related layer, we'll use the layer that comes back from _getLabelFormat. + // That function returns the supplied layer in all cases except for a "relationship" type of popup. + const featureLayer = labelFormatProps.layer; + + let featureSet: __esri.Graphic[] = []; + if (typeof(labelFormatProps.relationshipId) !== "undefined") { + // Get the related items for each id; we're asking for the full item + const relatedRecordGroups = await _getFeatureServiceRelatedRecords( + layer.url, layer.layerId, labelFormatProps.relationshipId, ids); + + // Extract the attributes from the results and merge them into a single list. relatedRecordGroups has the form + // [{ + // "objectId", + // "relatedRecords": [{ + // "attributes": {} + // }, { + // "attributes": {} + // }, { + // "attributes": {} + // }] + // }, { + // "objectId", + // "relatedRecords": [{ + // "attributes": {} + // }, { + // "attributes": {} + // }, { + // : : + // }] + // }, { + // : : + // }] + const relatedFeatures: any[] = []; + relatedRecordGroups.forEach( + (relatedRecGroup: IRelatedRecordGroup) => { + relatedRecGroup.relatedRecords.forEach( + (relatedRec: IFeature) => { + relatedFeatures.push(relatedRec.attributes); + } + ); } ); - // What data fields are used in the labels? - // Example labelFormat: ['{NAME}', '{STREET}', '{CITY}, {STATE} {ZIP}'] - if (formatUsingLayerPopup && layer.popupTemplate?.content[0]?.type === "fields") { - labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos); - - // If popup is configured with "no attribute information", then no fields will visible - if (labelFormat.length === 0) { - // Can we use the popup title? - // eslint-disable-next-line unicorn/prefer-ternary - if (typeof layer.popupTemplate.title === "string") { - labelFormat = layer.popupTemplate.title; - - // Otherwise revert to using attributes + // Sort and remove duplicates + const objectIdField = layer.objectIdField; + relatedFeatures.sort( + (a, b) => { + if (a[objectIdField] < b[objectIdField]) { + return -1; + } else if (a[objectIdField] > b[objectIdField]) { + return 1; } else { - labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true); + return 0; } } + ); - } else if (formatUsingLayerPopup && layer.popupTemplate?.content[0]?.type === "text") { - labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text); - - // Do we need any relationship queries? - relationshipQueries = _createRelationshipQueries(layer); + featureSet = relatedFeatures.filter((feature, i) => i === 0 ? true : feature[objectIdField] !== relatedFeatures[i-1][objectIdField]); - // Do we need any Arcade executors? - arcadeExecutors = await _createArcadeExecutors(labelFormat, layer); + // Handle the special case where no related records were found for the set of features + if (featureSet.length === 0) { + return Promise.resolve([]); } - } - - // Apply the label format - let labels: string[][]; - // eslint-disable-next-line unicorn/prefer-ternary - if (labelFormat) { - const arcadeExpressionRegExp = /\{expression\/\w+\}/g; - const attributeRegExp = /\{\w+\}/g; - - // Find the label fields that we need to replace with values - const arcadeExpressionMatches = labelFormat.match(arcadeExpressionRegExp) ?? []; - const attributeMatches = labelFormat.match(attributeRegExp) ?? []; - - // Convert feature attributes into an array of labels - const relationshipKeys = Object.keys(relationshipQueries); - labels = await Promise.all(featureSet.features.map( - async feature => { - let labelPrep = labelFormat; - - // Replace Arcade expressions in this feature - arcadeExpressionMatches.forEach( - (match: string) => { - const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1); - const value = arcadeExecutors[expressionName].execute({"$feature": feature}); - labelPrep = labelPrep.replace(match, value); - } - ) - - // Replace relationship expressions in this feature - const relatedFeatureQueries = [] as Promise<__esri.FeatureSet>[]; - const relationshipIds = [] as string[]; - relationshipKeys.forEach( - (relationshipId) => { - const relationship = relationshipQueries[relationshipId]; - const objectId = feature.attributes[relationship.layer.objectIdField]; - const relatedQuery = { - ...relationship.relatedQuery, - objectIds: [objectId] - }; - relatedFeatureQueries.push(relationship.layer.queryRelatedFeatures(relatedQuery as any)); - relationshipIds.push(relationshipId); - } - ); - - // Wait for all of the queries for related records for this label - const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries); - relatedFeatureQueryResults.forEach( - (relatedFeatureQueryResult, i) => { - // We have an object with FeatureSets grouped by source layer or table objectIds - const relationshipId = relationshipIds[i]; - - // Run through the source layer or table objectIds - Object.keys(relatedFeatureQueryResult).forEach( - relatedFeatureSetId => { - // We have a feature set - const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features; - - // Get the values from each feature and replace them in the label - relatedFeatures.forEach( - feature => { - // Merge the base and related feature attributes and create the label - // Prefix related feature's attributes with "relationships//" to match popup - const rePrefix = "\{relationships/" + relationshipId + "/"; - const reSuffix = "\}"; - - const attributes = feature.attributes; - Object.keys(attributes).forEach( - attributeName => { - // Replace the value using the attribute name as a relationship - const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g"); - labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]); - } - ); - } - ); - } - ); - } - ); - // Replace non-Arcade fields in this feature - attributeMatches.forEach( - (match: string) => { - const attributeName = match.substring(1, match.length - 1); - - const value = _prepareAttributeValue(feature.attributes[attributeName], - attributeTypes[attributeName], attributeDomains[attributeName], - attributeFormats[attributeName], intl); - labelPrep = labelPrep.replace(match, value); - - } - ) - - // Split label into lines - let label = labelPrep.split(lineSeparatorChar); + } else { + // Get the features to export + featureSet = await queryFeaturesByID(ids, featureLayer, [], false); + } - // Trim lines - label = label.map(line => line.trim()); + // Get field data types. Do we have any domain-based fields? + const attributeOrigNames: IAttributeOrigNames = {}; + const attributeTypes: IAttributeTypes = {}; + const attributeDomains: IAttributeDomains = {}; - return label; + if (featureLayer.fields) { + featureLayer.fields.forEach( + field => { + const lowercaseFieldname = field.name.toLowerCase(); + attributeOrigNames[lowercaseFieldname] = field.name; + attributeDomains[lowercaseFieldname] = field.domain; + attributeTypes[lowercaseFieldname] = field.type; } - )); - + ); } else { - // Export all attributes - labels = featureSet.features.map( - feature => { - return Object.keys(feature.attributes).map( - (attributeName: string) => { - const value = _prepareAttributeValue(feature.attributes[attributeName], - attributeTypes[attributeName], attributeDomains[attributeName], - null, intl); - return `${value}`; - } - ); + // Feature layer is missing fields, so get info from first feature + Object.keys(featureSet[0]).forEach( + fieldName => { + const lowercaseFieldname = fieldName.toLowerCase(); + attributeOrigNames[lowercaseFieldname] = fieldName; } - ); + ) } - // Add header names - if (includeHeaderNames) { - let headerNames = []; + // Apply the label format + const labels + = labelFormatProps.labelFormat.type === "pattern" ? + // Export attributes in format + await _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, + labelFormatProps.attributeFormats, labelFormatProps.labelFormat.format as string, includeHeaderNames) - if (labelFormat) { - headerNames = labelFormat.replace(/\{/g, "").replace(/\}/g, "").split(lineSeparatorChar); + : labelFormatProps.labelFormat.type === "executor" ? + // Export attributes in expression + await _prepareLabelsUsingExecutor(featureSet, labelFormatProps.labelFormat.format as __esri.ArcadeExecutor) - } else { - const featuresAttrs = featureSet.features[0].attributes; - Object.keys(featuresAttrs).forEach(k => { - headerNames.push(k); - }); - } - - labels.unshift(headerNames); - } + : + // Export all attributes + await _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames); return Promise.resolve(labels); } /** - * Remove any duplicate labels + * Creates labels from all attributes in items. * - * @param labels Labels to evaluate for duplicates - * @returns labels with duplicates removed + * @param featureSet Features to convert to labels + * @param attributeTypes Type for each attribute in a feature + * @param attributeDomains Domains for each attribute in a feature + * @param includeHeaderNames Add the label format at the front of the list of generated labels + * @returns Promise resolving with list of labels, each of which is a list of label lines */ -export function removeDuplicateLabels( - labels: string[][] -): string[][] { - const labelsAsStrings: string[] = labels.map(label => JSON.stringify(label)); - const uniqueLabels = new Set(labelsAsStrings); - return Array.from(uniqueLabels, - labelString => JSON.parse(labelString) +export async function _prepareLabelsFromAll( + featureSet: __esri.Graphic[], + attributeTypes: IAttributeTypes, + attributeDomains: IAttributeDomains, + includeHeaderNames = false +): Promise { + const [intl] = await loadModules(["esri/intl"]); + + // Export all attributes + const labels = featureSet.map( + feature => { + return Object.keys(feature.attributes).map( + (attributeName: string) => { + const lowercaseFieldname = attributeName.toLowerCase(); + return _prepareAttributeValue(feature.attributes[attributeName], + attributeTypes[lowercaseFieldname], attributeDomains[lowercaseFieldname], + null, intl); + } + ); + } ); + + // Add header names + if (includeHeaderNames) { + const headerNames = []; + const featuresAttrs = featureSet[0].attributes; + Object.keys(featuresAttrs).forEach(k => { + headerNames.push(k); + }); + labels.unshift(headerNames); + } + + return Promise.resolve(labels); } /** - * Extract selectionSetNames from the provided exportInfos + * Creates labels from attributes in a layer popup. * - * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames) - * @returns selectionSetNames that will be used for export filenames + * @param featureSet Features to convert to labels + * @param attributeOrigNames Mapping from lowercase field names to original field names + * @param attributeTypes Type for each attribute in a feature + * @param attributeDomains Domains for each attribute in a feature + * @param attributeFormats Formats for each attribute in a feature + * @param labelFormat Format for label + * @param includeHeaderNames Add the label format at the front of the list of generated labels + * @returns Promise resolving with list of labels, each of which is a list of label lines */ -function _getSelectionSetNames( - exportInfos: IExportInfos, - id = /.+/ -): string[] { - let selectionSetNames: string[] = []; - Object.keys(exportInfos).forEach(k => { - const exportInfo: IExportInfo = exportInfos[k]; - if (id.test(k)) { - selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames); +export async function _prepareLabelsFromPattern( + layer: __esri.FeatureLayer, + featureSet: __esri.Graphic[], + attributeOrigNames: IAttributeOrigNames, + attributeTypes: IAttributeTypes, + attributeDomains: IAttributeDomains, + attributeFormats: IAttributeFormats, + labelFormat: string, + includeHeaderNames = false +): Promise { + const [intl] = await loadModules(["esri/intl"]); + + // Find the label fields that we need to replace with values + const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat); + const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches); + + // Do we need any Arcade executors? + const arcadeExecutors = await _createArcadeExecutors(labelFormat, layer); + const arcadeExpressionRegExp = /\{expression\/\w+\}/g; + + // Find the label fields that we need to replace with values + const arcadeExpressionMatches = labelFormat.match(arcadeExpressionRegExp) ?? []; + + // Convert feature attributes into an array of labels + const labels = await Promise.all(featureSet.map( + async feature => { + let labelPrep = labelFormat; + + //Replace Arcade expressions in this feature + for (let i = 0; i < arcadeExpressionMatches.length; i++) { + const match: string = arcadeExpressionMatches[i]; + const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1); + const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer": layer}); + labelPrep = labelPrep.replace(match, value); + } + + // Replace non-Arcade fields in this feature + const attributeValues = feature.attributes ?? feature; + attributeNames.forEach( + (attributeName: string, i: number) => { + const lowercaseFieldname = attributeName.toLowerCase(); + const value = _prepareAttributeValue(attributeValues[attributeOrigNames[lowercaseFieldname]], + attributeTypes[lowercaseFieldname], attributeDomains[lowercaseFieldname], + attributeFormats[lowercaseFieldname], intl); + labelPrep = labelPrep.replace(attributeExpressionMatches[i], value); + + }, + ) + + // Split label into lines + let label = labelPrep.split(lineSeparatorChar); + + // Trim lines + label = label.map(line => _cleanupLabel(line)); + + return label; } - }); - return selectionSetNames; + )); + + // Add header names + if (includeHeaderNames) { + labels.unshift(attributeNames); + } + + return Promise.resolve(labels); } /** - * Create and consolidate labels from all layers + * Creates labels from attributes in an Arcade label. * - * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames) - * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false, - * all attributes are exported - * @param includeHeaderNames Add the label format at the front of the list of generated labels - * @returns selectionSetNames that will be used for export filenames + * @param featureSet Features to convert to labels + * @param labelFormat Arcade executor for label + * @returns Promise resolving with list of labels, each of which is a list of label lines */ -export async function consolidateLabels( - exportInfos: IExportInfos, - formatUsingLayerPopup = true, - includeHeaderNames = false, - isCSVExport = false +export async function _prepareLabelsUsingExecutor( + featureSet: __esri.Graphic[], + labelFormat: __esri.ArcadeExecutor ): Promise { - const labelRequests = []; - - Object.keys(exportInfos).forEach(k => { - const labelInfo: IExportInfo = exportInfos[k]; - labelRequests.push(_prepareLabels(labelInfo.layerView.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames)); - if (isCSVExport) { - // add the layer id as a temp value separator that we can use to split values for CSV export - labelRequests.push(Promise.resolve([[k]])); + // Convert feature attributes into an array of labels + const execResults = await Promise.all(featureSet.map( + async feature => { + return labelFormat.executeAsync({"$feature": feature}); } - }); + )); - const labels = await Promise.all(labelRequests); - return labels.reduce((prev, cur) => prev.concat(cur), []); + const labels = execResults + .filter(result => result.text) + .map(result => _cleanupLabel(result.text).split(lineSeparatorChar)) + + return Promise.resolve(labels); } //#endregion diff --git a/src/utils/interfaces.ts b/src/utils/interfaces.ts index ce9bfaee2..02c9a6e62 100644 --- a/src/utils/interfaces.ts +++ b/src/utils/interfaces.ts @@ -19,6 +19,11 @@ import { IItemTemplate } from '@esri/solution-common'; +export enum EImageDisplayType { + GRID="GRID", + GALLERY="GALLERY" +} + export enum ELayoutMode { GRID = "GRID", HORIZONTAL = "HORIZONTAL", @@ -55,11 +60,6 @@ export enum ESelectionType { RECT="RECT" } -export enum EExpandType { - EXPAND="EXPAND", - COLLAPSE="COLLAPSE" -} - export enum EWorkflowType { SEARCH="SEARCH", SELECT="SELECT", @@ -79,12 +79,25 @@ export enum EDrawMode { /* eslint-enable no-unused-vars */ -export type SelectionMode = "single" | "multi"; - export type ValidSize = 6|10|14|20|30|60|80; export type DistanceUnit = "feet"|"meters"|"miles"|"kilometers"; +export type theme = "light" | "dark"; + +export interface IMapClick { + mapPoint: __esri.Point, + screenPoint: __esri.MapViewScreenPoint, + x: number, + y: number, + button: number, + buttons: 0 | 1 | 2, + type: string, + stopPropagation: any, + timestamp: number, + native: PointerEvent +} + export interface IExportOptions { csvOptions: ICsvOptions; pdfOptions: IPdfOptions; @@ -151,10 +164,15 @@ export interface IValueChange { } /** - * Layer id and title key value pair + * Layer or table id and title key value pair */ -export interface ILayerHash { - [key: string]: string; +export interface IMapItemHash { + [key: string]: ILayerHashInfo; +} + +export interface ILayerHashInfo { + name: string; + supportsUpdate: boolean; } /** @@ -421,10 +439,6 @@ export interface IQueryExtentResponse { extent: __esri.Extent; } -export interface IInfoCardValues { - [key: string]: string; -} - export interface IMediaCardValues { name: string; description: string; @@ -434,6 +448,21 @@ export interface IMediaCardValues { export interface IMapInfo { id: string; name: string; + searchConfiguration?: ISearchConfiguration; + filters?: any[]; // TODO generate an interface for this once we know how it will be passed in + layerInfos?: ILayerInfo[]; + _hasValidLayers?: boolean; + visible?: boolean; +} + +export interface ILayerInfo { + id: string; + columnTemplates: __esri.FieldColumnTemplate[]; +} + +export interface IMapChange { + id: string; + mapView: __esri.MapView; } export interface IExportInfos { @@ -441,7 +470,27 @@ export interface IExportInfos { } export interface IExportInfo { - ids: number[], - layerView: __esri.FeatureLayerView - selectionSetNames: string[] + ids: number[]; + layer?: __esri.FeatureLayer; + layerView?: __esri.FeatureLayerView; + selectionSetNames: string[]; +} + +export interface IBasemapConfig { + basemapIdsToFilter: string[]; + basemapGroupId: string; +} + +export interface IToolInfo { + icon: string; + func: any; + label: string; + disabled: boolean; + isDanger?: boolean; + isOverflow: boolean; +} + +export interface IToolSizeInfo { + id: string; + width: number; } diff --git a/src/utils/mapViewUtils.ts b/src/utils/mapViewUtils.ts index e17790254..896049466 100644 --- a/src/utils/mapViewUtils.ts +++ b/src/utils/mapViewUtils.ts @@ -15,52 +15,102 @@ */ import { queryExtent } from "./queryUtils"; -import { EWorkflowType, ILayerHash, ISelectionSet } from "./interfaces"; +import { EWorkflowType, IMapItemHash, ISelectionSet } from "./interfaces"; /** * Gets the layer names from the current map * * @param mapView the map view to fetch the layer names from + * @param onlyShowUpdatableLayers when true only layers that support editing and updates will be returned * * @returns Promise resolving with an array of layer names * */ export async function getMapLayerHash( - mapView: __esri.MapView -): Promise { - let layerHash = {}; + mapView: __esri.MapView, + onlyShowUpdatableLayers: boolean +): Promise { + let layerHash; await mapView.when(() => { layerHash = mapView.map.allLayers.toArray().reduce((prev, cur) => { if (cur.type === "feature") { - prev[cur.id] = cur.title; + prev[cur.id] = { + name: cur.title, + supportsUpdate: undefined + }; } return prev; }, {}); }); - return layerHash; + return _getFinalHash( + onlyShowUpdatableLayers, + layerHash, + mapView + ); } /** - * Gets the layer names from the current map + * Gets the table names from the current map * - * @param mapView the map view to fetch the layer names from + * @param mapView the map view to fetch the table names from + * @param onlyShowUpdatableLayers when true only layers that support editing and updates will be returned * - * @returns Promise resolving with an array of layer names + * @returns Promise resolving with an array of table names * */ -export async function getMapLayerIds( - mapView: __esri.MapView -): Promise { - let layerIds = []; +export async function getMapTableHash( + mapView: __esri.MapView, + onlyShowUpdatableTables: boolean +): Promise { + let tableHash; await mapView.when(() => { - layerIds = mapView.map.allLayers.toArray().reduce((prev, cur) => { - if (cur.type === "feature") { - prev.push(cur.id); - } + tableHash = mapView.map.allTables.toArray().reduce((prev, cur) => { + prev[cur.id] = { + name: cur.title, + supportsUpdate: undefined + }; return prev; - }, []); + }, {}); }); - return layerIds; + return _getFinalHash( + onlyShowUpdatableTables, + tableHash, + mapView + ); +} + +/** + * Get the final hash + * + * @param onlyShowUpdatable boolean when true only layers that support editing and the update capability will be returned + * @param hash IMapItemHash key: layer id, values: name, supportsUpdate + * @param mapView the map view to fetch the layer from + * + * @returns Promise resolving with IMapItemHash + * + */ +async function _getFinalHash( + onlyShowUpdatable: boolean, + hash: IMapItemHash, + mapView: __esri.MapView +): Promise { + if (onlyShowUpdatable) { + const editableHash = {}; + const keys = Object.keys(hash); + for (let i = 0; i < keys.length; i++) { + const id = keys[i]; + const layer = await getLayerOrTable(mapView, id); + await layer.load(); + await layer.when(); + editableHash[id] = { + name: hash[id].name, + supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate + }; + } + return editableHash; + } else { + return hash; + } } /** @@ -72,36 +122,59 @@ export async function getMapLayerIds( * @returns Promise resolving with the fetched layer view * */ -export async function getMapLayerView( +export async function getFeatureLayerView( mapView: __esri.MapView, id: string ): Promise<__esri.FeatureLayerView> { - const layer = await getMapLayer(mapView, id); + const layer = await getLayerOrTable(mapView, id); return layer ? await mapView.whenLayerView(layer) : undefined; } /** - * Get a layer by id + * Get a layer or table by id * * @param mapView the map view to fetch the layer from - * @param id the id if the layer to fetch + * @param id the id of the layer or table to fetch * - * @returns Promise resolving with the fetched layer + * @returns Promise resolving with the fetched layer or table * */ -export async function getMapLayer( +export async function getLayerOrTable( mapView: __esri.MapView, id: string ): Promise<__esri.FeatureLayer> { let layers = []; await mapView.when(() => { - layers = mapView.map.allLayers.toArray().filter((l) => { + layers = [ + ...mapView.map.allLayers.toArray(), + ...mapView.map.allTables.toArray() + ].filter((l) => { return l.id === id; }); }); return layers.length > 0 ? layers[0] : undefined; } +/** + * Gets all of the layers from the current map when the map and their layerView is ready + * + * @param mapView the map view to fetch the layer names from + * + * @returns Promise resolving with an array of all layers + * + */ +export async function getAllLayers( + mapView: __esri.MapView +): Promise<__esri.Layer[]> { + const layers = mapView.map.allLayers.toArray(); + let layerViewPromises; + await mapView.when(() => { + layerViewPromises = layers.map(l => mapView.whenLayerView(l)); + }); + await Promise.allSettled(layerViewPromises); + return layers; +} + /** * Highlight features by OID * @@ -111,7 +184,6 @@ export async function getMapLayer( * @param updateExtent optional (default false) boolean to indicate if we should zoom to the extent * * @returns Promise resolving with the highlight handle - * */ export async function highlightFeatures( ids: number[], diff --git a/src/utils/publicNotificationStore.ts b/src/utils/publicNotificationStore.ts index 8cbb8ecce..bc942f971 100644 --- a/src/utils/publicNotificationStore.ts +++ b/src/utils/publicNotificationStore.ts @@ -19,10 +19,10 @@ import { createStore } from "@stencil/store"; const { state, onChange } = createStore({ // List of layers added and managed by the component managedLayers: [], + // List of tables added and managed by the component + managedTables: [], // Handle[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Handles.html#Handle highlightHandles: [], - // ILayerHash title: id lookup to be used across components - layerNameHash: {}, // remove all handles removeHandles: () => { state.highlightHandles.forEach(h => h?.remove()); diff --git a/src/utils/queryUtils.ts b/src/utils/queryUtils.ts index d52de15f7..5517e5685 100644 --- a/src/utils/queryUtils.ts +++ b/src/utils/queryUtils.ts @@ -48,6 +48,46 @@ export async function queryAllFeatures( Promise.resolve(graphics); } +/** + * Query the layer for all IDs + * + * @param layer the layer to retrieve features from + * + * @returns Promise with the featureSet from the layer that match the provided ids + */ +export async function queryAllIds( + layer: __esri.FeatureLayer +): Promise { + const query = layer.createQuery(); + query.where = layer.definitionExpression || "1=1"; + return await layer.queryObjectIds(query); +} + +/** + * Query the feature for any image attachments + * + * @param layer the layer to retrieve attachments from + * + * @returns Promise with any attachments from the feature + */ +export async function queryAttachments( + layer: __esri.FeatureLayer, + objectIds: number[] +): Promise { + return await layer.queryAttachments({ + attachmentTypes: [ + "image/jpeg", + "image/png", + "image/gif", + "image/jpg", + "image/tif", + "image/tiff", + "image/bmp" + ], + objectIds + }); +} + /** * Query the layer for OIDs based on any user drawn geometries or buffers * @@ -77,16 +117,41 @@ export async function queryObjectIds( * * @param ids array of ObjectIDs to be used to query for features in a layer * @param layer the layer to retrieve features from + * @param graphics the result graphics array * * @returns Promise with the featureSet from the layer that match the provided ids */ - export async function queryFeaturesByID( +export async function queryFeaturesByID( ids: number[], - layer: __esri.FeatureLayer -): Promise<__esri.FeatureSet> { + layer: __esri.FeatureLayer, + graphics: __esri.Graphic[], + returnGeometry: boolean, + outSpatialReference?: __esri.SpatialReference +): Promise<__esri.Graphic[]> { + const num = layer.capabilities?.query.maxRecordCount; + const start = 0; + const q = layer.createQuery(); - q.objectIds = ids; - return layer.queryFeatures(q); + q.start = start; + q.returnGeometry = returnGeometry; + q.objectIds = ids.slice(start, num); + if (num) { + q.num = num; + } + if (outSpatialReference) { + q.outSpatialReference = outSpatialReference; + } + + const result = await layer.queryFeatures(q); + + graphics = graphics.concat( + result.features + ); + + const remainingIds = ids.slice(num, ids.length); + return remainingIds.length > 0 ? + queryFeaturesByID(remainingIds, layer, graphics, returnGeometry, outSpatialReference) : + Promise.resolve(graphics); } /** diff --git a/src/utils/test/csvUtils.spec.tsx b/src/utils/test/csvUtils.spec.tsx index 2b89c91ca..d19aaa752 100644 --- a/src/utils/test/csvUtils.spec.tsx +++ b/src/utils/test/csvUtils.spec.tsx @@ -16,7 +16,7 @@ import * as csvDownload from "../csvDownload"; import * as csvUtils from "../csvUtils"; -import {expect, jest, test} from "@jest/globals"; +import {expect, jest} from "@jest/globals"; afterEach(() => { jest.restoreAllMocks(); @@ -42,9 +42,7 @@ describe("csvUtils", () => { ]; const downloadCSVFileMock = jest.spyOn(csvDownload, "downloadCSVFile") - .mockImplementation( - (fileTitle: string, outputLines: string[]) => {} - ); + .mockImplementation(() => {}); csvUtils.exportCSV(title, labels); expect(downloadCSVFileMock).toBeCalledTimes(1); expect(downloadCSVFileMock.mock.calls[0][0]).toEqual(title); diff --git a/src/utils/test/downloadUtils.spec.tsx b/src/utils/test/downloadUtils.spec.tsx index 15e69c46d..ea0407603 100644 --- a/src/utils/test/downloadUtils.spec.tsx +++ b/src/utils/test/downloadUtils.spec.tsx @@ -15,9 +15,93 @@ */ import * as downloadUtils from "../downloadUtils"; +import * as esriLoader from 'esri-loader'; +import * as restFeatureLayer from "@esri/arcgis-rest-feature-layer"; describe("downloadUtils", () => { + describe('removeDuplicateLabels', () => { + + it('should remove duplicate labels', () => { + const labels = [ + ['Label 1', 'Value 1'], + ['Label 2', 'Value 2'], + ['Label 1', 'Value 1'] + ]; + const result = downloadUtils.removeDuplicateLabels(labels); + expect(result).toEqual([ + ['Label 1', 'Value 1'], + ['Label 2', 'Value 2'] + ]); + }); + + }); + + describe("_cleanupLabel", () => { + + it("handles
    variants", () => { + const labelText = "
    {NAME}
    {STREET}
    {CITY}, {STATE} {ZIP} 
    "; + const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + it("handles

    ", () => { + const labelText = "

    {NAME}

    {STREET}

    {CITY}, {STATE} {ZIP}

    "; + const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + it("handles popup's use of \xA0", () => { + const labelText = + "
    {NAME}
    {STREET}
    {CITY},\xA0{STATE}\xA0{ZIP}\xA0
    "; + const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + it("removes newlines and blank lines, and trims each line", () => { + const labelText = + " \n\n {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}\n\n \n "; + const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + it("handles tabs", () => { + const labelText = + " \t\t {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}"; + const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + it("removes extra HTML", () => { + const labelText = + "\n
    {NAME}
    {STREET}
    {CITY},\xA0{STATE}\xA0{ZIP}\xA0
    \n"; + const expectedCleanedText = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + it("handles some special characters", () => { + const labelText = + "
    <{NAME}>
    {STREET}
    {CITY}, {STATE} {ZIP}
    "; + const expectedCleanedText = "<{NAME}>|{STREET}|{CITY}, {STATE} {ZIP}"; + + const result: string = downloadUtils._cleanupLabel(labelText); + expect(result).toEqual(expectedCleanedText); + }); + + }); + describe("_convertPopupFieldsToLabelSpec", () => { it("handles fieldname visibility", () => { @@ -26,12 +110,14 @@ describe("downloadUtils", () => { { fieldName: "B", visible: true }, { fieldName: "C", visible: false }, { fieldName: "D", visible: true } - ]; + ] as any[]; const bypassFieldVisiblity = false; const expectedLabelSpec = "{A}|{B}|{D}"; - const labelSpec = downloadUtils._convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = + downloadUtils._convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); it("handles fieldname ignoring visibility", () => { @@ -40,12 +126,14 @@ describe("downloadUtils", () => { { fieldName: "B", visible: true }, { fieldName: "C", visible: false }, { fieldName: "D", visible: true } - ]; + ] as any[]; const bypassFieldVisiblity = true; const expectedLabelSpec = "{A}|{B}|{C}|{D}"; - const labelSpec = downloadUtils._convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = + downloadUtils._convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); }); @@ -56,59 +144,92 @@ describe("downloadUtils", () => { const popupInfo = "
    {NAME}
    {STREET}
    {CITY}, {STATE} {ZIP} 
    "; const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; - const labelSpec = downloadUtils._convertPopupTextToLabelSpec(popupInfo); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); it("handles

    ", () => { const popupInfo = "

    {NAME}

    {STREET}

    {CITY}, {STATE} {ZIP}

    "; const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; - const labelSpec = downloadUtils._convertPopupTextToLabelSpec(popupInfo); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); it("handles popup's use of \xA0", () => { - const popupInfo = "
    {NAME}
    {STREET}
    {CITY},\xA0{STATE}\xA0{ZIP}\xA0
    "; + const popupInfo = + "
    {NAME}
    {STREET}
    {CITY},\xA0{STATE}\xA0{ZIP}\xA0
    "; const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; - const labelSpec = downloadUtils._convertPopupTextToLabelSpec(popupInfo); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); it("removes newlines and blank lines, and trims each line", () => { - const popupInfo = " \n\n {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}\n\n \n "; + const popupInfo = + " \n\n {NAME} \n \n\n {STREET}\n{CITY}, {STATE} {ZIP}\n\n \n "; const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; - const labelSpec = downloadUtils._convertPopupTextToLabelSpec(popupInfo); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); it("removes extra HTML", () => { - const popupInfo = "\n
    {NAME}
    {STREET}
    {CITY},\xA0{STATE}\xA0{ZIP}\xA0
    \n"; + const popupInfo = + "\n
    {NAME}
    {STREET}
    {CITY},\xA0{STATE}\xA0{ZIP}\xA0
    \n"; const expectedLabelSpec = "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"; - const labelSpec = downloadUtils._convertPopupTextToLabelSpec(popupInfo); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); }); it("handles some special characters", () => { - const popupInfo = "
    <{NAME}>
    {STREET}
    {CITY}, {STATE} {ZIP}
    "; + const popupInfo = + "
    <{NAME}>
    {STREET}
    {CITY}, {STATE} {ZIP}
    "; const expectedLabelSpec = "<{NAME}>|{STREET}|{CITY}, {STATE} {ZIP}"; - const labelSpec = downloadUtils._convertPopupTextToLabelSpec(popupInfo); - expect(labelSpec).toEqual(expectedLabelSpec); + const result: downloadUtils.ILabelFormat = downloadUtils._convertPopupTextToLabelSpec(popupInfo); + expect(result.type).toEqual("pattern"); + expect(result.format).toEqual(expectedLabelSpec); + }); + + }); + + describe("_convertPopupArcadeToLabelSpec", () => { + + it("handles
    variants", async () => { + const Arcade = { + createArcadeExecutor: (): Promise<__esri.ArcadeExecutor> => { + const executor: __esri.ArcadeExecutor = {} as __esri.ArcadeExecutor; + return Promise.resolve(executor); + } + }; + const loadModulesSpy = jest.spyOn(esriLoader, 'loadModules').mockResolvedValue([Arcade]); + + const expressionInfo: __esri.ElementExpressionInfo = { + expression: 'var feat = $feature\nvar label = `\n\t${feat["name"]} ${feat["age"]} years
    \n\tstarted: ${feat["start"]}\n`\n\nreturn { \n type : \'text\', \n text : label\n}' + } as any; + + const result: downloadUtils.ILabelFormat = await downloadUtils._convertPopupArcadeToLabelSpec(expressionInfo); + expect(result.type).toEqual("executor"); + + loadModulesSpy.mockRestore(); }); }); - describe("_createTitle", () => { + describe("_createFilename", () => { it("handles no selection set names", () => { const selectionSetNames: string[] = []; const expectedTitle = "download"; - const title = downloadUtils._createTitle(selectionSetNames); + const title = downloadUtils._createFilename(selectionSetNames); expect(title).toEqual(expectedTitle); }); @@ -116,18 +237,865 @@ describe("downloadUtils", () => { const selectionSetNames: string[] = ["fred"]; const expectedTitle = "fred"; - const title = downloadUtils._createTitle(selectionSetNames); + const title = downloadUtils._createFilename(selectionSetNames); expect(title).toEqual(expectedTitle); }); it("handles two selection set names", () => { const selectionSetNames: string[] = ["fred", "ginger"]; - const expectedTitle = "fred,ginger"; + const expectedTitle = "fred, ginger"; - const title = downloadUtils._createTitle(selectionSetNames); + const title = downloadUtils._createFilename(selectionSetNames); expect(title).toEqual(expectedTitle); }); }); + describe("_getExpressionsFromLabel", () => { + + it("handles a label with ASCII expression names", () => { + const labelSpec = "{expression/expr0}\n{OWNERNM1}\n{PSTLADDRESS}\n{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}"; + const expectedExpressions = ["{expression/expr0}"]; + const expressions = downloadUtils._getExpressionsFromLabel(labelSpec); + expect(expressions).toEqual(expectedExpressions); + }); + + }); + + describe("_getFeatureServiceRelatedRecords", () => { + + it("handles a feature layer", () => { + const url = "https://servicesdev.arcgis.com/D2C14713795/ArcGIS/rest/services/addresses/FeatureServer/0"; + const layerId = 5; + const expectedOptions: downloadUtils.IQueryRelatedOptionsOffset = { + definitionExpression: "1=1", + httpMethod: "POST", + objectIds: undefined, + outFields: "*", + relationshipId: undefined, + params: { + resultOffset: 0 + }, + url + }; + const queryResponse: restFeatureLayer.IQueryRelatedResponse = { relatedRecordGroups: [] }; + const queryRelatedSpy = jest.spyOn(restFeatureLayer, "queryRelated").mockResolvedValue(queryResponse); + void downloadUtils._getFeatureServiceRelatedRecords(url, layerId); + expect(queryRelatedSpy).toHaveBeenCalledWith(expectedOptions); + queryRelatedSpy.mockRestore(); + }); + + it("handles a feature service", () => { + const url = "https://servicesdev.arcgis.com/D2C14713795/ArcGIS/rest/services/addresses/FeatureServer"; + const layerId = 5; + const expectedOptions: downloadUtils.IQueryRelatedOptionsOffset = { + definitionExpression: "1=1", + httpMethod: "POST", + objectIds: undefined, + outFields: "*", + relationshipId: undefined, + params: { + resultOffset: 0 + }, + url: "https://servicesdev.arcgis.com/D2C14713795/ArcGIS/rest/services/addresses/FeatureServer/5" + }; + const queryResponse: restFeatureLayer.IQueryRelatedResponse = { relatedRecordGroups: [] }; + const queryRelatedSpy = jest.spyOn(restFeatureLayer, "queryRelated").mockResolvedValue(queryResponse); + void downloadUtils._getFeatureServiceRelatedRecords(url, layerId); + expect(queryRelatedSpy).toHaveBeenCalledWith(expectedOptions); + queryRelatedSpy.mockRestore(); + }); + + it("handles a feature layer with relationship id and object ids supplied", () => { + const url = "https://servicesdev.arcgis.com/D2C14713795/ArcGIS/rest/services/addresses/FeatureServer/0"; + const layerId = 5; + const relationshipId = 3; + const objectIds = [7, 8, 9]; + const expectedOptions: downloadUtils.IQueryRelatedOptionsOffset = { + definitionExpression: "1=1", + httpMethod: "POST", + objectIds, + outFields: "*", + relationshipId, + params: { + resultOffset: 0 + }, + url + }; + const queryResponse: restFeatureLayer.IQueryRelatedResponse = { relatedRecordGroups: [] }; + const queryRelatedSpy = jest.spyOn(restFeatureLayer, "queryRelated").mockResolvedValue(queryResponse); + void downloadUtils._getFeatureServiceRelatedRecords(url, layerId, relationshipId, objectIds); + expect(queryRelatedSpy).toHaveBeenCalledWith(expectedOptions); + queryRelatedSpy.mockRestore(); + }); + + }); + + describe("_getFieldExpressionsFromLabel", () => { + + it("handles a label with ASCII field names", () => { + const labelSpec = "{expression/expr0}\n{OWNERNM1}\n{PSTLADDRESS}\n{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}"; + const expectedFields = ["{OWNERNM1}", "{PSTLADDRESS}", "{PSTLCITY}", "{PSTLSTATE}", "{PSTLZIP5}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Arabic (ar) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{بحث}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{بحث}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Bosnian (bs) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{računa}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{računa}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Bulgarian (bg) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Търсене}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Търсене}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Catalan (ca) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Descripció}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Descripció}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Simplified Chinese (zh-cn) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{帐户个人资料}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{帐户个人资料}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Traditional Chinese (Hong Kong) (zh-hk) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{帳號設定檔}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{帳號設定檔}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Traditional Chinese (Taiwan) (zh-tw) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{搜尋}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{搜尋}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Croatian (hr) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Pretraživanje}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Pretraživanje}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Czech (cs) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Přihlásit}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Přihlásit}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Danish (da) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Vælg}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Vælg}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Dutch (nl) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{geïmplementeerd}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{geïmplementeerd}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Estonian (et) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Valdkonnapõhised}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Valdkonnapõhised}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Finnish (fi) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Näytä}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Näytä}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with French (fr) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{accès}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{accès}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with German (de) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Öffentliche}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Öffentliche}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Greek (el) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Αναζήτηση}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Αναζήτηση}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Hebrew (he) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{עוֹמֶק}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{עוֹמֶק}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Hungarian (hu) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Nyelvváltás}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Nyelvváltás}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Indonesian (id) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Bahasa}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Bahasa}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Italian (it) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Elettricità}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Elettricità}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Japanese (ja) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{深さ}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{深さ}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Korean (ko) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{계정 프로필}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{계정 프로필}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Latvian (lv) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Meklēt}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Meklēt}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Lithuanian (lt) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{sričių}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{sričių}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Norwegian (nb) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{språk}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{språk}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Polish (pl) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Przełącz}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Przełącz}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Portuguese (Brazil) (pt-br) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Configurações}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Configurações}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Portuguese (Portugal) (pt-pt) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{sessão}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{sessão}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Romanian (ro) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Copiați}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Copiați}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Russian (ru) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Вход}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Вход}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Serbian (sr) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{pregledač}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{pregledač}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Slovak (sk) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Prihlásiť}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Prihlásiť}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Slovenian (sl) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{računa}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{računa}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Spanish (es) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{través}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{través}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Swedish (sv) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{språk}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{språk}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Thai (th) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{โปรไฟล์บัญ}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{โปรไฟล์บัญ}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Turkish (tr) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Değiştir}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Değiştir}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Ukrainian (uk) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Пошук}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Пошук}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + it("handles a label with Vietnamese (vi) field name", () => { + const labelSpec = "{latitude}|{expression/expr0}\n{longitude}|{Chuyển}|{time}"; + const expectedFields = ["{latitude}", "{longitude}", "{Chuyển}", "{time}"]; + const fields = downloadUtils._getFieldExpressionsFromLabel(labelSpec); + expect(fields).toEqual(expectedFields); + }); + + }); + + describe('_getFieldNamesFromFieldExpressions', () => { + + it("extracts field names from field name expressions", () => { + const expressions = ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]; + const names = ["NAME", "STREET", "CITY", "STATE", "ZIP"]; + expect(downloadUtils._getFieldNamesFromFieldExpressions(expressions)).toEqual(names); + }); + + }); + + /* + describe('_getLabelFormat', () => { + + it('should prepare labels from visible popup fields', async () => { + const popupTemplate = { + title: '{name}', + content: [{ + type: 'fields' + }], + fieldInfos: [{ + fieldName: 'name', + visible: true + }, { + fieldName: 'age', + format: { + places: 0, + digitSeparator: true + }, + visible: true + }, { + fieldName: 'start', + format: { + dateFormat: 'short-date' + }, + visible: true + }] + }; + const layer = { + popupEnabled: true, + popupTemplate + }; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('pattern'); + expect(result.format).toEqual('{name}|{age}|{start}'); + }); + + it('should prepare labels from a partial set of visible popup fields', async () => { + const popupTemplate = { + title: '{name}', + content: [{ + type: 'fields' + }], + fieldInfos: [{ + fieldName: 'name', + visible: false + }, { + fieldName: 'age', + format: { + places: 0, + digitSeparator: true + }, + visible: false + }, { + fieldName: 'start', + format: { + dateFormat: 'short-date' + }, + visible: true + }] + }; + const layer = { + popupEnabled: true, + popupTemplate + }; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('pattern'); + expect(result.format).toEqual('{start}'); + }); + + it('should prepare labels from invisible popup fields, but title is present', async () => { + const popupTemplate = { + title: '{name}', + content: [{ + type: 'fields' + }], + fieldInfos: [{ + fieldName: 'name', + visible: false + }, { + fieldName: 'age', + format: { + places: 0, + digitSeparator: true + }, + visible: false + }, { + fieldName: 'start', + format: { + dateFormat: 'short-date' + }, + visible: false + }] + }; + const layer = { + popupEnabled: true, + popupTemplate + }; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('pattern'); + expect(result.format).toEqual('{name}'); + }); + + it('should prepare labels from invisible popup fields with no title present', async () => { + const popupTemplate = { + title: '', + content: [{ + type: 'fields' + }], + fieldInfos: [{ + fieldName: 'name', + visible: false + }, { + fieldName: 'age', + format: { + places: 0, + digitSeparator: true + }, + visible: false + }, { + fieldName: 'start', + format: { + dateFormat: 'short-date' + }, + visible: false + }] + }; + const layer = { + popupEnabled: true, + popupTemplate + }; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('pattern'); + expect(result.format).toEqual('{name}|{age}|{start}'); + }); + + it('should prepare labels from popup text', async () => { + const popupTemplate = { + title: '{name}', + content: [{ + type: 'text', + text: '

    {name} {age} years  

    started: {start}

    ' + }], + fieldInfos: [{ + fieldName: 'name', + visible: true + }, { + fieldName: 'age', + format: { + places: 0, + digitSeparator: true + }, + visible: true + }, { + fieldName: 'start', + format: { + dateFormat: 'short-date' + }, + visible: true + }] + }; + const layer = { + popupEnabled: true, + popupTemplate + }; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('pattern'); + expect(result.format).toEqual('{name} {age} years|started: {start}'); + }); + + it('should prepare labels from popup Arcade', async () => { + const Arcade = { + createArcadeExecutor: (): Promise<__esri.ArcadeExecutor> => { + const executor: __esri.ArcadeExecutor = {} as __esri.ArcadeExecutor; + return Promise.resolve(executor); + } + }; + const loadModulesSpy = jest.spyOn(esriLoader, 'loadModules').mockResolvedValue([Arcade]); + + const popupTemplate = { + title: '{name}', + content: [{ + type: 'expression', + expressionInfo: { + title: 'New expression', + expression: 'var feat = $feature\nvar label = `\n\t${feat["name"]} ${feat["age"]} years
    \n\tstarted: ${feat["start"]}\n`\n\nreturn { \n type : \'text\', \n text : label\n}', + returnType: 'dictionary' + } + }], + fieldInfos: [{ + fieldName: 'name', + visible: true + }, { + fieldName: 'age', + format: { + places: 0, + digitSeparator: true + }, + visible: true + }, { + fieldName: 'start', + format: { + dateFormat: 'short-date' + }, + visible: true + }] + }; + const layer = { + popupEnabled: true, + popupTemplate + }; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('executor'); + + loadModulesSpy.mockRestore(); + }); + + it('should prepare labels without popup; formatUsingLayerPopup is true', async () => { + const layer = { + popupEnabled: false, + fields: [ + { + name: 'name', + type: 'string' + }, + { + name: 'age', + type: 'integer' + } + ] + } as __esri.FeatureLayer; + const formatUsingLayerPopup = true; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('unsupported'); + expect(result.format).toBeUndefined(); + }); + + it('should prepare labels without popup; formatUsingLayerPopup is false', async () => { + const layer = { + popupEnabled: false, + fields: [ + { + name: 'name', + type: 'string' + }, + { + name: 'age', + type: 'integer' + } + ] + } as __esri.FeatureLayer; + const formatUsingLayerPopup = false; + + const attributeFormats: downloadUtils.IAttributeFormats = {}; + const result: downloadUtils.ILabelFormat = + await downloadUtils._getLabelFormat(layer as any, formatUsingLayerPopup, attributeFormats); + expect(result.type).toEqual('unsupported'); + expect(result.format).toBeUndefined(); + }); + + }); + */ + + describe('_getSelectionSetNames', () => { + + it('should return selection set names for matching IDs', () => { + const exportInfos = { + 'layer1': { + selectionSetNames: ['Selection Set 1', 'Selection Set 2'] + }, + 'layer2': { + selectionSetNames: ['Selection Set 3'] + } + }; + const result = downloadUtils._getSelectionSetNames(exportInfos as any, /^layer/); + expect(result).toEqual(['Selection Set 1', 'Selection Set 2', 'Selection Set 3']); + }); + + it('should return an empty array if no matching IDs are found', () => { + const exportInfos = { + 'layer1': { + selectionSetNames: ['Selection Set 1', 'Selection Set 2'] + }, + 'layer2': { + selectionSetNames: ['Selection Set 3'] + } + }; + const result = downloadUtils._getSelectionSetNames(exportInfos as any, /^foo/); + expect(result).toEqual([]); + }); + + }); + + describe('_prepareAttributeValue', () => { + + it('should format date attributes', () => { + const attributeValue = new Date('2022-02-01T00:00:00.000Z'); + const attributeType = 'date'; + const attributeDomain = null; + const attributeFormat = null; + const intl = { + formatDate: jest.fn().mockReturnValue('02/01/2022'), + convertDateFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('02/01/2022'); + expect(intl.formatDate).toHaveBeenCalledWith(attributeValue); + expect(intl.convertDateFormatToIntlOptions).not.toHaveBeenCalled(); + }); + + it('should format date-only attributes', () => { + const attributeValue = '2020-02-01'; + const attributeType = 'date-only'; + const attributeDomain = null; + const attributeFormat = null; + const intl = { + formatDateOnly: jest.fn().mockReturnValue('02/01/2022'), + convertDateFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('02/01/2022'); + expect(intl.formatDateOnly).toHaveBeenCalledWith(attributeValue); + expect(intl.convertDateFormatToIntlOptions).not.toHaveBeenCalled(); + }); + + it('should format time-only attributes', () => { + const attributeValue = '14:51:44.2533333'; + const attributeType = 'time-only'; + const attributeDomain = null; + const attributeFormat = null; + const intl = { + formatTimeOnly: jest.fn().mockReturnValue('14:41'), + convertDateFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('14:41'); + expect(intl.formatTimeOnly).toHaveBeenCalledWith(attributeValue); + expect(intl.convertDateFormatToIntlOptions).not.toHaveBeenCalled(); + }); + + it('should format date attributes using the specified date format', () => { + const attributeValue = new Date('2022-02-01T00:00:00.000Z'); + const attributeType = 'date'; + const attributeDomain = null; + const attributeFormat = { + dateFormat: 'shortdate' + }; + const intl = { + formatDate: jest.fn().mockReturnValue('02/01/2022'), + convertDateFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('02/01/2022'); + expect(intl.formatDate).toHaveBeenCalledWith(attributeValue, {}); + expect(intl.convertDateFormatToIntlOptions).toHaveBeenCalledWith('shortdate'); + }); + + it('should format date-only attributes using the specified date format', () => { + const attributeValue = '2020-02-01'; + const attributeType = 'date-only'; + const attributeDomain = null; + const attributeFormat = { + dateFormat: 'shortdate' + }; + const intl = { + formatDateOnly: jest.fn().mockReturnValue('02/01/2022'), + convertDateFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('02/01/2022'); + expect(intl.formatDateOnly).toHaveBeenCalledWith(attributeValue, {}); + expect(intl.convertDateFormatToIntlOptions).toHaveBeenCalledWith('shortdate'); + }); + + it('should format time-only attributes using the specified date format', () => { + const attributeValue = '14:51:44.2533333'; + const attributeType = 'time-only'; + const attributeDomain = null; + const attributeFormat = { + dateFormat: 'shortdate' + }; + const intl = { + formatTimeOnly: jest.fn().mockReturnValue('14:41'), + convertDateFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('14:41'); + expect(intl.formatTimeOnly).toHaveBeenCalledWith(attributeValue, {}); + expect(intl.convertDateFormatToIntlOptions).toHaveBeenCalledWith('shortdate'); + }); + + it('should format number attributes using the specified number format', () => { + const attributeValue = 1234.5678; + const attributeType = 'double'; + const attributeDomain = null; + const attributeFormat = { + places: 2, + digitSeparator: true + }; + const intl = { + formatNumber: jest.fn().mockReturnValue('1,234.57'), + convertNumberFormatToIntlOptions: jest.fn().mockReturnValue({}) + }; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat as any, intl); + expect(result).toEqual('1,234.57'); + expect(intl.formatNumber).toHaveBeenCalledWith(attributeValue, {}); + expect(intl.convertNumberFormatToIntlOptions).toHaveBeenCalledWith(attributeFormat); + }); + + it('should return the attribute value if no format is specified', () => { + const attributeValue = 'Value'; + const attributeType = 'string'; + const attributeDomain = null; + const attributeFormat = null; + const intl = {}; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl); + expect(result).toEqual('Value'); + }); + + it('should return the domain name for coded-value domain fields', () => { + const attributeValue = '1'; + const attributeType = 'string'; + const attributeDomain = { + type: 'coded-value', + name: 'Domain', + codedValues: [ + { + name: 'Value 1', + code: '1' + }, + { + name: 'Value 2', + code: '2' + } + ], + getName: function (code: string) { + return this.codedValues.find((codedValue: any) => codedValue.code === code)?.name; + } + } as __esri.CodedValueDomain; + const attributeFormat = null; + const intl = {}; + const result = downloadUtils._prepareAttributeValue(attributeValue, attributeType, attributeDomain as any, attributeFormat, intl); + expect(result).toEqual('Value 1'); + }); + + }); + }); diff --git a/src/utils/templates.e2e.ts b/src/utils/test/templates.e2e.ts similarity index 89% rename from src/utils/templates.e2e.ts rename to src/utils/test/templates.e2e.ts index 8be72ddfa..c7c0d4952 100644 --- a/src/utils/templates.e2e.ts +++ b/src/utils/test/templates.e2e.ts @@ -16,8 +16,8 @@ import { getInventoryItems -} from "./templates"; -import * as electionOutreach from '../demos/data/election-outreach.json'; +} from "../templates"; +import * as electionOutreach from '../../demos/data/election-outreach.json'; describe("getInventoryItems", () => { it("can get inventory items", () => { diff --git a/stencil.config.ts b/stencil.config.ts index 69b67127d..742643d87 100644 --- a/stencil.config.ts +++ b/stencil.config.ts @@ -1,10 +1,10 @@ -import autoprefixer from "autoprefixer"; +import autoprefixer from 'autoprefixer'; import { Config } from '@stencil/core'; -import { sass } from "@stencil/sass"; -import { postcss } from "@stencil/postcss"; -import tailwindcss from "tailwindcss"; -import tailwindConfig from "./tailwind.config"; -import { generatePreactTypes } from "./support/preact"; +import { sass } from '@stencil/sass'; +import { postcss } from '@stencil-community/postcss'; +import tailwindcss from 'tailwindcss'; +import tailwindConfig from './tailwind.config'; +import { generatePreactTypes } from './support/preact'; export const config: Config = { namespace: 'solutions-components', @@ -36,18 +36,28 @@ export const config: Config = { type: 'docs-readme' }, { - type: "custom", - name: "preact", + type: 'custom', + name: 'preact', generator: generatePreactTypes }, { - type: "dist-custom-elements", - autoDefineCustomElements: true + type: 'dist-custom-elements', + customElementsExportBehavior: 'auto-define-custom-elements' }, ], + testing: { + browserHeadless: 'new', + testPathIgnorePatterns: [ + 'dist/', + 'placeholder_tests' + ], + transform: { + '^.+\\.[jt]sx?$': '/node_modules/@stencil/core/testing/jest-preprocessor.js' + } + }, plugins: [ sass({ - injectGlobalPaths: ["src/assets/styles/includes.scss"] + injectGlobalPaths: ['src/assets/styles/includes.scss'] }), postcss({ plugins: [ diff --git a/stencil.debugconfig.ts b/stencil.debugconfig.ts index 5687fa28e..dc8ccdd91 100644 --- a/stencil.debugconfig.ts +++ b/stencil.debugconfig.ts @@ -1,10 +1,10 @@ -import autoprefixer from "autoprefixer"; +import autoprefixer from 'autoprefixer'; import { Config } from '@stencil/core'; -import { sass } from "@stencil/sass"; -import { postcss } from "@stencil/postcss"; -import tailwindcss from "tailwindcss"; -import tailwindConfig from "./tailwind.config"; -import { generatePreactTypes } from "./support/preact"; +import { sass } from '@stencil/sass'; +import { postcss } from '@stencil-community/postcss'; +import tailwindcss from 'tailwindcss'; +import tailwindConfig from './tailwind.config'; +import { generatePreactTypes } from './support/preact'; export const config: Config = { namespace: 'solutions-components', @@ -36,14 +36,28 @@ export const config: Config = { type: 'docs-readme' }, { - type: "custom", - name: "preact", + type: 'custom', + name: 'preact', generator: generatePreactTypes }, + { + type: 'dist-custom-elements', + customElementsExportBehavior: 'auto-define-custom-elements' + }, ], + testing: { + browserHeadless: 'new', + testPathIgnorePatterns: [ + 'dist/', + 'placeholder_tests' + ], + transform: { + '^.+\\.[jt]sx?$': '/node_modules/@stencil/core/testing/jest-preprocessor.js' + } + }, plugins: [ sass({ - injectGlobalPaths: ["src/assets/styles/includes.scss"] + injectGlobalPaths: ['src/assets/styles/includes.scss'] }), postcss({ plugins: [