├── .gitignore ├── .vscode ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── SECURITY.md ├── assets └── icon.png ├── capabilities.json ├── doc └── SampleMatrixCustomVisualDemo.pbix ├── package-lock.json ├── package.json ├── pbiviz.json ├── src ├── common.ts ├── matrixDataviewHtmlFormatter.ts ├── objectEnumerationBuilder.ts ├── subtotalProperties.ts └── visual.ts ├── style └── visual.less └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .DS_Store 4 | .tmp 5 | dist 6 | typings 7 | *.log 8 | node_modules 9 | coverage 10 | .DS_Store 11 | .tmp 12 | dist 13 | typings 14 | *.log 15 | spec/.tmp -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "configurations": [ 4 | { 5 | "name": "Debugger", 6 | "type": "chrome", 7 | "request": "attach", 8 | "port": 9222, 9 | "sourceMaps": true, 10 | "webRoot": "${cwd}/" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.tabSize": 4, 3 | "editor.insertSpaces": true, 4 | "files.eol": "\n", 5 | "files.watcherExclude": { 6 | "**/.git/objects/**": true, 7 | "**/node_modules/**": true, 8 | ".tmp": true 9 | }, 10 | "files.exclude": { 11 | ".tmp": true 12 | }, 13 | "search.exclude": { 14 | ".tmp": true, 15 | "typings": true 16 | }, 17 | "json.schemas": [ 18 | { 19 | "fileMatch": [ 20 | "/pbiviz.json" 21 | ], 22 | "url": "./.api/v2.5.0/schema.pbiviz.json" 23 | }, 24 | { 25 | "fileMatch": [ 26 | "/capabilities.json" 27 | ], 28 | "url": "./.api/v2.5.0/schema.capabilities.json" 29 | }, 30 | { 31 | "fileMatch": [ 32 | "/dependencies.json" 33 | ], 34 | "url": "./.api/v2.5.0/schema.dependencies.json" 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. All rights reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Abstract 2 | This is a reference visual demoing the Subtotals API availiable starting with the API 2.6 and announced/documented here: 3 | https://powerbi.microsoft.com/da-dk/blog/power-bi-developer-community-april-may-update/ 4 | 5 | 6 | # Note: use pbiviz 2.5 to build the visual 7 | 8 | As of Nov 14, 2019 the most recent version of PBIVIZ is producing a malfunctioning visual when packaged with "pbiviz package". 9 | 10 | Unless fixed in the future PBIVIZ releases, I would suggest that you use the older PBIVIZ toolset of verions 2.5.0. 11 | 12 | To install it run: 13 | 14 | npm install -g powerbi-visuals-tools@2.5.0 15 | 16 | # Known issue: subtotals not working in the debugger visual 17 | 18 | As of Nov 17, 2019, subtotals are not working in the debugger visual. It’s a known issue and I am currently investigating the root cause. 19 | 20 | Please note the issue only affects the development process, while the release visuals (i.e., packaged PBIVIZ files) are working correctly in terms of the subtotals. 21 | 22 | Currently, the best (partial) workaround would be to disable the minimization of the visuals in development (--no-minify pbiviz flag) and debugging in F12. 23 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). 40 | 41 | 42 | -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Powerbi-Visuals-SampleMatrix/d41ccacdb7bf4b322920136e0d52c40d5bea99e1/assets/icon.png -------------------------------------------------------------------------------- /capabilities.json: -------------------------------------------------------------------------------- 1 | { 2 | "privileges": [], 3 | "dataRoles": [ 4 | { 5 | "name": "Rows", 6 | "displayName": "Rows", 7 | "displayNameKey": "Visual_Rows", 8 | "kind": "Grouping" 9 | }, 10 | { 11 | "name": "Columns", 12 | "displayName": "Columns", 13 | "displayNameKey": "Visual_Columns", 14 | "kind": "Grouping" 15 | }, 16 | { 17 | "name": "Value", 18 | "displayName": "Value", 19 | "displayNameKey": "Visual_Values", 20 | "kind": "Measure" 21 | } 22 | ], 23 | "dataViewMappings": [ 24 | { 25 | "matrix": { 26 | "rows": { 27 | "for": { 28 | "in": "Rows" 29 | } 30 | }, 31 | "columns": { 32 | "for": { 33 | "in": "Columns" 34 | } 35 | }, 36 | "values": { 37 | "select": [ 38 | { 39 | "for": { 40 | "in": "Value" 41 | } 42 | } 43 | ] 44 | } 45 | } 46 | } 47 | ], 48 | "objects": { 49 | "subTotals": { 50 | "displayName": "Subtotals", 51 | "properties": { 52 | "rowSubtotals": { 53 | "type": { 54 | "bool": true 55 | }, 56 | "displayName": "Row subtotals", 57 | "description": "Show subtotals for all row groups", 58 | "suppressFormatPainterCopy": true 59 | }, 60 | "perRowLevel": { 61 | "displayName": "Per row level", 62 | "type": { 63 | "bool": true 64 | }, 65 | "suppressFormatPainterCopy": true 66 | }, 67 | "columnSubtotals": { 68 | "type": { 69 | "bool": true 70 | }, 71 | "displayName": "Column subtotals", 72 | "description": "Show subtotals for all column groups", 73 | "suppressFormatPainterCopy": true 74 | }, 75 | "perColumnLevel": { 76 | "displayName": "Per column level", 77 | "type": { 78 | "bool": true 79 | }, 80 | "suppressFormatPainterCopy": true 81 | }, 82 | "levelSubtotalEnabled": { 83 | "type": { 84 | "bool": true 85 | } 86 | } 87 | } 88 | } 89 | }, 90 | "subtotals": { 91 | "matrix": { 92 | "rowSubtotals": { 93 | "propertyIdentifier": { 94 | "objectName": "subTotals", 95 | "propertyName": "rowSubtotals" 96 | }, 97 | "defaultValue": true 98 | }, 99 | "rowSubtotalsPerLevel": { 100 | "propertyIdentifier": { 101 | "objectName": "subTotals", 102 | "propertyName": "perRowLevel" 103 | }, 104 | "defaultValue": false 105 | }, 106 | "columnSubtotals": { 107 | "propertyIdentifier": { 108 | "objectName": "subTotals", 109 | "propertyName": "columnSubtotals" 110 | }, 111 | "defaultValue": true 112 | }, 113 | "columnSubtotalsPerLevel": { 114 | "propertyIdentifier": { 115 | "objectName": "subTotals", 116 | "propertyName": "perColumnLevel" 117 | }, 118 | "defaultValue": false 119 | }, 120 | "levelSubtotalEnabled": { 121 | "propertyIdentifier": { 122 | "objectName": "subTotals", 123 | "propertyName": "levelSubtotalEnabled" 124 | }, 125 | "defaultValue": true 126 | } 127 | } 128 | } 129 | } -------------------------------------------------------------------------------- /doc/SampleMatrixCustomVisualDemo.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Powerbi-Visuals-SampleMatrix/d41ccacdb7bf4b322920136e0d52c40d5bea99e1/doc/SampleMatrixCustomVisualDemo.pbix -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visual", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "name": "visual", 8 | "license": "MIT", 9 | "dependencies": { 10 | "@types/d3": "5.7.2", 11 | "@typescript-eslint/eslint-plugin": "^5.37.0", 12 | "@typescript-eslint/parser": "^5.37.0", 13 | "d3": "5.12.0", 14 | "eslint": "^8.23.1", 15 | "eslint-plugin-powerbi-visuals": "^0.8.1", 16 | "lodash": "^4.17.21", 17 | "powerbi-visuals-api": "~4.7.0", 18 | "powerbi-visuals-utils-dataviewutils": "2.2.1" 19 | }, 20 | "devDependencies": { 21 | "ts-loader": "6.1.0", 22 | "typescript": "3.6.3" 23 | } 24 | }, 25 | "node_modules/@eslint/eslintrc": { 26 | "version": "1.3.2", 27 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", 28 | "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", 29 | "dependencies": { 30 | "ajv": "^6.12.4", 31 | "debug": "^4.3.2", 32 | "espree": "^9.4.0", 33 | "globals": "^13.15.0", 34 | "ignore": "^5.2.0", 35 | "import-fresh": "^3.2.1", 36 | "js-yaml": "^4.1.0", 37 | "minimatch": "^3.1.2", 38 | "strip-json-comments": "^3.1.1" 39 | }, 40 | "engines": { 41 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 42 | }, 43 | "funding": { 44 | "url": "https://opencollective.com/eslint" 45 | } 46 | }, 47 | "node_modules/@eslint/eslintrc/node_modules/argparse": { 48 | "version": "2.0.1", 49 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 50 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 51 | }, 52 | "node_modules/@eslint/eslintrc/node_modules/js-yaml": { 53 | "version": "4.1.0", 54 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 55 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 56 | "dependencies": { 57 | "argparse": "^2.0.1" 58 | }, 59 | "bin": { 60 | "js-yaml": "bin/js-yaml.js" 61 | } 62 | }, 63 | "node_modules/@humanwhocodes/config-array": { 64 | "version": "0.10.4", 65 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", 66 | "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", 67 | "dependencies": { 68 | "@humanwhocodes/object-schema": "^1.2.1", 69 | "debug": "^4.1.1", 70 | "minimatch": "^3.0.4" 71 | }, 72 | "engines": { 73 | "node": ">=10.10.0" 74 | } 75 | }, 76 | "node_modules/@humanwhocodes/gitignore-to-minimatch": { 77 | "version": "1.0.2", 78 | "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", 79 | "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", 80 | "funding": { 81 | "type": "github", 82 | "url": "https://github.com/sponsors/nzakas" 83 | } 84 | }, 85 | "node_modules/@humanwhocodes/module-importer": { 86 | "version": "1.0.1", 87 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 88 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 89 | "engines": { 90 | "node": ">=12.22" 91 | }, 92 | "funding": { 93 | "type": "github", 94 | "url": "https://github.com/sponsors/nzakas" 95 | } 96 | }, 97 | "node_modules/@humanwhocodes/object-schema": { 98 | "version": "1.2.1", 99 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 100 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" 101 | }, 102 | "node_modules/@nodelib/fs.scandir": { 103 | "version": "2.1.5", 104 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 105 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 106 | "dependencies": { 107 | "@nodelib/fs.stat": "2.0.5", 108 | "run-parallel": "^1.1.9" 109 | }, 110 | "engines": { 111 | "node": ">= 8" 112 | } 113 | }, 114 | "node_modules/@nodelib/fs.stat": { 115 | "version": "2.0.5", 116 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 117 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 118 | "engines": { 119 | "node": ">= 8" 120 | } 121 | }, 122 | "node_modules/@nodelib/fs.walk": { 123 | "version": "1.2.8", 124 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 125 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 126 | "dependencies": { 127 | "@nodelib/fs.scandir": "2.1.5", 128 | "fastq": "^1.6.0" 129 | }, 130 | "engines": { 131 | "node": ">= 8" 132 | } 133 | }, 134 | "node_modules/@types/d3": { 135 | "version": "5.7.2", 136 | "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.7.2.tgz", 137 | "integrity": "sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw==", 138 | "dependencies": { 139 | "@types/d3-array": "^1", 140 | "@types/d3-axis": "*", 141 | "@types/d3-brush": "*", 142 | "@types/d3-chord": "*", 143 | "@types/d3-collection": "*", 144 | "@types/d3-color": "*", 145 | "@types/d3-contour": "*", 146 | "@types/d3-dispatch": "*", 147 | "@types/d3-drag": "*", 148 | "@types/d3-dsv": "*", 149 | "@types/d3-ease": "*", 150 | "@types/d3-fetch": "*", 151 | "@types/d3-force": "*", 152 | "@types/d3-format": "*", 153 | "@types/d3-geo": "*", 154 | "@types/d3-hierarchy": "*", 155 | "@types/d3-interpolate": "*", 156 | "@types/d3-path": "*", 157 | "@types/d3-polygon": "*", 158 | "@types/d3-quadtree": "*", 159 | "@types/d3-random": "*", 160 | "@types/d3-scale": "*", 161 | "@types/d3-scale-chromatic": "*", 162 | "@types/d3-selection": "*", 163 | "@types/d3-shape": "*", 164 | "@types/d3-time": "*", 165 | "@types/d3-time-format": "*", 166 | "@types/d3-timer": "*", 167 | "@types/d3-transition": "*", 168 | "@types/d3-voronoi": "*", 169 | "@types/d3-zoom": "*" 170 | } 171 | }, 172 | "node_modules/@types/d3-array": { 173 | "version": "1.2.9", 174 | "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.9.tgz", 175 | "integrity": "sha512-E/7RgPr2ylT5dWG0CswMi9NpFcjIEDqLcUSBgNHe/EMahfqYaTx4zhcggG3khqoEB/leY4Vl6nTSbwLUPjXceA==" 176 | }, 177 | "node_modules/@types/d3-axis": { 178 | "version": "3.0.1", 179 | "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.1.tgz", 180 | "integrity": "sha512-zji/iIbdd49g9WN0aIsGcwcTBUkgLsCSwB+uH+LPVDAiKWENMtI3cJEWt+7/YYwelMoZmbBfzA3qCdrZ2XFNnw==", 181 | "dependencies": { 182 | "@types/d3-selection": "*" 183 | } 184 | }, 185 | "node_modules/@types/d3-brush": { 186 | "version": "3.0.1", 187 | "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.1.tgz", 188 | "integrity": "sha512-B532DozsiTuQMHu2YChdZU0qsFJSio3Q6jmBYGYNp3gMDzBmuFFgPt9qKA4VYuLZMp4qc6eX7IUFUEsvHiXZAw==", 189 | "dependencies": { 190 | "@types/d3-selection": "*" 191 | } 192 | }, 193 | "node_modules/@types/d3-chord": { 194 | "version": "3.0.1", 195 | "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.1.tgz", 196 | "integrity": "sha512-eQfcxIHrg7V++W8Qxn6QkqBNBokyhdWSAS73AbkbMzvLQmVVBviknoz2SRS/ZJdIOmhcmmdCRE/NFOm28Z1AMw==" 197 | }, 198 | "node_modules/@types/d3-collection": { 199 | "version": "1.0.10", 200 | "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.10.tgz", 201 | "integrity": "sha512-54Fdv8u5JbuXymtmXm2SYzi1x/Svt+jfWBU5junkhrCewL92VjqtCBDn97coBRVwVFmYNnVTNDyV8gQyPYfm+A==" 202 | }, 203 | "node_modules/@types/d3-color": { 204 | "version": "3.1.0", 205 | "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", 206 | "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==" 207 | }, 208 | "node_modules/@types/d3-contour": { 209 | "version": "3.0.1", 210 | "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.1.tgz", 211 | "integrity": "sha512-C3zfBrhHZvrpAAK3YXqLWVAGo87A4SvJ83Q/zVJ8rFWJdKejUnDYaWZPkA8K84kb2vDA/g90LTQAz7etXcgoQQ==", 212 | "dependencies": { 213 | "@types/d3-array": "*", 214 | "@types/geojson": "*" 215 | } 216 | }, 217 | "node_modules/@types/d3-dispatch": { 218 | "version": "3.0.1", 219 | "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.1.tgz", 220 | "integrity": "sha512-NhxMn3bAkqhjoxabVJWKryhnZXXYYVQxaBnbANu0O94+O/nX9qSjrA1P1jbAQJxJf+VC72TxDX/YJcKue5bRqw==" 221 | }, 222 | "node_modules/@types/d3-drag": { 223 | "version": "3.0.1", 224 | "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.1.tgz", 225 | "integrity": "sha512-o1Va7bLwwk6h03+nSM8dpaGEYnoIG19P0lKqlic8Un36ymh9NSkNFX1yiXMKNMx8rJ0Kfnn2eovuFaL6Jvj0zA==", 226 | "dependencies": { 227 | "@types/d3-selection": "*" 228 | } 229 | }, 230 | "node_modules/@types/d3-dsv": { 231 | "version": "3.0.0", 232 | "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.0.tgz", 233 | "integrity": "sha512-o0/7RlMl9p5n6FQDptuJVMxDf/7EDEv2SYEO/CwdG2tr1hTfUVi0Iavkk2ax+VpaQ/1jVhpnj5rq1nj8vwhn2A==" 234 | }, 235 | "node_modules/@types/d3-ease": { 236 | "version": "3.0.0", 237 | "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", 238 | "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==" 239 | }, 240 | "node_modules/@types/d3-fetch": { 241 | "version": "3.0.1", 242 | "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.1.tgz", 243 | "integrity": "sha512-toZJNOwrOIqz7Oh6Q7l2zkaNfXkfR7mFSJvGvlD/Ciq/+SQ39d5gynHJZ/0fjt83ec3WL7+u3ssqIijQtBISsw==", 244 | "dependencies": { 245 | "@types/d3-dsv": "*" 246 | } 247 | }, 248 | "node_modules/@types/d3-force": { 249 | "version": "3.0.3", 250 | "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.3.tgz", 251 | "integrity": "sha512-z8GteGVfkWJMKsx6hwC3SiTSLspL98VNpmvLpEFJQpZPq6xpA1I8HNBDNSpukfK0Vb0l64zGFhzunLgEAcBWSA==" 252 | }, 253 | "node_modules/@types/d3-format": { 254 | "version": "3.0.1", 255 | "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz", 256 | "integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==" 257 | }, 258 | "node_modules/@types/d3-geo": { 259 | "version": "3.0.2", 260 | "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.2.tgz", 261 | "integrity": "sha512-DbqK7MLYA8LpyHQfv6Klz0426bQEf7bRTvhMy44sNGVyZoWn//B0c+Qbeg8Osi2Obdc9BLLXYAKpyWege2/7LQ==", 262 | "dependencies": { 263 | "@types/geojson": "*" 264 | } 265 | }, 266 | "node_modules/@types/d3-hierarchy": { 267 | "version": "3.1.0", 268 | "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.0.tgz", 269 | "integrity": "sha512-g+sey7qrCa3UbsQlMZZBOHROkFqx7KZKvUpRzI/tAp/8erZWpYq7FgNKvYwebi2LaEiVs1klhUfd3WCThxmmWQ==" 270 | }, 271 | "node_modules/@types/d3-interpolate": { 272 | "version": "3.0.1", 273 | "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", 274 | "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", 275 | "dependencies": { 276 | "@types/d3-color": "*" 277 | } 278 | }, 279 | "node_modules/@types/d3-path": { 280 | "version": "3.0.0", 281 | "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz", 282 | "integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==" 283 | }, 284 | "node_modules/@types/d3-polygon": { 285 | "version": "3.0.0", 286 | "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.0.tgz", 287 | "integrity": "sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==" 288 | }, 289 | "node_modules/@types/d3-quadtree": { 290 | "version": "3.0.2", 291 | "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz", 292 | "integrity": "sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==" 293 | }, 294 | "node_modules/@types/d3-random": { 295 | "version": "3.0.1", 296 | "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.1.tgz", 297 | "integrity": "sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==" 298 | }, 299 | "node_modules/@types/d3-scale": { 300 | "version": "4.0.2", 301 | "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.2.tgz", 302 | "integrity": "sha512-Yk4htunhPAwN0XGlIwArRomOjdoBFXC3+kCxK2Ubg7I9shQlVSJy/pG/Ht5ASN+gdMIalpk8TJ5xV74jFsetLA==", 303 | "dependencies": { 304 | "@types/d3-time": "*" 305 | } 306 | }, 307 | "node_modules/@types/d3-scale-chromatic": { 308 | "version": "3.0.0", 309 | "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", 310 | "integrity": "sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==" 311 | }, 312 | "node_modules/@types/d3-selection": { 313 | "version": "3.0.3", 314 | "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.3.tgz", 315 | "integrity": "sha512-Mw5cf6nlW1MlefpD9zrshZ+DAWL4IQ5LnWfRheW6xwsdaWOb6IRRu2H7XPAQcyXEx1D7XQWgdoKR83ui1/HlEA==" 316 | }, 317 | "node_modules/@types/d3-shape": { 318 | "version": "3.1.0", 319 | "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.0.tgz", 320 | "integrity": "sha512-jYIYxFFA9vrJ8Hd4Se83YI6XF+gzDL1aC5DCsldai4XYYiVNdhtpGbA/GM6iyQ8ayhSp3a148LY34hy7A4TxZA==", 321 | "dependencies": { 322 | "@types/d3-path": "*" 323 | } 324 | }, 325 | "node_modules/@types/d3-time": { 326 | "version": "3.0.0", 327 | "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", 328 | "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==" 329 | }, 330 | "node_modules/@types/d3-time-format": { 331 | "version": "4.0.0", 332 | "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.0.tgz", 333 | "integrity": "sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==" 334 | }, 335 | "node_modules/@types/d3-timer": { 336 | "version": "3.0.0", 337 | "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz", 338 | "integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==" 339 | }, 340 | "node_modules/@types/d3-transition": { 341 | "version": "3.0.2", 342 | "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.2.tgz", 343 | "integrity": "sha512-jo5o/Rf+/u6uerJ/963Dc39NI16FQzqwOc54bwvksGAdVfvDrqDpVeq95bEvPtBwLCVZutAEyAtmSyEMxN7vxQ==", 344 | "dependencies": { 345 | "@types/d3-selection": "*" 346 | } 347 | }, 348 | "node_modules/@types/d3-voronoi": { 349 | "version": "1.1.9", 350 | "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", 351 | "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==" 352 | }, 353 | "node_modules/@types/d3-zoom": { 354 | "version": "3.0.1", 355 | "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.1.tgz", 356 | "integrity": "sha512-7s5L9TjfqIYQmQQEUcpMAcBOahem7TRoSO/+Gkz02GbMVuULiZzjF2BOdw291dbO2aNon4m2OdFsRGaCq2caLQ==", 357 | "dependencies": { 358 | "@types/d3-interpolate": "*", 359 | "@types/d3-selection": "*" 360 | } 361 | }, 362 | "node_modules/@types/geojson": { 363 | "version": "7946.0.10", 364 | "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", 365 | "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" 366 | }, 367 | "node_modules/@types/json-schema": { 368 | "version": "7.0.11", 369 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", 370 | "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" 371 | }, 372 | "node_modules/@typescript-eslint/eslint-plugin": { 373 | "version": "5.37.0", 374 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.37.0.tgz", 375 | "integrity": "sha512-Fde6W0IafXktz1UlnhGkrrmnnGpAo1kyX7dnyHHVrmwJOn72Oqm3eYtddrpOwwel2W8PAK9F3pIL5S+lfoM0og==", 376 | "dependencies": { 377 | "@typescript-eslint/scope-manager": "5.37.0", 378 | "@typescript-eslint/type-utils": "5.37.0", 379 | "@typescript-eslint/utils": "5.37.0", 380 | "debug": "^4.3.4", 381 | "functional-red-black-tree": "^1.0.1", 382 | "ignore": "^5.2.0", 383 | "regexpp": "^3.2.0", 384 | "semver": "^7.3.7", 385 | "tsutils": "^3.21.0" 386 | }, 387 | "engines": { 388 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 389 | }, 390 | "funding": { 391 | "type": "opencollective", 392 | "url": "https://opencollective.com/typescript-eslint" 393 | }, 394 | "peerDependencies": { 395 | "@typescript-eslint/parser": "^5.0.0", 396 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 397 | }, 398 | "peerDependenciesMeta": { 399 | "typescript": { 400 | "optional": true 401 | } 402 | } 403 | }, 404 | "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { 405 | "version": "3.21.0", 406 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 407 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 408 | "dependencies": { 409 | "tslib": "^1.8.1" 410 | }, 411 | "engines": { 412 | "node": ">= 6" 413 | }, 414 | "peerDependencies": { 415 | "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" 416 | } 417 | }, 418 | "node_modules/@typescript-eslint/parser": { 419 | "version": "5.37.0", 420 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.37.0.tgz", 421 | "integrity": "sha512-01VzI/ipYKuaG5PkE5+qyJ6m02fVALmMPY3Qq5BHflDx3y4VobbLdHQkSMg9VPRS4KdNt4oYTMaomFoHonBGAw==", 422 | "dependencies": { 423 | "@typescript-eslint/scope-manager": "5.37.0", 424 | "@typescript-eslint/types": "5.37.0", 425 | "@typescript-eslint/typescript-estree": "5.37.0", 426 | "debug": "^4.3.4" 427 | }, 428 | "engines": { 429 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 430 | }, 431 | "funding": { 432 | "type": "opencollective", 433 | "url": "https://opencollective.com/typescript-eslint" 434 | }, 435 | "peerDependencies": { 436 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 437 | }, 438 | "peerDependenciesMeta": { 439 | "typescript": { 440 | "optional": true 441 | } 442 | } 443 | }, 444 | "node_modules/@typescript-eslint/scope-manager": { 445 | "version": "5.37.0", 446 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", 447 | "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", 448 | "dependencies": { 449 | "@typescript-eslint/types": "5.37.0", 450 | "@typescript-eslint/visitor-keys": "5.37.0" 451 | }, 452 | "engines": { 453 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 454 | }, 455 | "funding": { 456 | "type": "opencollective", 457 | "url": "https://opencollective.com/typescript-eslint" 458 | } 459 | }, 460 | "node_modules/@typescript-eslint/type-utils": { 461 | "version": "5.37.0", 462 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz", 463 | "integrity": "sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ==", 464 | "dependencies": { 465 | "@typescript-eslint/typescript-estree": "5.37.0", 466 | "@typescript-eslint/utils": "5.37.0", 467 | "debug": "^4.3.4", 468 | "tsutils": "^3.21.0" 469 | }, 470 | "engines": { 471 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 472 | }, 473 | "funding": { 474 | "type": "opencollective", 475 | "url": "https://opencollective.com/typescript-eslint" 476 | }, 477 | "peerDependencies": { 478 | "eslint": "*" 479 | }, 480 | "peerDependenciesMeta": { 481 | "typescript": { 482 | "optional": true 483 | } 484 | } 485 | }, 486 | "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { 487 | "version": "3.21.0", 488 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 489 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 490 | "dependencies": { 491 | "tslib": "^1.8.1" 492 | }, 493 | "engines": { 494 | "node": ">= 6" 495 | }, 496 | "peerDependencies": { 497 | "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" 498 | } 499 | }, 500 | "node_modules/@typescript-eslint/types": { 501 | "version": "5.37.0", 502 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", 503 | "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==", 504 | "engines": { 505 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 506 | }, 507 | "funding": { 508 | "type": "opencollective", 509 | "url": "https://opencollective.com/typescript-eslint" 510 | } 511 | }, 512 | "node_modules/@typescript-eslint/typescript-estree": { 513 | "version": "5.37.0", 514 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", 515 | "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", 516 | "dependencies": { 517 | "@typescript-eslint/types": "5.37.0", 518 | "@typescript-eslint/visitor-keys": "5.37.0", 519 | "debug": "^4.3.4", 520 | "globby": "^11.1.0", 521 | "is-glob": "^4.0.3", 522 | "semver": "^7.3.7", 523 | "tsutils": "^3.21.0" 524 | }, 525 | "engines": { 526 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 527 | }, 528 | "funding": { 529 | "type": "opencollective", 530 | "url": "https://opencollective.com/typescript-eslint" 531 | }, 532 | "peerDependenciesMeta": { 533 | "typescript": { 534 | "optional": true 535 | } 536 | } 537 | }, 538 | "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { 539 | "version": "3.21.0", 540 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 541 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 542 | "dependencies": { 543 | "tslib": "^1.8.1" 544 | }, 545 | "engines": { 546 | "node": ">= 6" 547 | }, 548 | "peerDependencies": { 549 | "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" 550 | } 551 | }, 552 | "node_modules/@typescript-eslint/utils": { 553 | "version": "5.37.0", 554 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", 555 | "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", 556 | "dependencies": { 557 | "@types/json-schema": "^7.0.9", 558 | "@typescript-eslint/scope-manager": "5.37.0", 559 | "@typescript-eslint/types": "5.37.0", 560 | "@typescript-eslint/typescript-estree": "5.37.0", 561 | "eslint-scope": "^5.1.1", 562 | "eslint-utils": "^3.0.0" 563 | }, 564 | "engines": { 565 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 566 | }, 567 | "funding": { 568 | "type": "opencollective", 569 | "url": "https://opencollective.com/typescript-eslint" 570 | }, 571 | "peerDependencies": { 572 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 573 | } 574 | }, 575 | "node_modules/@typescript-eslint/visitor-keys": { 576 | "version": "5.37.0", 577 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", 578 | "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", 579 | "dependencies": { 580 | "@typescript-eslint/types": "5.37.0", 581 | "eslint-visitor-keys": "^3.3.0" 582 | }, 583 | "engines": { 584 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 585 | }, 586 | "funding": { 587 | "type": "opencollective", 588 | "url": "https://opencollective.com/typescript-eslint" 589 | } 590 | }, 591 | "node_modules/acorn": { 592 | "version": "8.8.0", 593 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", 594 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", 595 | "bin": { 596 | "acorn": "bin/acorn" 597 | }, 598 | "engines": { 599 | "node": ">=0.4.0" 600 | } 601 | }, 602 | "node_modules/acorn-jsx": { 603 | "version": "5.3.2", 604 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 605 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 606 | "peerDependencies": { 607 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 608 | } 609 | }, 610 | "node_modules/ajv": { 611 | "version": "6.12.6", 612 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 613 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 614 | "dependencies": { 615 | "fast-deep-equal": "^3.1.1", 616 | "fast-json-stable-stringify": "^2.0.0", 617 | "json-schema-traverse": "^0.4.1", 618 | "uri-js": "^4.2.2" 619 | }, 620 | "funding": { 621 | "type": "github", 622 | "url": "https://github.com/sponsors/epoberezkin" 623 | } 624 | }, 625 | "node_modules/ansi-regex": { 626 | "version": "5.0.1", 627 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 628 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 629 | "engines": { 630 | "node": ">=8" 631 | } 632 | }, 633 | "node_modules/ansi-styles": { 634 | "version": "4.3.0", 635 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 636 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 637 | "dependencies": { 638 | "color-convert": "^2.0.1" 639 | }, 640 | "engines": { 641 | "node": ">=8" 642 | }, 643 | "funding": { 644 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 645 | } 646 | }, 647 | "node_modules/ansi-styles/node_modules/color-convert": { 648 | "version": "2.0.1", 649 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 650 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 651 | "dependencies": { 652 | "color-name": "~1.1.4" 653 | }, 654 | "engines": { 655 | "node": ">=7.0.0" 656 | } 657 | }, 658 | "node_modules/ansi-styles/node_modules/color-name": { 659 | "version": "1.1.4", 660 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 661 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 662 | }, 663 | "node_modules/array-union": { 664 | "version": "2.1.0", 665 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 666 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 667 | "engines": { 668 | "node": ">=8" 669 | } 670 | }, 671 | "node_modules/balanced-match": { 672 | "version": "1.0.0", 673 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 674 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 675 | }, 676 | "node_modules/big.js": { 677 | "version": "5.2.2", 678 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", 679 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", 680 | "dev": true, 681 | "engines": { 682 | "node": "*" 683 | } 684 | }, 685 | "node_modules/brace-expansion": { 686 | "version": "1.1.11", 687 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 688 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 689 | "dependencies": { 690 | "balanced-match": "^1.0.0", 691 | "concat-map": "0.0.1" 692 | } 693 | }, 694 | "node_modules/braces": { 695 | "version": "3.0.2", 696 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 697 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 698 | "dependencies": { 699 | "fill-range": "^7.0.1" 700 | }, 701 | "engines": { 702 | "node": ">=8" 703 | } 704 | }, 705 | "node_modules/callsites": { 706 | "version": "3.1.0", 707 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 708 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 709 | "engines": { 710 | "node": ">=6" 711 | } 712 | }, 713 | "node_modules/chalk": { 714 | "version": "4.1.2", 715 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 716 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 717 | "dependencies": { 718 | "ansi-styles": "^4.1.0", 719 | "supports-color": "^7.1.0" 720 | }, 721 | "engines": { 722 | "node": ">=10" 723 | }, 724 | "funding": { 725 | "url": "https://github.com/chalk/chalk?sponsor=1" 726 | } 727 | }, 728 | "node_modules/color-convert": { 729 | "version": "1.9.3", 730 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 731 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 732 | "dev": true, 733 | "dependencies": { 734 | "color-name": "1.1.3" 735 | } 736 | }, 737 | "node_modules/color-name": { 738 | "version": "1.1.3", 739 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 740 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 741 | "dev": true 742 | }, 743 | "node_modules/commander": { 744 | "version": "2.9.0", 745 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", 746 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", 747 | "dependencies": { 748 | "graceful-readlink": ">= 1.0.0" 749 | }, 750 | "engines": { 751 | "node": ">= 0.6.x" 752 | } 753 | }, 754 | "node_modules/concat-map": { 755 | "version": "0.0.1", 756 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 757 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 758 | }, 759 | "node_modules/core-util-is": { 760 | "version": "1.0.2", 761 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 762 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 763 | "dev": true 764 | }, 765 | "node_modules/cross-spawn": { 766 | "version": "7.0.3", 767 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 768 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 769 | "dependencies": { 770 | "path-key": "^3.1.0", 771 | "shebang-command": "^2.0.0", 772 | "which": "^2.0.1" 773 | }, 774 | "engines": { 775 | "node": ">= 8" 776 | } 777 | }, 778 | "node_modules/d3": { 779 | "version": "5.12.0", 780 | "resolved": "https://registry.npmjs.org/d3/-/d3-5.12.0.tgz", 781 | "integrity": "sha512-flYVMoVuhPFHd9zVCe2BxIszUWqBcd5fvQGMNRmSiBrgdnh6Vlruh60RJQTouAK9xPbOB0plxMvBm4MoyODXNg==", 782 | "dependencies": { 783 | "d3-array": "1", 784 | "d3-axis": "1", 785 | "d3-brush": "1", 786 | "d3-chord": "1", 787 | "d3-collection": "1", 788 | "d3-color": "1", 789 | "d3-contour": "1", 790 | "d3-dispatch": "1", 791 | "d3-drag": "1", 792 | "d3-dsv": "1", 793 | "d3-ease": "1", 794 | "d3-fetch": "1", 795 | "d3-force": "1", 796 | "d3-format": "1", 797 | "d3-geo": "1", 798 | "d3-hierarchy": "1", 799 | "d3-interpolate": "1", 800 | "d3-path": "1", 801 | "d3-polygon": "1", 802 | "d3-quadtree": "1", 803 | "d3-random": "1", 804 | "d3-scale": "2", 805 | "d3-scale-chromatic": "1", 806 | "d3-selection": "1", 807 | "d3-shape": "1", 808 | "d3-time": "1", 809 | "d3-time-format": "2", 810 | "d3-timer": "1", 811 | "d3-transition": "1", 812 | "d3-voronoi": "1", 813 | "d3-zoom": "1" 814 | } 815 | }, 816 | "node_modules/d3-array": { 817 | "version": "1.2.4", 818 | "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", 819 | "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" 820 | }, 821 | "node_modules/d3-axis": { 822 | "version": "1.0.12", 823 | "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", 824 | "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" 825 | }, 826 | "node_modules/d3-brush": { 827 | "version": "1.1.6", 828 | "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", 829 | "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", 830 | "dependencies": { 831 | "d3-dispatch": "1", 832 | "d3-drag": "1", 833 | "d3-interpolate": "1", 834 | "d3-selection": "1", 835 | "d3-transition": "1" 836 | } 837 | }, 838 | "node_modules/d3-chord": { 839 | "version": "1.0.6", 840 | "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", 841 | "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", 842 | "dependencies": { 843 | "d3-array": "1", 844 | "d3-path": "1" 845 | } 846 | }, 847 | "node_modules/d3-collection": { 848 | "version": "1.0.7", 849 | "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", 850 | "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" 851 | }, 852 | "node_modules/d3-color": { 853 | "version": "1.4.1", 854 | "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", 855 | "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" 856 | }, 857 | "node_modules/d3-contour": { 858 | "version": "1.3.2", 859 | "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", 860 | "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", 861 | "dependencies": { 862 | "d3-array": "^1.1.1" 863 | } 864 | }, 865 | "node_modules/d3-dispatch": { 866 | "version": "1.0.6", 867 | "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", 868 | "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" 869 | }, 870 | "node_modules/d3-drag": { 871 | "version": "1.2.5", 872 | "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", 873 | "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", 874 | "dependencies": { 875 | "d3-dispatch": "1", 876 | "d3-selection": "1" 877 | } 878 | }, 879 | "node_modules/d3-dsv": { 880 | "version": "1.2.0", 881 | "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", 882 | "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", 883 | "dependencies": { 884 | "commander": "2", 885 | "iconv-lite": "0.4", 886 | "rw": "1" 887 | }, 888 | "bin": { 889 | "csv2json": "bin/dsv2json", 890 | "csv2tsv": "bin/dsv2dsv", 891 | "dsv2dsv": "bin/dsv2dsv", 892 | "dsv2json": "bin/dsv2json", 893 | "json2csv": "bin/json2dsv", 894 | "json2dsv": "bin/json2dsv", 895 | "json2tsv": "bin/json2dsv", 896 | "tsv2csv": "bin/dsv2dsv", 897 | "tsv2json": "bin/dsv2json" 898 | } 899 | }, 900 | "node_modules/d3-ease": { 901 | "version": "1.0.7", 902 | "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", 903 | "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" 904 | }, 905 | "node_modules/d3-fetch": { 906 | "version": "1.2.0", 907 | "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", 908 | "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", 909 | "dependencies": { 910 | "d3-dsv": "1" 911 | } 912 | }, 913 | "node_modules/d3-force": { 914 | "version": "1.2.1", 915 | "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", 916 | "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", 917 | "dependencies": { 918 | "d3-collection": "1", 919 | "d3-dispatch": "1", 920 | "d3-quadtree": "1", 921 | "d3-timer": "1" 922 | } 923 | }, 924 | "node_modules/d3-format": { 925 | "version": "1.4.5", 926 | "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", 927 | "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" 928 | }, 929 | "node_modules/d3-geo": { 930 | "version": "1.12.1", 931 | "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", 932 | "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", 933 | "dependencies": { 934 | "d3-array": "1" 935 | } 936 | }, 937 | "node_modules/d3-hierarchy": { 938 | "version": "1.1.9", 939 | "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", 940 | "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" 941 | }, 942 | "node_modules/d3-interpolate": { 943 | "version": "1.4.0", 944 | "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", 945 | "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", 946 | "dependencies": { 947 | "d3-color": "1" 948 | } 949 | }, 950 | "node_modules/d3-path": { 951 | "version": "1.0.9", 952 | "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", 953 | "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" 954 | }, 955 | "node_modules/d3-polygon": { 956 | "version": "1.0.6", 957 | "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", 958 | "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" 959 | }, 960 | "node_modules/d3-quadtree": { 961 | "version": "1.0.7", 962 | "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", 963 | "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" 964 | }, 965 | "node_modules/d3-random": { 966 | "version": "1.1.2", 967 | "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", 968 | "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" 969 | }, 970 | "node_modules/d3-scale": { 971 | "version": "2.2.2", 972 | "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", 973 | "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", 974 | "dependencies": { 975 | "d3-array": "^1.2.0", 976 | "d3-collection": "1", 977 | "d3-format": "1", 978 | "d3-interpolate": "1", 979 | "d3-time": "1", 980 | "d3-time-format": "2" 981 | } 982 | }, 983 | "node_modules/d3-scale-chromatic": { 984 | "version": "1.5.0", 985 | "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", 986 | "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", 987 | "dependencies": { 988 | "d3-color": "1", 989 | "d3-interpolate": "1" 990 | } 991 | }, 992 | "node_modules/d3-selection": { 993 | "version": "1.4.2", 994 | "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", 995 | "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" 996 | }, 997 | "node_modules/d3-shape": { 998 | "version": "1.3.7", 999 | "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", 1000 | "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", 1001 | "dependencies": { 1002 | "d3-path": "1" 1003 | } 1004 | }, 1005 | "node_modules/d3-time": { 1006 | "version": "1.1.0", 1007 | "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", 1008 | "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" 1009 | }, 1010 | "node_modules/d3-time-format": { 1011 | "version": "2.3.0", 1012 | "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", 1013 | "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", 1014 | "dependencies": { 1015 | "d3-time": "1" 1016 | } 1017 | }, 1018 | "node_modules/d3-timer": { 1019 | "version": "1.0.10", 1020 | "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", 1021 | "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" 1022 | }, 1023 | "node_modules/d3-transition": { 1024 | "version": "1.3.2", 1025 | "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", 1026 | "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", 1027 | "dependencies": { 1028 | "d3-color": "1", 1029 | "d3-dispatch": "1", 1030 | "d3-ease": "1", 1031 | "d3-interpolate": "1", 1032 | "d3-selection": "^1.1.0", 1033 | "d3-timer": "1" 1034 | } 1035 | }, 1036 | "node_modules/d3-voronoi": { 1037 | "version": "1.1.4", 1038 | "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", 1039 | "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" 1040 | }, 1041 | "node_modules/d3-zoom": { 1042 | "version": "1.8.3", 1043 | "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", 1044 | "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", 1045 | "dependencies": { 1046 | "d3-dispatch": "1", 1047 | "d3-drag": "1", 1048 | "d3-interpolate": "1", 1049 | "d3-selection": "1", 1050 | "d3-transition": "1" 1051 | } 1052 | }, 1053 | "node_modules/debug": { 1054 | "version": "4.3.4", 1055 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1056 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1057 | "dependencies": { 1058 | "ms": "2.1.2" 1059 | }, 1060 | "engines": { 1061 | "node": ">=6.0" 1062 | }, 1063 | "peerDependenciesMeta": { 1064 | "supports-color": { 1065 | "optional": true 1066 | } 1067 | } 1068 | }, 1069 | "node_modules/deep-is": { 1070 | "version": "0.1.4", 1071 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 1072 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" 1073 | }, 1074 | "node_modules/dir-glob": { 1075 | "version": "3.0.1", 1076 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 1077 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1078 | "dependencies": { 1079 | "path-type": "^4.0.0" 1080 | }, 1081 | "engines": { 1082 | "node": ">=8" 1083 | } 1084 | }, 1085 | "node_modules/doctrine": { 1086 | "version": "3.0.0", 1087 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 1088 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 1089 | "dependencies": { 1090 | "esutils": "^2.0.2" 1091 | }, 1092 | "engines": { 1093 | "node": ">=6.0.0" 1094 | } 1095 | }, 1096 | "node_modules/emojis-list": { 1097 | "version": "3.0.0", 1098 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", 1099 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", 1100 | "dev": true, 1101 | "engines": { 1102 | "node": ">= 4" 1103 | } 1104 | }, 1105 | "node_modules/enhanced-resolve": { 1106 | "version": "4.5.0", 1107 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", 1108 | "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", 1109 | "dev": true, 1110 | "dependencies": { 1111 | "graceful-fs": "^4.1.2", 1112 | "memory-fs": "^0.5.0", 1113 | "tapable": "^1.0.0" 1114 | }, 1115 | "engines": { 1116 | "node": ">=6.9.0" 1117 | } 1118 | }, 1119 | "node_modules/errno": { 1120 | "version": "0.1.7", 1121 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", 1122 | "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", 1123 | "dev": true, 1124 | "dependencies": { 1125 | "prr": "~1.0.1" 1126 | }, 1127 | "bin": { 1128 | "errno": "cli.js" 1129 | } 1130 | }, 1131 | "node_modules/escape-string-regexp": { 1132 | "version": "1.0.5", 1133 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1134 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1135 | "dev": true, 1136 | "engines": { 1137 | "node": ">=0.8.0" 1138 | } 1139 | }, 1140 | "node_modules/eslint": { 1141 | "version": "8.23.1", 1142 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", 1143 | "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", 1144 | "dependencies": { 1145 | "@eslint/eslintrc": "^1.3.2", 1146 | "@humanwhocodes/config-array": "^0.10.4", 1147 | "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", 1148 | "@humanwhocodes/module-importer": "^1.0.1", 1149 | "ajv": "^6.10.0", 1150 | "chalk": "^4.0.0", 1151 | "cross-spawn": "^7.0.2", 1152 | "debug": "^4.3.2", 1153 | "doctrine": "^3.0.0", 1154 | "escape-string-regexp": "^4.0.0", 1155 | "eslint-scope": "^7.1.1", 1156 | "eslint-utils": "^3.0.0", 1157 | "eslint-visitor-keys": "^3.3.0", 1158 | "espree": "^9.4.0", 1159 | "esquery": "^1.4.0", 1160 | "esutils": "^2.0.2", 1161 | "fast-deep-equal": "^3.1.3", 1162 | "file-entry-cache": "^6.0.1", 1163 | "find-up": "^5.0.0", 1164 | "glob-parent": "^6.0.1", 1165 | "globals": "^13.15.0", 1166 | "globby": "^11.1.0", 1167 | "grapheme-splitter": "^1.0.4", 1168 | "ignore": "^5.2.0", 1169 | "import-fresh": "^3.0.0", 1170 | "imurmurhash": "^0.1.4", 1171 | "is-glob": "^4.0.0", 1172 | "js-sdsl": "^4.1.4", 1173 | "js-yaml": "^4.1.0", 1174 | "json-stable-stringify-without-jsonify": "^1.0.1", 1175 | "levn": "^0.4.1", 1176 | "lodash.merge": "^4.6.2", 1177 | "minimatch": "^3.1.2", 1178 | "natural-compare": "^1.4.0", 1179 | "optionator": "^0.9.1", 1180 | "regexpp": "^3.2.0", 1181 | "strip-ansi": "^6.0.1", 1182 | "strip-json-comments": "^3.1.0", 1183 | "text-table": "^0.2.0" 1184 | }, 1185 | "bin": { 1186 | "eslint": "bin/eslint.js" 1187 | }, 1188 | "engines": { 1189 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1190 | }, 1191 | "funding": { 1192 | "url": "https://opencollective.com/eslint" 1193 | } 1194 | }, 1195 | "node_modules/eslint-plugin-powerbi-visuals": { 1196 | "version": "0.8.1", 1197 | "resolved": "https://registry.npmjs.org/eslint-plugin-powerbi-visuals/-/eslint-plugin-powerbi-visuals-0.8.1.tgz", 1198 | "integrity": "sha512-GAdD5kIO2+X+WsTGW9DvfQ5sd2UFw+0FaPGYPsq2Dpt0RuVdfpHG58PJF7YWzjQmtr2EUGGJUbCALq4v3hK+JQ==" 1199 | }, 1200 | "node_modules/eslint-scope": { 1201 | "version": "5.1.1", 1202 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 1203 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 1204 | "dependencies": { 1205 | "esrecurse": "^4.3.0", 1206 | "estraverse": "^4.1.1" 1207 | }, 1208 | "engines": { 1209 | "node": ">=8.0.0" 1210 | } 1211 | }, 1212 | "node_modules/eslint-utils": { 1213 | "version": "3.0.0", 1214 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 1215 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 1216 | "dependencies": { 1217 | "eslint-visitor-keys": "^2.0.0" 1218 | }, 1219 | "engines": { 1220 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 1221 | }, 1222 | "funding": { 1223 | "url": "https://github.com/sponsors/mysticatea" 1224 | }, 1225 | "peerDependencies": { 1226 | "eslint": ">=5" 1227 | } 1228 | }, 1229 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 1230 | "version": "2.1.0", 1231 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 1232 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 1233 | "engines": { 1234 | "node": ">=10" 1235 | } 1236 | }, 1237 | "node_modules/eslint-visitor-keys": { 1238 | "version": "3.3.0", 1239 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 1240 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 1241 | "engines": { 1242 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1243 | } 1244 | }, 1245 | "node_modules/eslint/node_modules/argparse": { 1246 | "version": "2.0.1", 1247 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1248 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 1249 | }, 1250 | "node_modules/eslint/node_modules/escape-string-regexp": { 1251 | "version": "4.0.0", 1252 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1253 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1254 | "engines": { 1255 | "node": ">=10" 1256 | }, 1257 | "funding": { 1258 | "url": "https://github.com/sponsors/sindresorhus" 1259 | } 1260 | }, 1261 | "node_modules/eslint/node_modules/eslint-scope": { 1262 | "version": "7.1.1", 1263 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 1264 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 1265 | "dependencies": { 1266 | "esrecurse": "^4.3.0", 1267 | "estraverse": "^5.2.0" 1268 | }, 1269 | "engines": { 1270 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1271 | } 1272 | }, 1273 | "node_modules/eslint/node_modules/estraverse": { 1274 | "version": "5.3.0", 1275 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1276 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1277 | "engines": { 1278 | "node": ">=4.0" 1279 | } 1280 | }, 1281 | "node_modules/eslint/node_modules/js-yaml": { 1282 | "version": "4.1.0", 1283 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1284 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1285 | "dependencies": { 1286 | "argparse": "^2.0.1" 1287 | }, 1288 | "bin": { 1289 | "js-yaml": "bin/js-yaml.js" 1290 | } 1291 | }, 1292 | "node_modules/espree": { 1293 | "version": "9.4.0", 1294 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", 1295 | "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", 1296 | "dependencies": { 1297 | "acorn": "^8.8.0", 1298 | "acorn-jsx": "^5.3.2", 1299 | "eslint-visitor-keys": "^3.3.0" 1300 | }, 1301 | "engines": { 1302 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1303 | }, 1304 | "funding": { 1305 | "url": "https://opencollective.com/eslint" 1306 | } 1307 | }, 1308 | "node_modules/esquery": { 1309 | "version": "1.4.0", 1310 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 1311 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 1312 | "dependencies": { 1313 | "estraverse": "^5.1.0" 1314 | }, 1315 | "engines": { 1316 | "node": ">=0.10" 1317 | } 1318 | }, 1319 | "node_modules/esquery/node_modules/estraverse": { 1320 | "version": "5.3.0", 1321 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1322 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1323 | "engines": { 1324 | "node": ">=4.0" 1325 | } 1326 | }, 1327 | "node_modules/esrecurse": { 1328 | "version": "4.3.0", 1329 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1330 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1331 | "dependencies": { 1332 | "estraverse": "^5.2.0" 1333 | }, 1334 | "engines": { 1335 | "node": ">=4.0" 1336 | } 1337 | }, 1338 | "node_modules/esrecurse/node_modules/estraverse": { 1339 | "version": "5.3.0", 1340 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1341 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1342 | "engines": { 1343 | "node": ">=4.0" 1344 | } 1345 | }, 1346 | "node_modules/estraverse": { 1347 | "version": "4.3.0", 1348 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1349 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1350 | "engines": { 1351 | "node": ">=4.0" 1352 | } 1353 | }, 1354 | "node_modules/esutils": { 1355 | "version": "2.0.2", 1356 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1357 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1358 | "engines": { 1359 | "node": ">=0.10.0" 1360 | } 1361 | }, 1362 | "node_modules/fast-deep-equal": { 1363 | "version": "3.1.3", 1364 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1365 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 1366 | }, 1367 | "node_modules/fast-glob": { 1368 | "version": "3.2.12", 1369 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", 1370 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 1371 | "dependencies": { 1372 | "@nodelib/fs.stat": "^2.0.2", 1373 | "@nodelib/fs.walk": "^1.2.3", 1374 | "glob-parent": "^5.1.2", 1375 | "merge2": "^1.3.0", 1376 | "micromatch": "^4.0.4" 1377 | }, 1378 | "engines": { 1379 | "node": ">=8.6.0" 1380 | } 1381 | }, 1382 | "node_modules/fast-glob/node_modules/glob-parent": { 1383 | "version": "5.1.2", 1384 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1385 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1386 | "dependencies": { 1387 | "is-glob": "^4.0.1" 1388 | }, 1389 | "engines": { 1390 | "node": ">= 6" 1391 | } 1392 | }, 1393 | "node_modules/fast-json-stable-stringify": { 1394 | "version": "2.1.0", 1395 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1396 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 1397 | }, 1398 | "node_modules/fast-levenshtein": { 1399 | "version": "2.0.6", 1400 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1401 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" 1402 | }, 1403 | "node_modules/fastq": { 1404 | "version": "1.13.0", 1405 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1406 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1407 | "dependencies": { 1408 | "reusify": "^1.0.4" 1409 | } 1410 | }, 1411 | "node_modules/file-entry-cache": { 1412 | "version": "6.0.1", 1413 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 1414 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 1415 | "dependencies": { 1416 | "flat-cache": "^3.0.4" 1417 | }, 1418 | "engines": { 1419 | "node": "^10.12.0 || >=12.0.0" 1420 | } 1421 | }, 1422 | "node_modules/fill-range": { 1423 | "version": "7.0.1", 1424 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1425 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1426 | "dependencies": { 1427 | "to-regex-range": "^5.0.1" 1428 | }, 1429 | "engines": { 1430 | "node": ">=8" 1431 | } 1432 | }, 1433 | "node_modules/find-up": { 1434 | "version": "5.0.0", 1435 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1436 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1437 | "dependencies": { 1438 | "locate-path": "^6.0.0", 1439 | "path-exists": "^4.0.0" 1440 | }, 1441 | "engines": { 1442 | "node": ">=10" 1443 | }, 1444 | "funding": { 1445 | "url": "https://github.com/sponsors/sindresorhus" 1446 | } 1447 | }, 1448 | "node_modules/flat-cache": { 1449 | "version": "3.0.4", 1450 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1451 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1452 | "dependencies": { 1453 | "flatted": "^3.1.0", 1454 | "rimraf": "^3.0.2" 1455 | }, 1456 | "engines": { 1457 | "node": "^10.12.0 || >=12.0.0" 1458 | } 1459 | }, 1460 | "node_modules/flatted": { 1461 | "version": "3.2.7", 1462 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 1463 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" 1464 | }, 1465 | "node_modules/fs.realpath": { 1466 | "version": "1.0.0", 1467 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1468 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1469 | }, 1470 | "node_modules/functional-red-black-tree": { 1471 | "version": "1.0.1", 1472 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1473 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" 1474 | }, 1475 | "node_modules/glob": { 1476 | "version": "7.1.3", 1477 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 1478 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 1479 | "dependencies": { 1480 | "fs.realpath": "^1.0.0", 1481 | "inflight": "^1.0.4", 1482 | "inherits": "2", 1483 | "minimatch": "^3.0.4", 1484 | "once": "^1.3.0", 1485 | "path-is-absolute": "^1.0.0" 1486 | }, 1487 | "engines": { 1488 | "node": "*" 1489 | } 1490 | }, 1491 | "node_modules/glob-parent": { 1492 | "version": "6.0.2", 1493 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1494 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1495 | "dependencies": { 1496 | "is-glob": "^4.0.3" 1497 | }, 1498 | "engines": { 1499 | "node": ">=10.13.0" 1500 | } 1501 | }, 1502 | "node_modules/globals": { 1503 | "version": "13.17.0", 1504 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", 1505 | "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", 1506 | "dependencies": { 1507 | "type-fest": "^0.20.2" 1508 | }, 1509 | "engines": { 1510 | "node": ">=8" 1511 | }, 1512 | "funding": { 1513 | "url": "https://github.com/sponsors/sindresorhus" 1514 | } 1515 | }, 1516 | "node_modules/globby": { 1517 | "version": "11.1.0", 1518 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 1519 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 1520 | "dependencies": { 1521 | "array-union": "^2.1.0", 1522 | "dir-glob": "^3.0.1", 1523 | "fast-glob": "^3.2.9", 1524 | "ignore": "^5.2.0", 1525 | "merge2": "^1.4.1", 1526 | "slash": "^3.0.0" 1527 | }, 1528 | "engines": { 1529 | "node": ">=10" 1530 | }, 1531 | "funding": { 1532 | "url": "https://github.com/sponsors/sindresorhus" 1533 | } 1534 | }, 1535 | "node_modules/graceful-fs": { 1536 | "version": "4.1.15", 1537 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", 1538 | "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", 1539 | "dev": true 1540 | }, 1541 | "node_modules/graceful-readlink": { 1542 | "version": "1.0.1", 1543 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 1544 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" 1545 | }, 1546 | "node_modules/grapheme-splitter": { 1547 | "version": "1.0.4", 1548 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 1549 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" 1550 | }, 1551 | "node_modules/has-flag": { 1552 | "version": "3.0.0", 1553 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1554 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1555 | "dev": true, 1556 | "engines": { 1557 | "node": ">=4" 1558 | } 1559 | }, 1560 | "node_modules/iconv-lite": { 1561 | "version": "0.4.24", 1562 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1563 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1564 | "dependencies": { 1565 | "safer-buffer": ">= 2.1.2 < 3" 1566 | }, 1567 | "engines": { 1568 | "node": ">=0.10.0" 1569 | } 1570 | }, 1571 | "node_modules/ignore": { 1572 | "version": "5.2.0", 1573 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 1574 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 1575 | "engines": { 1576 | "node": ">= 4" 1577 | } 1578 | }, 1579 | "node_modules/import-fresh": { 1580 | "version": "3.3.0", 1581 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1582 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1583 | "dependencies": { 1584 | "parent-module": "^1.0.0", 1585 | "resolve-from": "^4.0.0" 1586 | }, 1587 | "engines": { 1588 | "node": ">=6" 1589 | }, 1590 | "funding": { 1591 | "url": "https://github.com/sponsors/sindresorhus" 1592 | } 1593 | }, 1594 | "node_modules/imurmurhash": { 1595 | "version": "0.1.4", 1596 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1597 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 1598 | "engines": { 1599 | "node": ">=0.8.19" 1600 | } 1601 | }, 1602 | "node_modules/inflight": { 1603 | "version": "1.0.6", 1604 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1605 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1606 | "dependencies": { 1607 | "once": "^1.3.0", 1608 | "wrappy": "1" 1609 | } 1610 | }, 1611 | "node_modules/inherits": { 1612 | "version": "2.0.3", 1613 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1614 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1615 | }, 1616 | "node_modules/is-extglob": { 1617 | "version": "2.1.1", 1618 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1619 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1620 | "engines": { 1621 | "node": ">=0.10.0" 1622 | } 1623 | }, 1624 | "node_modules/is-glob": { 1625 | "version": "4.0.3", 1626 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1627 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1628 | "dependencies": { 1629 | "is-extglob": "^2.1.1" 1630 | }, 1631 | "engines": { 1632 | "node": ">=0.10.0" 1633 | } 1634 | }, 1635 | "node_modules/is-number": { 1636 | "version": "7.0.0", 1637 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1638 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1639 | "engines": { 1640 | "node": ">=0.12.0" 1641 | } 1642 | }, 1643 | "node_modules/isarray": { 1644 | "version": "1.0.0", 1645 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1646 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1647 | "dev": true 1648 | }, 1649 | "node_modules/isexe": { 1650 | "version": "2.0.0", 1651 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1652 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 1653 | }, 1654 | "node_modules/js-sdsl": { 1655 | "version": "4.1.4", 1656 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", 1657 | "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==" 1658 | }, 1659 | "node_modules/json-schema-traverse": { 1660 | "version": "0.4.1", 1661 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1662 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 1663 | }, 1664 | "node_modules/json-stable-stringify-without-jsonify": { 1665 | "version": "1.0.1", 1666 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1667 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" 1668 | }, 1669 | "node_modules/json5": { 1670 | "version": "1.0.1", 1671 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", 1672 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", 1673 | "dev": true, 1674 | "dependencies": { 1675 | "minimist": "^1.2.0" 1676 | }, 1677 | "bin": { 1678 | "json5": "lib/cli.js" 1679 | } 1680 | }, 1681 | "node_modules/levn": { 1682 | "version": "0.4.1", 1683 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1684 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1685 | "dependencies": { 1686 | "prelude-ls": "^1.2.1", 1687 | "type-check": "~0.4.0" 1688 | }, 1689 | "engines": { 1690 | "node": ">= 0.8.0" 1691 | } 1692 | }, 1693 | "node_modules/loader-utils": { 1694 | "version": "1.4.0", 1695 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", 1696 | "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", 1697 | "dev": true, 1698 | "dependencies": { 1699 | "big.js": "^5.2.2", 1700 | "emojis-list": "^3.0.0", 1701 | "json5": "^1.0.1" 1702 | }, 1703 | "engines": { 1704 | "node": ">=4.0.0" 1705 | } 1706 | }, 1707 | "node_modules/locate-path": { 1708 | "version": "6.0.0", 1709 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1710 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1711 | "dependencies": { 1712 | "p-locate": "^5.0.0" 1713 | }, 1714 | "engines": { 1715 | "node": ">=10" 1716 | }, 1717 | "funding": { 1718 | "url": "https://github.com/sponsors/sindresorhus" 1719 | } 1720 | }, 1721 | "node_modules/lodash": { 1722 | "version": "4.17.21", 1723 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1724 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 1725 | }, 1726 | "node_modules/lodash.merge": { 1727 | "version": "4.6.2", 1728 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 1729 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" 1730 | }, 1731 | "node_modules/lru-cache": { 1732 | "version": "6.0.0", 1733 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1734 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1735 | "dependencies": { 1736 | "yallist": "^4.0.0" 1737 | }, 1738 | "engines": { 1739 | "node": ">=10" 1740 | } 1741 | }, 1742 | "node_modules/memory-fs": { 1743 | "version": "0.5.0", 1744 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", 1745 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", 1746 | "dev": true, 1747 | "dependencies": { 1748 | "errno": "^0.1.3", 1749 | "readable-stream": "^2.0.1" 1750 | }, 1751 | "engines": { 1752 | "node": ">=4.3.0 <5.0.0 || >=5.10" 1753 | } 1754 | }, 1755 | "node_modules/merge2": { 1756 | "version": "1.4.1", 1757 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1758 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1759 | "engines": { 1760 | "node": ">= 8" 1761 | } 1762 | }, 1763 | "node_modules/micromatch": { 1764 | "version": "4.0.5", 1765 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1766 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1767 | "dependencies": { 1768 | "braces": "^3.0.2", 1769 | "picomatch": "^2.3.1" 1770 | }, 1771 | "engines": { 1772 | "node": ">=8.6" 1773 | } 1774 | }, 1775 | "node_modules/minimatch": { 1776 | "version": "3.1.2", 1777 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1778 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1779 | "dependencies": { 1780 | "brace-expansion": "^1.1.7" 1781 | }, 1782 | "engines": { 1783 | "node": "*" 1784 | } 1785 | }, 1786 | "node_modules/minimist": { 1787 | "version": "1.2.6", 1788 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1789 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1790 | "dev": true 1791 | }, 1792 | "node_modules/ms": { 1793 | "version": "2.1.2", 1794 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1795 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1796 | }, 1797 | "node_modules/natural-compare": { 1798 | "version": "1.4.0", 1799 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1800 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" 1801 | }, 1802 | "node_modules/once": { 1803 | "version": "1.4.0", 1804 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1805 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1806 | "dependencies": { 1807 | "wrappy": "1" 1808 | } 1809 | }, 1810 | "node_modules/optionator": { 1811 | "version": "0.9.1", 1812 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1813 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1814 | "dependencies": { 1815 | "deep-is": "^0.1.3", 1816 | "fast-levenshtein": "^2.0.6", 1817 | "levn": "^0.4.1", 1818 | "prelude-ls": "^1.2.1", 1819 | "type-check": "^0.4.0", 1820 | "word-wrap": "^1.2.3" 1821 | }, 1822 | "engines": { 1823 | "node": ">= 0.8.0" 1824 | } 1825 | }, 1826 | "node_modules/p-limit": { 1827 | "version": "3.1.0", 1828 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1829 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1830 | "dependencies": { 1831 | "yocto-queue": "^0.1.0" 1832 | }, 1833 | "engines": { 1834 | "node": ">=10" 1835 | }, 1836 | "funding": { 1837 | "url": "https://github.com/sponsors/sindresorhus" 1838 | } 1839 | }, 1840 | "node_modules/p-locate": { 1841 | "version": "5.0.0", 1842 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1843 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1844 | "dependencies": { 1845 | "p-limit": "^3.0.2" 1846 | }, 1847 | "engines": { 1848 | "node": ">=10" 1849 | }, 1850 | "funding": { 1851 | "url": "https://github.com/sponsors/sindresorhus" 1852 | } 1853 | }, 1854 | "node_modules/parent-module": { 1855 | "version": "1.0.1", 1856 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1857 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1858 | "dependencies": { 1859 | "callsites": "^3.0.0" 1860 | }, 1861 | "engines": { 1862 | "node": ">=6" 1863 | } 1864 | }, 1865 | "node_modules/path-exists": { 1866 | "version": "4.0.0", 1867 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1868 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1869 | "engines": { 1870 | "node": ">=8" 1871 | } 1872 | }, 1873 | "node_modules/path-is-absolute": { 1874 | "version": "1.0.1", 1875 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1876 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1877 | "engines": { 1878 | "node": ">=0.10.0" 1879 | } 1880 | }, 1881 | "node_modules/path-key": { 1882 | "version": "3.1.1", 1883 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1884 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1885 | "engines": { 1886 | "node": ">=8" 1887 | } 1888 | }, 1889 | "node_modules/path-type": { 1890 | "version": "4.0.0", 1891 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1892 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1893 | "engines": { 1894 | "node": ">=8" 1895 | } 1896 | }, 1897 | "node_modules/picomatch": { 1898 | "version": "2.3.1", 1899 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1900 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1901 | "engines": { 1902 | "node": ">=8.6" 1903 | }, 1904 | "funding": { 1905 | "url": "https://github.com/sponsors/jonschlinkert" 1906 | } 1907 | }, 1908 | "node_modules/powerbi-visuals-api": { 1909 | "version": "4.7.0", 1910 | "resolved": "https://registry.npmjs.org/powerbi-visuals-api/-/powerbi-visuals-api-4.7.0.tgz", 1911 | "integrity": "sha512-Gyha3jkwXixUv0PVd+bSbZR/yGx3xL5IzHE9h0F4snVC7DyAWnGRCIejJgTGUfKyqcVQZjpRerBWxbrGB6Edlw==", 1912 | "dependencies": { 1913 | "semver": "^7.3.5" 1914 | } 1915 | }, 1916 | "node_modules/powerbi-visuals-utils-dataviewutils": { 1917 | "version": "2.2.1", 1918 | "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-2.2.1.tgz", 1919 | "integrity": "sha512-Ai+TM1gj6DpAsNbn0IhOwUCAPfcaH4Z7y6Ow2OwAfbxNpELwQSF0S8D+vlJN2AoqV/ruQhnEngUC88mMFNyvJQ==" 1920 | }, 1921 | "node_modules/prelude-ls": { 1922 | "version": "1.2.1", 1923 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1924 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1925 | "engines": { 1926 | "node": ">= 0.8.0" 1927 | } 1928 | }, 1929 | "node_modules/process-nextick-args": { 1930 | "version": "1.0.7", 1931 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1932 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 1933 | "dev": true 1934 | }, 1935 | "node_modules/prr": { 1936 | "version": "1.0.1", 1937 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 1938 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 1939 | "dev": true 1940 | }, 1941 | "node_modules/punycode": { 1942 | "version": "2.1.1", 1943 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1944 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1945 | "engines": { 1946 | "node": ">=6" 1947 | } 1948 | }, 1949 | "node_modules/queue-microtask": { 1950 | "version": "1.2.3", 1951 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1952 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1953 | "funding": [ 1954 | { 1955 | "type": "github", 1956 | "url": "https://github.com/sponsors/feross" 1957 | }, 1958 | { 1959 | "type": "patreon", 1960 | "url": "https://www.patreon.com/feross" 1961 | }, 1962 | { 1963 | "type": "consulting", 1964 | "url": "https://feross.org/support" 1965 | } 1966 | ] 1967 | }, 1968 | "node_modules/readable-stream": { 1969 | "version": "2.0.6", 1970 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", 1971 | "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", 1972 | "dev": true, 1973 | "dependencies": { 1974 | "core-util-is": "~1.0.0", 1975 | "inherits": "~2.0.1", 1976 | "isarray": "~1.0.0", 1977 | "process-nextick-args": "~1.0.6", 1978 | "string_decoder": "~0.10.x", 1979 | "util-deprecate": "~1.0.1" 1980 | } 1981 | }, 1982 | "node_modules/regexpp": { 1983 | "version": "3.2.0", 1984 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 1985 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 1986 | "engines": { 1987 | "node": ">=8" 1988 | }, 1989 | "funding": { 1990 | "url": "https://github.com/sponsors/mysticatea" 1991 | } 1992 | }, 1993 | "node_modules/resolve-from": { 1994 | "version": "4.0.0", 1995 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1996 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1997 | "engines": { 1998 | "node": ">=4" 1999 | } 2000 | }, 2001 | "node_modules/reusify": { 2002 | "version": "1.0.4", 2003 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2004 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2005 | "engines": { 2006 | "iojs": ">=1.0.0", 2007 | "node": ">=0.10.0" 2008 | } 2009 | }, 2010 | "node_modules/rimraf": { 2011 | "version": "3.0.2", 2012 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2013 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2014 | "dependencies": { 2015 | "glob": "^7.1.3" 2016 | }, 2017 | "bin": { 2018 | "rimraf": "bin.js" 2019 | }, 2020 | "funding": { 2021 | "url": "https://github.com/sponsors/isaacs" 2022 | } 2023 | }, 2024 | "node_modules/run-parallel": { 2025 | "version": "1.2.0", 2026 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2027 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2028 | "funding": [ 2029 | { 2030 | "type": "github", 2031 | "url": "https://github.com/sponsors/feross" 2032 | }, 2033 | { 2034 | "type": "patreon", 2035 | "url": "https://www.patreon.com/feross" 2036 | }, 2037 | { 2038 | "type": "consulting", 2039 | "url": "https://feross.org/support" 2040 | } 2041 | ], 2042 | "dependencies": { 2043 | "queue-microtask": "^1.2.2" 2044 | } 2045 | }, 2046 | "node_modules/rw": { 2047 | "version": "1.3.3", 2048 | "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", 2049 | "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" 2050 | }, 2051 | "node_modules/safer-buffer": { 2052 | "version": "2.1.2", 2053 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2054 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2055 | }, 2056 | "node_modules/semver": { 2057 | "version": "7.3.7", 2058 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 2059 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 2060 | "dependencies": { 2061 | "lru-cache": "^6.0.0" 2062 | }, 2063 | "bin": { 2064 | "semver": "bin/semver.js" 2065 | }, 2066 | "engines": { 2067 | "node": ">=10" 2068 | } 2069 | }, 2070 | "node_modules/shebang-command": { 2071 | "version": "2.0.0", 2072 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2073 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2074 | "dependencies": { 2075 | "shebang-regex": "^3.0.0" 2076 | }, 2077 | "engines": { 2078 | "node": ">=8" 2079 | } 2080 | }, 2081 | "node_modules/shebang-regex": { 2082 | "version": "3.0.0", 2083 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2084 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2085 | "engines": { 2086 | "node": ">=8" 2087 | } 2088 | }, 2089 | "node_modules/slash": { 2090 | "version": "3.0.0", 2091 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2092 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2093 | "engines": { 2094 | "node": ">=8" 2095 | } 2096 | }, 2097 | "node_modules/string_decoder": { 2098 | "version": "0.10.31", 2099 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 2100 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 2101 | "dev": true 2102 | }, 2103 | "node_modules/strip-ansi": { 2104 | "version": "6.0.1", 2105 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2106 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2107 | "dependencies": { 2108 | "ansi-regex": "^5.0.1" 2109 | }, 2110 | "engines": { 2111 | "node": ">=8" 2112 | } 2113 | }, 2114 | "node_modules/strip-json-comments": { 2115 | "version": "3.1.1", 2116 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2117 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2118 | "engines": { 2119 | "node": ">=8" 2120 | }, 2121 | "funding": { 2122 | "url": "https://github.com/sponsors/sindresorhus" 2123 | } 2124 | }, 2125 | "node_modules/supports-color": { 2126 | "version": "7.2.0", 2127 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2128 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2129 | "dependencies": { 2130 | "has-flag": "^4.0.0" 2131 | }, 2132 | "engines": { 2133 | "node": ">=8" 2134 | } 2135 | }, 2136 | "node_modules/supports-color/node_modules/has-flag": { 2137 | "version": "4.0.0", 2138 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2139 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2140 | "engines": { 2141 | "node": ">=8" 2142 | } 2143 | }, 2144 | "node_modules/tapable": { 2145 | "version": "1.1.3", 2146 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", 2147 | "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", 2148 | "dev": true, 2149 | "engines": { 2150 | "node": ">=6" 2151 | } 2152 | }, 2153 | "node_modules/text-table": { 2154 | "version": "0.2.0", 2155 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2156 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" 2157 | }, 2158 | "node_modules/to-regex-range": { 2159 | "version": "5.0.1", 2160 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2161 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2162 | "dependencies": { 2163 | "is-number": "^7.0.0" 2164 | }, 2165 | "engines": { 2166 | "node": ">=8.0" 2167 | } 2168 | }, 2169 | "node_modules/ts-loader": { 2170 | "version": "6.1.0", 2171 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.1.0.tgz", 2172 | "integrity": "sha512-7JedeOu2rsYHQDEr2fwmMozABwbQTZXEaEMZPSIWG7gpzRefOLJCqwdazcegHtyaxp04PeEgs/b0m08WMpnIzQ==", 2173 | "dev": true, 2174 | "dependencies": { 2175 | "chalk": "^2.3.0", 2176 | "enhanced-resolve": "^4.0.0", 2177 | "loader-utils": "^1.0.2", 2178 | "micromatch": "^4.0.0", 2179 | "semver": "^6.0.0" 2180 | }, 2181 | "engines": { 2182 | "node": ">=8.6" 2183 | }, 2184 | "peerDependencies": { 2185 | "typescript": "*" 2186 | } 2187 | }, 2188 | "node_modules/ts-loader/node_modules/ansi-styles": { 2189 | "version": "3.2.1", 2190 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2191 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2192 | "dev": true, 2193 | "dependencies": { 2194 | "color-convert": "^1.9.0" 2195 | }, 2196 | "engines": { 2197 | "node": ">=4" 2198 | } 2199 | }, 2200 | "node_modules/ts-loader/node_modules/chalk": { 2201 | "version": "2.4.2", 2202 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2203 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2204 | "dev": true, 2205 | "dependencies": { 2206 | "ansi-styles": "^3.2.1", 2207 | "escape-string-regexp": "^1.0.5", 2208 | "supports-color": "^5.3.0" 2209 | }, 2210 | "engines": { 2211 | "node": ">=4" 2212 | } 2213 | }, 2214 | "node_modules/ts-loader/node_modules/semver": { 2215 | "version": "6.3.0", 2216 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2217 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2218 | "dev": true, 2219 | "bin": { 2220 | "semver": "bin/semver.js" 2221 | } 2222 | }, 2223 | "node_modules/ts-loader/node_modules/supports-color": { 2224 | "version": "5.5.0", 2225 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2226 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2227 | "dev": true, 2228 | "dependencies": { 2229 | "has-flag": "^3.0.0" 2230 | }, 2231 | "engines": { 2232 | "node": ">=4" 2233 | } 2234 | }, 2235 | "node_modules/tslib": { 2236 | "version": "1.14.1", 2237 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 2238 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 2239 | }, 2240 | "node_modules/type-check": { 2241 | "version": "0.4.0", 2242 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2243 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2244 | "dependencies": { 2245 | "prelude-ls": "^1.2.1" 2246 | }, 2247 | "engines": { 2248 | "node": ">= 0.8.0" 2249 | } 2250 | }, 2251 | "node_modules/type-fest": { 2252 | "version": "0.20.2", 2253 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2254 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2255 | "engines": { 2256 | "node": ">=10" 2257 | }, 2258 | "funding": { 2259 | "url": "https://github.com/sponsors/sindresorhus" 2260 | } 2261 | }, 2262 | "node_modules/typescript": { 2263 | "version": "3.6.3", 2264 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz", 2265 | "integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==", 2266 | "bin": { 2267 | "tsc": "bin/tsc", 2268 | "tsserver": "bin/tsserver" 2269 | }, 2270 | "engines": { 2271 | "node": ">=4.2.0" 2272 | } 2273 | }, 2274 | "node_modules/uri-js": { 2275 | "version": "4.4.1", 2276 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2277 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2278 | "dependencies": { 2279 | "punycode": "^2.1.0" 2280 | } 2281 | }, 2282 | "node_modules/util-deprecate": { 2283 | "version": "1.0.2", 2284 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2285 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2286 | "dev": true 2287 | }, 2288 | "node_modules/which": { 2289 | "version": "2.0.2", 2290 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2291 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2292 | "dependencies": { 2293 | "isexe": "^2.0.0" 2294 | }, 2295 | "bin": { 2296 | "node-which": "bin/node-which" 2297 | }, 2298 | "engines": { 2299 | "node": ">= 8" 2300 | } 2301 | }, 2302 | "node_modules/word-wrap": { 2303 | "version": "1.2.3", 2304 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 2305 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 2306 | "engines": { 2307 | "node": ">=0.10.0" 2308 | } 2309 | }, 2310 | "node_modules/wrappy": { 2311 | "version": "1.0.2", 2312 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2313 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2314 | }, 2315 | "node_modules/yallist": { 2316 | "version": "4.0.0", 2317 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2318 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 2319 | }, 2320 | "node_modules/yocto-queue": { 2321 | "version": "0.1.0", 2322 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2323 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2324 | "engines": { 2325 | "node": ">=10" 2326 | }, 2327 | "funding": { 2328 | "url": "https://github.com/sponsors/sindresorhus" 2329 | } 2330 | } 2331 | }, 2332 | "dependencies": { 2333 | "@eslint/eslintrc": { 2334 | "version": "1.3.2", 2335 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", 2336 | "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", 2337 | "requires": { 2338 | "ajv": "^6.12.4", 2339 | "debug": "^4.3.2", 2340 | "espree": "^9.4.0", 2341 | "globals": "^13.15.0", 2342 | "ignore": "^5.2.0", 2343 | "import-fresh": "^3.2.1", 2344 | "js-yaml": "^4.1.0", 2345 | "minimatch": "^3.1.2", 2346 | "strip-json-comments": "^3.1.1" 2347 | }, 2348 | "dependencies": { 2349 | "argparse": { 2350 | "version": "2.0.1", 2351 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2352 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 2353 | }, 2354 | "js-yaml": { 2355 | "version": "4.1.0", 2356 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2357 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2358 | "requires": { 2359 | "argparse": "^2.0.1" 2360 | } 2361 | } 2362 | } 2363 | }, 2364 | "@humanwhocodes/config-array": { 2365 | "version": "0.10.4", 2366 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", 2367 | "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", 2368 | "requires": { 2369 | "@humanwhocodes/object-schema": "^1.2.1", 2370 | "debug": "^4.1.1", 2371 | "minimatch": "^3.0.4" 2372 | } 2373 | }, 2374 | "@humanwhocodes/gitignore-to-minimatch": { 2375 | "version": "1.0.2", 2376 | "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", 2377 | "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==" 2378 | }, 2379 | "@humanwhocodes/module-importer": { 2380 | "version": "1.0.1", 2381 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 2382 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" 2383 | }, 2384 | "@humanwhocodes/object-schema": { 2385 | "version": "1.2.1", 2386 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 2387 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" 2388 | }, 2389 | "@nodelib/fs.scandir": { 2390 | "version": "2.1.5", 2391 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2392 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2393 | "requires": { 2394 | "@nodelib/fs.stat": "2.0.5", 2395 | "run-parallel": "^1.1.9" 2396 | } 2397 | }, 2398 | "@nodelib/fs.stat": { 2399 | "version": "2.0.5", 2400 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2401 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 2402 | }, 2403 | "@nodelib/fs.walk": { 2404 | "version": "1.2.8", 2405 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2406 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2407 | "requires": { 2408 | "@nodelib/fs.scandir": "2.1.5", 2409 | "fastq": "^1.6.0" 2410 | } 2411 | }, 2412 | "@types/d3": { 2413 | "version": "5.7.2", 2414 | "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.7.2.tgz", 2415 | "integrity": "sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw==", 2416 | "requires": { 2417 | "@types/d3-array": "^1", 2418 | "@types/d3-axis": "*", 2419 | "@types/d3-brush": "*", 2420 | "@types/d3-chord": "*", 2421 | "@types/d3-collection": "*", 2422 | "@types/d3-color": "*", 2423 | "@types/d3-contour": "*", 2424 | "@types/d3-dispatch": "*", 2425 | "@types/d3-drag": "*", 2426 | "@types/d3-dsv": "*", 2427 | "@types/d3-ease": "*", 2428 | "@types/d3-fetch": "*", 2429 | "@types/d3-force": "*", 2430 | "@types/d3-format": "*", 2431 | "@types/d3-geo": "*", 2432 | "@types/d3-hierarchy": "*", 2433 | "@types/d3-interpolate": "*", 2434 | "@types/d3-path": "*", 2435 | "@types/d3-polygon": "*", 2436 | "@types/d3-quadtree": "*", 2437 | "@types/d3-random": "*", 2438 | "@types/d3-scale": "*", 2439 | "@types/d3-scale-chromatic": "*", 2440 | "@types/d3-selection": "*", 2441 | "@types/d3-shape": "*", 2442 | "@types/d3-time": "*", 2443 | "@types/d3-time-format": "*", 2444 | "@types/d3-timer": "*", 2445 | "@types/d3-transition": "*", 2446 | "@types/d3-voronoi": "*", 2447 | "@types/d3-zoom": "*" 2448 | } 2449 | }, 2450 | "@types/d3-array": { 2451 | "version": "1.2.9", 2452 | "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.9.tgz", 2453 | "integrity": "sha512-E/7RgPr2ylT5dWG0CswMi9NpFcjIEDqLcUSBgNHe/EMahfqYaTx4zhcggG3khqoEB/leY4Vl6nTSbwLUPjXceA==" 2454 | }, 2455 | "@types/d3-axis": { 2456 | "version": "3.0.1", 2457 | "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.1.tgz", 2458 | "integrity": "sha512-zji/iIbdd49g9WN0aIsGcwcTBUkgLsCSwB+uH+LPVDAiKWENMtI3cJEWt+7/YYwelMoZmbBfzA3qCdrZ2XFNnw==", 2459 | "requires": { 2460 | "@types/d3-selection": "*" 2461 | } 2462 | }, 2463 | "@types/d3-brush": { 2464 | "version": "3.0.1", 2465 | "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.1.tgz", 2466 | "integrity": "sha512-B532DozsiTuQMHu2YChdZU0qsFJSio3Q6jmBYGYNp3gMDzBmuFFgPt9qKA4VYuLZMp4qc6eX7IUFUEsvHiXZAw==", 2467 | "requires": { 2468 | "@types/d3-selection": "*" 2469 | } 2470 | }, 2471 | "@types/d3-chord": { 2472 | "version": "3.0.1", 2473 | "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.1.tgz", 2474 | "integrity": "sha512-eQfcxIHrg7V++W8Qxn6QkqBNBokyhdWSAS73AbkbMzvLQmVVBviknoz2SRS/ZJdIOmhcmmdCRE/NFOm28Z1AMw==" 2475 | }, 2476 | "@types/d3-collection": { 2477 | "version": "1.0.10", 2478 | "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.10.tgz", 2479 | "integrity": "sha512-54Fdv8u5JbuXymtmXm2SYzi1x/Svt+jfWBU5junkhrCewL92VjqtCBDn97coBRVwVFmYNnVTNDyV8gQyPYfm+A==" 2480 | }, 2481 | "@types/d3-color": { 2482 | "version": "3.1.0", 2483 | "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", 2484 | "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==" 2485 | }, 2486 | "@types/d3-contour": { 2487 | "version": "3.0.1", 2488 | "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.1.tgz", 2489 | "integrity": "sha512-C3zfBrhHZvrpAAK3YXqLWVAGo87A4SvJ83Q/zVJ8rFWJdKejUnDYaWZPkA8K84kb2vDA/g90LTQAz7etXcgoQQ==", 2490 | "requires": { 2491 | "@types/d3-array": "*", 2492 | "@types/geojson": "*" 2493 | } 2494 | }, 2495 | "@types/d3-dispatch": { 2496 | "version": "3.0.1", 2497 | "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.1.tgz", 2498 | "integrity": "sha512-NhxMn3bAkqhjoxabVJWKryhnZXXYYVQxaBnbANu0O94+O/nX9qSjrA1P1jbAQJxJf+VC72TxDX/YJcKue5bRqw==" 2499 | }, 2500 | "@types/d3-drag": { 2501 | "version": "3.0.1", 2502 | "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.1.tgz", 2503 | "integrity": "sha512-o1Va7bLwwk6h03+nSM8dpaGEYnoIG19P0lKqlic8Un36ymh9NSkNFX1yiXMKNMx8rJ0Kfnn2eovuFaL6Jvj0zA==", 2504 | "requires": { 2505 | "@types/d3-selection": "*" 2506 | } 2507 | }, 2508 | "@types/d3-dsv": { 2509 | "version": "3.0.0", 2510 | "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.0.tgz", 2511 | "integrity": "sha512-o0/7RlMl9p5n6FQDptuJVMxDf/7EDEv2SYEO/CwdG2tr1hTfUVi0Iavkk2ax+VpaQ/1jVhpnj5rq1nj8vwhn2A==" 2512 | }, 2513 | "@types/d3-ease": { 2514 | "version": "3.0.0", 2515 | "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", 2516 | "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==" 2517 | }, 2518 | "@types/d3-fetch": { 2519 | "version": "3.0.1", 2520 | "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.1.tgz", 2521 | "integrity": "sha512-toZJNOwrOIqz7Oh6Q7l2zkaNfXkfR7mFSJvGvlD/Ciq/+SQ39d5gynHJZ/0fjt83ec3WL7+u3ssqIijQtBISsw==", 2522 | "requires": { 2523 | "@types/d3-dsv": "*" 2524 | } 2525 | }, 2526 | "@types/d3-force": { 2527 | "version": "3.0.3", 2528 | "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.3.tgz", 2529 | "integrity": "sha512-z8GteGVfkWJMKsx6hwC3SiTSLspL98VNpmvLpEFJQpZPq6xpA1I8HNBDNSpukfK0Vb0l64zGFhzunLgEAcBWSA==" 2530 | }, 2531 | "@types/d3-format": { 2532 | "version": "3.0.1", 2533 | "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz", 2534 | "integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==" 2535 | }, 2536 | "@types/d3-geo": { 2537 | "version": "3.0.2", 2538 | "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.2.tgz", 2539 | "integrity": "sha512-DbqK7MLYA8LpyHQfv6Klz0426bQEf7bRTvhMy44sNGVyZoWn//B0c+Qbeg8Osi2Obdc9BLLXYAKpyWege2/7LQ==", 2540 | "requires": { 2541 | "@types/geojson": "*" 2542 | } 2543 | }, 2544 | "@types/d3-hierarchy": { 2545 | "version": "3.1.0", 2546 | "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.0.tgz", 2547 | "integrity": "sha512-g+sey7qrCa3UbsQlMZZBOHROkFqx7KZKvUpRzI/tAp/8erZWpYq7FgNKvYwebi2LaEiVs1klhUfd3WCThxmmWQ==" 2548 | }, 2549 | "@types/d3-interpolate": { 2550 | "version": "3.0.1", 2551 | "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", 2552 | "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", 2553 | "requires": { 2554 | "@types/d3-color": "*" 2555 | } 2556 | }, 2557 | "@types/d3-path": { 2558 | "version": "3.0.0", 2559 | "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz", 2560 | "integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==" 2561 | }, 2562 | "@types/d3-polygon": { 2563 | "version": "3.0.0", 2564 | "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.0.tgz", 2565 | "integrity": "sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==" 2566 | }, 2567 | "@types/d3-quadtree": { 2568 | "version": "3.0.2", 2569 | "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz", 2570 | "integrity": "sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==" 2571 | }, 2572 | "@types/d3-random": { 2573 | "version": "3.0.1", 2574 | "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.1.tgz", 2575 | "integrity": "sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==" 2576 | }, 2577 | "@types/d3-scale": { 2578 | "version": "4.0.2", 2579 | "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.2.tgz", 2580 | "integrity": "sha512-Yk4htunhPAwN0XGlIwArRomOjdoBFXC3+kCxK2Ubg7I9shQlVSJy/pG/Ht5ASN+gdMIalpk8TJ5xV74jFsetLA==", 2581 | "requires": { 2582 | "@types/d3-time": "*" 2583 | } 2584 | }, 2585 | "@types/d3-scale-chromatic": { 2586 | "version": "3.0.0", 2587 | "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", 2588 | "integrity": "sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==" 2589 | }, 2590 | "@types/d3-selection": { 2591 | "version": "3.0.3", 2592 | "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.3.tgz", 2593 | "integrity": "sha512-Mw5cf6nlW1MlefpD9zrshZ+DAWL4IQ5LnWfRheW6xwsdaWOb6IRRu2H7XPAQcyXEx1D7XQWgdoKR83ui1/HlEA==" 2594 | }, 2595 | "@types/d3-shape": { 2596 | "version": "3.1.0", 2597 | "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.0.tgz", 2598 | "integrity": "sha512-jYIYxFFA9vrJ8Hd4Se83YI6XF+gzDL1aC5DCsldai4XYYiVNdhtpGbA/GM6iyQ8ayhSp3a148LY34hy7A4TxZA==", 2599 | "requires": { 2600 | "@types/d3-path": "*" 2601 | } 2602 | }, 2603 | "@types/d3-time": { 2604 | "version": "3.0.0", 2605 | "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", 2606 | "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==" 2607 | }, 2608 | "@types/d3-time-format": { 2609 | "version": "4.0.0", 2610 | "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.0.tgz", 2611 | "integrity": "sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==" 2612 | }, 2613 | "@types/d3-timer": { 2614 | "version": "3.0.0", 2615 | "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz", 2616 | "integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==" 2617 | }, 2618 | "@types/d3-transition": { 2619 | "version": "3.0.2", 2620 | "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.2.tgz", 2621 | "integrity": "sha512-jo5o/Rf+/u6uerJ/963Dc39NI16FQzqwOc54bwvksGAdVfvDrqDpVeq95bEvPtBwLCVZutAEyAtmSyEMxN7vxQ==", 2622 | "requires": { 2623 | "@types/d3-selection": "*" 2624 | } 2625 | }, 2626 | "@types/d3-voronoi": { 2627 | "version": "1.1.9", 2628 | "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", 2629 | "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==" 2630 | }, 2631 | "@types/d3-zoom": { 2632 | "version": "3.0.1", 2633 | "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.1.tgz", 2634 | "integrity": "sha512-7s5L9TjfqIYQmQQEUcpMAcBOahem7TRoSO/+Gkz02GbMVuULiZzjF2BOdw291dbO2aNon4m2OdFsRGaCq2caLQ==", 2635 | "requires": { 2636 | "@types/d3-interpolate": "*", 2637 | "@types/d3-selection": "*" 2638 | } 2639 | }, 2640 | "@types/geojson": { 2641 | "version": "7946.0.10", 2642 | "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", 2643 | "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" 2644 | }, 2645 | "@types/json-schema": { 2646 | "version": "7.0.11", 2647 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", 2648 | "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" 2649 | }, 2650 | "@typescript-eslint/eslint-plugin": { 2651 | "version": "5.37.0", 2652 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.37.0.tgz", 2653 | "integrity": "sha512-Fde6W0IafXktz1UlnhGkrrmnnGpAo1kyX7dnyHHVrmwJOn72Oqm3eYtddrpOwwel2W8PAK9F3pIL5S+lfoM0og==", 2654 | "requires": { 2655 | "@typescript-eslint/scope-manager": "5.37.0", 2656 | "@typescript-eslint/type-utils": "5.37.0", 2657 | "@typescript-eslint/utils": "5.37.0", 2658 | "debug": "^4.3.4", 2659 | "functional-red-black-tree": "^1.0.1", 2660 | "ignore": "^5.2.0", 2661 | "regexpp": "^3.2.0", 2662 | "semver": "^7.3.7", 2663 | "tsutils": "^3.21.0" 2664 | }, 2665 | "dependencies": { 2666 | "tsutils": { 2667 | "version": "3.21.0", 2668 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 2669 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 2670 | "requires": { 2671 | "tslib": "^1.8.1" 2672 | } 2673 | } 2674 | } 2675 | }, 2676 | "@typescript-eslint/parser": { 2677 | "version": "5.37.0", 2678 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.37.0.tgz", 2679 | "integrity": "sha512-01VzI/ipYKuaG5PkE5+qyJ6m02fVALmMPY3Qq5BHflDx3y4VobbLdHQkSMg9VPRS4KdNt4oYTMaomFoHonBGAw==", 2680 | "requires": { 2681 | "@typescript-eslint/scope-manager": "5.37.0", 2682 | "@typescript-eslint/types": "5.37.0", 2683 | "@typescript-eslint/typescript-estree": "5.37.0", 2684 | "debug": "^4.3.4" 2685 | } 2686 | }, 2687 | "@typescript-eslint/scope-manager": { 2688 | "version": "5.37.0", 2689 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz", 2690 | "integrity": "sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q==", 2691 | "requires": { 2692 | "@typescript-eslint/types": "5.37.0", 2693 | "@typescript-eslint/visitor-keys": "5.37.0" 2694 | } 2695 | }, 2696 | "@typescript-eslint/type-utils": { 2697 | "version": "5.37.0", 2698 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz", 2699 | "integrity": "sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ==", 2700 | "requires": { 2701 | "@typescript-eslint/typescript-estree": "5.37.0", 2702 | "@typescript-eslint/utils": "5.37.0", 2703 | "debug": "^4.3.4", 2704 | "tsutils": "^3.21.0" 2705 | }, 2706 | "dependencies": { 2707 | "tsutils": { 2708 | "version": "3.21.0", 2709 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 2710 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 2711 | "requires": { 2712 | "tslib": "^1.8.1" 2713 | } 2714 | } 2715 | } 2716 | }, 2717 | "@typescript-eslint/types": { 2718 | "version": "5.37.0", 2719 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.37.0.tgz", 2720 | "integrity": "sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA==" 2721 | }, 2722 | "@typescript-eslint/typescript-estree": { 2723 | "version": "5.37.0", 2724 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz", 2725 | "integrity": "sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA==", 2726 | "requires": { 2727 | "@typescript-eslint/types": "5.37.0", 2728 | "@typescript-eslint/visitor-keys": "5.37.0", 2729 | "debug": "^4.3.4", 2730 | "globby": "^11.1.0", 2731 | "is-glob": "^4.0.3", 2732 | "semver": "^7.3.7", 2733 | "tsutils": "^3.21.0" 2734 | }, 2735 | "dependencies": { 2736 | "tsutils": { 2737 | "version": "3.21.0", 2738 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 2739 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 2740 | "requires": { 2741 | "tslib": "^1.8.1" 2742 | } 2743 | } 2744 | } 2745 | }, 2746 | "@typescript-eslint/utils": { 2747 | "version": "5.37.0", 2748 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.37.0.tgz", 2749 | "integrity": "sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ==", 2750 | "requires": { 2751 | "@types/json-schema": "^7.0.9", 2752 | "@typescript-eslint/scope-manager": "5.37.0", 2753 | "@typescript-eslint/types": "5.37.0", 2754 | "@typescript-eslint/typescript-estree": "5.37.0", 2755 | "eslint-scope": "^5.1.1", 2756 | "eslint-utils": "^3.0.0" 2757 | } 2758 | }, 2759 | "@typescript-eslint/visitor-keys": { 2760 | "version": "5.37.0", 2761 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz", 2762 | "integrity": "sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA==", 2763 | "requires": { 2764 | "@typescript-eslint/types": "5.37.0", 2765 | "eslint-visitor-keys": "^3.3.0" 2766 | } 2767 | }, 2768 | "acorn": { 2769 | "version": "8.8.0", 2770 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", 2771 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" 2772 | }, 2773 | "acorn-jsx": { 2774 | "version": "5.3.2", 2775 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2776 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2777 | "requires": {} 2778 | }, 2779 | "ajv": { 2780 | "version": "6.12.6", 2781 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2782 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2783 | "requires": { 2784 | "fast-deep-equal": "^3.1.1", 2785 | "fast-json-stable-stringify": "^2.0.0", 2786 | "json-schema-traverse": "^0.4.1", 2787 | "uri-js": "^4.2.2" 2788 | } 2789 | }, 2790 | "ansi-regex": { 2791 | "version": "5.0.1", 2792 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2793 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 2794 | }, 2795 | "ansi-styles": { 2796 | "version": "4.3.0", 2797 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2798 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2799 | "requires": { 2800 | "color-convert": "^2.0.1" 2801 | }, 2802 | "dependencies": { 2803 | "color-convert": { 2804 | "version": "2.0.1", 2805 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2806 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2807 | "requires": { 2808 | "color-name": "~1.1.4" 2809 | } 2810 | }, 2811 | "color-name": { 2812 | "version": "1.1.4", 2813 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2814 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 2815 | } 2816 | } 2817 | }, 2818 | "array-union": { 2819 | "version": "2.1.0", 2820 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 2821 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" 2822 | }, 2823 | "balanced-match": { 2824 | "version": "1.0.0", 2825 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 2826 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 2827 | }, 2828 | "big.js": { 2829 | "version": "5.2.2", 2830 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", 2831 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", 2832 | "dev": true 2833 | }, 2834 | "brace-expansion": { 2835 | "version": "1.1.11", 2836 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2837 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2838 | "requires": { 2839 | "balanced-match": "^1.0.0", 2840 | "concat-map": "0.0.1" 2841 | } 2842 | }, 2843 | "braces": { 2844 | "version": "3.0.2", 2845 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 2846 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 2847 | "requires": { 2848 | "fill-range": "^7.0.1" 2849 | } 2850 | }, 2851 | "callsites": { 2852 | "version": "3.1.0", 2853 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2854 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 2855 | }, 2856 | "chalk": { 2857 | "version": "4.1.2", 2858 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2859 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2860 | "requires": { 2861 | "ansi-styles": "^4.1.0", 2862 | "supports-color": "^7.1.0" 2863 | } 2864 | }, 2865 | "color-convert": { 2866 | "version": "1.9.3", 2867 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2868 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2869 | "dev": true, 2870 | "requires": { 2871 | "color-name": "1.1.3" 2872 | } 2873 | }, 2874 | "color-name": { 2875 | "version": "1.1.3", 2876 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2877 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 2878 | "dev": true 2879 | }, 2880 | "commander": { 2881 | "version": "2.9.0", 2882 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", 2883 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", 2884 | "requires": { 2885 | "graceful-readlink": ">= 1.0.0" 2886 | } 2887 | }, 2888 | "concat-map": { 2889 | "version": "0.0.1", 2890 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2891 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 2892 | }, 2893 | "core-util-is": { 2894 | "version": "1.0.2", 2895 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 2896 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 2897 | "dev": true 2898 | }, 2899 | "cross-spawn": { 2900 | "version": "7.0.3", 2901 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2902 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2903 | "requires": { 2904 | "path-key": "^3.1.0", 2905 | "shebang-command": "^2.0.0", 2906 | "which": "^2.0.1" 2907 | } 2908 | }, 2909 | "d3": { 2910 | "version": "5.12.0", 2911 | "resolved": "https://registry.npmjs.org/d3/-/d3-5.12.0.tgz", 2912 | "integrity": "sha512-flYVMoVuhPFHd9zVCe2BxIszUWqBcd5fvQGMNRmSiBrgdnh6Vlruh60RJQTouAK9xPbOB0plxMvBm4MoyODXNg==", 2913 | "requires": { 2914 | "d3-array": "1", 2915 | "d3-axis": "1", 2916 | "d3-brush": "1", 2917 | "d3-chord": "1", 2918 | "d3-collection": "1", 2919 | "d3-color": "1", 2920 | "d3-contour": "1", 2921 | "d3-dispatch": "1", 2922 | "d3-drag": "1", 2923 | "d3-dsv": "1", 2924 | "d3-ease": "1", 2925 | "d3-fetch": "1", 2926 | "d3-force": "1", 2927 | "d3-format": "1", 2928 | "d3-geo": "1", 2929 | "d3-hierarchy": "1", 2930 | "d3-interpolate": "1", 2931 | "d3-path": "1", 2932 | "d3-polygon": "1", 2933 | "d3-quadtree": "1", 2934 | "d3-random": "1", 2935 | "d3-scale": "2", 2936 | "d3-scale-chromatic": "1", 2937 | "d3-selection": "1", 2938 | "d3-shape": "1", 2939 | "d3-time": "1", 2940 | "d3-time-format": "2", 2941 | "d3-timer": "1", 2942 | "d3-transition": "1", 2943 | "d3-voronoi": "1", 2944 | "d3-zoom": "1" 2945 | } 2946 | }, 2947 | "d3-array": { 2948 | "version": "1.2.4", 2949 | "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", 2950 | "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" 2951 | }, 2952 | "d3-axis": { 2953 | "version": "1.0.12", 2954 | "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", 2955 | "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" 2956 | }, 2957 | "d3-brush": { 2958 | "version": "1.1.6", 2959 | "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", 2960 | "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", 2961 | "requires": { 2962 | "d3-dispatch": "1", 2963 | "d3-drag": "1", 2964 | "d3-interpolate": "1", 2965 | "d3-selection": "1", 2966 | "d3-transition": "1" 2967 | } 2968 | }, 2969 | "d3-chord": { 2970 | "version": "1.0.6", 2971 | "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", 2972 | "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", 2973 | "requires": { 2974 | "d3-array": "1", 2975 | "d3-path": "1" 2976 | } 2977 | }, 2978 | "d3-collection": { 2979 | "version": "1.0.7", 2980 | "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", 2981 | "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" 2982 | }, 2983 | "d3-color": { 2984 | "version": "1.4.1", 2985 | "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", 2986 | "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" 2987 | }, 2988 | "d3-contour": { 2989 | "version": "1.3.2", 2990 | "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", 2991 | "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", 2992 | "requires": { 2993 | "d3-array": "^1.1.1" 2994 | } 2995 | }, 2996 | "d3-dispatch": { 2997 | "version": "1.0.6", 2998 | "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", 2999 | "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" 3000 | }, 3001 | "d3-drag": { 3002 | "version": "1.2.5", 3003 | "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", 3004 | "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", 3005 | "requires": { 3006 | "d3-dispatch": "1", 3007 | "d3-selection": "1" 3008 | } 3009 | }, 3010 | "d3-dsv": { 3011 | "version": "1.2.0", 3012 | "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", 3013 | "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", 3014 | "requires": { 3015 | "commander": "2", 3016 | "iconv-lite": "0.4", 3017 | "rw": "1" 3018 | } 3019 | }, 3020 | "d3-ease": { 3021 | "version": "1.0.7", 3022 | "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", 3023 | "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" 3024 | }, 3025 | "d3-fetch": { 3026 | "version": "1.2.0", 3027 | "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", 3028 | "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", 3029 | "requires": { 3030 | "d3-dsv": "1" 3031 | } 3032 | }, 3033 | "d3-force": { 3034 | "version": "1.2.1", 3035 | "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", 3036 | "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", 3037 | "requires": { 3038 | "d3-collection": "1", 3039 | "d3-dispatch": "1", 3040 | "d3-quadtree": "1", 3041 | "d3-timer": "1" 3042 | } 3043 | }, 3044 | "d3-format": { 3045 | "version": "1.4.5", 3046 | "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", 3047 | "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" 3048 | }, 3049 | "d3-geo": { 3050 | "version": "1.12.1", 3051 | "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", 3052 | "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", 3053 | "requires": { 3054 | "d3-array": "1" 3055 | } 3056 | }, 3057 | "d3-hierarchy": { 3058 | "version": "1.1.9", 3059 | "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", 3060 | "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" 3061 | }, 3062 | "d3-interpolate": { 3063 | "version": "1.4.0", 3064 | "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", 3065 | "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", 3066 | "requires": { 3067 | "d3-color": "1" 3068 | } 3069 | }, 3070 | "d3-path": { 3071 | "version": "1.0.9", 3072 | "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", 3073 | "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" 3074 | }, 3075 | "d3-polygon": { 3076 | "version": "1.0.6", 3077 | "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", 3078 | "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" 3079 | }, 3080 | "d3-quadtree": { 3081 | "version": "1.0.7", 3082 | "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", 3083 | "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" 3084 | }, 3085 | "d3-random": { 3086 | "version": "1.1.2", 3087 | "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", 3088 | "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" 3089 | }, 3090 | "d3-scale": { 3091 | "version": "2.2.2", 3092 | "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", 3093 | "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", 3094 | "requires": { 3095 | "d3-array": "^1.2.0", 3096 | "d3-collection": "1", 3097 | "d3-format": "1", 3098 | "d3-interpolate": "1", 3099 | "d3-time": "1", 3100 | "d3-time-format": "2" 3101 | } 3102 | }, 3103 | "d3-scale-chromatic": { 3104 | "version": "1.5.0", 3105 | "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", 3106 | "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", 3107 | "requires": { 3108 | "d3-color": "1", 3109 | "d3-interpolate": "1" 3110 | } 3111 | }, 3112 | "d3-selection": { 3113 | "version": "1.4.2", 3114 | "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", 3115 | "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" 3116 | }, 3117 | "d3-shape": { 3118 | "version": "1.3.7", 3119 | "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", 3120 | "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", 3121 | "requires": { 3122 | "d3-path": "1" 3123 | } 3124 | }, 3125 | "d3-time": { 3126 | "version": "1.1.0", 3127 | "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", 3128 | "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" 3129 | }, 3130 | "d3-time-format": { 3131 | "version": "2.3.0", 3132 | "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", 3133 | "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", 3134 | "requires": { 3135 | "d3-time": "1" 3136 | } 3137 | }, 3138 | "d3-timer": { 3139 | "version": "1.0.10", 3140 | "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", 3141 | "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" 3142 | }, 3143 | "d3-transition": { 3144 | "version": "1.3.2", 3145 | "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", 3146 | "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", 3147 | "requires": { 3148 | "d3-color": "1", 3149 | "d3-dispatch": "1", 3150 | "d3-ease": "1", 3151 | "d3-interpolate": "1", 3152 | "d3-selection": "^1.1.0", 3153 | "d3-timer": "1" 3154 | } 3155 | }, 3156 | "d3-voronoi": { 3157 | "version": "1.1.4", 3158 | "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", 3159 | "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" 3160 | }, 3161 | "d3-zoom": { 3162 | "version": "1.8.3", 3163 | "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", 3164 | "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", 3165 | "requires": { 3166 | "d3-dispatch": "1", 3167 | "d3-drag": "1", 3168 | "d3-interpolate": "1", 3169 | "d3-selection": "1", 3170 | "d3-transition": "1" 3171 | } 3172 | }, 3173 | "debug": { 3174 | "version": "4.3.4", 3175 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 3176 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 3177 | "requires": { 3178 | "ms": "2.1.2" 3179 | } 3180 | }, 3181 | "deep-is": { 3182 | "version": "0.1.4", 3183 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 3184 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" 3185 | }, 3186 | "dir-glob": { 3187 | "version": "3.0.1", 3188 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 3189 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 3190 | "requires": { 3191 | "path-type": "^4.0.0" 3192 | } 3193 | }, 3194 | "doctrine": { 3195 | "version": "3.0.0", 3196 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 3197 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 3198 | "requires": { 3199 | "esutils": "^2.0.2" 3200 | } 3201 | }, 3202 | "emojis-list": { 3203 | "version": "3.0.0", 3204 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", 3205 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", 3206 | "dev": true 3207 | }, 3208 | "enhanced-resolve": { 3209 | "version": "4.5.0", 3210 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", 3211 | "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", 3212 | "dev": true, 3213 | "requires": { 3214 | "graceful-fs": "^4.1.2", 3215 | "memory-fs": "^0.5.0", 3216 | "tapable": "^1.0.0" 3217 | } 3218 | }, 3219 | "errno": { 3220 | "version": "0.1.7", 3221 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", 3222 | "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", 3223 | "dev": true, 3224 | "requires": { 3225 | "prr": "~1.0.1" 3226 | } 3227 | }, 3228 | "escape-string-regexp": { 3229 | "version": "1.0.5", 3230 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 3231 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 3232 | "dev": true 3233 | }, 3234 | "eslint": { 3235 | "version": "8.23.1", 3236 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", 3237 | "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", 3238 | "requires": { 3239 | "@eslint/eslintrc": "^1.3.2", 3240 | "@humanwhocodes/config-array": "^0.10.4", 3241 | "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", 3242 | "@humanwhocodes/module-importer": "^1.0.1", 3243 | "ajv": "^6.10.0", 3244 | "chalk": "^4.0.0", 3245 | "cross-spawn": "^7.0.2", 3246 | "debug": "^4.3.2", 3247 | "doctrine": "^3.0.0", 3248 | "escape-string-regexp": "^4.0.0", 3249 | "eslint-scope": "^7.1.1", 3250 | "eslint-utils": "^3.0.0", 3251 | "eslint-visitor-keys": "^3.3.0", 3252 | "espree": "^9.4.0", 3253 | "esquery": "^1.4.0", 3254 | "esutils": "^2.0.2", 3255 | "fast-deep-equal": "^3.1.3", 3256 | "file-entry-cache": "^6.0.1", 3257 | "find-up": "^5.0.0", 3258 | "glob-parent": "^6.0.1", 3259 | "globals": "^13.15.0", 3260 | "globby": "^11.1.0", 3261 | "grapheme-splitter": "^1.0.4", 3262 | "ignore": "^5.2.0", 3263 | "import-fresh": "^3.0.0", 3264 | "imurmurhash": "^0.1.4", 3265 | "is-glob": "^4.0.0", 3266 | "js-sdsl": "^4.1.4", 3267 | "js-yaml": "^4.1.0", 3268 | "json-stable-stringify-without-jsonify": "^1.0.1", 3269 | "levn": "^0.4.1", 3270 | "lodash.merge": "^4.6.2", 3271 | "minimatch": "^3.1.2", 3272 | "natural-compare": "^1.4.0", 3273 | "optionator": "^0.9.1", 3274 | "regexpp": "^3.2.0", 3275 | "strip-ansi": "^6.0.1", 3276 | "strip-json-comments": "^3.1.0", 3277 | "text-table": "^0.2.0" 3278 | }, 3279 | "dependencies": { 3280 | "argparse": { 3281 | "version": "2.0.1", 3282 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 3283 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 3284 | }, 3285 | "escape-string-regexp": { 3286 | "version": "4.0.0", 3287 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 3288 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" 3289 | }, 3290 | "eslint-scope": { 3291 | "version": "7.1.1", 3292 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 3293 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 3294 | "requires": { 3295 | "esrecurse": "^4.3.0", 3296 | "estraverse": "^5.2.0" 3297 | } 3298 | }, 3299 | "estraverse": { 3300 | "version": "5.3.0", 3301 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3302 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" 3303 | }, 3304 | "js-yaml": { 3305 | "version": "4.1.0", 3306 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3307 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3308 | "requires": { 3309 | "argparse": "^2.0.1" 3310 | } 3311 | } 3312 | } 3313 | }, 3314 | "eslint-plugin-powerbi-visuals": { 3315 | "version": "0.8.1", 3316 | "resolved": "https://registry.npmjs.org/eslint-plugin-powerbi-visuals/-/eslint-plugin-powerbi-visuals-0.8.1.tgz", 3317 | "integrity": "sha512-GAdD5kIO2+X+WsTGW9DvfQ5sd2UFw+0FaPGYPsq2Dpt0RuVdfpHG58PJF7YWzjQmtr2EUGGJUbCALq4v3hK+JQ==" 3318 | }, 3319 | "eslint-scope": { 3320 | "version": "5.1.1", 3321 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 3322 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 3323 | "requires": { 3324 | "esrecurse": "^4.3.0", 3325 | "estraverse": "^4.1.1" 3326 | } 3327 | }, 3328 | "eslint-utils": { 3329 | "version": "3.0.0", 3330 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 3331 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 3332 | "requires": { 3333 | "eslint-visitor-keys": "^2.0.0" 3334 | }, 3335 | "dependencies": { 3336 | "eslint-visitor-keys": { 3337 | "version": "2.1.0", 3338 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 3339 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" 3340 | } 3341 | } 3342 | }, 3343 | "eslint-visitor-keys": { 3344 | "version": "3.3.0", 3345 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 3346 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" 3347 | }, 3348 | "espree": { 3349 | "version": "9.4.0", 3350 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", 3351 | "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", 3352 | "requires": { 3353 | "acorn": "^8.8.0", 3354 | "acorn-jsx": "^5.3.2", 3355 | "eslint-visitor-keys": "^3.3.0" 3356 | } 3357 | }, 3358 | "esquery": { 3359 | "version": "1.4.0", 3360 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 3361 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 3362 | "requires": { 3363 | "estraverse": "^5.1.0" 3364 | }, 3365 | "dependencies": { 3366 | "estraverse": { 3367 | "version": "5.3.0", 3368 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3369 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" 3370 | } 3371 | } 3372 | }, 3373 | "esrecurse": { 3374 | "version": "4.3.0", 3375 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 3376 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 3377 | "requires": { 3378 | "estraverse": "^5.2.0" 3379 | }, 3380 | "dependencies": { 3381 | "estraverse": { 3382 | "version": "5.3.0", 3383 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3384 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" 3385 | } 3386 | } 3387 | }, 3388 | "estraverse": { 3389 | "version": "4.3.0", 3390 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 3391 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 3392 | }, 3393 | "esutils": { 3394 | "version": "2.0.2", 3395 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 3396 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 3397 | }, 3398 | "fast-deep-equal": { 3399 | "version": "3.1.3", 3400 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3401 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 3402 | }, 3403 | "fast-glob": { 3404 | "version": "3.2.12", 3405 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", 3406 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 3407 | "requires": { 3408 | "@nodelib/fs.stat": "^2.0.2", 3409 | "@nodelib/fs.walk": "^1.2.3", 3410 | "glob-parent": "^5.1.2", 3411 | "merge2": "^1.3.0", 3412 | "micromatch": "^4.0.4" 3413 | }, 3414 | "dependencies": { 3415 | "glob-parent": { 3416 | "version": "5.1.2", 3417 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 3418 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 3419 | "requires": { 3420 | "is-glob": "^4.0.1" 3421 | } 3422 | } 3423 | } 3424 | }, 3425 | "fast-json-stable-stringify": { 3426 | "version": "2.1.0", 3427 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 3428 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 3429 | }, 3430 | "fast-levenshtein": { 3431 | "version": "2.0.6", 3432 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 3433 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" 3434 | }, 3435 | "fastq": { 3436 | "version": "1.13.0", 3437 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 3438 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 3439 | "requires": { 3440 | "reusify": "^1.0.4" 3441 | } 3442 | }, 3443 | "file-entry-cache": { 3444 | "version": "6.0.1", 3445 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 3446 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 3447 | "requires": { 3448 | "flat-cache": "^3.0.4" 3449 | } 3450 | }, 3451 | "fill-range": { 3452 | "version": "7.0.1", 3453 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 3454 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 3455 | "requires": { 3456 | "to-regex-range": "^5.0.1" 3457 | } 3458 | }, 3459 | "find-up": { 3460 | "version": "5.0.0", 3461 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 3462 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 3463 | "requires": { 3464 | "locate-path": "^6.0.0", 3465 | "path-exists": "^4.0.0" 3466 | } 3467 | }, 3468 | "flat-cache": { 3469 | "version": "3.0.4", 3470 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 3471 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 3472 | "requires": { 3473 | "flatted": "^3.1.0", 3474 | "rimraf": "^3.0.2" 3475 | } 3476 | }, 3477 | "flatted": { 3478 | "version": "3.2.7", 3479 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 3480 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" 3481 | }, 3482 | "fs.realpath": { 3483 | "version": "1.0.0", 3484 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 3485 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 3486 | }, 3487 | "functional-red-black-tree": { 3488 | "version": "1.0.1", 3489 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 3490 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" 3491 | }, 3492 | "glob": { 3493 | "version": "7.1.3", 3494 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 3495 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 3496 | "requires": { 3497 | "fs.realpath": "^1.0.0", 3498 | "inflight": "^1.0.4", 3499 | "inherits": "2", 3500 | "minimatch": "^3.0.4", 3501 | "once": "^1.3.0", 3502 | "path-is-absolute": "^1.0.0" 3503 | } 3504 | }, 3505 | "glob-parent": { 3506 | "version": "6.0.2", 3507 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 3508 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 3509 | "requires": { 3510 | "is-glob": "^4.0.3" 3511 | } 3512 | }, 3513 | "globals": { 3514 | "version": "13.17.0", 3515 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", 3516 | "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", 3517 | "requires": { 3518 | "type-fest": "^0.20.2" 3519 | } 3520 | }, 3521 | "globby": { 3522 | "version": "11.1.0", 3523 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 3524 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 3525 | "requires": { 3526 | "array-union": "^2.1.0", 3527 | "dir-glob": "^3.0.1", 3528 | "fast-glob": "^3.2.9", 3529 | "ignore": "^5.2.0", 3530 | "merge2": "^1.4.1", 3531 | "slash": "^3.0.0" 3532 | } 3533 | }, 3534 | "graceful-fs": { 3535 | "version": "4.1.15", 3536 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", 3537 | "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", 3538 | "dev": true 3539 | }, 3540 | "graceful-readlink": { 3541 | "version": "1.0.1", 3542 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 3543 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" 3544 | }, 3545 | "grapheme-splitter": { 3546 | "version": "1.0.4", 3547 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 3548 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" 3549 | }, 3550 | "has-flag": { 3551 | "version": "3.0.0", 3552 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 3553 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 3554 | "dev": true 3555 | }, 3556 | "iconv-lite": { 3557 | "version": "0.4.24", 3558 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 3559 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 3560 | "requires": { 3561 | "safer-buffer": ">= 2.1.2 < 3" 3562 | } 3563 | }, 3564 | "ignore": { 3565 | "version": "5.2.0", 3566 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 3567 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" 3568 | }, 3569 | "import-fresh": { 3570 | "version": "3.3.0", 3571 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3572 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3573 | "requires": { 3574 | "parent-module": "^1.0.0", 3575 | "resolve-from": "^4.0.0" 3576 | } 3577 | }, 3578 | "imurmurhash": { 3579 | "version": "0.1.4", 3580 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3581 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" 3582 | }, 3583 | "inflight": { 3584 | "version": "1.0.6", 3585 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 3586 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 3587 | "requires": { 3588 | "once": "^1.3.0", 3589 | "wrappy": "1" 3590 | } 3591 | }, 3592 | "inherits": { 3593 | "version": "2.0.3", 3594 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 3595 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 3596 | }, 3597 | "is-extglob": { 3598 | "version": "2.1.1", 3599 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3600 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 3601 | }, 3602 | "is-glob": { 3603 | "version": "4.0.3", 3604 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3605 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3606 | "requires": { 3607 | "is-extglob": "^2.1.1" 3608 | } 3609 | }, 3610 | "is-number": { 3611 | "version": "7.0.0", 3612 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3613 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 3614 | }, 3615 | "isarray": { 3616 | "version": "1.0.0", 3617 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 3618 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 3619 | "dev": true 3620 | }, 3621 | "isexe": { 3622 | "version": "2.0.0", 3623 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3624 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 3625 | }, 3626 | "js-sdsl": { 3627 | "version": "4.1.4", 3628 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", 3629 | "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==" 3630 | }, 3631 | "json-schema-traverse": { 3632 | "version": "0.4.1", 3633 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3634 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 3635 | }, 3636 | "json-stable-stringify-without-jsonify": { 3637 | "version": "1.0.1", 3638 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3639 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" 3640 | }, 3641 | "json5": { 3642 | "version": "1.0.1", 3643 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", 3644 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", 3645 | "dev": true, 3646 | "requires": { 3647 | "minimist": "^1.2.0" 3648 | } 3649 | }, 3650 | "levn": { 3651 | "version": "0.4.1", 3652 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3653 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3654 | "requires": { 3655 | "prelude-ls": "^1.2.1", 3656 | "type-check": "~0.4.0" 3657 | } 3658 | }, 3659 | "loader-utils": { 3660 | "version": "1.4.0", 3661 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", 3662 | "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", 3663 | "dev": true, 3664 | "requires": { 3665 | "big.js": "^5.2.2", 3666 | "emojis-list": "^3.0.0", 3667 | "json5": "^1.0.1" 3668 | } 3669 | }, 3670 | "locate-path": { 3671 | "version": "6.0.0", 3672 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 3673 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 3674 | "requires": { 3675 | "p-locate": "^5.0.0" 3676 | } 3677 | }, 3678 | "lodash": { 3679 | "version": "4.17.21", 3680 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 3681 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 3682 | }, 3683 | "lodash.merge": { 3684 | "version": "4.6.2", 3685 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3686 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" 3687 | }, 3688 | "lru-cache": { 3689 | "version": "6.0.0", 3690 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 3691 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 3692 | "requires": { 3693 | "yallist": "^4.0.0" 3694 | } 3695 | }, 3696 | "memory-fs": { 3697 | "version": "0.5.0", 3698 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", 3699 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", 3700 | "dev": true, 3701 | "requires": { 3702 | "errno": "^0.1.3", 3703 | "readable-stream": "^2.0.1" 3704 | } 3705 | }, 3706 | "merge2": { 3707 | "version": "1.4.1", 3708 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3709 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 3710 | }, 3711 | "micromatch": { 3712 | "version": "4.0.5", 3713 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 3714 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 3715 | "requires": { 3716 | "braces": "^3.0.2", 3717 | "picomatch": "^2.3.1" 3718 | } 3719 | }, 3720 | "minimatch": { 3721 | "version": "3.1.2", 3722 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3723 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3724 | "requires": { 3725 | "brace-expansion": "^1.1.7" 3726 | } 3727 | }, 3728 | "minimist": { 3729 | "version": "1.2.6", 3730 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 3731 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 3732 | "dev": true 3733 | }, 3734 | "ms": { 3735 | "version": "2.1.2", 3736 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3737 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 3738 | }, 3739 | "natural-compare": { 3740 | "version": "1.4.0", 3741 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3742 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" 3743 | }, 3744 | "once": { 3745 | "version": "1.4.0", 3746 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3747 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3748 | "requires": { 3749 | "wrappy": "1" 3750 | } 3751 | }, 3752 | "optionator": { 3753 | "version": "0.9.1", 3754 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 3755 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 3756 | "requires": { 3757 | "deep-is": "^0.1.3", 3758 | "fast-levenshtein": "^2.0.6", 3759 | "levn": "^0.4.1", 3760 | "prelude-ls": "^1.2.1", 3761 | "type-check": "^0.4.0", 3762 | "word-wrap": "^1.2.3" 3763 | } 3764 | }, 3765 | "p-limit": { 3766 | "version": "3.1.0", 3767 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3768 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3769 | "requires": { 3770 | "yocto-queue": "^0.1.0" 3771 | } 3772 | }, 3773 | "p-locate": { 3774 | "version": "5.0.0", 3775 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3776 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3777 | "requires": { 3778 | "p-limit": "^3.0.2" 3779 | } 3780 | }, 3781 | "parent-module": { 3782 | "version": "1.0.1", 3783 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3784 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3785 | "requires": { 3786 | "callsites": "^3.0.0" 3787 | } 3788 | }, 3789 | "path-exists": { 3790 | "version": "4.0.0", 3791 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3792 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 3793 | }, 3794 | "path-is-absolute": { 3795 | "version": "1.0.1", 3796 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3797 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 3798 | }, 3799 | "path-key": { 3800 | "version": "3.1.1", 3801 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3802 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 3803 | }, 3804 | "path-type": { 3805 | "version": "4.0.0", 3806 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 3807 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 3808 | }, 3809 | "picomatch": { 3810 | "version": "2.3.1", 3811 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3812 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 3813 | }, 3814 | "powerbi-visuals-api": { 3815 | "version": "4.7.0", 3816 | "resolved": "https://registry.npmjs.org/powerbi-visuals-api/-/powerbi-visuals-api-4.7.0.tgz", 3817 | "integrity": "sha512-Gyha3jkwXixUv0PVd+bSbZR/yGx3xL5IzHE9h0F4snVC7DyAWnGRCIejJgTGUfKyqcVQZjpRerBWxbrGB6Edlw==", 3818 | "requires": { 3819 | "semver": "^7.3.5" 3820 | } 3821 | }, 3822 | "powerbi-visuals-utils-dataviewutils": { 3823 | "version": "2.2.1", 3824 | "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-2.2.1.tgz", 3825 | "integrity": "sha512-Ai+TM1gj6DpAsNbn0IhOwUCAPfcaH4Z7y6Ow2OwAfbxNpELwQSF0S8D+vlJN2AoqV/ruQhnEngUC88mMFNyvJQ==" 3826 | }, 3827 | "prelude-ls": { 3828 | "version": "1.2.1", 3829 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3830 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" 3831 | }, 3832 | "process-nextick-args": { 3833 | "version": "1.0.7", 3834 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 3835 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 3836 | "dev": true 3837 | }, 3838 | "prr": { 3839 | "version": "1.0.1", 3840 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 3841 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 3842 | "dev": true 3843 | }, 3844 | "punycode": { 3845 | "version": "2.1.1", 3846 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3847 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 3848 | }, 3849 | "queue-microtask": { 3850 | "version": "1.2.3", 3851 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3852 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 3853 | }, 3854 | "readable-stream": { 3855 | "version": "2.0.6", 3856 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", 3857 | "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", 3858 | "dev": true, 3859 | "requires": { 3860 | "core-util-is": "~1.0.0", 3861 | "inherits": "~2.0.1", 3862 | "isarray": "~1.0.0", 3863 | "process-nextick-args": "~1.0.6", 3864 | "string_decoder": "~0.10.x", 3865 | "util-deprecate": "~1.0.1" 3866 | } 3867 | }, 3868 | "regexpp": { 3869 | "version": "3.2.0", 3870 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 3871 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" 3872 | }, 3873 | "resolve-from": { 3874 | "version": "4.0.0", 3875 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3876 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" 3877 | }, 3878 | "reusify": { 3879 | "version": "1.0.4", 3880 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3881 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 3882 | }, 3883 | "rimraf": { 3884 | "version": "3.0.2", 3885 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3886 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3887 | "requires": { 3888 | "glob": "^7.1.3" 3889 | } 3890 | }, 3891 | "run-parallel": { 3892 | "version": "1.2.0", 3893 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3894 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3895 | "requires": { 3896 | "queue-microtask": "^1.2.2" 3897 | } 3898 | }, 3899 | "rw": { 3900 | "version": "1.3.3", 3901 | "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", 3902 | "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" 3903 | }, 3904 | "safer-buffer": { 3905 | "version": "2.1.2", 3906 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3907 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 3908 | }, 3909 | "semver": { 3910 | "version": "7.3.7", 3911 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 3912 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 3913 | "requires": { 3914 | "lru-cache": "^6.0.0" 3915 | } 3916 | }, 3917 | "shebang-command": { 3918 | "version": "2.0.0", 3919 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3920 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3921 | "requires": { 3922 | "shebang-regex": "^3.0.0" 3923 | } 3924 | }, 3925 | "shebang-regex": { 3926 | "version": "3.0.0", 3927 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3928 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 3929 | }, 3930 | "slash": { 3931 | "version": "3.0.0", 3932 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 3933 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" 3934 | }, 3935 | "string_decoder": { 3936 | "version": "0.10.31", 3937 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 3938 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 3939 | "dev": true 3940 | }, 3941 | "strip-ansi": { 3942 | "version": "6.0.1", 3943 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3944 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3945 | "requires": { 3946 | "ansi-regex": "^5.0.1" 3947 | } 3948 | }, 3949 | "strip-json-comments": { 3950 | "version": "3.1.1", 3951 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3952 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" 3953 | }, 3954 | "supports-color": { 3955 | "version": "7.2.0", 3956 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3957 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3958 | "requires": { 3959 | "has-flag": "^4.0.0" 3960 | }, 3961 | "dependencies": { 3962 | "has-flag": { 3963 | "version": "4.0.0", 3964 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3965 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 3966 | } 3967 | } 3968 | }, 3969 | "tapable": { 3970 | "version": "1.1.3", 3971 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", 3972 | "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", 3973 | "dev": true 3974 | }, 3975 | "text-table": { 3976 | "version": "0.2.0", 3977 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3978 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" 3979 | }, 3980 | "to-regex-range": { 3981 | "version": "5.0.1", 3982 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3983 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3984 | "requires": { 3985 | "is-number": "^7.0.0" 3986 | } 3987 | }, 3988 | "ts-loader": { 3989 | "version": "6.1.0", 3990 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.1.0.tgz", 3991 | "integrity": "sha512-7JedeOu2rsYHQDEr2fwmMozABwbQTZXEaEMZPSIWG7gpzRefOLJCqwdazcegHtyaxp04PeEgs/b0m08WMpnIzQ==", 3992 | "dev": true, 3993 | "requires": { 3994 | "chalk": "^2.3.0", 3995 | "enhanced-resolve": "^4.0.0", 3996 | "loader-utils": "^1.0.2", 3997 | "micromatch": "^4.0.0", 3998 | "semver": "^6.0.0" 3999 | }, 4000 | "dependencies": { 4001 | "ansi-styles": { 4002 | "version": "3.2.1", 4003 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 4004 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 4005 | "dev": true, 4006 | "requires": { 4007 | "color-convert": "^1.9.0" 4008 | } 4009 | }, 4010 | "chalk": { 4011 | "version": "2.4.2", 4012 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 4013 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 4014 | "dev": true, 4015 | "requires": { 4016 | "ansi-styles": "^3.2.1", 4017 | "escape-string-regexp": "^1.0.5", 4018 | "supports-color": "^5.3.0" 4019 | } 4020 | }, 4021 | "semver": { 4022 | "version": "6.3.0", 4023 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 4024 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 4025 | "dev": true 4026 | }, 4027 | "supports-color": { 4028 | "version": "5.5.0", 4029 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 4030 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 4031 | "dev": true, 4032 | "requires": { 4033 | "has-flag": "^3.0.0" 4034 | } 4035 | } 4036 | } 4037 | }, 4038 | "tslib": { 4039 | "version": "1.14.1", 4040 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 4041 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 4042 | }, 4043 | "type-check": { 4044 | "version": "0.4.0", 4045 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 4046 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 4047 | "requires": { 4048 | "prelude-ls": "^1.2.1" 4049 | } 4050 | }, 4051 | "type-fest": { 4052 | "version": "0.20.2", 4053 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 4054 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" 4055 | }, 4056 | "typescript": { 4057 | "version": "3.6.3", 4058 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz", 4059 | "integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==" 4060 | }, 4061 | "uri-js": { 4062 | "version": "4.4.1", 4063 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4064 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4065 | "requires": { 4066 | "punycode": "^2.1.0" 4067 | } 4068 | }, 4069 | "util-deprecate": { 4070 | "version": "1.0.2", 4071 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4072 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 4073 | "dev": true 4074 | }, 4075 | "which": { 4076 | "version": "2.0.2", 4077 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4078 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4079 | "requires": { 4080 | "isexe": "^2.0.0" 4081 | } 4082 | }, 4083 | "word-wrap": { 4084 | "version": "1.2.3", 4085 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 4086 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" 4087 | }, 4088 | "wrappy": { 4089 | "version": "1.0.2", 4090 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4091 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 4092 | }, 4093 | "yallist": { 4094 | "version": "4.0.0", 4095 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 4096 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 4097 | }, 4098 | "yocto-queue": { 4099 | "version": "0.1.0", 4100 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 4101 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" 4102 | } 4103 | } 4104 | } 4105 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "visual", 3 | "description": "default_template_value", 4 | "repository": { 5 | "type": "default_template_value", 6 | "url": "default_template_value" 7 | }, 8 | "license": "MIT", 9 | "scripts": { 10 | "pbiviz": "pbiviz", 11 | "start": "pbiviz start", 12 | "package": "pbiviz package", 13 | "eslint": "npx eslint . --ext .js,.jsx,.ts,.tsx" 14 | }, 15 | "dependencies": { 16 | "@types/d3": "5.7.2", 17 | "@typescript-eslint/eslint-plugin": "^5.37.0", 18 | "@typescript-eslint/parser": "^5.37.0", 19 | "d3": "5.12.0", 20 | "eslint": "^8.23.1", 21 | "eslint-plugin-powerbi-visuals": "^0.8.1", 22 | "lodash": "^4.17.21", 23 | "powerbi-visuals-api": "~4.7.0", 24 | "powerbi-visuals-utils-dataviewutils": "2.2.1" 25 | }, 26 | "devDependencies": { 27 | "ts-loader": "6.1.0", 28 | "typescript": "3.6.3" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /pbiviz.json: -------------------------------------------------------------------------------- 1 | { 2 | "visual": { 3 | "name": "SampleMatrixV470", 4 | "displayName": "SampleMatrix", 5 | "guid": "SampleMatrix42F18ACF0DAA469280EB05101FF5E606", 6 | "visualClassName": "Visual", 7 | "version": "1.0.0", 8 | "description": "desc", 9 | "supportUrl": "url", 10 | "gitHubUrl": "usr" 11 | }, 12 | "apiVersion": "4.7.0", 13 | "author": { 14 | "name": "name", 15 | "email": "a@b.c" 16 | }, 17 | "assets": { 18 | "icon": "assets/icon.png" 19 | }, 20 | "style": "style/visual.less", 21 | "capabilities": "capabilities.json", 22 | "dependencies": "dependencies.json", 23 | "stringResources": [] 24 | } 25 | -------------------------------------------------------------------------------- /src/common.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Power BI Visualizations 3 | * 4 | * Copyright (c) Microsoft Corporation 5 | * All rights reserved. 6 | * MIT License 7 | * 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy 9 | * of this software and associated documentation files (the ""Software""), to deal 10 | * in the Software without restriction, including without limitation the rights 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the Software is 13 | * furnished to do so, subject to the following conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in 16 | * all copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | * THE SOFTWARE. 25 | */ 26 | 27 | import powerbi from "powerbi-visuals-api"; 28 | import DataViewObjectPropertyIdentifier = powerbi.DataViewObjectPropertyIdentifier; 29 | 30 | /** Defines a selector for content, including data-, metadata, and user-defined repetition. */ 31 | export interface Selector { 32 | 33 | /** Metadata-bound repetition selection. Refers to a DataViewMetadataColumn queryName. */ 34 | metadata?: string; 35 | 36 | /** User-defined repetition selection. */ 37 | id?: string; 38 | } 39 | 40 | export interface DataViewObjectPropertyReference { 41 | /** Property identifier that holds the Value. Only static properties (Null Selector) are supported */ 42 | propertyIdentifier?: DataViewObjectPropertyIdentifier; 43 | 44 | /** Value to use if the PropertyDefinition does not exist */ 45 | defaultValue: T; 46 | } -------------------------------------------------------------------------------- /src/matrixDataviewHtmlFormatter.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Power BI Visualizations 3 | * 4 | * Copyright (c) Microsoft Corporation 5 | * All rights reserved. 6 | * MIT License 7 | * 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy 9 | * of this software and associated documentation files (the ""Software""), to deal 10 | * in the Software without restriction, including without limitation the rights 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the Software is 13 | * furnished to do so, subject to the following conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in 16 | * all copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | * THE SOFTWARE. 25 | */ 26 | 27 | 28 | import powerbi from "powerbi-visuals-api"; 29 | export class MatrixDataviewHtmlFormatter { 30 | 31 | public static formatDataViewMatrix(matrix: powerbi.DataViewMatrix): HTMLElement { 32 | const htmlElement = document.createElement('div'); 33 | htmlElement.classList.add('datagrid'); 34 | const tableElement = document.createElement('table'); 35 | const tbodyElement = document.createElement('tbody'); 36 | const levelToColumnNodesMap: any[][] = []; 37 | MatrixDataviewHtmlFormatter.countColumnNodeLeaves(matrix.columns.root, levelToColumnNodesMap); 38 | MatrixDataviewHtmlFormatter.formatColumnNodes(matrix.columns.root, levelToColumnNodesMap, tbodyElement); 39 | MatrixDataviewHtmlFormatter.formatRowNodes(matrix.rows.root, tbodyElement); 40 | tableElement.appendChild(tbodyElement); 41 | htmlElement.appendChild(tableElement); 42 | return htmlElement; 43 | } 44 | 45 | private static countColumnNodeLeaves(root, levelToColumnNodesMap: any[][]): number { 46 | if (!(typeof root.level === 'undefined' || root.level === null)) { 47 | if (!levelToColumnNodesMap[root.level]) { 48 | levelToColumnNodesMap[root.level] = [root]; 49 | } else { 50 | levelToColumnNodesMap[root.level].push(root); 51 | } 52 | } 53 | let leafCount; 54 | if (root.isSubtotal || !root.children) { 55 | return leafCount = 1; 56 | } else { 57 | leafCount = 0; 58 | for (const child of root.children) { 59 | leafCount += MatrixDataviewHtmlFormatter.countColumnNodeLeaves(child, levelToColumnNodesMap); 60 | } 61 | } 62 | return root.leafCount = leafCount; 63 | } 64 | 65 | private static formatColumnNodes(root, levelToColumnNodesMap: any[][], topElement: HTMLElement) { 66 | for (let level = 0; level < levelToColumnNodesMap.length; level++) { 67 | const levelNodes = levelToColumnNodesMap[level]; 68 | const trElement = document.createElement('tr'); 69 | const thElement = document.createElement('th'); 70 | thElement.style.textAlign = 'left'; 71 | trElement.appendChild(thElement); 72 | for (let i = 0; i < levelNodes.length; i++) { 73 | const node = levelNodes[i]; 74 | const thElement = document.createElement('th'); 75 | thElement.colSpan = node.leafCount; 76 | const textElement = document.createTextNode(node.isSubtotal ? "Totals" : node.value); 77 | thElement.appendChild(textElement); 78 | thElement.style.textAlign = 'left'; 79 | trElement.appendChild(thElement); 80 | } 81 | topElement.appendChild(trElement); 82 | } 83 | } 84 | 85 | private static formatRowNodes(root, topElement: HTMLElement) { 86 | if (!(typeof root.level === 'undefined' || root.level === null)) { 87 | const trElement = document.createElement('tr'); 88 | const thElement = document.createElement('th'); 89 | thElement.style.textAlign = 'left'; 90 | let headerText = ""; 91 | for (let level = 0; level < root.level; level++) { 92 | headerText += '\u00A0\u00A0\u00A0\u00A0'; 93 | } 94 | headerText += root.isSubtotal ? "Totals" : root.value; 95 | const textElement = document.createTextNode(headerText); 96 | 97 | thElement.appendChild(textElement); 98 | trElement.appendChild(thElement); 99 | if (root.values) { 100 | for (let i = 0; !(typeof root.values[i] === 'undefined' || root.values[i] === null); i++) { 101 | const tdElement = document.createElement('td'); 102 | if (root.values[i].value != null) { 103 | tdElement.appendChild(document.createTextNode(root.values[i].value)); 104 | } 105 | trElement.appendChild(tdElement); 106 | } 107 | } 108 | topElement.appendChild(trElement); 109 | } 110 | if (root.children) { 111 | for (const child of root.children) { 112 | MatrixDataviewHtmlFormatter.formatRowNodes(child, topElement); 113 | } 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/objectEnumerationBuilder.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Power BI Visualizations 3 | * 4 | * Copyright (c) Microsoft Corporation 5 | * All rights reserved. 6 | * MIT License 7 | * 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy 9 | * of this software and associated documentation files (the ""Software""), to deal 10 | * in the Software without restriction, including without limitation the rights 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the Software is 13 | * furnished to do so, subject to the following conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in 16 | * all copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | * THE SOFTWARE. 25 | */ 26 | 27 | /** 28 | * A helper class for building a VisualObjectInstanceEnumerationObject: 29 | * - Allows call chaining (e.g., builder.pushInstance({...}).pushInstance({...}) 30 | * - Allows creating of containers (via pushContainer/popContainer) 31 | */ 32 | 33 | import * as _ from "lodash"; 34 | import powerbi from "powerbi-visuals-api"; 35 | import { Selector } from "./common"; 36 | import VisualObjectInstance = powerbi.VisualObjectInstance; 37 | import VisualObjectInstanceContainer = powerbi.VisualObjectInstanceContainer; 38 | import VisualObjectInstanceEnumerationObject = powerbi.VisualObjectInstanceEnumerationObject; 39 | import VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration; 40 | 41 | export class ObjectEnumerationBuilder { 42 | private instances: VisualObjectInstance[]; 43 | private containers: VisualObjectInstanceContainer[]; 44 | private containerIdx: number; 45 | 46 | public pushInstance(instance: VisualObjectInstance, mergeInstances: boolean = true): ObjectEnumerationBuilder { 47 | 48 | let instances = this.instances; 49 | if (!instances) { 50 | instances = this.instances = []; 51 | } 52 | 53 | const containerIdx = this.containerIdx; 54 | if (containerIdx != null) { 55 | instance.containerIdx = containerIdx; 56 | } 57 | 58 | if (mergeInstances) { 59 | // Attempt to merge with an existing item if possible. 60 | for (const existingInstance of instances) { 61 | if (this.canMerge(existingInstance, instance)) { 62 | this.extend(existingInstance, instance, 'properties'); 63 | this.extend(existingInstance, instance, 'validValues'); 64 | 65 | return this; 66 | } 67 | } 68 | } 69 | 70 | instances.push(instance); 71 | 72 | return this; 73 | } 74 | 75 | public pushContainer(container: VisualObjectInstanceContainer): ObjectEnumerationBuilder { 76 | 77 | let containers = this.containers; 78 | if (!containers) { 79 | containers = this.containers = []; 80 | } 81 | 82 | const updatedLen = containers.push(container); 83 | this.containerIdx = updatedLen - 1; 84 | 85 | return this; 86 | } 87 | 88 | public popContainer(): ObjectEnumerationBuilder { 89 | this.containerIdx = undefined; 90 | 91 | return this; 92 | } 93 | 94 | public complete(): VisualObjectInstanceEnumerationObject { 95 | if (!this.instances) 96 | return; 97 | 98 | const result: VisualObjectInstanceEnumerationObject = { 99 | instances: this.instances, 100 | }; 101 | 102 | const containers = this.containers; 103 | if (containers) { 104 | result.containers = containers; 105 | } 106 | 107 | return result; 108 | } 109 | 110 | private canMerge(x: VisualObjectInstance, y: VisualObjectInstance): boolean { 111 | 112 | return x.objectName === y.objectName && 113 | x.containerIdx === y.containerIdx && 114 | ObjectEnumerationBuilder.selectorEquals(x.selector, y.selector); 115 | } 116 | 117 | private extend(target: VisualObjectInstance, source: VisualObjectInstance, propertyName: string): void { 118 | 119 | const sourceValues = source[propertyName]; 120 | if (!sourceValues) 121 | return; 122 | 123 | let targetValues = target[propertyName]; 124 | if (!targetValues) 125 | targetValues = target[propertyName] = {}; 126 | 127 | for (const valuePropertyName in sourceValues) { 128 | if (targetValues[valuePropertyName]) { 129 | // Properties have first-writer-wins semantics. 130 | continue; 131 | } 132 | 133 | targetValues[valuePropertyName] = sourceValues[valuePropertyName]; 134 | } 135 | } 136 | 137 | public static merge(x: VisualObjectInstanceEnumeration, y: VisualObjectInstanceEnumeration): VisualObjectInstanceEnumerationObject { 138 | const xNormalized = ObjectEnumerationBuilder.normalize(x); 139 | const yNormalized = ObjectEnumerationBuilder.normalize(y); 140 | 141 | if (!xNormalized || !yNormalized) 142 | return xNormalized || yNormalized; 143 | 144 | const xCategoryCount = xNormalized.containers ? xNormalized.containers.length : 0; 145 | 146 | for (const yInstance of yNormalized.instances) { 147 | xNormalized.instances.push(yInstance); 148 | 149 | if (yInstance.containerIdx != null) 150 | yInstance.containerIdx += xCategoryCount; 151 | } 152 | 153 | const yContainers = yNormalized.containers; 154 | if (!_.isEmpty(yContainers)) { 155 | if (xNormalized.containers) 156 | Array.prototype.push.apply(xNormalized.containers, yContainers); 157 | else 158 | xNormalized.containers = yContainers; 159 | } 160 | 161 | return xNormalized; 162 | } 163 | 164 | public static normalize(x: VisualObjectInstanceEnumeration): VisualObjectInstanceEnumerationObject { 165 | 166 | if (_.isArray(x)) { 167 | return { instances: x }; 168 | } 169 | 170 | return x; 171 | } 172 | 173 | public static getContainerForInstance(enumeration: VisualObjectInstanceEnumerationObject, instance: VisualObjectInstance): VisualObjectInstanceContainer { 174 | return enumeration.containers[instance.containerIdx]; 175 | } 176 | 177 | public static selectorEquals(x: Selector, y: Selector): boolean { 178 | // Normalize false to null 179 | x = x || null; 180 | y = y || null; 181 | 182 | if (x === y) 183 | return true; 184 | 185 | if (!x !== !y) 186 | return false; 187 | 188 | if (x.id !== y.id) 189 | return false; 190 | if (x.metadata !== y.metadata) 191 | return false; 192 | 193 | return true; 194 | } 195 | } 196 | 197 | 198 | -------------------------------------------------------------------------------- /src/subtotalProperties.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Power BI Visualizations 3 | * 4 | * Copyright (c) Microsoft Corporation 5 | * All rights reserved. 6 | * MIT License 7 | * 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy 9 | * of this software and associated documentation files (the ""Software""), to deal 10 | * in the Software without restriction, including without limitation the rights 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the Software is 13 | * furnished to do so, subject to the following conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in 16 | * all copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | * THE SOFTWARE. 25 | */ 26 | 27 | import { DataViewObjectPropertyReference } from "./common"; 28 | 29 | export class SubtotalProperties { 30 | public static readonly ObjectSubTotals: string = "subTotals"; 31 | 32 | public static rowSubtotals: DataViewObjectPropertyReference = { 33 | "propertyIdentifier": { 34 | "objectName": SubtotalProperties.ObjectSubTotals, 35 | "propertyName": "rowSubtotals" 36 | }, 37 | "defaultValue": true 38 | }; 39 | 40 | public static rowSubtotalsPerLevel: DataViewObjectPropertyReference = { 41 | "propertyIdentifier": { 42 | "objectName": SubtotalProperties.ObjectSubTotals, 43 | "propertyName": "perRowLevel" 44 | }, 45 | "defaultValue": false 46 | } 47 | 48 | public static columnSubtotals: DataViewObjectPropertyReference = { 49 | "propertyIdentifier": { 50 | "objectName": SubtotalProperties.ObjectSubTotals, 51 | "propertyName": "columnSubtotals" 52 | }, 53 | "defaultValue": true 54 | }; 55 | 56 | public static columnSubtotalsPerLevel: DataViewObjectPropertyReference = { 57 | "propertyIdentifier": { 58 | "objectName": SubtotalProperties.ObjectSubTotals, 59 | "propertyName": "perColumnLevel" 60 | }, 61 | "defaultValue": false 62 | }; 63 | 64 | public static levelSubtotalEnabled: DataViewObjectPropertyReference = { 65 | "propertyIdentifier": { 66 | "objectName": SubtotalProperties.ObjectSubTotals, 67 | "propertyName": "levelSubtotalEnabled" 68 | }, 69 | "defaultValue": true 70 | }; 71 | } 72 | 73 | -------------------------------------------------------------------------------- /src/visual.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Power BI Visual CLI 3 | * 4 | * Copyright (c) Microsoft Corporation 5 | * All rights reserved. 6 | * MIT License 7 | * 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy 9 | * of this software and associated documentation files (the ""Software""), to deal 10 | * in the Software without restriction, including without limitation the rights 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the Software is 13 | * furnished to do so, subject to the following conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in 16 | * all copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | * THE SOFTWARE. 25 | */ 26 | 27 | "use strict"; 28 | import powerbi from "powerbi-visuals-api"; 29 | import { DataViewObjectPropertyReference, Selector } from "./common"; 30 | import { MatrixDataviewHtmlFormatter } from "./matrixDataviewHtmlFormatter"; 31 | import { ObjectEnumerationBuilder } from "./objectEnumerationBuilder"; 32 | import { SubtotalProperties } from "./subtotalProperties"; 33 | import IVisual = powerbi.extensibility.visual.IVisual; 34 | import VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions; 35 | import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions; 36 | import DataView = powerbi.DataView; 37 | import EnumerateVisualObjectInstancesOptions = powerbi.EnumerateVisualObjectInstancesOptions; 38 | import VisualObjectInstance = powerbi.VisualObjectInstance; 39 | import VisualObjectInstanceEnumerationObject = powerbi.VisualObjectInstanceEnumerationObject; 40 | import DataViewObjects = powerbi.DataViewObjects; 41 | import DataViewObject = powerbi.DataViewObject; 42 | import DataViewHierarchyLevel = powerbi.DataViewHierarchyLevel; 43 | export class Visual implements IVisual { 44 | private target: HTMLElement; 45 | private dataView: DataView; 46 | 47 | constructor(options: VisualConstructorOptions) { 48 | console.log('Visual constructor', options); 49 | this.target = options.element; 50 | } 51 | 52 | public update(options: VisualUpdateOptions) { 53 | if (!options) { 54 | return; 55 | } 56 | 57 | if (options.type & powerbi.VisualUpdateType.Data) { 58 | if (!options.dataViews 59 | || !options.dataViews[0] 60 | || !options.dataViews[0].matrix 61 | || !options.dataViews[0].matrix.rows 62 | || !options.dataViews[0].matrix.rows.root 63 | || !options.dataViews[0].matrix.rows.root.children 64 | || !options.dataViews[0].matrix.rows.root.children.length 65 | || !options.dataViews[0].matrix.columns 66 | || !options.dataViews[0].matrix.columns.root 67 | || !options.dataViews[0].matrix.columns.root.children 68 | || !options.dataViews[0].matrix.columns.root.children.length) { 69 | this.dataView = undefined; 70 | return; 71 | } 72 | 73 | this.dataView = options.dataViews[0]; 74 | 75 | while(this.target.firstChild) { 76 | this.target.removeChild(this.target.firstChild); 77 | } 78 | 79 | this.target.appendChild(MatrixDataviewHtmlFormatter.formatDataViewMatrix(options.dataViews[0].matrix)); 80 | } 81 | } 82 | 83 | public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstance[] | VisualObjectInstanceEnumerationObject { 84 | const enumeration = new ObjectEnumerationBuilder(); 85 | 86 | // Visuals are initialized with an empty data view before queries are run, therefore we need to make sure that 87 | // we are resilient here when we do not have data view. 88 | if (this.dataView) { 89 | let objects = null; 90 | if (this.dataView && this.dataView.metadata) { 91 | objects = this.dataView.metadata.objects; 92 | } 93 | 94 | switch (options.objectName) { 95 | case "general": 96 | break; 97 | case SubtotalProperties.ObjectSubTotals: 98 | this.enumerateSubTotalsOptions(enumeration, objects); 99 | break; 100 | default: 101 | break; 102 | } 103 | } 104 | 105 | return enumeration.complete(); 106 | } 107 | 108 | public enumerateSubTotalsOptions(enumeration, objects: DataViewObjects): void { 109 | let instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals); 110 | const rowSubtotalsEnabled: boolean = Visual.setInstanceProperty(objects, SubtotalProperties.rowSubtotals, instance); 111 | const columnSubtotalsEnabled: boolean = Visual.setInstanceProperty(objects, SubtotalProperties.columnSubtotals, instance); 112 | enumeration.pushInstance(instance); 113 | 114 | if (rowSubtotalsEnabled) { 115 | 116 | // Per row level 117 | instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals); 118 | const perLevel = Visual.setInstanceProperty(objects, SubtotalProperties.rowSubtotalsPerLevel, instance); 119 | enumeration.pushInstance(instance, /* mergeInstances */ false); 120 | 121 | if (perLevel) 122 | this.enumeratePerLevelSubtotals(enumeration, this.dataView.matrix.rows.levels); 123 | } 124 | 125 | if (columnSubtotalsEnabled) { 126 | 127 | // Per column level 128 | instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals); 129 | const perLevel = Visual.setInstanceProperty(objects, SubtotalProperties.columnSubtotalsPerLevel, instance); 130 | enumeration.pushInstance(instance, /* mergeInstances */ false); 131 | 132 | if (perLevel) 133 | this.enumeratePerLevelSubtotals(enumeration, this.dataView.matrix.columns.levels); 134 | } 135 | } 136 | 137 | private enumeratePerLevelSubtotals(enumeration, hierarchyLevels: DataViewHierarchyLevel[]) { 138 | for (const level of hierarchyLevels) { 139 | for (const source of level.sources) { 140 | if (!source.isMeasure) { 141 | const instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals, { metadata: source.queryName }, source.displayName); 142 | Visual.setInstanceProperty(source.objects, SubtotalProperties.levelSubtotalEnabled, instance); 143 | enumeration.pushInstance(instance, /* mergeInstances */ false); 144 | } 145 | } 146 | } 147 | } 148 | 149 | private createVisualObjectInstance(objectName: string, selector: Selector = null, displayName?: string): VisualObjectInstance { 150 | const instance: VisualObjectInstance = { 151 | selector: selector, 152 | objectName: objectName, 153 | properties: {}, 154 | }; 155 | 156 | if (displayName != null) 157 | instance.displayName = displayName; 158 | 159 | return instance; 160 | } 161 | 162 | private static getPropertyValue(objects: DataViewObjects, dataViewObjectPropertyReference: DataViewObjectPropertyReference): T { 163 | let object; 164 | if (objects) { 165 | object = objects[dataViewObjectPropertyReference.propertyIdentifier.objectName]; 166 | } 167 | return Visual.getValue(object, dataViewObjectPropertyReference.propertyIdentifier.propertyName, dataViewObjectPropertyReference.defaultValue); 168 | } 169 | 170 | private static setInstanceProperty(objects: DataViewObjects, dataViewObjectPropertyReference: DataViewObjectPropertyReference, instance: VisualObjectInstance): T { 171 | const value = this.getPropertyValue(objects, dataViewObjectPropertyReference); 172 | if (instance && instance.properties) { 173 | instance.properties[dataViewObjectPropertyReference.propertyIdentifier.propertyName] = value; 174 | } 175 | return value; 176 | } 177 | 178 | private static getValue( 179 | object: DataViewObject, 180 | propertyName: string, 181 | defaultValue?: T, 182 | instanceId?: string): T { 183 | 184 | if (!object) 185 | return defaultValue; 186 | 187 | if (instanceId) { 188 | const instances = object.$instances; 189 | if (!instances) 190 | return defaultValue; 191 | 192 | const instance = instances[instanceId]; 193 | if (!instance) 194 | return defaultValue; 195 | 196 | object = instance; 197 | } 198 | 199 | const propertyValue = object[propertyName]; 200 | if (propertyValue === undefined) 201 | return defaultValue; 202 | 203 | return propertyValue; 204 | } 205 | } -------------------------------------------------------------------------------- /style/visual.less: -------------------------------------------------------------------------------- 1 | .datagrid table { 2 | border-collapse: collapse; 3 | text-align: left; 4 | width: 100%; 5 | } 6 | .datagrid { 7 | font: normal 12px/150% Arial, Helvetica, sans-serif; 8 | background: #fff; 9 | overflow: scroll; 10 | width: 100%; 11 | height: 100%; 12 | border: 0; 13 | } 14 | .datagrid table td, .datagrid table th { 15 | padding: 3px 10px; 16 | } 17 | .datagrid table thead th { 18 | background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #006699), color-stop(1, #00557F) ); 19 | background:-moz-linear-gradient( center top, #006699 5%, #00557F 100% ); 20 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006699', endColorstr='#00557F'); 21 | background-color:#006699; 22 | color:#FFFFFF; 23 | font-size: 15px; 24 | font-weight: bold; 25 | border-left: 1px solid #0070A8; 26 | } 27 | .datagrid table thead th:first-child { 28 | border: none; 29 | } 30 | .datagrid table tbody td { 31 | color: #00557F; 32 | border-left: 1px solid #E1EEF4; 33 | font-size: 12px; 34 | font-weight: normal; 35 | } 36 | .datagrid table tbody .alt td { 37 | background: #E1EEf4; 38 | color: #00557F; 39 | } 40 | .datagrid table tbody td:first-child { 41 | border-left: none; 42 | } 43 | .datagrid table tbody tr:last-child td { 44 | border-bottom: none; 45 | } 46 | 47 | .datagrid table tfoot td div { 48 | border-top: 1px solid #006699; 49 | background: #E1EEf4; 50 | } 51 | .datagrid table tfoot td { 52 | padding: 0; 53 | font-size: 12px 54 | } 55 | .datagrid table tfoot td div{ 56 | padding: 2px; 57 | } 58 | .datagrid table tfoot td ul { 59 | margin: 0; 60 | padding:0; 61 | list-style: none; 62 | text-align: right; 63 | } 64 | .datagrid table tfoot li { 65 | display: inline; 66 | } 67 | .datagrid table tfoot li a { 68 | text-decoration: none; 69 | display: inline-block; 70 | padding: 2px 8px; 71 | margin: 1px; 72 | color: #FFFFFF; 73 | border: 1px solid #006699; 74 | -webkit-border-radius: 3px; 75 | -moz-border-radius: 3px; 76 | border-radius: 2px; 77 | background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #006699), color-stop(1, #00557F) ); 78 | background:-moz-linear-gradient( center top, #006699 5%, #00557F 100% ); 79 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006699', endColorstr='#00557F'); 80 | background-color:#006699; 81 | } 82 | .datagrid table tfoot ul.active, .datagrid table tfoot ul a:hover { 83 | text-decoration: none; 84 | border-color: #00557F; 85 | color: #FFFFFF; 86 | background: none; 87 | background-color:#006699; 88 | } 89 | div.dhtmlx_window_active, div.dhx_modal_cover_dv { 90 | position: fixed !important; 91 | } 92 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": false, 4 | "emitDecoratorMetadata": true, 5 | "experimentalDecorators": true, 6 | "target": "es6", 7 | "sourceMap": true, 8 | "outDir": "./.tmp/build/", 9 | "moduleResolution": "node", 10 | "declaration": true, 11 | "lib": [ 12 | "es2015", 13 | "dom" 14 | ] 15 | }, 16 | "files": [ 17 | "src/visual.ts" 18 | ] 19 | } 20 | --------------------------------------------------------------------------------