From 7c697276d237b476c8a94e831fff240bfcdf1452 Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Wed, 11 May 2022 14:54:14 +1000 Subject: [PATCH 1/8] feat: finish panel of population analysis --- backend/config/app_config.yaml | 6 +- frontend/package-lock.json | 2890 ++++++++++++++++- frontend/package.json | 7 + frontend/src/App.tsx | 71 +- .../src/components/area-graph/area-graph.tsx | 1904 +++++++++++ .../src/components/check-box/check-box.tsx | 40 + .../dropdown-selector/dropdown-selector.tsx | 38 + .../components/left-drawer/left-drawer.tsx | 66 + .../population-analysis-option-panel.tsx | 80 + .../population-analysis-panel.tsx | 1962 +++++++++++ frontend/src/components/slider/slider.tsx | 40 + .../top10language-analysis-options-panel.tsx | 50 + frontend/src/index.tsx | 5 +- frontend/src/meta-data/index.ts | 15 + frontend/src/page/data-panal-page.tsx | 28 + frontend/src/services/services.ts | 7 + 16 files changed, 7170 insertions(+), 39 deletions(-) create mode 100644 frontend/src/components/area-graph/area-graph.tsx create mode 100644 frontend/src/components/check-box/check-box.tsx create mode 100644 frontend/src/components/dropdown-selector/dropdown-selector.tsx create mode 100644 frontend/src/components/left-drawer/left-drawer.tsx create mode 100644 frontend/src/components/population-analysis-option-panel/population-analysis-option-panel.tsx create mode 100644 frontend/src/components/population-analysis-panel/population-analysis-panel.tsx create mode 100644 frontend/src/components/slider/slider.tsx create mode 100644 frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx create mode 100644 frontend/src/meta-data/index.ts create mode 100644 frontend/src/page/data-panal-page.tsx create mode 100644 frontend/src/services/services.ts diff --git a/backend/config/app_config.yaml b/backend/config/app_config.yaml index 78f708d..6673f00 100644 --- a/backend/config/app_config.yaml +++ b/backend/config/app_config.yaml @@ -13,9 +13,9 @@ app: # Xiao Tian test # - 161.117.88.132 # MRC cluster - - 172.26.128.254 - - 172.26.134.211 - - 172.26.133.48 + - 172.26.128.63 + # - 172.26.134.211 + # - 172.26.133.48 master-node: - 172.26.128.254 diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 0c5a122..02bff4a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -4,6 +4,11 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@amap/amap-jsapi-loader": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-0.0.3.tgz", + "integrity": "sha512-3Tz50UdmRY2BiONK/mafEQzshYGUinK2hmDlKjYtoJHC/aVydiMOolHENWmP98F603RcrWTM7aLxOFMgesFfug==" + }, "@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -13,6 +18,872 @@ "@jridgewell/trace-mapping": "^0.3.9" } }, + "@ant-design/charts": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/@ant-design/charts/-/charts-1.3.6.tgz", + "integrity": "sha512-4mKvm6C03JkQiUhxHE8XLSZ2oQeLQL8pL0B+e77DvFRZpDztAxm4I6AlDcCuSq45ZIsv7K+XQcozJGs6NV+g6g==", + "requires": { + "@ant-design/flowchart": "^1.0.2", + "@ant-design/graphs": "^1.0.1", + "@ant-design/maps": "^0.0.3", + "@ant-design/plots": "^1.0.2" + } + }, + "@ant-design/colors": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-4.0.5.tgz", + "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==", + "requires": { + "tinycolor2": "^1.4.1" + } + }, + "@ant-design/flowchart": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@ant-design/flowchart/-/flowchart-1.1.2.tgz", + "integrity": "sha512-Q2Jt2QEE+CBD0PjCetzXtel3auYNiHAfLgnC0yvFuXHcPzUnC3WFGU7wuSEezKMMmOPXLZU4uhclx8olrz9nqg==", + "requires": { + "@antv/layout": "^0.1.17", + "@antv/x6": "^1.25.0", + "@antv/x6-react-components": "^1.1.13", + "@antv/x6-react-shape": "^1.4.5", + "@antv/xflow": "^1.0.0", + "react-color": "2.17.3", + "react-use": "17.3.1" + } + }, + "@ant-design/graphs": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@ant-design/graphs/-/graphs-1.1.1.tgz", + "integrity": "sha512-OJzEIrfdKmhTYRSTj7k1divbSQbnHZP0VSYP6OVrF5DbI/wnZS1oqUKnUpoxReYW4BMV6r70q6Zq+KvLRNH8Hg==", + "requires": { + "@antv/g6": "^4.2.4", + "@antv/util": "^2.0.9", + "react-content-loader": "^5.0.4" + } + }, + "@ant-design/maps": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@ant-design/maps/-/maps-0.0.3.tgz", + "integrity": "sha512-XarzMFcmvLtwaIKgboHWoKkpdrSTGtZU898GmVUP1o3V3eWNfEE+Al3yEV2vauM1OxRbVLc1vAelKVf1nAHtuw==", + "requires": { + "@antv/l7plot": "^0.0.3-alpha.5", + "@antv/util": "^2.0.9", + "react-content-loader": "^5.0.4" + } + }, + "@ant-design/plots": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/@ant-design/plots/-/plots-1.0.9.tgz", + "integrity": "sha512-Y4+vmNjWbt+hcKcUbbhEsEFdfysUG32aO1y7IvbNtIHK5uTg3wa1e2mWcYJu1Y6sFXgtftKiTvcYMZIQ/0uUvg==", + "requires": { + "@antv/g2plot": "^2.2.11", + "react-content-loader": "^5.0.4" + } + }, + "@antv/adjust": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/@antv/adjust/-/adjust-0.2.5.tgz", + "integrity": "sha512-MfWZOkD9CqXRES6MBGRNe27Q577a72EIwyMnE29wIlPliFvJfWwsrONddpGU7lilMpVKecS3WAzOoip3RfPTRQ==", + "requires": { + "@antv/util": "~2.0.0", + "tslib": "^1.10.0" + } + }, + "@antv/algorithm": { + "version": "0.1.23", + "resolved": "https://registry.npmmirror.com/@antv/algorithm/-/algorithm-0.1.23.tgz", + "integrity": "sha512-ncAfXwpO9angkGlZ/4LYsFk+T2hvQI6A+mEEGMslj8wF7ddPdtZ+DK3KFbhfJvQ4iz9Z44sJfdJ/fybwt0g0kA==", + "requires": { + "@antv/util": "^2.0.13", + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/async-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@antv/async-hook/-/async-hook-2.1.0.tgz", + "integrity": "sha512-q7Rup5jTDAiWh77Xb2vgkCURJGczmU2iWTCkBDq28PuK5KUoenyeGGrFKAVkgqaL663wdpw0Vzn+sYriTfT9hA==", + "requires": { + "async": "^3.1.1" + } + }, + "@antv/attr": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@antv/attr/-/attr-0.3.3.tgz", + "integrity": "sha512-7iSSRhYzZ7pYXZKTL1ECGhTdKVHPQx1Vj7yYVTAiyLMsWsLUAoMf0m6dT6msTs0SdrXHRbjzXavVXxRj/wZZJA==", + "requires": { + "@antv/color-util": "^2.0.1", + "@antv/util": "~2.0.0", + "tslib": "^1.10.0" + } + }, + "@antv/color-util": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@antv/color-util/-/color-util-2.0.6.tgz", + "integrity": "sha512-KnPEaAH+XNJMjax9U35W67nzPI+QQ2x27pYlzmSIWrbj4/k8PGrARXfzDTjwoozHJY8qG62Z+Ww6Alhu2FctXQ==", + "requires": { + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/component": { + "version": "0.8.27", + "resolved": "https://registry.npmmirror.com/@antv/component/-/component-0.8.27.tgz", + "integrity": "sha512-FY9fgUBjEuWxQ4w7VbcMSwFr7pqnRf1/F1ja1weoEpNndKBlStNYWhXTx4p5uMJVLvMpXoFPqan7RzyP8rel6Q==", + "requires": { + "@antv/color-util": "^2.0.3", + "@antv/dom-util": "~2.0.1", + "@antv/g-base": "^0.5.9", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.7", + "@antv/scale": "~0.3.1", + "@antv/util": "~2.0.0", + "fecha": "~4.2.0", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/coord": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@antv/coord/-/coord-0.3.1.tgz", + "integrity": "sha512-rFE94C8Xzbx4xmZnHh2AnlB3Qm1n5x0VT3OROy257IH6Rm4cuzv1+tZaUBATviwZd99S+rOY9telw/+6C9GbRw==", + "requires": { + "@antv/matrix-util": "^3.1.0-beta.2", + "@antv/util": "~2.0.12", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/dom-util": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@antv/dom-util/-/dom-util-2.0.4.tgz", + "integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/event-emitter": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" + }, + "@antv/g-base": { + "version": "0.5.11", + "resolved": "https://registry.npmmirror.com/@antv/g-base/-/g-base-0.5.11.tgz", + "integrity": "sha512-10Hkq7XksVCqxZZrPkd6HTU9tb/+2meCVEMy/edhS4I/sokhcgC9m3fQP5bE8rA3EVKwELE7MJHZ98BEpVFqvQ==", + "requires": { + "@antv/event-emitter": "^0.1.1", + "@antv/g-math": "^0.1.6", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.13", + "@types/d3-timer": "^2.0.0", + "d3-ease": "^1.0.5", + "d3-interpolate": "^1.3.2", + "d3-timer": "^1.0.9", + "detect-browser": "^5.1.0", + "tslib": "^2.0.3" + }, + "dependencies": { + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/g-canvas": { + "version": "0.5.12", + "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-0.5.12.tgz", + "integrity": "sha512-iJ/muwwqCCNONVlPIzv/7OL5iLguaKRj2BxNMytUO3TWwamM+kHkiyYEOkS0dPn9h/hBsHYlLUluSVz2Fp6/bw==", + "requires": { + "@antv/g-base": "^0.5.3", + "@antv/g-math": "^0.1.6", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/g-math": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-0.1.7.tgz", + "integrity": "sha512-xGyXaloD1ynfp7gS4VuV+MjSptZIwHvLHr8ekXJSFAeWPYLu84yOW2wOZHDdp1bzDAIuRv6xDBW58YGHrWsFcA==", + "requires": { + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0" + } + }, + "@antv/g-svg": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/@antv/g-svg/-/g-svg-0.5.6.tgz", + "integrity": "sha512-Xve1EUGk4HMbl2nq4ozR4QLh6GyoZ8Xw/+9kHYI4B5P2lIUQU95MuRsaLFfW5NNpZDx85ZeH97tqEmC9L96E7A==", + "requires": { + "@antv/g-base": "^0.5.3", + "@antv/g-math": "^0.1.6", + "@antv/util": "~2.0.0", + "detect-browser": "^5.0.0", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/g-webgpu": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/@antv/g-webgpu/-/g-webgpu-0.5.5.tgz", + "integrity": "sha512-TxtBniINFq1jFGEPo46xjJfrbJbUqkFd5wmsRs3tcg/7J7xoldOP1kEadpI3AJG9knMYdE92VpILw1VPd6DgzQ==", + "requires": { + "@antv/g-webgpu-core": "^0.5.5", + "@antv/g-webgpu-engine": "^0.5.5", + "@webgpu/types": "^0.0.31", + "gl-matrix": "^3.1.0", + "gl-vec2": "^1.3.0", + "hammerjs": "^2.0.8", + "inversify": "^5.0.1", + "inversify-inject-decorators": "^3.1.0", + "polyline-miter-util": "^1.0.1", + "polyline-normals": "^2.0.2", + "probe.gl": "^3.1.1", + "reflect-metadata": "^0.1.13" + } + }, + "@antv/g-webgpu-core": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/@antv/g-webgpu-core/-/g-webgpu-core-0.5.6.tgz", + "integrity": "sha512-DPiH3GkAUiT0Q+LAKeImpI+IOQ/gP2w6HstYKivpFIpBPIvZ/9equM3icVrn1iDfDkZANVXQ1PppcO3xBv1ZTw==", + "requires": { + "eventemitter3": "^4.0.0", + "gl-matrix": "^3.1.0", + "inversify": "^5.0.1", + "inversify-inject-decorators": "^3.1.0", + "probe.gl": "^3.1.1", + "reflect-metadata": "^0.1.13" + } + }, + "@antv/g-webgpu-engine": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/@antv/g-webgpu-engine/-/g-webgpu-engine-0.5.6.tgz", + "integrity": "sha512-D311qYUefdEFwLayutIHqucrAY3cAGH3BdnXS37nq+0nsglrHcNP0Ab1YTinn9RihLoY3yXFTLzrYkJHJbZXDg==", + "requires": { + "@antv/g-webgpu-core": "^0.5.6", + "@webgpu/glslang": "^0.0.15", + "@webgpu/types": "^0.0.31", + "gl-matrix": "^3.1.0", + "hammerjs": "^2.0.8", + "inversify": "^5.0.1", + "inversify-inject-decorators": "^3.1.0", + "probe.gl": "^3.1.1", + "reflect-metadata": "^0.1.13", + "regl": "^1.3.11" + } + }, + "@antv/g2": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/@antv/g2/-/g2-4.2.1.tgz", + "integrity": "sha512-jsaj+lKXse4PCJgL0Zg43eylrN4n0poJ4O9Zb/pa7/tkf8dOsaOLrwO+0PRQBmd64ko6oGgTiei/dVuBTlUwTA==", + "requires": { + "@antv/adjust": "^0.2.1", + "@antv/attr": "^0.3.1", + "@antv/color-util": "^2.0.2", + "@antv/component": "^0.8.27", + "@antv/coord": "^0.3.0", + "@antv/dom-util": "^2.0.2", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "~0.5.6", + "@antv/g-canvas": "~0.5.10", + "@antv/g-svg": "~0.5.6", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.15", + "@antv/scale": "^0.3.14", + "@antv/util": "~2.0.5", + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/g2plot": { + "version": "2.4.16", + "resolved": "https://registry.npmmirror.com/@antv/g2plot/-/g2plot-2.4.16.tgz", + "integrity": "sha512-uuO08uyN4WvHHt0f3o6qVuIrUiARhIwebFh/JvMTnWEqoH3MbVo3e6vvcLhBrqE2J+WZeQyqrtyAxl92C95wqw==", + "requires": { + "@antv/event-emitter": "^0.1.2", + "@antv/g2": "^4.1.26", + "d3-hierarchy": "^2.0.0", + "d3-regression": "^1.3.5", + "fmin": "^0.0.2", + "pdfast": "^0.2.0", + "size-sensor": "^1.0.1", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/g6": { + "version": "4.6.4", + "resolved": "https://registry.npmmirror.com/@antv/g6/-/g6-4.6.4.tgz", + "integrity": "sha512-8xU96NISJ7G3Gwo6m1BTtqzfBeRd23BWcLDIpwX4v1KoE3NMHZlJkUaNvnKsoeoEoLNCDYBvTfBfEwV4C5gWfw==", + "requires": { + "@antv/g6-pc": "0.6.4" + } + }, + "@antv/g6-core": { + "version": "0.6.4", + "resolved": "https://registry.npmmirror.com/@antv/g6-core/-/g6-core-0.6.4.tgz", + "integrity": "sha512-8JYIZME7zaQJImlPOatmlTe/tKPxRaq8/wV2f61/7mfKON3LF9kEVvTrpJexMnXoCBuM+puxx3DbiPb64gL4LQ==", + "requires": { + "@antv/algorithm": "^0.1.8", + "@antv/dom-util": "^2.0.1", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "^0.5.1", + "@antv/g-math": "^0.1.1", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/util": "~2.0.5", + "ml-matrix": "^6.5.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/g6-element": { + "version": "0.6.4", + "resolved": "https://registry.npmmirror.com/@antv/g6-element/-/g6-element-0.6.4.tgz", + "integrity": "sha512-9wKogi6LnA4IoiVEWv8HmvHgHOXzbT73jDi4QrdSWjrttu7cyR2wQeKRYDp2lL2OPkHzzuNcI+ULQxbLKl3Oqg==", + "requires": { + "@antv/g-base": "^0.5.1", + "@antv/g6-core": "0.6.4", + "@antv/util": "~2.0.5" + } + }, + "@antv/g6-pc": { + "version": "0.6.4", + "resolved": "https://registry.npmmirror.com/@antv/g6-pc/-/g6-pc-0.6.4.tgz", + "integrity": "sha512-bEQ3pqHzkqDvk2aWRghj9cB73qXx0n4NRJFmL4cSJnB1SQyk7akfBHgLBzw5aqsYviL9WK7VR6uCCZRPK3PoXA==", + "requires": { + "@ant-design/colors": "^4.0.5", + "@antv/algorithm": "^0.1.8", + "@antv/dom-util": "^2.0.1", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "^0.5.1", + "@antv/g-canvas": "^0.5.2", + "@antv/g-math": "^0.1.1", + "@antv/g-svg": "^0.5.1", + "@antv/g6-core": "0.6.4", + "@antv/g6-element": "0.6.4", + "@antv/g6-plugin": "0.6.4", + "@antv/hierarchy": "^0.6.7", + "@antv/layout": "^0.2.1", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/util": "~2.0.5", + "color": "^3.1.3", + "d3-force": "^2.0.1", + "dagre": "^0.8.5", + "insert-css": "^2.0.0", + "ml-matrix": "^6.5.0" + }, + "dependencies": { + "@antv/layout": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/@antv/layout/-/layout-0.2.2.tgz", + "integrity": "sha512-J2qRZwhA6NbR3gPrbw8Vw+6TpXtMmpW86q8LnwtCnNvdRNQQ7wSfvWAiphtFRfHqwL9ky44J51v4ysCENgTGDQ==", + "requires": { + "@antv/g-webgpu": "0.5.5", + "@antv/graphlib": "^1.0.0", + "d3-force": "^2.0.1", + "dagre-compound": "^0.0.11", + "ml-matrix": "^6.5.0" + } + } + } + }, + "@antv/g6-plugin": { + "version": "0.6.4", + "resolved": "https://registry.npmmirror.com/@antv/g6-plugin/-/g6-plugin-0.6.4.tgz", + "integrity": "sha512-eStD6j3nB54owXdYcA6/vxVCxJfBiMUfc33p4cKnRJnomSvEHYG/7i21SbyzMQQq7dRc0RDIPubYVwSilKzLCA==", + "requires": { + "@antv/dom-util": "^2.0.2", + "@antv/g-base": "^0.5.1", + "@antv/g-canvas": "^0.5.2", + "@antv/g-svg": "^0.5.2", + "@antv/g6-core": "0.6.4", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/scale": "^0.3.4", + "@antv/util": "^2.0.9", + "insert-css": "^2.0.0" + } + }, + "@antv/geo-coord": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@antv/geo-coord/-/geo-coord-1.0.8.tgz", + "integrity": "sha512-4eLAVh9HDWNAuUAny6mI0U9CQ7NXlmVffR6LhZ7OYbDC5NeFV65gWfUTjzotQXK+6eXU5/8vDhHl8YestLkB5Q==", + "requires": { + "@antv/gl-matrix": "^2.7.1", + "@antv/util": "~2.0.1" + } + }, + "@antv/gl-matrix": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz", + "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==" + }, + "@antv/graphlib": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@antv/graphlib/-/graphlib-1.2.0.tgz", + "integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ==" + }, + "@antv/hierarchy": { + "version": "0.6.8", + "resolved": "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.8.tgz", + "integrity": "sha512-wVzUl+pxny5gyGJ2mkWx8IiEypX6bnMHgr/NILgbxY6shoy0Vf4FhZpI3CY8Ez7bQT6js8fMkB2NymPW7d7i8A==", + "requires": { + "@antv/util": "^2.0.7" + } + }, + "@antv/l7": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7/-/l7-2.8.35.tgz", + "integrity": "sha512-NOOwU/h6/qC+tNWXMCRyakl4ivtlnSd1MhU9MJxb+i5MEUTrDB4DG+jmvzwjMll/91L59/vRb9TvdXdAA8RiCw==", + "requires": { + "@antv/l7-component": "^2.8.35", + "@antv/l7-core": "^2.8.35", + "@antv/l7-layers": "^2.8.35", + "@antv/l7-maps": "^2.8.35", + "@antv/l7-scene": "^2.8.35", + "@antv/l7-source": "^2.8.35", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7" + } + }, + "@antv/l7-component": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-component/-/l7-component-2.8.35.tgz", + "integrity": "sha512-fWMDDQ8caX32BoNaXUIClJTxdv2P/kBF4D74+hCvTWSwXN1IFg35zKUwfcJNKq44oieGSqBB7zAjMA2POpl/cw==", + "requires": { + "@antv/l7-core": "^2.8.35", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "eventemitter3": "^4.0.0", + "inversify": "^5.0.1", + "lodash": "^4.17.15", + "reflect-metadata": "^0.1.13", + "supercluster": "^7.0.0" + } + }, + "@antv/l7-core": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-core/-/l7-core-2.8.35.tgz", + "integrity": "sha512-tZUa0tv7CINfNXCI5qUZ4dwRiH1xY7ukxmRv6H6n4npDNd3T5yMLmNgY5c4bRkYiV2F8qQEanweCRFU/ZL+DOw==", + "requires": { + "@antv/async-hook": "^2.1.0", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "ajv": "^6.10.2", + "element-resize-event": "^3.0.3", + "eventemitter3": "^4.0.0", + "gl-matrix": "^3.1.0", + "inversify": "^5.0.1", + "inversify-inject-decorators": "^3.1.0", + "l7-tiny-sdf": "^0.0.3", + "l7hammerjs": "^0.0.7", + "lodash": "^4.17.15", + "reflect-metadata": "^0.1.13", + "viewport-mercator-project": "^6.2.1" + } + }, + "@antv/l7-layers": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-layers/-/l7-layers-2.8.35.tgz", + "integrity": "sha512-G4nKhRS5HuA+JV37XeFOlEBCpR6hTVACtAA51lUrwzVU7g2nSvSpQpiVgUWKY+JAQ1V7CqA+WdiO3FXocHG/5A==", + "requires": { + "@antv/geo-coord": "^1.0.8", + "@antv/l7-core": "^2.8.35", + "@antv/l7-source": "^2.8.35", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "@mapbox/martini": "^0.2.0", + "@turf/meta": "^6.0.2", + "d3-array": "1", + "d3-color": "^1.4.0", + "d3-scale": "2", + "earcut": "^2.2.1", + "eventemitter3": "^4.0.0", + "extrude-polyline": "^1.0.6", + "gl-matrix": "^3.1.0", + "gl-vec2": "^1.3.0", + "inversify": "^5.0.1", + "lodash": "^4.17.15", + "merge-json-schemas": "1.0.0", + "polyline-miter-util": "^1.0.1", + "reflect-metadata": "^0.1.13" + } + }, + "@antv/l7-map": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-map/-/l7-map-2.8.35.tgz", + "integrity": "sha512-fD/XuDqJDG+6UraHBUd464qLHa6GlaUJJWoVaeaiwKOpWEs4K5M+L9orbV3qkC47R2xNJa8CCKYfnXHOB12XAQ==", + "requires": { + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/unitbezier": "^0.0.0", + "eventemitter3": "^4.0.4", + "lodash": "^4.17.15" + } + }, + "@antv/l7-maps": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-maps/-/l7-maps-2.8.35.tgz", + "integrity": "sha512-M4ngQdVnUVV/DU26cNMGg9wSZ0U//3C9d7GzcSHUinABKlfkJLDFYQltaFS+eZcQcx3aHX52irw++wSYlXUsWA==", + "requires": { + "@amap/amap-jsapi-loader": "^0.0.3", + "@antv/l7-core": "^2.8.35", + "@antv/l7-map": "^2.8.35", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "@types/amap-js-api": "^1.4.6", + "@types/mapbox-gl": "^1.11.2", + "gl-matrix": "^3.1.0", + "inversify": "^5.0.1", + "mapbox-gl": "^1.2.1", + "reflect-metadata": "^0.1.13", + "viewport-mercator-project": "^6.2.1" + } + }, + "@antv/l7-renderer": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-renderer/-/l7-renderer-2.8.35.tgz", + "integrity": "sha512-CXUAXgjJdf4OEGMeeNRF6EViUewqxXvv/SumjcIe9l/hETl9XHCqv/dy2PmL1MQe/eRmkUrdEZGo07yhVtuJDw==", + "requires": { + "@antv/l7-core": "^2.8.35", + "@babel/runtime": "^7.7.7", + "inversify": "^5.0.1", + "l7regl": "^0.0.20", + "lodash": "^4.17.15", + "reflect-metadata": "^0.1.13" + } + }, + "@antv/l7-scene": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-scene/-/l7-scene-2.8.35.tgz", + "integrity": "sha512-jzTUjfhKYBnboFy7L4sa3DLjirhK8UqlQJ4dcBPgYUHzZYkuoVpFsrl6KJnk2pLC9deTHXPnUbGybYzFsMLlkA==", + "requires": { + "@antv/l7-component": "^2.8.35", + "@antv/l7-core": "^2.8.35", + "@antv/l7-layers": "^2.8.35", + "@antv/l7-maps": "^2.8.35", + "@antv/l7-renderer": "^2.8.35", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "inversify": "^5.0.1", + "mapbox-gl": "^1.2.1", + "reflect-metadata": "^0.1.13" + } + }, + "@antv/l7-source": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-source/-/l7-source-2.8.35.tgz", + "integrity": "sha512-Ad9Y4jLKc1SWDnA24UL34c5Mr17zKlbA2Z43KD9clQL0ljOgPjLwiBbBlc3qzhIU9GKriPmB8NPPYqznVYZuTw==", + "requires": { + "@antv/async-hook": "^2.1.0", + "@antv/l7-core": "^2.8.35", + "@antv/l7-utils": "^2.8.35", + "@babel/runtime": "^7.7.7", + "@mapbox/geojson-rewind": "^0.4.0", + "@turf/helpers": "^6.1.4", + "@turf/invariant": "^6.1.2", + "@turf/meta": "^6.0.2", + "d3-dsv": "^1.1.1", + "d3-hexbin": "^0.2.2", + "eventemitter3": "^4.0.0", + "inversify": "^5.0.1", + "lodash": "^4.17.15", + "reflect-metadata": "^0.1.13", + "supercluster": "^7.0.0" + } + }, + "@antv/l7-utils": { + "version": "2.8.35", + "resolved": "https://registry.npmmirror.com/@antv/l7-utils/-/l7-utils-2.8.35.tgz", + "integrity": "sha512-nEE9am7Y02fOl6EJfHgQDWclWaf7p6yM2odDehCHFGfvH/Nm0ZiMRqIbMRF9HpkvhhuYilixpeH3le46+7eIRA==", + "requires": { + "@babel/runtime": "^7.7.7", + "@turf/helpers": "^6.1.4", + "d3-color": "^1.4.0" + } + }, + "@antv/l7plot": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@antv/l7plot/-/l7plot-0.0.3.tgz", + "integrity": "sha512-OBu6j6x6tWCCQKebjSXZnwil8cbAjXNbDPSjj4Eo3WAOayIpP3SCiQjZfBR2TGBdXuoYnM1x3jCmSoqUv2rrUQ==", + "requires": { + "@antv/event-emitter": "^0.1.2", + "@antv/l7": "^2.6.25", + "@antv/l7plot-component": "^0.0.3-alpha.5", + "@antv/util": "^2.0.13", + "lodash-es": "^4.17.21", + "topojson-client": "^3.1.0" + } + }, + "@antv/l7plot-component": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/@antv/l7plot-component/-/l7plot-component-0.0.3.tgz", + "integrity": "sha512-+RH10YnvSHbfJnIIPmVLdB01Pykuf/3FDdRIxlcdxXeTmuqHVDAFn1umfH72g8wplCMCotGIv6rHSlv/S6UXWA==", + "requires": { + "@antv/dom-util": "^2.0.3", + "@antv/util": "^2.0.14" + } + }, + "@antv/layout": { + "version": "0.1.31", + "resolved": "https://registry.npmmirror.com/@antv/layout/-/layout-0.1.31.tgz", + "integrity": "sha512-iz9i19dOJGiZr5xBWI5sfG+2K3QVMNAGOBrbjWKH2RGLvGpf2TSFySidhz0siDrcQA46cDsjLmGstezQdgeGzA==", + "requires": { + "@antv/g-webgpu": "0.5.5", + "@dagrejs/graphlib": "2.1.4", + "d3-force": "^2.0.1", + "ml-matrix": "^6.5.0" + } + }, + "@antv/matrix-util": { + "version": "3.1.0-beta.3", + "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", + "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", + "requires": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.4.3", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/path-util": { + "version": "2.0.15", + "resolved": "https://registry.npmmirror.com/@antv/path-util/-/path-util-2.0.15.tgz", + "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", + "requires": { + "@antv/matrix-util": "^3.0.4", + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + }, + "dependencies": { + "@antv/matrix-util": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", + "requires": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^2.0.3" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/scale": { + "version": "0.3.17", + "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.3.17.tgz", + "integrity": "sha512-YjPYG2Lbhou2cnle4MTlsq45dUVjP5tiGG/pYNIerE1sSBqFnC0/7tf9ZWp5OaHZH/qHNX8IfKeQdWHZDR4kDw==", + "requires": { + "@antv/util": "~2.0.3", + "fecha": "~4.2.0", + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/util": { + "version": "2.0.17", + "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", + "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", + "requires": { + "csstype": "^3.0.8", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@antv/x6": { + "version": "1.31.5", + "resolved": "https://registry.npmmirror.com/@antv/x6/-/x6-1.31.5.tgz", + "integrity": "sha512-UFm/94naWveG09saty5YHE250c1QFXEDK2pQEQeMyoSXN8G79i/B29KgB94BM1g2+slKnXUgcZAVLsw5a6xN9A==", + "requires": { + "csstype": "^3.0.3", + "jquery": "^3.5.1", + "jquery-mousewheel": "^3.1.13", + "lodash-es": "^4.17.15", + "mousetrap": "^1.6.5", + "utility-types": "^3.10.0" + } + }, + "@antv/x6-react-components": { + "version": "1.1.15", + "resolved": "https://registry.npmmirror.com/@antv/x6-react-components/-/x6-react-components-1.1.15.tgz", + "integrity": "sha512-tXUak5CPuZLIA0fVBSM2vZ+TxxoEGBcokr0J69e7H0G3WIutDf6J6RkNeRGuKvcW8O1Lef1jiBGSLLjlrRXf0g==", + "requires": { + "clamp": "^1.0.1", + "classnames": "^2.2.6", + "rc-dropdown": "^3.0.0-alpha.0", + "rc-util": "^4.15.7", + "react-color": "^2.17.3", + "react-resize-detector": "^6.6.4", + "ua-parser-js": "^0.7.20" + } + }, + "@antv/x6-react-shape": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@antv/x6-react-shape/-/x6-react-shape-1.6.0.tgz", + "integrity": "sha512-sz5sEYUZq9Cm0DpajbPL21N21gowAeMDHfemGuzaVI5Ud07/JS6393spaopcqljVQAY8r7qL+jxxQnWP8hDIBg==" + }, + "@antv/xflow": { + "version": "1.0.47", + "resolved": "https://registry.npmmirror.com/@antv/xflow/-/xflow-1.0.47.tgz", + "integrity": "sha512-SGsOhVH6eu4ss8p/e5Q59YMiCn5mQ1YoJogBEOocFrpJ60kN0qus2YRNrLQlyRXyg3G7QMi46s9KGY0Y5kTFOg==", + "requires": { + "@antv/layout": "^0.1.22", + "@antv/x6": "^1.30.1", + "@antv/x6-react-components": "^1.1.15", + "@antv/x6-react-shape": "^1.5.2", + "@antv/xflow-core": "1.0.47", + "@antv/xflow-extension": "1.0.47", + "@antv/xflow-hook": "1.0.47" + } + }, + "@antv/xflow-core": { + "version": "1.0.47", + "resolved": "https://registry.npmmirror.com/@antv/xflow-core/-/xflow-core-1.0.47.tgz", + "integrity": "sha512-C4hZw9o7ZWlTigyykYKfutNet6u5idMvOy57kB1SD7ldCXwmWyhHoQ9kyOjXkgZEhLkaEMtRklcJsKk3r+AKww==", + "requires": { + "@antv/xflow-hook": "1.0.47", + "classnames": "^2.3.1", + "immer": "^9.0.7", + "mana-common": "^0.3.1", + "mana-syringe": "^0.2.2", + "reflect-metadata": "^0.1.13", + "rxjs": "^6.6.7" + } + }, + "@antv/xflow-extension": { + "version": "1.0.47", + "resolved": "https://registry.npmmirror.com/@antv/xflow-extension/-/xflow-extension-1.0.47.tgz", + "integrity": "sha512-LqEw+NHtdDQ9mTHc37WHmEsvWPIR6ldhL4IB2fLA+7Cq5cCvMD7xwt62qYoo1DvFmC2STRayrF7UKIHvvO7tmQ==", + "requires": { + "@antv/xflow-core": "1.0.47", + "@antv/xflow-hook": "1.0.47", + "mana-syringe": "^0.2.2", + "moment": "^2.29.1", + "rc-field-form": "^1.22.0", + "react-color": "2.17.1", + "reflect-metadata": "^0.1.13" + }, + "dependencies": { + "react-color": { + "version": "2.17.1", + "resolved": "https://registry.npmmirror.com/react-color/-/react-color-2.17.1.tgz", + "integrity": "sha512-S+I6TkUKJaqfALLkAIfiCZ/MANQyy7dKkf7g9ZU5GTUy2rf8c2Rx62otyvADAviWR+6HRkzdf2vL1Qvz9goCLQ==", + "requires": { + "@icons/material": "^0.2.4", + "lodash": "^4.17.11", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" + } + } + } + }, + "@antv/xflow-hook": { + "version": "1.0.47", + "resolved": "https://registry.npmmirror.com/@antv/xflow-hook/-/xflow-hook-1.0.47.tgz", + "integrity": "sha512-hvXjW6RpbFUo7JLfeWsp+x4FQTqq1BQ/4fkv2sh6Coo6+xxH5FijRkAwOhTZL0xB3Cd55a9WPBnhuEfpbDJrHQ==", + "requires": { + "toposort": "^2.0.2" + } + }, "@apideck/better-ajv-errors": { "version": "0.3.3", "resolved": "https://registry.npmmirror.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", @@ -1326,21 +2197,170 @@ "resolved": "https://registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", "requires": { - "postcss-value-parser": "^4.2.0" + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz", + "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.0.tgz", + "integrity": "sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==" + }, + "@dagrejs/graphlib": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@dagrejs/graphlib/-/graphlib-2.1.4.tgz", + "integrity": "sha512-QCg9sL4uhjn468FDEsb/S9hS2xUZSrv/+dApb1Ze5VKO96pTXKNJZ6MGhIpgWkc1TVhbVGH9/7rq/Mf8/jWicw==", + "requires": { + "lodash": "^4.11.1" + } + }, + "@emotion/babel-plugin": { + "version": "11.9.2", + "resolved": "https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", + "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" + }, + "dependencies": { + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@emotion/cache": { + "version": "11.7.1", + "resolved": "https://registry.npmmirror.com/@emotion/cache/-/cache-11.7.1.tgz", + "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "requires": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz", + "integrity": "sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==", + "requires": { + "@emotion/memoize": "^0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "@emotion/react": { + "version": "11.9.0", + "resolved": "https://registry.npmmirror.com/@emotion/react/-/react-11.9.0.tgz", + "integrity": "sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.7.1", + "@emotion/serialize": "^1.0.3", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@emotion/serialize/-/serialize-1.0.3.tgz", + "integrity": "sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==", + "requires": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" } }, - "@csstools/postcss-stepped-value-functions": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz", - "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==", + "@emotion/sheet": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@emotion/sheet/-/sheet-1.1.0.tgz", + "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" + }, + "@emotion/styled": { + "version": "11.8.1", + "resolved": "https://registry.npmmirror.com/@emotion/styled/-/styled-11.8.1.tgz", + "integrity": "sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==", "requires": { - "postcss-value-parser": "^4.2.0" + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/is-prop-valid": "^1.1.2", + "@emotion/serialize": "^1.0.2", + "@emotion/utils": "^1.1.0" } }, - "@csstools/postcss-unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.0.tgz", - "integrity": "sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==" + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/utils": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@emotion/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "@eslint/eslintrc": { "version": "1.2.3", @@ -1396,6 +2416,11 @@ "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, + "@icons/material": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/@icons/material/-/material-0.2.4.tgz", + "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==" + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1926,6 +2951,188 @@ "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, + "@mapbox/geojson-area": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz", + "integrity": "sha512-bBqqFn1kIbLBfn7Yq1PzzwVkPYQr9lVUeT8Dhd0NL5n76PBuXzOcuLV7GOSbEB1ia8qWxH4COCvFpziEu/yReA==", + "requires": { + "wgs84": "0.0.0" + } + }, + "@mapbox/geojson-rewind": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@mapbox/geojson-rewind/-/geojson-rewind-0.4.1.tgz", + "integrity": "sha512-mxo2MEr7izA1uOXcDsw99Kgg6xW3P4H2j4n1lmldsgviIelpssvP+jQDivFKOHrOVJDpTTi5oZJvRcHtU9Uufw==", + "requires": { + "@mapbox/geojson-area": "0.2.2", + "concat-stream": "~1.6.0", + "minimist": "^1.2.5", + "sharkdown": "^0.1.0" + } + }, + "@mapbox/geojson-types": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", + "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" + }, + "@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==" + }, + "@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" + }, + "@mapbox/martini": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@mapbox/martini/-/martini-0.2.0.tgz", + "integrity": "sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==" + }, + "@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "@mapbox/tiny-sdf": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" + }, + "@mapbox/unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" + }, + "@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "requires": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" + }, + "@mui/base": { + "version": "5.0.0-alpha.79", + "resolved": "https://registry.npmmirror.com/@mui/base/-/base-5.0.0-alpha.79.tgz", + "integrity": "sha512-/lZLF027BkiEjM8MIYoeS/FEhTKf+41ePU9SOijMGrCin1Y0Igucw+IHa1fF8HXD7wDbFKqHuso3J1jMG8wyNw==", + "requires": { + "@babel/runtime": "^7.17.2", + "@emotion/is-prop-valid": "^1.1.2", + "@mui/types": "^7.1.3", + "@mui/utils": "^5.6.1", + "@popperjs/core": "^2.11.5", + "clsx": "^1.1.1", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "@mui/icons-material": { + "version": "5.6.2", + "resolved": "https://registry.npmmirror.com/@mui/icons-material/-/icons-material-5.6.2.tgz", + "integrity": "sha512-9QdI7axKuBAyaGz4mtdi7Uy1j73/thqFmEuxpJHxNC7O8ADEK1Da3t2veK2tgmsXsUlAHcAG63gg+GvWWeQNqQ==", + "requires": { + "@babel/runtime": "^7.17.2" + } + }, + "@mui/material": { + "version": "5.6.4", + "resolved": "https://registry.npmmirror.com/@mui/material/-/material-5.6.4.tgz", + "integrity": "sha512-7TD+u/SExZK2a55w6reX56oPk37gKr/M/XGt156X+m0d9LhzOsW864nkErIX/H8oSkX/6kCimxu1FDsO+gjiVw==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/base": "5.0.0-alpha.79", + "@mui/system": "^5.6.4", + "@mui/types": "^7.1.3", + "@mui/utils": "^5.6.1", + "@types/react-transition-group": "^4.4.4", + "clsx": "^1.1.1", + "csstype": "^3.0.11", + "hoist-non-react-statics": "^3.3.2", + "prop-types": "^15.7.2", + "react-is": "^17.0.2", + "react-transition-group": "^4.4.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "@mui/private-theming": { + "version": "5.6.2", + "resolved": "https://registry.npmmirror.com/@mui/private-theming/-/private-theming-5.6.2.tgz", + "integrity": "sha512-IbrSfFXfiZdyhRMC2bgGTFtb16RBQ5mccmjeh3MtAERWuepiCK7gkW5D9WhEsfTu6iez+TEjeUKSgmMHlsM2mg==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/utils": "^5.6.1", + "prop-types": "^15.7.2" + } + }, + "@mui/styled-engine": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@mui/styled-engine/-/styled-engine-5.6.1.tgz", + "integrity": "sha512-jEhH6TBY8jc9S8yVncXmoTYTbATjEu44RMFXj6sIYfKr5NArVwTwRo3JexLL0t3BOAiYM4xsFLgfKEIvB9SAeQ==", + "requires": { + "@babel/runtime": "^7.17.2", + "@emotion/cache": "^11.7.1", + "prop-types": "^15.7.2" + } + }, + "@mui/system": { + "version": "5.6.4", + "resolved": "https://registry.npmmirror.com/@mui/system/-/system-5.6.4.tgz", + "integrity": "sha512-7rsWED1wMFMePySJobsBerFZNu7ga580QSi3Zd6sJR8nVj12qD3yIdfvxA70/PxJ/805KbIT0GX7edKI+hpyhA==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/private-theming": "^5.6.2", + "@mui/styled-engine": "^5.6.1", + "@mui/types": "^7.1.3", + "@mui/utils": "^5.6.1", + "clsx": "^1.1.1", + "csstype": "^3.0.11", + "prop-types": "^15.7.2" + } + }, + "@mui/types": { + "version": "7.1.3", + "resolved": "https://registry.npmmirror.com/@mui/types/-/types-7.1.3.tgz", + "integrity": "sha512-DDF0UhMBo4Uezlk+6QxrlDbchF79XG6Zs0zIewlR4c0Dt6GKVFfUtzPtHCH1tTbcSlq/L2bGEdiaoHBJ9Y1gSA==" + }, + "@mui/utils": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@mui/utils/-/utils-5.6.1.tgz", + "integrity": "sha512-CPrzrkiBusCZBLWu0Sg5MJvR3fKJyK3gKecLVX012LULyqg2U64Oz04BKhfkbtBrPBbSQxM+DWW9B1c9hmV9nQ==", + "requires": { + "@babel/runtime": "^7.17.2", + "@types/prop-types": "^15.7.4", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1965,6 +3172,36 @@ "source-map": "^0.7.3" } }, + "@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + }, + "@probe.gl/env": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@probe.gl/env/-/env-3.5.0.tgz", + "integrity": "sha512-YdlpZZshhyYxvWDBmZ5RIW2pTR14Pw4p9czMlt/v7F6HbFzWfAdmH7q6xVwFRYxUpQLwhWensWyv4aFysiWl4g==", + "requires": { + "@babel/runtime": "^7.0.0" + } + }, + "@probe.gl/log": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@probe.gl/log/-/log-3.5.0.tgz", + "integrity": "sha512-nW/qz2X1xY08WU/TsmJP6/6IPNcaY5fS/vLjpC4ahJuE2Mezga4hGM/R2X5JWE/nkPc+BsC5GnAnD13rwAxS7g==", + "requires": { + "@babel/runtime": "^7.0.0", + "@probe.gl/env": "3.5.0" + } + }, + "@probe.gl/stats": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@probe.gl/stats/-/stats-3.5.0.tgz", + "integrity": "sha512-IH2M+F3c8HR1DTroBARePUFG7wIewumtKA0UFqx51Z7S4hKrD60wFbpMmg0AcF4FvHAXMBoC+kYi1UKW9XbAOw==", + "requires": { + "@babel/runtime": "^7.0.0" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmmirror.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -2318,6 +3555,40 @@ "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" }, + "@turf/helpers": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==" + }, + "@turf/invariant": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@turf/invariant/-/invariant-6.5.0.tgz", + "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", + "requires": { + "@turf/helpers": "^6.5.0" + } + }, + "@turf/meta": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@turf/meta/-/meta-6.5.0.tgz", + "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", + "requires": { + "@turf/helpers": "^6.5.0" + } + }, + "@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "requires": { + "@types/estree": "*" + } + }, + "@types/amap-js-api": { + "version": "1.4.10", + "resolved": "https://registry.npmmirror.com/@types/amap-js-api/-/amap-js-api-1.4.10.tgz", + "integrity": "sha512-AcYR7/GFBazu3Ho+psX+s1D2e+6G5yfplKAQ9js0NJ09SlvB9dAz10sbfzv/cvaKV1hgE1m9MzC2UVVbsqiSIg==" + }, "@types/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmmirror.com/@types/aria-query/-/aria-query-4.2.2.tgz", @@ -2394,6 +3665,11 @@ "@types/node": "*" } }, + "@types/d3-timer": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-2.0.1.tgz", + "integrity": "sha512-TF8aoF5cHcLO7W7403blM7L1T+6NF3XMyN3fxyUolq2uOcFeicG/khQg/dGxiCJWoAcmYulYN7LYSRKO54IXaA==" + }, "@types/eslint": { "version": "7.29.0", "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-7.29.0.tgz", @@ -2438,6 +3714,11 @@ "@types/range-parser": "*" } }, + "@types/geojson": { + "version": "7946.0.8", + "resolved": "https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" + }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -2489,6 +3770,11 @@ "pretty-format": "^27.0.0" } }, + "@types/js-cookie": { + "version": "2.2.7", + "resolved": "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz", + "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -2499,6 +3785,14 @@ "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, + "@types/mapbox-gl": { + "version": "1.13.3", + "resolved": "https://registry.npmmirror.com/@types/mapbox-gl/-/mapbox-gl-1.13.3.tgz", + "integrity": "sha512-qKcbA5ZKhGwqU5/ti8zC0nbqkxqBYi9EUo4bIjB7MK8ve+mBhbJBcYRjTYWYD7IhHCQfvPGVSnVlesH6yZ2Fiw==", + "requires": { + "@types/geojson": "*" + } + }, "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.2.tgz", @@ -2557,6 +3851,27 @@ "@types/react": "*" } }, + "@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmmirror.com/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.4", + "resolved": "https://registry.npmmirror.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", + "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "requires": { + "@types/react": "*" + } + }, + "@types/resize-observer-browser": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz", + "integrity": "sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg==" + }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz", @@ -2881,6 +4196,21 @@ "@xtuc/long": "4.2.2" } }, + "@webgpu/glslang": { + "version": "0.0.15", + "resolved": "https://registry.npmmirror.com/@webgpu/glslang/-/glslang-0.0.15.tgz", + "integrity": "sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q==" + }, + "@webgpu/types": { + "version": "0.0.31", + "resolved": "https://registry.npmmirror.com/@webgpu/types/-/types-0.0.31.tgz", + "integrity": "sha512-cvvCMSZBT4VsRNtt0lI6XQqvOIIWw6+NRUtnPUMDVDgsI4pCZColz3qzF5QcP9wIYOHEc3jssIBse8UWONKhlQ==" + }, + "@xobotyi/scrollbar-width": { + "version": "1.9.5", + "resolved": "https://registry.npmmirror.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", + "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==" + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -2958,6 +4288,14 @@ "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, + "add-dom-event-listener": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", + "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", + "requires": { + "object-assign": "4.x" + } + }, "address": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/address/-/address-1.2.0.tgz", @@ -3022,6 +4360,31 @@ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==" + }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3055,6 +4418,11 @@ "color-convert": "^1.9.0" } }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" + }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", @@ -3130,6 +4498,11 @@ "es-shim-unscopables": "^1.0.0" } }, + "as-number": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/as-number/-/as-number-1.0.0.tgz", + "integrity": "sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==" + }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz", @@ -3145,6 +4518,11 @@ "resolved": "https://registry.npmmirror.com/async/-/async-3.2.3.tgz", "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, + "async-validator": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.1.1.tgz", + "integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", @@ -3606,11 +4984,29 @@ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz", "integrity": "sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ==" }, + "cardinal": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cardinal/-/cardinal-0.4.4.tgz", + "integrity": "sha512-3MxV0o9wOpQcobrcSrRpaSxlYkohCcZu0ytOjJUww/Yo/223q4Ecloo7odT+M0SI5kPgb1JhvSaF4EEuVXOLAQ==", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~0.4.0" + } + }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", @@ -3676,6 +5072,16 @@ "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" + }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, "clean-css": { "version": "5.3.0", "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.0.tgz", @@ -3701,6 +5107,11 @@ "wrap-ansi": "^7.0.0" } }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", @@ -3721,6 +5132,15 @@ "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", @@ -3734,6 +5154,15 @@ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colord": { "version": "2.9.2", "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.2.tgz", @@ -3814,6 +5243,33 @@ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, "confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmmirror.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -3844,6 +5300,11 @@ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "contour_plot": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/contour_plot/-/contour_plot-0.0.1.tgz", + "integrity": "sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==" + }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -3862,6 +5323,14 @@ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, "core-js": { "version": "3.22.4", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.22.4.tgz", @@ -3958,6 +5427,15 @@ "postcss-selector-parser": "^6.0.9" } }, + "css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "requires": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, "css-loader": { "version": "6.7.1", "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", @@ -4075,6 +5553,11 @@ "resolved": "https://registry.npmmirror.com/css.escape/-/css.escape-1.5.1.tgz", "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" }, + "csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + }, "cssdb": { "version": "6.6.1", "resolved": "https://registry.npmmirror.com/cssdb/-/cssdb-6.6.1.tgz", @@ -4185,10 +5668,140 @@ } } }, - "csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" + "csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-dispatch": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + }, + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + }, + "d3-force": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-2.1.1.tgz", + "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "requires": { + "d3-dispatch": "1 - 2", + "d3-quadtree": "1 - 2", + "d3-timer": "1 - 2" + } + }, + "d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "d3-hexbin": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/d3-hexbin/-/d3-hexbin-0.2.2.tgz", + "integrity": "sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==" + }, + "d3-hierarchy": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", + "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-quadtree": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz", + "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + }, + "d3-regression": { + "version": "1.3.10", + "resolved": "https://registry.npmmirror.com/d3-regression/-/d3-regression-1.3.10.tgz", + "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==" + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "requires": { + "d3-time": "1" + } + }, + "d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + }, + "dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "requires": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, + "dagre-compound": { + "version": "0.0.11", + "resolved": "https://registry.npmmirror.com/dagre-compound/-/dagre-compound-0.0.11.tgz", + "integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==" }, "damerau-levenshtein": { "version": "1.0.8", @@ -4238,6 +5851,11 @@ "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.3.1.tgz", @@ -4253,6 +5871,19 @@ "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", @@ -4305,6 +5936,11 @@ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz", @@ -4398,6 +6034,11 @@ "resolved": "https://registry.npmmirror.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" }, + "dom-align": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.3.tgz", + "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" + }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", @@ -4406,6 +6047,15 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -4492,11 +6142,24 @@ "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" }, + "dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "requires": { + "minimatch": "^3.0.4" + } + }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, + "earcut": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/earcut/-/earcut-2.2.3.tgz", + "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", @@ -4515,6 +6178,11 @@ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" }, + "element-resize-event": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/element-resize-event/-/element-resize-event-3.0.6.tgz", + "integrity": "sha512-sSeXY9rNDp86bJODW68pxLcy3A5FrPZfIgOrJHzqgYzX513Zq6/ytdBigp7KeJEpZZopBBSiO1cVuiRkZpNxLw==" + }, "emittery": { "version": "0.8.1", "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", @@ -5237,6 +6905,39 @@ } } }, + "extrude-polyline": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/extrude-polyline/-/extrude-polyline-1.0.6.tgz", + "integrity": "sha512-fcKIanU/v+tcdgG0+xMbS0C2VZ0/CF3qqxSjHiWfWICh0yFBezPr3SsOhgdzwE5E82plG6p1orEsfSqgldpxVg==", + "requires": { + "as-number": "^1.0.0", + "gl-vec2": "^1.0.0", + "polyline-miter-util": "^1.0.1" + } + }, + "falafel": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/falafel/-/falafel-2.2.4.tgz", + "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", + "requires": { + "acorn": "^7.1.1", + "foreach": "^2.0.5", + "isarray": "^2.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5274,6 +6975,16 @@ "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, + "fast-shallow-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz", + "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==" + }, + "fastest-stable-stringify": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz", + "integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==" + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", @@ -5298,6 +7009,11 @@ "bser": "2.1.1" } }, + "fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -5393,6 +7109,11 @@ "pkg-dir": "^4.1.0" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", @@ -5416,11 +7137,99 @@ "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" }, + "fmin": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/fmin/-/fmin-0.0.2.tgz", + "integrity": "sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A==", + "requires": { + "contour_plot": "^0.0.1", + "json2module": "^0.0.3", + "rollup": "^0.25.8", + "tape": "^4.5.1", + "uglify-js": "^2.6.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "rollup": { + "version": "0.25.8", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-0.25.8.tgz", + "integrity": "sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA==", + "requires": { + "chalk": "^1.1.1", + "minimist": "^1.2.0", + "source-map-support": "^0.3.2" + } + }, + "source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "source-map-support": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.3.3.tgz", + "integrity": "sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==", + "requires": { + "source-map": "0.1.32" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" + } + } + }, "follow-redirects": { "version": "1.15.0", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.0.tgz", "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA==" + }, "fork-ts-checker-webpack-plugin": { "version": "6.5.2", "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", @@ -5606,6 +7415,11 @@ "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, + "geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -5645,6 +7459,16 @@ "get-intrinsic": "^1.1.1" } }, + "gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "gl-vec2": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/gl-vec2/-/gl-vec2-1.3.0.tgz", + "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==" + }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", @@ -5722,6 +7546,19 @@ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, + "graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "requires": { + "lodash": "^4.17.15" + } + }, + "grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, "gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", @@ -5730,6 +7567,11 @@ "duplexer": "^0.1.2" } }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmmirror.com/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", @@ -5748,6 +7590,21 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + } + } + }, "has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz", @@ -5784,6 +7641,22 @@ "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "history": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "requires": { + "@babel/runtime": "^7.7.6" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz", @@ -5973,6 +7846,11 @@ "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -5999,6 +7877,11 @@ "harmony-reflect": "^1.4.6" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", @@ -6056,6 +7939,19 @@ "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, + "inline-style-prefixer": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz", + "integrity": "sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==", + "requires": { + "css-in-js-utils": "^2.0.0" + } + }, + "insert-css": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/insert-css/-/insert-css-2.0.0.tgz", + "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==" + }, "internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.3.tgz", @@ -6066,11 +7962,35 @@ "side-channel": "^1.0.4" } }, + "inversify": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/inversify/-/inversify-5.1.1.tgz", + "integrity": "sha512-j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ==" + }, + "inversify-inject-decorators": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/inversify-inject-decorators/-/inversify-inject-decorators-3.1.0.tgz", + "integrity": "sha512-/seBlVp5bXrLQS3DpKEmlgeZL6C7Tf/QITd+IMQrbBBGuCbxb7k3hRAWu9XSreNpFzLgSboz3sClLSEmGwHphw==" + }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" }, + "is-any-array": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-any-array/-/is-any-array-2.0.0.tgz", + "integrity": "sha512-WdPV58rT3aOWXvvyuBydnCq4S2BM1Yz8shKxlEpk/6x+GX202XRvXOycEFtNgnHVLoc46hpexPFx8Pz1/sMS0w==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -6101,6 +8021,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz", @@ -6267,6 +8192,11 @@ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -7773,6 +9703,21 @@ } } }, + "jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" + }, + "jquery-mousewheel": { + "version": "3.1.13", + "resolved": "https://registry.npmmirror.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz", + "integrity": "sha512-GXhSjfOPyDemM005YCEHvzrEALhKDIswtxSHSR2e4K/suHVJKJxxRCGz3skPjNxjJjQa9AVSGGlYjv1M3VLIPg==" + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", @@ -7876,6 +9821,14 @@ "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, + "json2module": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/json2module/-/json2module-0.0.3.tgz", + "integrity": "sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA==", + "requires": { + "rw": "^1.3.2" + } + }, "json5": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz", @@ -7904,6 +9857,11 @@ "object.assign": "^4.1.2" } }, + "kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", @@ -7919,6 +9877,48 @@ "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz", "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" }, + "l7-tiny-sdf": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/l7-tiny-sdf/-/l7-tiny-sdf-0.0.3.tgz", + "integrity": "sha512-11y9TXdBAlsbIXtkIUOJHU40aZ4VQGZxbDr8pCqgmhgLlY0WKRdA8fnC1A34SWB/VhNdxW2T80hOvepAL/G8/w==" + }, + "l7eval5": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/l7eval5/-/l7eval5-0.0.3.tgz", + "integrity": "sha512-xnn9x/T0zawTM1L9DASmRXVMb5fTCib83FtGZQcn5ToM1lAo4dutNOK2JAC+jd3mEMWa9MMq188dyoQcqG2WOg==", + "requires": { + "@babel/runtime": "^7.8.4", + "@types/acorn": "^4.0.5", + "@types/estree": "0.0.41", + "acorn": "^7.1.0" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.41", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.41.tgz", + "integrity": "sha512-rIAmXyJlqw4KEBO7+u9gxZZSQHaCNnIzYrnNmYVpgfJhxTqO0brCX0SYpqUTkVI5mwwUwzmtspLBGBKroMeynA==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "l7hammerjs": { + "version": "0.0.7", + "resolved": "https://registry.npmmirror.com/l7hammerjs/-/l7hammerjs-0.0.7.tgz", + "integrity": "sha512-IFa3c0sOHBI09uK03GlKnk3Var5LXrCqL1JbnDpy63CQz8urZTk0dynGad+WU2iErVJcumHQokrR5Zt57tePZw==" + }, + "l7regl": { + "version": "0.0.20", + "resolved": "https://registry.npmmirror.com/l7regl/-/l7regl-0.0.20.tgz", + "integrity": "sha512-r2vDjsCKp1bbcjTVGtKovpOxn7kdcx6cup9nd47/dIZ4+ujZAXz2C/HPx4yrxzuNig81TeXpHHWslNpLolSg8A==", + "requires": { + "falafel": "^2.2.4", + "l7eval5": "^0.0.3" + } + }, "language-subtag-registry": { "version": "0.3.21", "resolved": "https://registry.npmmirror.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", @@ -7932,6 +9932,11 @@ "language-subtag-registry": "~0.3.2" } }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==" + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz", @@ -7984,11 +9989,31 @@ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, + "lodash.isarray": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-4.0.0.tgz", + "integrity": "sha512-V8ViWvoNlXpCrB6Ewaj3ScRXUpmCvqp4tJUxa3dlovuJj/8lp3SND5Kw4v5OeuHgoyw4qJN+gl36qZqp6WYQ6g==" + }, + "lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -7999,6 +10024,11 @@ "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -8009,6 +10039,11 @@ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", @@ -8076,6 +10111,65 @@ "tmpl": "1.0.5" } }, + "mana-common": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/mana-common/-/mana-common-0.3.1.tgz", + "integrity": "sha512-nU4h4ES0nPP0/QHCJzd7zTfr0nvJWaQR1H7N3zQc+clEAwRcMNti9i+1NIvLBUarhQZ74+bU95xfqkQpr8jPog==" + }, + "mana-syringe": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/mana-syringe/-/mana-syringe-0.2.2.tgz", + "integrity": "sha512-Sv5r0/PrQRq4pW+9lDicGsEPzPLkd1PwjTs5zHUV1I293S3alkBNyuSjktVeBploofH8MAMLd4DS2crwct48wg==", + "requires": { + "inversify": "^5.0.1" + } + }, + "mapbox-gl": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/mapbox-gl/-/mapbox-gl-1.13.2.tgz", + "integrity": "sha512-CPjtWygL+f7naL+sGHoC2JQR0DG7u+9ik6WdkjjVmz2uy0kBC2l+aKfdi3ZzUR7VKSQJ6Mc/CeCN+6iVNah+ww==", + "requires": { + "@mapbox/geojson-rewind": "^0.5.0", + "@mapbox/geojson-types": "^1.0.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", + "minimist": "^1.2.5", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.1", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.0", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.1" + }, + "dependencies": { + "@mapbox/geojson-rewind": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/@mapbox/geojson-rewind/-/geojson-rewind-0.5.1.tgz", + "integrity": "sha512-eL7fMmfTBKjrb+VFHXCGv9Ot0zc3C0U+CwXo1IrP+EPwDczLoXv34Tgq3y+2mPSFNVUXgU42ILWJTC7145KPTA==", + "requires": { + "get-stream": "^6.0.1", + "minimist": "^1.2.5" + } + } + } + }, + "material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" + }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz", @@ -8099,6 +10193,18 @@ "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, + "merge-json-schemas": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/merge-json-schemas/-/merge-json-schemas-1.0.0.tgz", + "integrity": "sha512-eXh1Zlx2ptYvPhgNdm+2kPfT40b4jwCa/RVxpjBGj3cgmLvXQBr8H7GPAL/5vIAmwiTpHax0l/ChX7Dp6FoJIA==", + "requires": { + "lodash.isarray": "^4.0.0", + "lodash.isnil": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.mergewith": "^4.6.0", + "lodash.uniq": "^4.5.0" + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", @@ -8222,6 +10328,51 @@ "minimist": "^1.2.6" } }, + "ml-array-max": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/ml-array-max/-/ml-array-max-1.2.4.tgz", + "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", + "requires": { + "is-any-array": "^2.0.0" + } + }, + "ml-array-min": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/ml-array-min/-/ml-array-min-1.2.3.tgz", + "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", + "requires": { + "is-any-array": "^2.0.0" + } + }, + "ml-array-rescale": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", + "requires": { + "is-any-array": "^2.0.0", + "ml-array-max": "^1.2.4", + "ml-array-min": "^1.2.3" + } + }, + "ml-matrix": { + "version": "6.10.0", + "resolved": "https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.10.0.tgz", + "integrity": "sha512-wU+jacx1dcP1QArV1/Kv49Ah6y2fq+BiQl2BnNVBC+hoCW7KgBZ4YZrowPopeoY164TB6Kes5wMeDjY8ODHYDg==", + "requires": { + "is-any-array": "^2.0.0", + "ml-array-rescale": "^1.3.7" + } + }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + }, + "mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", @@ -8236,6 +10387,47 @@ "thunky": "^1.0.2" } }, + "murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "nano-css": { + "version": "5.3.4", + "resolved": "https://registry.npmmirror.com/nano-css/-/nano-css-5.3.4.tgz", + "integrity": "sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg==", + "requires": { + "css-tree": "^1.1.2", + "csstype": "^3.0.6", + "fastest-stable-stringify": "^2.0.2", + "inline-style-prefixer": "^6.0.0", + "rtl-css-js": "^1.14.0", + "sourcemap-codec": "^1.4.8", + "stacktrace-js": "^2.0.2", + "stylis": "^4.0.6" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", @@ -8338,6 +10530,15 @@ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", @@ -8576,10 +10777,24 @@ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "requires": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + } + }, + "pdfast": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/pdfast/-/pdfast-0.2.0.tgz", + "integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==" }, "performance-now": { "version": "2.1.0", @@ -8692,6 +10907,22 @@ } } }, + "polyline-miter-util": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/polyline-miter-util/-/polyline-miter-util-1.0.1.tgz", + "integrity": "sha512-/3u91zz6mBerBZo6qnOJOTjv7EfPhKtsV028jMyj86YpzLRNmCCFfrX7IO9tCEQ2W4x45yc+vKOezjf7u2Nd6Q==", + "requires": { + "gl-vec2": "^1.0.0" + } + }, + "polyline-normals": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/polyline-normals/-/polyline-normals-2.0.2.tgz", + "integrity": "sha512-dpHrAi61ymhsB4N0XlNb3YpkKJeTFnXBXDWpeH8Ucstq0TUZrCN3YK4Jlgk8ofMWN25lhGC4wnxLMv+TUK8rig==", + "requires": { + "polyline-miter-util": "^1.0.1" + } + }, "postcss": { "version": "8.4.13", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.13.tgz", @@ -9353,6 +11584,11 @@ "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9394,6 +11630,17 @@ } } }, + "probe.gl": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/probe.gl/-/probe.gl-3.5.0.tgz", + "integrity": "sha512-KWj8u0PNytr/rVwcQFcN7O8SK7n/ITOsUZ91l4fSX95oHhKvVCI7eadrzFUzFRlXkFfBWpMWZXFHITsHHHUctw==", + "requires": { + "@babel/runtime": "^7.0.0", + "@probe.gl/env": "3.5.0", + "@probe.gl/log": "3.5.0", + "@probe.gl/stats": "3.5.0" + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -9426,6 +11673,11 @@ "react-is": "^16.13.1" } }, + "protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -9475,6 +11727,11 @@ "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, + "quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz", @@ -9514,6 +11771,134 @@ } } }, + "rc-align": { + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/rc-align/-/rc-align-4.0.12.tgz", + "integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==", + "requires": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "dom-align": "^1.7.0", + "lodash": "^4.17.21", + "rc-util": "^5.3.0", + "resize-observer-polyfill": "^1.5.1" + }, + "dependencies": { + "rc-util": { + "version": "5.21.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.21.4.tgz", + "integrity": "sha512-rq11ap3NnOIdywFhcMQ9J7DXRJJ1c1Id1Hvr/1Dphr+5X75ERJBJybuh779DdurP4LJQqAhT6Aie0AjrBc5Vqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "react-is": "^16.12.0", + "shallowequal": "^1.1.0" + } + } + } + }, + "rc-dropdown": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-3.6.2.tgz", + "integrity": "sha512-Wsw7GkVbUXADEs8FPL0v8gd+3mWQiydPFXBlr2imMScQaf8hh79pG9KrBc1DwK+nqHmYOpQfK2gn6jG2AQw9Pw==", + "requires": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-trigger": "^5.0.4", + "rc-util": "^5.17.0" + }, + "dependencies": { + "rc-util": { + "version": "5.21.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.21.4.tgz", + "integrity": "sha512-rq11ap3NnOIdywFhcMQ9J7DXRJJ1c1Id1Hvr/1Dphr+5X75ERJBJybuh779DdurP4LJQqAhT6Aie0AjrBc5Vqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "react-is": "^16.12.0", + "shallowequal": "^1.1.0" + } + } + } + }, + "rc-field-form": { + "version": "1.26.4", + "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.26.4.tgz", + "integrity": "sha512-eCCyiNNaN0NTYTyoziQHD4Fj6mUED21lWkw66vg+kttg0eDw+miD6LsaJbTD5c2bzKjUJTf10AitPG+f5zT4+A==", + "requires": { + "@babel/runtime": "^7.8.4", + "async-validator": "^4.1.0", + "rc-util": "^5.8.0" + }, + "dependencies": { + "rc-util": { + "version": "5.21.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.21.4.tgz", + "integrity": "sha512-rq11ap3NnOIdywFhcMQ9J7DXRJJ1c1Id1Hvr/1Dphr+5X75ERJBJybuh779DdurP4LJQqAhT6Aie0AjrBc5Vqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "react-is": "^16.12.0", + "shallowequal": "^1.1.0" + } + } + } + }, + "rc-motion": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.6.0.tgz", + "integrity": "sha512-1MDWA9+i174CZ0SIDenSYm2Wb9YbRkrexjZWR0CUFu7D6f23E8Y0KsTgk9NGOLJsGak5ELZK/Y5lOlf5wQdzbw==", + "requires": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.21.0" + }, + "dependencies": { + "rc-util": { + "version": "5.21.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.21.4.tgz", + "integrity": "sha512-rq11ap3NnOIdywFhcMQ9J7DXRJJ1c1Id1Hvr/1Dphr+5X75ERJBJybuh779DdurP4LJQqAhT6Aie0AjrBc5Vqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "react-is": "^16.12.0", + "shallowequal": "^1.1.0" + } + } + } + }, + "rc-trigger": { + "version": "5.2.18", + "resolved": "https://registry.npmmirror.com/rc-trigger/-/rc-trigger-5.2.18.tgz", + "integrity": "sha512-hi2yZ7umtbAGLxgSph1az9BR9i4Pb4fiQa4pdvFQuKN7U//3nwwygHQKHfexnM+0APBnzZwVlEHA5I8BpWrygw==", + "requires": { + "@babel/runtime": "^7.11.2", + "classnames": "^2.2.6", + "rc-align": "^4.0.0", + "rc-motion": "^2.0.0", + "rc-util": "^5.19.2" + }, + "dependencies": { + "rc-util": { + "version": "5.21.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.21.4.tgz", + "integrity": "sha512-rq11ap3NnOIdywFhcMQ9J7DXRJJ1c1Id1Hvr/1Dphr+5X75ERJBJybuh779DdurP4LJQqAhT6Aie0AjrBc5Vqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "react-is": "^16.12.0", + "shallowequal": "^1.1.0" + } + } + } + }, + "rc-util": { + "version": "4.21.1", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-4.21.1.tgz", + "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==", + "requires": { + "add-dom-event-listener": "^1.1.0", + "prop-types": "^15.5.10", + "react-is": "^16.12.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, "react": { "version": "18.1.0", "resolved": "https://registry.npmmirror.com/react/-/react-18.1.0.tgz", @@ -9535,6 +11920,24 @@ "whatwg-fetch": "^3.6.2" } }, + "react-color": { + "version": "2.17.3", + "resolved": "https://registry.npmmirror.com/react-color/-/react-color-2.17.3.tgz", + "integrity": "sha512-1dtO8LqAVotPIChlmo6kLtFS1FP89ll8/OiA8EcFRDR+ntcK+0ukJgByuIQHRtzvigf26dV5HklnxDIvhON9VQ==", + "requires": { + "@icons/material": "^0.2.4", + "lodash": "^4.17.11", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" + } + }, + "react-content-loader": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/react-content-loader/-/react-content-loader-5.1.4.tgz", + "integrity": "sha512-hTq7pZi2GKCK6a9d3u6XStozm0QGCEjw8cSqQReiWnh2up6IwCha5R5TF0o6SY5qUDpByloEZEZtnFxpJyENFw==" + }, "react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmmirror.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -9640,11 +12043,43 @@ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, + "react-resize-detector": { + "version": "6.7.8", + "resolved": "https://registry.npmmirror.com/react-resize-detector/-/react-resize-detector-6.7.8.tgz", + "integrity": "sha512-0FaEcUBAbn+pq3PT5a9hHRebUfuS1SRLGLpIw8LydU7zX429I6XJgKerKAMPsJH0qWAl6o5bVKNqFJqr6tGPYw==", + "requires": { + "@types/resize-observer-browser": "^0.1.6", + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1" + } + }, + "react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "requires": { + "history": "^5.2.0" + } + }, + "react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "requires": { + "history": "^5.2.0", + "react-router": "6.3.0" + } + }, "react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/react-scripts/-/react-scripts-5.0.1.tgz", @@ -9700,6 +12135,58 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "react-universal-interface": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz", + "integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==" + }, + "react-use": { + "version": "17.3.1", + "resolved": "https://registry.npmmirror.com/react-use/-/react-use-17.3.1.tgz", + "integrity": "sha512-hs7+tS4rRm1QLHPfanLCqXIi632tP4V7Sai1ENUP2WTufU6am++tU9uSw9YrNCFqbABiEv0ndKU1XCUcfu2tXA==", + "requires": { + "@types/js-cookie": "^2.2.6", + "@xobotyi/scrollbar-width": "^1.9.5", + "copy-to-clipboard": "^3.3.1", + "fast-deep-equal": "^3.1.3", + "fast-shallow-equal": "^1.0.0", + "js-cookie": "^2.2.1", + "nano-css": "^5.3.1", + "react-universal-interface": "^0.6.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.1.0", + "set-harmonic-interval": "^1.0.1", + "throttle-debounce": "^3.0.1", + "ts-easing": "^0.2.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "requires": { + "lodash": "^4.0.1" + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", @@ -9745,6 +12232,26 @@ "strip-indent": "^3.0.0" } }, + "redeyed": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/redeyed/-/redeyed-0.4.4.tgz", + "integrity": "sha512-pnk1vsaNLu1UAAClKsImKz9HjBvg9i8cbRqTRzJbiCjGF0fZSMqpdcA5W3juO3c4etFvTrabECkq9wjC45ZyxA==", + "requires": { + "esprima": "~1.0.4" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==" + } + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", @@ -9824,6 +12331,11 @@ } } }, + "regl": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/regl/-/regl-1.7.0.tgz", + "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==" + }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", @@ -9893,6 +12405,11 @@ } } }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", @@ -9908,6 +12425,11 @@ "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz", @@ -9938,6 +12460,14 @@ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "requires": { + "protocol-buffers-schema": "^3.3.1" + } + }, "resolve-url-loader": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", @@ -9976,6 +12506,14 @@ "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.0.tgz", "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", + "requires": { + "through": "~2.3.4" + } + }, "retry": { "version": "0.13.1", "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", @@ -9986,6 +12524,14 @@ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "requires": { + "align-text": "^0.1.1" + } + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", @@ -10046,6 +12592,14 @@ } } }, + "rtl-css-js": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/rtl-css-js/-/rtl-css-js-1.15.0.tgz", + "integrity": "sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10054,6 +12608,19 @@ "queue-microtask": "^1.2.2" } }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -10109,6 +12676,11 @@ "ajv-keywords": "^3.5.2" } }, + "screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==" + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", @@ -10251,11 +12823,38 @@ "send": "0.18.0" } }, + "set-harmonic-interval": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz", + "integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==" + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "sharkdown": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/sharkdown/-/sharkdown-0.1.1.tgz", + "integrity": "sha512-exwooSpmo5s45lrexgz6Q0rFQM574wYIX3iDZ7RLLqOb7IAoQZu9nxlZODU972g19sR69OIpKP2cpHTzU+PHIg==", + "requires": { + "cardinal": "~0.4.2", + "minimist": "0.0.5", + "split": "~0.2.10" + }, + "dependencies": { + "minimist": { + "version": "0.0.5", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.0.5.tgz", + "integrity": "sha512-rSJ0cdmCj3qmKdObcnMcWgPVOyaOWlazLhZAJW0s6G6lx1ZEuFkraWmEH5LTvX90btkfHPclQBjvjU7A/kYRFg==" + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10289,11 +12888,31 @@ "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, + "size-sensor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/size-sensor/-/size-sensor-1.0.1.tgz", + "integrity": "sha512-QTy7MnuugCFXIedXRpUSk9gUnyNiaxIdxGfUjr8xxXOqIB3QvBUYP9+b51oCg2C4dnhaeNk/h57TxjbvoJrJUA==" + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", @@ -10399,6 +13018,14 @@ "wbuf": "^1.7.3" } }, + "split": { + "version": "0.2.10", + "resolved": "https://registry.npmmirror.com/split/-/split-0.2.10.tgz", + "integrity": "sha512-e0pKq+UUH2Xq/sXbYpZBZc3BawsfDZ7dgv+JtRTUPNcvF5CMR4Y9cvJqkMY0MoxWzTHvZuz1beg6pNEKlszPiQ==", + "requires": { + "through": "2" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -10409,6 +13036,14 @@ "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, + "stack-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/stack-generator/-/stack-generator-2.0.5.tgz", + "integrity": "sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==", + "requires": { + "stackframe": "^1.1.1" + } + }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.5.tgz", @@ -10429,6 +13064,32 @@ "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.2.1.tgz", "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" }, + "stacktrace-gps": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz", + "integrity": "sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==", + "requires": { + "source-map": "0.5.6", + "stackframe": "^1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==" + } + } + }, + "stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "requires": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", @@ -10480,6 +13141,16 @@ "side-channel": "^1.0.4" } }, + "string.prototype.trim": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz", + "integrity": "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, "string.prototype.trimend": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", @@ -10568,6 +13239,19 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, + "supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmmirror.com/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "requires": { + "kdbush": "^3.0.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", @@ -10675,6 +13359,28 @@ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" }, + "tape": { + "version": "4.15.1", + "resolved": "https://registry.npmmirror.com/tape/-/tape-4.15.1.tgz", + "integrity": "sha512-k7F5pyr91n9D/yjSJwbLLYDCrTWXxMSXbbmHX2n334lSIc2rxeXyFkaBv4UuUd2gBYMrAOalPutAiCxC6q1qbw==", + "requires": { + "call-bind": "~1.0.2", + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "glob": "~7.2.0", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.1.4", + "minimist": "~1.2.6", + "object-inspect": "~1.12.0", + "resolve": "~1.22.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.5", + "through": "~2.3.8" + } + }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/temp-dir/-/temp-dir-2.0.0.tgz", @@ -10772,11 +13478,31 @@ "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.1.tgz", "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" }, + "throttle-debounce": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz", + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" + }, + "tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", @@ -10795,11 +13521,36 @@ "is-number": "^7.0.0" } }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "requires": { + "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, "tough-cookie": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -10830,6 +13581,11 @@ "resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz", "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" }, + "ts-easing": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/ts-easing/-/ts-easing-0.2.0.tgz", + "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==" + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -10891,6 +13647,11 @@ "mime-types": "~2.1.24" } }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -10904,6 +13665,60 @@ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.6.4.tgz", "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==" }, + "ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmmirror.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "optional": true + }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -10996,6 +13811,11 @@ "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmmirror.com/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", @@ -11026,6 +13846,25 @@ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, + "viewport-mercator-project": { + "version": "6.2.3", + "resolved": "https://registry.npmmirror.com/viewport-mercator-project/-/viewport-mercator-project-6.2.3.tgz", + "integrity": "sha512-QQb0/qCLlP4DdfbHHSWVYXpghB2wkLIiiZQnoelOB59mXKQSyZVxjreq1S+gaBJFpcGkWEcyVtre0+2y2DTl/Q==", + "requires": { + "@babel/runtime": "^7.0.0", + "gl-matrix": "^3.0.0" + } + }, + "vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "requires": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -11295,6 +14134,11 @@ "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" }, + "wgs84": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/wgs84/-/wgs84-0.0.0.tgz", + "integrity": "sha512-ANHlY4Rb5kHw40D0NJ6moaVfOCMrp9Gpd1R/AIQYg2ko4/jzcJ+TVXYYF6kXJqQwITvEZP4yEthjM7U6rYlljQ==" + }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -11343,11 +14187,21 @@ "is-symbol": "^1.0.3" } }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==" + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==" + }, "workbox-background-sync": { "version": "6.5.3", "resolved": "https://registry.npmmirror.com/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz", diff --git a/frontend/package.json b/frontend/package.json index 6876f37..7111485 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,6 +3,12 @@ "version": "0.1.0", "private": true, "dependencies": { + "@ant-design/charts": "^1.3.6", + "@antv/g2plot": "^2.4.16", + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/icons-material": "^5.6.2", + "@mui/material": "^5.6.4", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@testing-library/user-event": "^13.5.0", @@ -12,6 +18,7 @@ "@types/react-dom": "^18.0.3", "react": "^18.1.0", "react-dom": "^18.1.0", + "react-router-dom": "^6.3.0", "react-scripts": "5.0.1", "typescript": "^4.6.4", "web-vitals": "^2.1.4" diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a53698a..fe46c16 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,25 +1,62 @@ -import React from 'react'; +import React, { useState } from 'react'; import logo from './logo.svg'; import './App.css'; +import ThemeProvider from '@mui/material/styles/ThemeProvider'; +import { Route, Routes } from 'react-router-dom'; +import DataPanelPage from './page/data-panal-page'; +import createTheme from '@mui/material/styles/createTheme'; +import { Panels, Population_Panel_Options, Scenarios } from './meta-data'; + + +export const DataDisplayContext = React.createContext<{ + // currentPanel: Panels + openOptionsDrawer: boolean, + selectedScenario: string, + displayOptions: any, + setScenario: (scenario: string) => void, + setOpenOptionsDrawer:(isOpened: boolean) => void, + setDisplayOptions: (options: any) => void +}>({ + // currentPanel: Panels.POPULATION_PANEL, + openOptionsDrawer: true, + selectedScenario: '', + displayOptions: null, + setScenario: () => {}, + setOpenOptionsDrawer: () => {}, + setDisplayOptions: () => {} +}) function App() { + const [openDrawer, setOpenDrawer] = useState(true) + const [selectedScenario, setSeletedScenario] = useState(Scenarios.POPULATION_ANALYSIS) + const [displayDataOptions, setDisplayDataOptions] = useState(Object.values(Population_Panel_Options)) + + const theme = React.useMemo( + () => + createTheme({ + palette: { + mode: 'light', + }, + }), + [], + ); + return ( -
-
- logo -

- Edit src/App.tsx and save to reload. -

- - Learn React - -
-
+ + {setSeletedScenario(scenario)}, + setOpenOptionsDrawer: (isOpened: boolean) => {setOpenDrawer(isOpened)}, + setDisplayOptions: (options: any) => {setDisplayDataOptions(options)} + }}> + + }/> + + + ); } diff --git a/frontend/src/components/area-graph/area-graph.tsx b/frontend/src/components/area-graph/area-graph.tsx new file mode 100644 index 0000000..cbf8dc3 --- /dev/null +++ b/frontend/src/components/area-graph/area-graph.tsx @@ -0,0 +1,1904 @@ +import { Area } from "@antv/g2plot/lib/plots/area"; +import React, { useMemo } from "react"; + + +// interface AreaGraphProps { +// data: { +// category: string, +// xValue: string, +// yValue: number, +// }[], +// graphName: string, +// } + +// const AreaGraph = ({ data, graphName }:AreaGraphProps) => { +// const graph = useMemo(() => { +// const area = new Area(`${graphName}_area_graph`, { +// data, +// xField: 'xValue', +// yField: 'yValue', +// seriesField: 'category', +// }); +// area.render(); +// }, [data]) + +// return ( +//
+// ) +// } + +const data = [ + { + "country": "北美", + "date": 1965, + "value": 1390.5 + }, + { + "country": "北美", + "date": 1966, + "value": 1469.5 + }, + { + "country": "北美", + "date": 1967, + "value": 1521.7 + }, + { + "country": "北美", + "date": 1968, + "value": 1615.9 + }, + { + "country": "北美", + "date": 1969, + "value": 1703.7 + }, + { + "country": "北美", + "date": 1970, + "value": 1767.8 + }, + { + "country": "北美", + "date": 1971, + "value": 1806.2 + }, + { + "country": "北美", + "date": 1972, + "value": 1903.5 + }, + { + "country": "北美", + "date": 1973, + "value": 1986.6 + }, + { + "country": "北美", + "date": 1974, + "value": 1952 + }, + { + "country": "北美", + "date": 1975, + "value": 1910.4 + }, + { + "country": "北美", + "date": 1976, + "value": 2015.8 + }, + { + "country": "北美", + "date": 1977, + "value": 2074.7 + }, + { + "country": "北美", + "date": 1978, + "value": 2092.7 + }, + { + "country": "北美", + "date": 1979, + "value": 2123.8 + }, + { + "country": "北美", + "date": 1980, + "value": 2068.3 + }, + { + "country": "北美", + "date": 1981, + "value": 2018 + }, + { + "country": "北美", + "date": 1982, + "value": 1951.5 + }, + { + "country": "北美", + "date": 1983, + "value": 1941.1 + }, + { + "country": "北美", + "date": 1984, + "value": 2046.2 + }, + { + "country": "北美", + "date": 1985, + "value": 2053.1 + }, + { + "country": "北美", + "date": 1986, + "value": 2060.7 + }, + { + "country": "北美", + "date": 1987, + "value": 2130.8 + }, + { + "country": "北美", + "date": 1988, + "value": 2223.5 + }, + { + "country": "北美", + "date": 1989, + "value": 2275.9 + }, + { + "country": "北美", + "date": 1990, + "value": 2280.7 + }, + { + "country": "北美", + "date": 1991, + "value": 2282 + }, + { + "country": "北美", + "date": 1992, + "value": 2319.7 + }, + { + "country": "北美", + "date": 1993, + "value": 2366.6 + }, + { + "country": "北美", + "date": 1994, + "value": 2420.2 + }, + { + "country": "北美", + "date": 1995, + "value": 2466.9 + }, + { + "country": "北美", + "date": 1996, + "value": 2547.4 + }, + { + "country": "北美", + "date": 1997, + "value": 2569 + }, + { + "country": "北美", + "date": 1998, + "value": 2585.2 + }, + { + "country": "北美", + "date": 1999, + "value": 2633.8 + }, + { + "country": "北美", + "date": 2000, + "value": 2699.4 + }, + { + "country": "北美", + "date": 2001, + "value": 2640.1 + }, + { + "country": "北美", + "date": 2002, + "value": 2687.7 + }, + { + "country": "北美", + "date": 2003, + "value": 2700.7 + }, + { + "country": "北美", + "date": 2004, + "value": 2759.4 + }, + { + "country": "北美", + "date": 2005, + "value": 2775.6 + }, + { + "country": "北美", + "date": 2006, + "value": 2761.9 + }, + { + "country": "北美", + "date": 2007, + "value": 2809.5 + }, + { + "country": "北美", + "date": 2008, + "value": 2759.4 + }, + { + "country": "北美", + "date": 2009, + "value": 2632.5 + }, + { + "country": "北美", + "date": 2010, + "value": 2720.7 + }, + { + "country": "北美", + "date": 2011, + "value": 2722.9 + }, + { + "country": "北美", + "date": 2012, + "value": 2665.1 + }, + { + "country": "北美", + "date": 2013, + "value": 2738.3 + }, + { + "country": "北美", + "date": 2014, + "value": 2766.8 + }, + { + "country": "北美", + "date": 2015, + "value": 2739.7 + }, + { + "country": "北美", + "date": 2016, + "value": 2761.9 + }, + { + "country": "北美", + "date": 2017, + "value": 2772.8 + }, + { + "country": "中南美", + "date": 1965, + "value": 109.2 + }, + { + "country": "中南美", + "date": 1966, + "value": 115.7 + }, + { + "country": "中南美", + "date": 1967, + "value": 120.5 + }, + { + "country": "中南美", + "date": 1968, + "value": 128 + }, + { + "country": "中南美", + "date": 1969, + "value": 134.4 + }, + { + "country": "中南美", + "date": 1970, + "value": 142.2 + }, + { + "country": "中南美", + "date": 1971, + "value": 157.5 + }, + { + "country": "中南美", + "date": 1972, + "value": 169.5 + }, + { + "country": "中南美", + "date": 1973, + "value": 186.3 + }, + { + "country": "中南美", + "date": 1974, + "value": 195.5 + }, + { + "country": "中南美", + "date": 1975, + "value": 198 + }, + { + "country": "中南美", + "date": 1976, + "value": 211.7 + }, + { + "country": "中南美", + "date": 1977, + "value": 223.8 + }, + { + "country": "中南美", + "date": 1978, + "value": 236.5 + }, + { + "country": "中南美", + "date": 1979, + "value": 251.8 + }, + { + "country": "中南美", + "date": 1980, + "value": 262.9 + }, + { + "country": "中南美", + "date": 1981, + "value": 262.7 + }, + { + "country": "中南美", + "date": 1982, + "value": 265.9 + }, + { + "country": "中南美", + "date": 1983, + "value": 268.3 + }, + { + "country": "中南美", + "date": 1984, + "value": 278.3 + }, + { + "country": "中南美", + "date": 1985, + "value": 285.2 + }, + { + "country": "中南美", + "date": 1986, + "value": 304.2 + }, + { + "country": "中南美", + "date": 1987, + "value": 315.4 + }, + { + "country": "中南美", + "date": 1988, + "value": 324.6 + }, + { + "country": "中南美", + "date": 1989, + "value": 329.9 + }, + { + "country": "中南美", + "date": 1990, + "value": 331.1 + }, + { + "country": "中南美", + "date": 1991, + "value": 339.7 + }, + { + "country": "中南美", + "date": 1992, + "value": 355.8 + }, + { + "country": "中南美", + "date": 1993, + "value": 368.8 + }, + { + "country": "中南美", + "date": 1994, + "value": 390.9 + }, + { + "country": "中南美", + "date": 1995, + "value": 408.3 + }, + { + "country": "中南美", + "date": 1996, + "value": 425.8 + }, + { + "country": "中南美", + "date": 1997, + "value": 448.2 + }, + { + "country": "中南美", + "date": 1998, + "value": 465.5 + }, + { + "country": "中南美", + "date": 1999, + "value": 463.7 + }, + { + "country": "中南美", + "date": 2000, + "value": 476.1 + }, + { + "country": "中南美", + "date": 2001, + "value": 477.7 + }, + { + "country": "中南美", + "date": 2002, + "value": 483.5 + }, + { + "country": "中南美", + "date": 2003, + "value": 489.3 + }, + { + "country": "中南美", + "date": 2004, + "value": 515.5 + }, + { + "country": "中南美", + "date": 2005, + "value": 533.6 + }, + { + "country": "中南美", + "date": 2006, + "value": 564 + }, + { + "country": "中南美", + "date": 2007, + "value": 587 + }, + { + "country": "中南美", + "date": 2008, + "value": 605.8 + }, + { + "country": "中南美", + "date": 2009, + "value": 596.8 + }, + { + "country": "中南美", + "date": 2010, + "value": 632.5 + }, + { + "country": "中南美", + "date": 2011, + "value": 658.9 + }, + { + "country": "中南美", + "date": 2012, + "value": 676.5 + }, + { + "country": "中南美", + "date": 2013, + "value": 692 + }, + { + "country": "中南美", + "date": 2014, + "value": 697.7 + }, + { + "country": "中南美", + "date": 2015, + "value": 701.1 + }, + { + "country": "中南美", + "date": 2016, + "value": 696.8 + }, + { + "country": "中南美", + "date": 2017, + "value": 700.6 + }, + { + "country": "欧洲", + "date": 1965, + "value": 1058.1 + }, + { + "country": "欧洲", + "date": 1966, + "value": 1089.7 + }, + { + "country": "欧洲", + "date": 1967, + "value": 1121.7 + }, + { + "country": "欧洲", + "date": 1968, + "value": 1196.6 + }, + { + "country": "欧洲", + "date": 1969, + "value": 1285.5 + }, + { + "country": "欧洲", + "date": 1970, + "value": 1369 + }, + { + "country": "欧洲", + "date": 1971, + "value": 1406.2 + }, + { + "country": "欧洲", + "date": 1972, + "value": 1472.7 + }, + { + "country": "欧洲", + "date": 1973, + "value": 1558 + }, + { + "country": "欧洲", + "date": 1974, + "value": 1535.5 + }, + { + "country": "欧洲", + "date": 1975, + "value": 1519.3 + }, + { + "country": "欧洲", + "date": 1976, + "value": 1606.9 + }, + { + "country": "欧洲", + "date": 1977, + "value": 1632.4 + }, + { + "country": "欧洲", + "date": 1978, + "value": 1687.5 + }, + { + "country": "欧洲", + "date": 1979, + "value": 1749.6 + }, + { + "country": "欧洲", + "date": 1980, + "value": 1706.4 + }, + { + "country": "欧洲", + "date": 1981, + "value": 1661.4 + }, + { + "country": "欧洲", + "date": 1982, + "value": 1630.2 + }, + { + "country": "欧洲", + "date": 1983, + "value": 1645.2 + }, + { + "country": "欧洲", + "date": 1984, + "value": 1686.9 + }, + { + "country": "欧洲", + "date": 1985, + "value": 1779.4 + }, + { + "country": "欧洲", + "date": 1986, + "value": 1811.3 + }, + { + "country": "欧洲", + "date": 1987, + "value": 1849.7 + }, + { + "country": "欧洲", + "date": 1988, + "value": 1870 + }, + { + "country": "欧洲", + "date": 1989, + "value": 1875 + }, + { + "country": "欧洲", + "date": 1990, + "value": 1853.3 + }, + { + "country": "欧洲", + "date": 1991, + "value": 1844.6 + }, + { + "country": "欧洲", + "date": 1992, + "value": 1814.1 + }, + { + "country": "欧洲", + "date": 1993, + "value": 1805.3 + }, + { + "country": "欧洲", + "date": 1994, + "value": 1791.3 + }, + { + "country": "欧洲", + "date": 1995, + "value": 1836.2 + }, + { + "country": "欧洲", + "date": 1996, + "value": 1896.1 + }, + { + "country": "欧洲", + "date": 1997, + "value": 1896.4 + }, + { + "country": "欧洲", + "date": 1998, + "value": 1918.8 + }, + { + "country": "欧洲", + "date": 1999, + "value": 1907.7 + }, + { + "country": "欧洲", + "date": 2000, + "value": 1932.1 + }, + { + "country": "欧洲", + "date": 2001, + "value": 1959.2 + }, + { + "country": "欧洲", + "date": 2002, + "value": 1954.8 + }, + { + "country": "欧洲", + "date": 2003, + "value": 1991.6 + }, + { + "country": "欧洲", + "date": 2004, + "value": 2025.4 + }, + { + "country": "欧洲", + "date": 2005, + "value": 2037.4 + }, + { + "country": "欧洲", + "date": 2006, + "value": 2056.4 + }, + { + "country": "欧洲", + "date": 2007, + "value": 2041.7 + }, + { + "country": "欧洲", + "date": 2008, + "value": 2038.5 + }, + { + "country": "欧洲", + "date": 2009, + "value": 1932.1 + }, + { + "country": "欧洲", + "date": 2010, + "value": 2001.1 + }, + { + "country": "欧洲", + "date": 2011, + "value": 1949.1 + }, + { + "country": "欧洲", + "date": 2012, + "value": 1944.3 + }, + { + "country": "欧洲", + "date": 2013, + "value": 1934 + }, + { + "country": "欧洲", + "date": 2014, + "value": 1871.2 + }, + { + "country": "欧洲", + "date": 2015, + "value": 1908.7 + }, + { + "country": "欧洲", + "date": 2016, + "value": 1934.6 + }, + { + "country": "欧洲", + "date": 2017, + "value": 1969.5 + }, + { + "country": "CIS 地区", + "date": 1965, + "value": 593.3 + }, + { + "country": "CIS 地区", + "date": 1966, + "value": 630.9 + }, + { + "country": "CIS 地区", + "date": 1967, + "value": 663.2 + }, + { + "country": "CIS 地区", + "date": 1968, + "value": 687.8 + }, + { + "country": "CIS 地区", + "date": 1969, + "value": 719 + }, + { + "country": "CIS 地区", + "date": 1970, + "value": 754.8 + }, + { + "country": "CIS 地区", + "date": 1971, + "value": 791.9 + }, + { + "country": "CIS 地区", + "date": 1972, + "value": 832.3 + }, + { + "country": "CIS 地区", + "date": 1973, + "value": 875.1 + }, + { + "country": "CIS 地区", + "date": 1974, + "value": 923.3 + }, + { + "country": "CIS 地区", + "date": 1975, + "value": 969 + }, + { + "country": "CIS 地区", + "date": 1976, + "value": 1006.5 + }, + { + "country": "CIS 地区", + "date": 1977, + "value": 1051.4 + }, + { + "country": "CIS 地区", + "date": 1978, + "value": 1094.2 + }, + { + "country": "CIS 地区", + "date": 1979, + "value": 1127.1 + }, + { + "country": "CIS 地区", + "date": 1980, + "value": 1150.1 + }, + { + "country": "CIS 地区", + "date": 1981, + "value": 1174.5 + }, + { + "country": "CIS 地区", + "date": 1982, + "value": 1204 + }, + { + "country": "CIS 地区", + "date": 1983, + "value": 1229 + }, + { + "country": "CIS 地区", + "date": 1984, + "value": 1274.6 + }, + { + "country": "CIS 地区", + "date": 1985, + "value": 1257 + }, + { + "country": "CIS 地区", + "date": 1986, + "value": 1282 + }, + { + "country": "CIS 地区", + "date": 1987, + "value": 1318 + }, + { + "country": "CIS 地区", + "date": 1988, + "value": 1341.5 + }, + { + "country": "CIS 地区", + "date": 1989, + "value": 1332.5 + }, + { + "country": "CIS 地区", + "date": 1990, + "value": 1350.3 + }, + { + "country": "CIS 地区", + "date": 1991, + "value": 1308.9 + }, + { + "country": "CIS 地区", + "date": 1992, + "value": 1233.1 + }, + { + "country": "CIS 地区", + "date": 1993, + "value": 1121 + }, + { + "country": "CIS 地区", + "date": 1994, + "value": 1012.2 + }, + { + "country": "CIS 地区", + "date": 1995, + "value": 951.2 + }, + { + "country": "CIS 地区", + "date": 1996, + "value": 920 + }, + { + "country": "CIS 地区", + "date": 1997, + "value": 878.4 + }, + { + "country": "CIS 地区", + "date": 1998, + "value": 871.7 + }, + { + "country": "CIS 地区", + "date": 1999, + "value": 881.3 + }, + { + "country": "CIS 地区", + "date": 2000, + "value": 888.5 + }, + { + "country": "CIS 地区", + "date": 2001, + "value": 905.5 + }, + { + "country": "CIS 地区", + "date": 2002, + "value": 904 + }, + { + "country": "CIS 地区", + "date": 2003, + "value": 924.3 + }, + { + "country": "CIS 地区", + "date": 2004, + "value": 938.7 + }, + { + "country": "CIS 地区", + "date": 2005, + "value": 942.3 + }, + { + "country": "CIS 地区", + "date": 2006, + "value": 978.6 + }, + { + "country": "CIS 地区", + "date": 2007, + "value": 989.8 + }, + { + "country": "CIS 地区", + "date": 2008, + "value": 998.1 + }, + { + "country": "CIS 地区", + "date": 2009, + "value": 926.8 + }, + { + "country": "CIS 地区", + "date": 2010, + "value": 967.8 + }, + { + "country": "CIS 地区", + "date": 2011, + "value": 1006 + }, + { + "country": "CIS 地区", + "date": 2012, + "value": 1014.1 + }, + { + "country": "CIS 地区", + "date": 2013, + "value": 989.2 + }, + { + "country": "CIS 地区", + "date": 2014, + "value": 987 + }, + { + "country": "CIS 地区", + "date": 2015, + "value": 960.7 + }, + { + "country": "CIS 地区", + "date": 2016, + "value": 972 + }, + { + "country": "CIS 地区", + "date": 2017, + "value": 978 + }, + { + "country": "中东", + "date": 1965, + "value": 48.3 + }, + { + "country": "中东", + "date": 1966, + "value": 50.4 + }, + { + "country": "中东", + "date": 1967, + "value": 52.7 + }, + { + "country": "中东", + "date": 1968, + "value": 55.6 + }, + { + "country": "中东", + "date": 1969, + "value": 58.5 + }, + { + "country": "中东", + "date": 1970, + "value": 61.5 + }, + { + "country": "中东", + "date": 1971, + "value": 64.9 + }, + { + "country": "中东", + "date": 1972, + "value": 70.6 + }, + { + "country": "中东", + "date": 1973, + "value": 77.4 + }, + { + "country": "中东", + "date": 1974, + "value": 82.3 + }, + { + "country": "中东", + "date": 1975, + "value": 82.1 + }, + { + "country": "中东", + "date": 1976, + "value": 93 + }, + { + "country": "中东", + "date": 1977, + "value": 105.7 + }, + { + "country": "中东", + "date": 1978, + "value": 111 + }, + { + "country": "中东", + "date": 1979, + "value": 130.5 + }, + { + "country": "中东", + "date": 1980, + "value": 126.5 + }, + { + "country": "中东", + "date": 1981, + "value": 137.9 + }, + { + "country": "中东", + "date": 1982, + "value": 152.8 + }, + { + "country": "中东", + "date": 1983, + "value": 167.1 + }, + { + "country": "中东", + "date": 1984, + "value": 188.9 + }, + { + "country": "中东", + "date": 1985, + "value": 200.8 + }, + { + "country": "中东", + "date": 1986, + "value": 209.8 + }, + { + "country": "中东", + "date": 1987, + "value": 224.5 + }, + { + "country": "中东", + "date": 1988, + "value": 238.5 + }, + { + "country": "中东", + "date": 1989, + "value": 251.5 + }, + { + "country": "中东", + "date": 1990, + "value": 260 + }, + { + "country": "中东", + "date": 1991, + "value": 271.7 + }, + { + "country": "中东", + "date": 1992, + "value": 296.4 + }, + { + "country": "中东", + "date": 1993, + "value": 304.7 + }, + { + "country": "中东", + "date": 1994, + "value": 340.3 + }, + { + "country": "中东", + "date": 1995, + "value": 352.4 + }, + { + "country": "中东", + "date": 1996, + "value": 363.9 + }, + { + "country": "中东", + "date": 1997, + "value": 381.3 + }, + { + "country": "中东", + "date": 1998, + "value": 387.7 + }, + { + "country": "中东", + "date": 1999, + "value": 395 + }, + { + "country": "中东", + "date": 2000, + "value": 414.9 + }, + { + "country": "中东", + "date": 2001, + "value": 435.6 + }, + { + "country": "中东", + "date": 2002, + "value": 459.4 + }, + { + "country": "中东", + "date": 2003, + "value": 479.3 + }, + { + "country": "中东", + "date": 2004, + "value": 517.1 + }, + { + "country": "中东", + "date": 2005, + "value": 553.7 + }, + { + "country": "中东", + "date": 2006, + "value": 582.6 + }, + { + "country": "中东", + "date": 2007, + "value": 618.2 + }, + { + "country": "中东", + "date": 2008, + "value": 657.1 + }, + { + "country": "中东", + "date": 2009, + "value": 677.2 + }, + { + "country": "中东", + "date": 2010, + "value": 714.3 + }, + { + "country": "中东", + "date": 2011, + "value": 740.9 + }, + { + "country": "中东", + "date": 2012, + "value": 771.1 + }, + { + "country": "中东", + "date": 2013, + "value": 795.3 + }, + { + "country": "中东", + "date": 2014, + "value": 823.1 + }, + { + "country": "中东", + "date": 2015, + "value": 848.3 + }, + { + "country": "中东", + "date": 2016, + "value": 869.7 + }, + { + "country": "中东", + "date": 2017, + "value": 897.2 + }, + { + "country": "非洲", + "date": 1965, + "value": 60.6 + }, + { + "country": "非洲", + "date": 1966, + "value": 63.3 + }, + { + "country": "非洲", + "date": 1967, + "value": 64 + }, + { + "country": "非洲", + "date": 1968, + "value": 67.4 + }, + { + "country": "非洲", + "date": 1969, + "value": 68.9 + }, + { + "country": "非洲", + "date": 1970, + "value": 74.7 + }, + { + "country": "非洲", + "date": 1971, + "value": 81.2 + }, + { + "country": "非洲", + "date": 1972, + "value": 86.3 + }, + { + "country": "非洲", + "date": 1973, + "value": 92.9 + }, + { + "country": "非洲", + "date": 1974, + "value": 97.6 + }, + { + "country": "非洲", + "date": 1975, + "value": 103.3 + }, + { + "country": "非洲", + "date": 1976, + "value": 112.4 + }, + { + "country": "非洲", + "date": 1977, + "value": 118.4 + }, + { + "country": "非洲", + "date": 1978, + "value": 123.1 + }, + { + "country": "非洲", + "date": 1979, + "value": 134.4 + }, + { + "country": "非洲", + "date": 1980, + "value": 144.8 + }, + { + "country": "非洲", + "date": 1981, + "value": 161.5 + }, + { + "country": "非洲", + "date": 1982, + "value": 172.7 + }, + { + "country": "非洲", + "date": 1983, + "value": 177.5 + }, + { + "country": "非洲", + "date": 1984, + "value": 183.7 + }, + { + "country": "非洲", + "date": 1985, + "value": 190.7 + }, + { + "country": "非洲", + "date": 1986, + "value": 195.1 + }, + { + "country": "非洲", + "date": 1987, + "value": 201.2 + }, + { + "country": "非洲", + "date": 1988, + "value": 215.7 + }, + { + "country": "非洲", + "date": 1989, + "value": 216.3 + }, + { + "country": "非洲", + "date": 1990, + "value": 223.3 + }, + { + "country": "非洲", + "date": 1991, + "value": 223 + }, + { + "country": "非洲", + "date": 1992, + "value": 226.3 + }, + { + "country": "非洲", + "date": 1993, + "value": 227.2 + }, + { + "country": "非洲", + "date": 1994, + "value": 233.9 + }, + { + "country": "非洲", + "date": 1995, + "value": 243.4 + }, + { + "country": "非洲", + "date": 1996, + "value": 250.1 + }, + { + "country": "非洲", + "date": 1997, + "value": 255.1 + }, + { + "country": "非洲", + "date": 1998, + "value": 259.1 + }, + { + "country": "非洲", + "date": 1999, + "value": 267.2 + }, + { + "country": "非洲", + "date": 2000, + "value": 273.4 + }, + { + "country": "非洲", + "date": 2001, + "value": 283.8 + }, + { + "country": "非洲", + "date": 2002, + "value": 287.1 + }, + { + "country": "非洲", + "date": 2003, + "value": 300.6 + }, + { + "country": "非洲", + "date": 2004, + "value": 323.2 + }, + { + "country": "非洲", + "date": 2005, + "value": 326.5 + }, + { + "country": "非洲", + "date": 2006, + "value": 332.8 + }, + { + "country": "非洲", + "date": 2007, + "value": 346.9 + }, + { + "country": "非洲", + "date": 2008, + "value": 368.7 + }, + { + "country": "非洲", + "date": 2009, + "value": 373.4 + }, + { + "country": "非洲", + "date": 2010, + "value": 386.9 + }, + { + "country": "非洲", + "date": 2011, + "value": 385.6 + }, + { + "country": "非洲", + "date": 2012, + "value": 399.8 + }, + { + "country": "非洲", + "date": 2013, + "value": 410.6 + }, + { + "country": "非洲", + "date": 2014, + "value": 425.1 + }, + { + "country": "非洲", + "date": 2015, + "value": 429.4 + }, + { + "country": "非洲", + "date": 2016, + "value": 438 + }, + { + "country": "非洲", + "date": 2017, + "value": 449.5 + }, + { + "country": "亚太地区", + "date": 1965, + "value": 441.6 + }, + { + "country": "亚太地区", + "date": 1966, + "value": 482.9 + }, + { + "country": "亚太地区", + "date": 1967, + "value": 506.1 + }, + { + "country": "亚太地区", + "date": 1968, + "value": 544.1 + }, + { + "country": "亚太地区", + "date": 1969, + "value": 619.8 + }, + { + "country": "亚太地区", + "date": 1970, + "value": 704.9 + }, + { + "country": "亚太地区", + "date": 1971, + "value": 771.4 + }, + { + "country": "亚太地区", + "date": 1972, + "value": 817.9 + }, + { + "country": "亚太地区", + "date": 1973, + "value": 885.1 + }, + { + "country": "亚太地区", + "date": 1974, + "value": 902.2 + }, + { + "country": "亚太地区", + "date": 1975, + "value": 936.1 + }, + { + "country": "亚太地区", + "date": 1976, + "value": 983.2 + }, + { + "country": "亚太地区", + "date": 1977, + "value": 1037.3 + }, + { + "country": "亚太地区", + "date": 1978, + "value": 1106.2 + }, + { + "country": "亚太地区", + "date": 1979, + "value": 1157.6 + }, + { + "country": "亚太地区", + "date": 1980, + "value": 1168 + }, + { + "country": "亚太地区", + "date": 1981, + "value": 1175 + }, + { + "country": "亚太地区", + "date": 1982, + "value": 1186.8 + }, + { + "country": "亚太地区", + "date": 1983, + "value": 1240.7 + }, + { + "country": "亚太地区", + "date": 1984, + "value": 1326.7 + }, + { + "country": "亚太地区", + "date": 1985, + "value": 1395.9 + }, + { + "country": "亚太地区", + "date": 1986, + "value": 1456.5 + }, + { + "country": "亚太地区", + "date": 1987, + "value": 1538 + }, + { + "country": "亚太地区", + "date": 1988, + "value": 1650.5 + }, + { + "country": "亚太地区", + "date": 1989, + "value": 1740.4 + }, + { + "country": "亚太地区", + "date": 1990, + "value": 1812.8 + }, + { + "country": "亚太地区", + "date": 1991, + "value": 1896.9 + }, + { + "country": "亚太地区", + "date": 1992, + "value": 1984.5 + }, + { + "country": "亚太地区", + "date": 1993, + "value": 2088.9 + }, + { + "country": "亚太地区", + "date": 1994, + "value": 2204.3 + }, + { + "country": "亚太地区", + "date": 1995, + "value": 2306.8 + }, + { + "country": "亚太地区", + "date": 1996, + "value": 2413.2 + }, + { + "country": "亚太地区", + "date": 1997, + "value": 2487 + }, + { + "country": "亚太地区", + "date": 1998, + "value": 2481 + }, + { + "country": "亚太地区", + "date": 1999, + "value": 2577.9 + }, + { + "country": "亚太地区", + "date": 2000, + "value": 2671.9 + }, + { + "country": "亚太地区", + "date": 2001, + "value": 2759.7 + }, + { + "country": "亚太地区", + "date": 2002, + "value": 2901.2 + }, + { + "country": "亚太地区", + "date": 2003, + "value": 3145.5 + }, + { + "country": "亚太地区", + "date": 2004, + "value": 3445.8 + }, + { + "country": "亚太地区", + "date": 2005, + "value": 3724.3 + }, + { + "country": "亚太地区", + "date": 2006, + "value": 3944 + }, + { + "country": "亚太地区", + "date": 2007, + "value": 4195.2 + }, + { + "country": "亚太地区", + "date": 2008, + "value": 4310.8 + }, + { + "country": "亚太地区", + "date": 2009, + "value": 4411.1 + }, + { + "country": "亚太地区", + "date": 2010, + "value": 4696.1 + }, + { + "country": "亚太地区", + "date": 2011, + "value": 4951.1 + }, + { + "country": "亚太地区", + "date": 2012, + "value": 5118.2 + }, + { + "country": "亚太地区", + "date": 2013, + "value": 5269.9 + }, + { + "country": "亚太地区", + "date": 2014, + "value": 5382.9 + }, + { + "country": "亚太地区", + "date": 2015, + "value": 5472.4 + }, + { + "country": "亚太地区", + "date": 2016, + "value": 5585.5 + }, + { + "country": "亚太地区", + "date": 2017, + "value": 5743.6 + } +] + +const AreaGraph = () => { + const graph = useMemo(() => { + const area = new Area(`container`, { + data, + xField: 'xValue', + yField: 'yValue', + seriesField: 'category', + }); + area.render(); + }, [data]) + + return ( +
+ ) +} + +export default AreaGraph \ No newline at end of file diff --git a/frontend/src/components/check-box/check-box.tsx b/frontend/src/components/check-box/check-box.tsx new file mode 100644 index 0000000..b37b9a9 --- /dev/null +++ b/frontend/src/components/check-box/check-box.tsx @@ -0,0 +1,40 @@ +import React from "react"; + +import FormGroup from "@mui/material/FormGroup"; +import Stack from "@mui/material/Stack"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import Checkbox from '@mui/material/Checkbox'; +import { Population_Panel_Options } from "../../meta-data"; + +interface CheckBoxProps { + menuItems: string[] + addDataSet: (dsKey: string) => void + deleteDataSet: (dsKey: string) => void +} + +const CheckBox = ({ menuItems, addDataSet, deleteDataSet }: CheckBoxProps) => { + return ( + + {/* */} + {Object.values(Population_Panel_Options).map(value => ( + // + { + // console.log('select=>') + if (e.target.checked) { + addDataSet(value) + } + else { + deleteDataSet(value) + } + }} + control={} + label={value} + /> + // + ))} + {/* */} + ) +} + +export default CheckBox; \ No newline at end of file diff --git a/frontend/src/components/dropdown-selector/dropdown-selector.tsx b/frontend/src/components/dropdown-selector/dropdown-selector.tsx new file mode 100644 index 0000000..52be786 --- /dev/null +++ b/frontend/src/components/dropdown-selector/dropdown-selector.tsx @@ -0,0 +1,38 @@ +import React from "react"; + +import Box from "@mui/material/Box"; +import FormControl from "@mui/material/FormControl"; +import Select, { SelectChangeEvent } from "@mui/material/Select"; +import MenuItem from "@mui/material/MenuItem"; +import InputLabel from "@mui/material/InputLabel"; + + +interface DropdownSelectorProps { + menuItems: string[], + updateWhenSelect: (item: string) => void, + selectorName?: string, + selectedItem: string, +} + +const DropdownSelector = ({ menuItems, updateWhenSelect, selectorName, selectedItem }: DropdownSelectorProps) => ( + + + { selectorName } + + + +) + +export default DropdownSelector \ No newline at end of file diff --git a/frontend/src/components/left-drawer/left-drawer.tsx b/frontend/src/components/left-drawer/left-drawer.tsx new file mode 100644 index 0000000..3c1aa4e --- /dev/null +++ b/frontend/src/components/left-drawer/left-drawer.tsx @@ -0,0 +1,66 @@ +import React, { useContext, useMemo, useState } from "react"; + +import DropdownSelector from "../dropdown-selector/dropdown-selector"; +import { Scenarios } from "../../meta-data"; + +import Box from "@mui/material/Box"; +import Drawer from "@mui/material/Drawer/Drawer"; +import { DataDisplayContext } from "../../App"; +import Stack from "@mui/material/Stack"; +import { Button, IconButton, Step, StepContent, StepLabel, Stepper, Typography } from "@mui/material"; +import MenuIcon from '@mui/icons-material/Menu'; +import LooksOneIcon from '@mui/icons-material/LooksOne'; +import LooksTwoIcon from '@mui/icons-material/LooksTwo'; +import PopulationAnalysisOptionPanel from "../population-analysis-option-panel/population-analysis-option-panel"; +import Looks3Icon from '@mui/icons-material/Looks3'; +import Top10LanguageAnalysisOptionsPanel from "../top10language-analysis-options-panel/top10language-analysis-options-panel"; + +const LeftDrawer = () => { + const { openOptionsDrawer, setOpenOptionsDrawer, selectedScenario } = useContext(DataDisplayContext) + const [ currentSelectedScenario, setCurrentSelectedScenario] = useState(selectedScenario) + + const optionsPanel = useMemo(() => { + switch(currentSelectedScenario) { + case Scenarios.POPULATION_ANALYSIS: + return + case Scenarios.TOP_10_LANGUAGE_ANALYSIS: + return + } + }, [currentSelectedScenario]) + + return ( + openOptionsDrawer? + ( {setOpenOptionsDrawer(false)}}> + + {/* */} + + + + + + Select an scenario to analyze + + + + + + setCurrentSelectedScenario(scenario)} + selectedItem={currentSelectedScenario} + /> + + + + {optionsPanel} + {/* */} + + ) + : + ( {setOpenOptionsDrawer(true)}} sx={{ margin: '10px' }}> + + ) + ) +} + +export default LeftDrawer; \ No newline at end of file diff --git a/frontend/src/components/population-analysis-option-panel/population-analysis-option-panel.tsx b/frontend/src/components/population-analysis-option-panel/population-analysis-option-panel.tsx new file mode 100644 index 0000000..58496d4 --- /dev/null +++ b/frontend/src/components/population-analysis-option-panel/population-analysis-option-panel.tsx @@ -0,0 +1,80 @@ +import React, { useContext, useState } from "react"; + +import { Scenarios } from "../../meta-data"; + +import CheckBox from "../check-box/check-box"; +import Box from "@mui/material/Box"; +import { DataDisplayContext } from "../../App"; +import Stack from "@mui/material/Stack"; +import { Button, Step, StepContent, StepLabel, Typography } from "@mui/material"; +import LooksTwoIcon from '@mui/icons-material/LooksTwo'; +import Looks3Icon from '@mui/icons-material/Looks3'; + + + +const PopulationAnalysisOptionPanel = () => { + const { setDisplayOptions, setScenario, displayOptions } = useContext(DataDisplayContext) + const [selectedDataSet, setSelectedDataSet] = useState(displayOptions as string[]) + + console.log('displayOptions=>') + console.log(displayOptions) + + const deleteSelectedDataset = (datasetToDelete: string) => { + setSelectedDataSet(selectedDataSet.filter(sds => sds !== datasetToDelete)) + } + + const addSelestedDataset = (datasetToAdd: string) => { + if (!selectedDataSet.includes(datasetToAdd)) { + setSelectedDataSet([...selectedDataSet, datasetToAdd]) + } + } + + const handleSubmit = () => { + setDisplayOptions(selectedDataSet) + setScenario(Scenarios.POPULATION_ANALYSIS) + } + + + return ( + <> + + + + + + Options + + + + + + + + + + + + + + + LoadData + + + + + + + + + + + ) +} + +export default PopulationAnalysisOptionPanel \ No newline at end of file diff --git a/frontend/src/components/population-analysis-panel/population-analysis-panel.tsx b/frontend/src/components/population-analysis-panel/population-analysis-panel.tsx new file mode 100644 index 0000000..124a410 --- /dev/null +++ b/frontend/src/components/population-analysis-panel/population-analysis-panel.tsx @@ -0,0 +1,1962 @@ +import { Area } from "@antv/g2plot"; +import Box from "@mui/material/Box"; +import React, { useContext, useEffect, useState } from "react"; +import { DataDisplayContext } from "../../App"; +import { Population_Panel_Options } from "../../meta-data"; +import { fetchPopulationData } from "../../services/services"; + +// const data = [ +// { +// "country": "北美", +// "date": 1965, +// "value": 1390.5 +// }, +// { +// "country": "北美", +// "date": 1966, +// "value": 1469.5 +// }, +// { +// "country": "北美", +// "date": 1967, +// "value": 1521.7 +// }, +// { +// "country": "北美", +// "date": 1968, +// "value": 1615.9 +// }, +// { +// "country": "北美", +// "date": 1969, +// "value": 1703.7 +// }, +// { +// "country": "北美", +// "date": 1970, +// "value": 1767.8 +// }, +// { +// "country": "北美", +// "date": 1971, +// "value": 1806.2 +// }, +// { +// "country": "北美", +// "date": 1972, +// "value": 1903.5 +// }, +// { +// "country": "北美", +// "date": 1973, +// "value": 1986.6 +// }, +// { +// "country": "北美", +// "date": 1974, +// "value": 1952 +// }, +// { +// "country": "北美", +// "date": 1975, +// "value": 1910.4 +// }, +// { +// "country": "北美", +// "date": 1976, +// "value": 2015.8 +// }, +// { +// "country": "北美", +// "date": 1977, +// "value": 2074.7 +// }, +// { +// "country": "北美", +// "date": 1978, +// "value": 2092.7 +// }, +// { +// "country": "北美", +// "date": 1979, +// "value": 2123.8 +// }, +// { +// "country": "北美", +// "date": 1980, +// "value": 2068.3 +// }, +// { +// "country": "北美", +// "date": 1981, +// "value": 2018 +// }, +// { +// "country": "北美", +// "date": 1982, +// "value": 1951.5 +// }, +// { +// "country": "北美", +// "date": 1983, +// "value": 1941.1 +// }, +// { +// "country": "北美", +// "date": 1984, +// "value": 2046.2 +// }, +// { +// "country": "北美", +// "date": 1985, +// "value": 2053.1 +// }, +// { +// "country": "北美", +// "date": 1986, +// "value": 2060.7 +// }, +// { +// "country": "北美", +// "date": 1987, +// "value": 2130.8 +// }, +// { +// "country": "北美", +// "date": 1988, +// "value": 2223.5 +// }, +// { +// "country": "北美", +// "date": 1989, +// "value": 2275.9 +// }, +// { +// "country": "北美", +// "date": 1990, +// "value": 2280.7 +// }, +// { +// "country": "北美", +// "date": 1991, +// "value": 2282 +// }, +// { +// "country": "北美", +// "date": 1992, +// "value": 2319.7 +// }, +// { +// "country": "北美", +// "date": 1993, +// "value": 2366.6 +// }, +// { +// "country": "北美", +// "date": 1994, +// "value": 2420.2 +// }, +// { +// "country": "北美", +// "date": 1995, +// "value": 2466.9 +// }, +// { +// "country": "北美", +// "date": 1996, +// "value": 2547.4 +// }, +// { +// "country": "北美", +// "date": 1997, +// "value": 2569 +// }, +// { +// "country": "北美", +// "date": 1998, +// "value": 2585.2 +// }, +// { +// "country": "北美", +// "date": 1999, +// "value": 2633.8 +// }, +// { +// "country": "北美", +// "date": 2000, +// "value": 2699.4 +// }, +// { +// "country": "北美", +// "date": 2001, +// "value": 2640.1 +// }, +// { +// "country": "北美", +// "date": 2002, +// "value": 2687.7 +// }, +// { +// "country": "北美", +// "date": 2003, +// "value": 2700.7 +// }, +// { +// "country": "北美", +// "date": 2004, +// "value": 2759.4 +// }, +// { +// "country": "北美", +// "date": 2005, +// "value": 2775.6 +// }, +// { +// "country": "北美", +// "date": 2006, +// "value": 2761.9 +// }, +// { +// "country": "北美", +// "date": 2007, +// "value": 2809.5 +// }, +// { +// "country": "北美", +// "date": 2008, +// "value": 2759.4 +// }, +// { +// "country": "北美", +// "date": 2009, +// "value": 2632.5 +// }, +// { +// "country": "北美", +// "date": 2010, +// "value": 2720.7 +// }, +// { +// "country": "北美", +// "date": 2011, +// "value": 2722.9 +// }, +// { +// "country": "北美", +// "date": 2012, +// "value": 2665.1 +// }, +// { +// "country": "北美", +// "date": 2013, +// "value": 2738.3 +// }, +// { +// "country": "北美", +// "date": 2014, +// "value": 2766.8 +// }, +// { +// "country": "北美", +// "date": 2015, +// "value": 2739.7 +// }, +// { +// "country": "北美", +// "date": 2016, +// "value": 2761.9 +// }, +// { +// "country": "北美", +// "date": 2017, +// "value": 2772.8 +// }, +// { +// "country": "中南美", +// "date": 1965, +// "value": 109.2 +// }, +// { +// "country": "中南美", +// "date": 1966, +// "value": 115.7 +// }, +// { +// "country": "中南美", +// "date": 1967, +// "value": 120.5 +// }, +// { +// "country": "中南美", +// "date": 1968, +// "value": 128 +// }, +// { +// "country": "中南美", +// "date": 1969, +// "value": 134.4 +// }, +// { +// "country": "中南美", +// "date": 1970, +// "value": 142.2 +// }, +// { +// "country": "中南美", +// "date": 1971, +// "value": 157.5 +// }, +// { +// "country": "中南美", +// "date": 1972, +// "value": 169.5 +// }, +// { +// "country": "中南美", +// "date": 1973, +// "value": 186.3 +// }, +// { +// "country": "中南美", +// "date": 1974, +// "value": 195.5 +// }, +// { +// "country": "中南美", +// "date": 1975, +// "value": 198 +// }, +// { +// "country": "中南美", +// "date": 1976, +// "value": 211.7 +// }, +// { +// "country": "中南美", +// "date": 1977, +// "value": 223.8 +// }, +// { +// "country": "中南美", +// "date": 1978, +// "value": 236.5 +// }, +// { +// "country": "中南美", +// "date": 1979, +// "value": 251.8 +// }, +// { +// "country": "中南美", +// "date": 1980, +// "value": 262.9 +// }, +// { +// "country": "中南美", +// "date": 1981, +// "value": 262.7 +// }, +// { +// "country": "中南美", +// "date": 1982, +// "value": 265.9 +// }, +// { +// "country": "中南美", +// "date": 1983, +// "value": 268.3 +// }, +// { +// "country": "中南美", +// "date": 1984, +// "value": 278.3 +// }, +// { +// "country": "中南美", +// "date": 1985, +// "value": 285.2 +// }, +// { +// "country": "中南美", +// "date": 1986, +// "value": 304.2 +// }, +// { +// "country": "中南美", +// "date": 1987, +// "value": 315.4 +// }, +// { +// "country": "中南美", +// "date": 1988, +// "value": 324.6 +// }, +// { +// "country": "中南美", +// "date": 1989, +// "value": 329.9 +// }, +// { +// "country": "中南美", +// "date": 1990, +// "value": 331.1 +// }, +// { +// "country": "中南美", +// "date": 1991, +// "value": 339.7 +// }, +// { +// "country": "中南美", +// "date": 1992, +// "value": 355.8 +// }, +// { +// "country": "中南美", +// "date": 1993, +// "value": 368.8 +// }, +// { +// "country": "中南美", +// "date": 1994, +// "value": 390.9 +// }, +// { +// "country": "中南美", +// "date": 1995, +// "value": 408.3 +// }, +// { +// "country": "中南美", +// "date": 1996, +// "value": 425.8 +// }, +// { +// "country": "中南美", +// "date": 1997, +// "value": 448.2 +// }, +// { +// "country": "中南美", +// "date": 1998, +// "value": 465.5 +// }, +// { +// "country": "中南美", +// "date": 1999, +// "value": 463.7 +// }, +// { +// "country": "中南美", +// "date": 2000, +// "value": 476.1 +// }, +// { +// "country": "中南美", +// "date": 2001, +// "value": 477.7 +// }, +// { +// "country": "中南美", +// "date": 2002, +// "value": 483.5 +// }, +// { +// "country": "中南美", +// "date": 2003, +// "value": 489.3 +// }, +// { +// "country": "中南美", +// "date": 2004, +// "value": 515.5 +// }, +// { +// "country": "中南美", +// "date": 2005, +// "value": 533.6 +// }, +// { +// "country": "中南美", +// "date": 2006, +// "value": 564 +// }, +// { +// "country": "中南美", +// "date": 2007, +// "value": 587 +// }, +// { +// "country": "中南美", +// "date": 2008, +// "value": 605.8 +// }, +// { +// "country": "中南美", +// "date": 2009, +// "value": 596.8 +// }, +// { +// "country": "中南美", +// "date": 2010, +// "value": 632.5 +// }, +// { +// "country": "中南美", +// "date": 2011, +// "value": 658.9 +// }, +// { +// "country": "中南美", +// "date": 2012, +// "value": 676.5 +// }, +// { +// "country": "中南美", +// "date": 2013, +// "value": 692 +// }, +// { +// "country": "中南美", +// "date": 2014, +// "value": 697.7 +// }, +// { +// "country": "中南美", +// "date": 2015, +// "value": 701.1 +// }, +// { +// "country": "中南美", +// "date": 2016, +// "value": 696.8 +// }, +// { +// "country": "中南美", +// "date": 2017, +// "value": 700.6 +// }, +// { +// "country": "欧洲", +// "date": 1965, +// "value": 1058.1 +// }, +// { +// "country": "欧洲", +// "date": 1966, +// "value": 1089.7 +// }, +// { +// "country": "欧洲", +// "date": 1967, +// "value": 1121.7 +// }, +// { +// "country": "欧洲", +// "date": 1968, +// "value": 1196.6 +// }, +// { +// "country": "欧洲", +// "date": 1969, +// "value": 1285.5 +// }, +// { +// "country": "欧洲", +// "date": 1970, +// "value": 1369 +// }, +// { +// "country": "欧洲", +// "date": 1971, +// "value": 1406.2 +// }, +// { +// "country": "欧洲", +// "date": 1972, +// "value": 1472.7 +// }, +// { +// "country": "欧洲", +// "date": 1973, +// "value": 1558 +// }, +// { +// "country": "欧洲", +// "date": 1974, +// "value": 1535.5 +// }, +// { +// "country": "欧洲", +// "date": 1975, +// "value": 1519.3 +// }, +// { +// "country": "欧洲", +// "date": 1976, +// "value": 1606.9 +// }, +// { +// "country": "欧洲", +// "date": 1977, +// "value": 1632.4 +// }, +// { +// "country": "欧洲", +// "date": 1978, +// "value": 1687.5 +// }, +// { +// "country": "欧洲", +// "date": 1979, +// "value": 1749.6 +// }, +// { +// "country": "欧洲", +// "date": 1980, +// "value": 1706.4 +// }, +// { +// "country": "欧洲", +// "date": 1981, +// "value": 1661.4 +// }, +// { +// "country": "欧洲", +// "date": 1982, +// "value": 1630.2 +// }, +// { +// "country": "欧洲", +// "date": 1983, +// "value": 1645.2 +// }, +// { +// "country": "欧洲", +// "date": 1984, +// "value": 1686.9 +// }, +// { +// "country": "欧洲", +// "date": 1985, +// "value": 1779.4 +// }, +// { +// "country": "欧洲", +// "date": 1986, +// "value": 1811.3 +// }, +// { +// "country": "欧洲", +// "date": 1987, +// "value": 1849.7 +// }, +// { +// "country": "欧洲", +// "date": 1988, +// "value": 1870 +// }, +// { +// "country": "欧洲", +// "date": 1989, +// "value": 1875 +// }, +// { +// "country": "欧洲", +// "date": 1990, +// "value": 1853.3 +// }, +// { +// "country": "欧洲", +// "date": 1991, +// "value": 1844.6 +// }, +// { +// "country": "欧洲", +// "date": 1992, +// "value": 1814.1 +// }, +// { +// "country": "欧洲", +// "date": 1993, +// "value": 1805.3 +// }, +// { +// "country": "欧洲", +// "date": 1994, +// "value": 1791.3 +// }, +// { +// "country": "欧洲", +// "date": 1995, +// "value": 1836.2 +// }, +// { +// "country": "欧洲", +// "date": 1996, +// "value": 1896.1 +// }, +// { +// "country": "欧洲", +// "date": 1997, +// "value": 1896.4 +// }, +// { +// "country": "欧洲", +// "date": 1998, +// "value": 1918.8 +// }, +// { +// "country": "欧洲", +// "date": 1999, +// "value": 1907.7 +// }, +// { +// "country": "欧洲", +// "date": 2000, +// "value": 1932.1 +// }, +// { +// "country": "欧洲", +// "date": 2001, +// "value": 1959.2 +// }, +// { +// "country": "欧洲", +// "date": 2002, +// "value": 1954.8 +// }, +// { +// "country": "欧洲", +// "date": 2003, +// "value": 1991.6 +// }, +// { +// "country": "欧洲", +// "date": 2004, +// "value": 2025.4 +// }, +// { +// "country": "欧洲", +// "date": 2005, +// "value": 2037.4 +// }, +// { +// "country": "欧洲", +// "date": 2006, +// "value": 2056.4 +// }, +// { +// "country": "欧洲", +// "date": 2007, +// "value": 2041.7 +// }, +// { +// "country": "欧洲", +// "date": 2008, +// "value": 2038.5 +// }, +// { +// "country": "欧洲", +// "date": 2009, +// "value": 1932.1 +// }, +// { +// "country": "欧洲", +// "date": 2010, +// "value": 2001.1 +// }, +// { +// "country": "欧洲", +// "date": 2011, +// "value": 1949.1 +// }, +// { +// "country": "欧洲", +// "date": 2012, +// "value": 1944.3 +// }, +// { +// "country": "欧洲", +// "date": 2013, +// "value": 1934 +// }, +// { +// "country": "欧洲", +// "date": 2014, +// "value": 1871.2 +// }, +// { +// "country": "欧洲", +// "date": 2015, +// "value": 1908.7 +// }, +// { +// "country": "欧洲", +// "date": 2016, +// "value": 1934.6 +// }, +// { +// "country": "欧洲", +// "date": 2017, +// "value": 1969.5 +// }, +// { +// "country": "CIS 地区", +// "date": 1965, +// "value": 593.3 +// }, +// { +// "country": "CIS 地区", +// "date": 1966, +// "value": 630.9 +// }, +// { +// "country": "CIS 地区", +// "date": 1967, +// "value": 663.2 +// }, +// { +// "country": "CIS 地区", +// "date": 1968, +// "value": 687.8 +// }, +// { +// "country": "CIS 地区", +// "date": 1969, +// "value": 719 +// }, +// { +// "country": "CIS 地区", +// "date": 1970, +// "value": 754.8 +// }, +// { +// "country": "CIS 地区", +// "date": 1971, +// "value": 791.9 +// }, +// { +// "country": "CIS 地区", +// "date": 1972, +// "value": 832.3 +// }, +// { +// "country": "CIS 地区", +// "date": 1973, +// "value": 875.1 +// }, +// { +// "country": "CIS 地区", +// "date": 1974, +// "value": 923.3 +// }, +// { +// "country": "CIS 地区", +// "date": 1975, +// "value": 969 +// }, +// { +// "country": "CIS 地区", +// "date": 1976, +// "value": 1006.5 +// }, +// { +// "country": "CIS 地区", +// "date": 1977, +// "value": 1051.4 +// }, +// { +// "country": "CIS 地区", +// "date": 1978, +// "value": 1094.2 +// }, +// { +// "country": "CIS 地区", +// "date": 1979, +// "value": 1127.1 +// }, +// { +// "country": "CIS 地区", +// "date": 1980, +// "value": 1150.1 +// }, +// { +// "country": "CIS 地区", +// "date": 1981, +// "value": 1174.5 +// }, +// { +// "country": "CIS 地区", +// "date": 1982, +// "value": 1204 +// }, +// { +// "country": "CIS 地区", +// "date": 1983, +// "value": 1229 +// }, +// { +// "country": "CIS 地区", +// "date": 1984, +// "value": 1274.6 +// }, +// { +// "country": "CIS 地区", +// "date": 1985, +// "value": 1257 +// }, +// { +// "country": "CIS 地区", +// "date": 1986, +// "value": 1282 +// }, +// { +// "country": "CIS 地区", +// "date": 1987, +// "value": 1318 +// }, +// { +// "country": "CIS 地区", +// "date": 1988, +// "value": 1341.5 +// }, +// { +// "country": "CIS 地区", +// "date": 1989, +// "value": 1332.5 +// }, +// { +// "country": "CIS 地区", +// "date": 1990, +// "value": 1350.3 +// }, +// { +// "country": "CIS 地区", +// "date": 1991, +// "value": 1308.9 +// }, +// { +// "country": "CIS 地区", +// "date": 1992, +// "value": 1233.1 +// }, +// { +// "country": "CIS 地区", +// "date": 1993, +// "value": 1121 +// }, +// { +// "country": "CIS 地区", +// "date": 1994, +// "value": 1012.2 +// }, +// { +// "country": "CIS 地区", +// "date": 1995, +// "value": 951.2 +// }, +// { +// "country": "CIS 地区", +// "date": 1996, +// "value": 920 +// }, +// { +// "country": "CIS 地区", +// "date": 1997, +// "value": 878.4 +// }, +// { +// "country": "CIS 地区", +// "date": 1998, +// "value": 871.7 +// }, +// { +// "country": "CIS 地区", +// "date": 1999, +// "value": 881.3 +// }, +// { +// "country": "CIS 地区", +// "date": 2000, +// "value": 888.5 +// }, +// { +// "country": "CIS 地区", +// "date": 2001, +// "value": 905.5 +// }, +// { +// "country": "CIS 地区", +// "date": 2002, +// "value": 904 +// }, +// { +// "country": "CIS 地区", +// "date": 2003, +// "value": 924.3 +// }, +// { +// "country": "CIS 地区", +// "date": 2004, +// "value": 938.7 +// }, +// { +// "country": "CIS 地区", +// "date": 2005, +// "value": 942.3 +// }, +// { +// "country": "CIS 地区", +// "date": 2006, +// "value": 978.6 +// }, +// { +// "country": "CIS 地区", +// "date": 2007, +// "value": 989.8 +// }, +// { +// "country": "CIS 地区", +// "date": 2008, +// "value": 998.1 +// }, +// { +// "country": "CIS 地区", +// "date": 2009, +// "value": 926.8 +// }, +// { +// "country": "CIS 地区", +// "date": 2010, +// "value": 967.8 +// }, +// { +// "country": "CIS 地区", +// "date": 2011, +// "value": 1006 +// }, +// { +// "country": "CIS 地区", +// "date": 2012, +// "value": 1014.1 +// }, +// { +// "country": "CIS 地区", +// "date": 2013, +// "value": 989.2 +// }, +// { +// "country": "CIS 地区", +// "date": 2014, +// "value": 987 +// }, +// { +// "country": "CIS 地区", +// "date": 2015, +// "value": 960.7 +// }, +// { +// "country": "CIS 地区", +// "date": 2016, +// "value": 972 +// }, +// { +// "country": "CIS 地区", +// "date": 2017, +// "value": 978 +// }, +// { +// "country": "中东", +// "date": 1965, +// "value": 48.3 +// }, +// { +// "country": "中东", +// "date": 1966, +// "value": 50.4 +// }, +// { +// "country": "中东", +// "date": 1967, +// "value": 52.7 +// }, +// { +// "country": "中东", +// "date": 1968, +// "value": 55.6 +// }, +// { +// "country": "中东", +// "date": 1969, +// "value": 58.5 +// }, +// { +// "country": "中东", +// "date": 1970, +// "value": 61.5 +// }, +// { +// "country": "中东", +// "date": 1971, +// "value": 64.9 +// }, +// { +// "country": "中东", +// "date": 1972, +// "value": 70.6 +// }, +// { +// "country": "中东", +// "date": 1973, +// "value": 77.4 +// }, +// { +// "country": "中东", +// "date": 1974, +// "value": 82.3 +// }, +// { +// "country": "中东", +// "date": 1975, +// "value": 82.1 +// }, +// { +// "country": "中东", +// "date": 1976, +// "value": 93 +// }, +// { +// "country": "中东", +// "date": 1977, +// "value": 105.7 +// }, +// { +// "country": "中东", +// "date": 1978, +// "value": 111 +// }, +// { +// "country": "中东", +// "date": 1979, +// "value": 130.5 +// }, +// { +// "country": "中东", +// "date": 1980, +// "value": 126.5 +// }, +// { +// "country": "中东", +// "date": 1981, +// "value": 137.9 +// }, +// { +// "country": "中东", +// "date": 1982, +// "value": 152.8 +// }, +// { +// "country": "中东", +// "date": 1983, +// "value": 167.1 +// }, +// { +// "country": "中东", +// "date": 1984, +// "value": 188.9 +// }, +// { +// "country": "中东", +// "date": 1985, +// "value": 200.8 +// }, +// { +// "country": "中东", +// "date": 1986, +// "value": 209.8 +// }, +// { +// "country": "中东", +// "date": 1987, +// "value": 224.5 +// }, +// { +// "country": "中东", +// "date": 1988, +// "value": 238.5 +// }, +// { +// "country": "中东", +// "date": 1989, +// "value": 251.5 +// }, +// { +// "country": "中东", +// "date": 1990, +// "value": 260 +// }, +// { +// "country": "中东", +// "date": 1991, +// "value": 271.7 +// }, +// { +// "country": "中东", +// "date": 1992, +// "value": 296.4 +// }, +// { +// "country": "中东", +// "date": 1993, +// "value": 304.7 +// }, +// { +// "country": "中东", +// "date": 1994, +// "value": 340.3 +// }, +// { +// "country": "中东", +// "date": 1995, +// "value": 352.4 +// }, +// { +// "country": "中东", +// "date": 1996, +// "value": 363.9 +// }, +// { +// "country": "中东", +// "date": 1997, +// "value": 381.3 +// }, +// { +// "country": "中东", +// "date": 1998, +// "value": 387.7 +// }, +// { +// "country": "中东", +// "date": 1999, +// "value": 395 +// }, +// { +// "country": "中东", +// "date": 2000, +// "value": 414.9 +// }, +// { +// "country": "中东", +// "date": 2001, +// "value": 435.6 +// }, +// { +// "country": "中东", +// "date": 2002, +// "value": 459.4 +// }, +// { +// "country": "中东", +// "date": 2003, +// "value": 479.3 +// }, +// { +// "country": "中东", +// "date": 2004, +// "value": 517.1 +// }, +// { +// "country": "中东", +// "date": 2005, +// "value": 553.7 +// }, +// { +// "country": "中东", +// "date": 2006, +// "value": 582.6 +// }, +// { +// "country": "中东", +// "date": 2007, +// "value": 618.2 +// }, +// { +// "country": "中东", +// "date": 2008, +// "value": 657.1 +// }, +// { +// "country": "中东", +// "date": 2009, +// "value": 677.2 +// }, +// { +// "country": "中东", +// "date": 2010, +// "value": 714.3 +// }, +// { +// "country": "中东", +// "date": 2011, +// "value": 740.9 +// }, +// { +// "country": "中东", +// "date": 2012, +// "value": 771.1 +// }, +// { +// "country": "中东", +// "date": 2013, +// "value": 795.3 +// }, +// { +// "country": "中东", +// "date": 2014, +// "value": 823.1 +// }, +// { +// "country": "中东", +// "date": 2015, +// "value": 848.3 +// }, +// { +// "country": "中东", +// "date": 2016, +// "value": 869.7 +// }, +// { +// "country": "中东", +// "date": 2017, +// "value": 897.2 +// }, +// { +// "country": "非洲", +// "date": 1965, +// "value": 60.6 +// }, +// { +// "country": "非洲", +// "date": 1966, +// "value": 63.3 +// }, +// { +// "country": "非洲", +// "date": 1967, +// "value": 64 +// }, +// { +// "country": "非洲", +// "date": 1968, +// "value": 67.4 +// }, +// { +// "country": "非洲", +// "date": 1969, +// "value": 68.9 +// }, +// { +// "country": "非洲", +// "date": 1970, +// "value": 74.7 +// }, +// { +// "country": "非洲", +// "date": 1971, +// "value": 81.2 +// }, +// { +// "country": "非洲", +// "date": 1972, +// "value": 86.3 +// }, +// { +// "country": "非洲", +// "date": 1973, +// "value": 92.9 +// }, +// { +// "country": "非洲", +// "date": 1974, +// "value": 97.6 +// }, +// { +// "country": "非洲", +// "date": 1975, +// "value": 103.3 +// }, +// { +// "country": "非洲", +// "date": 1976, +// "value": 112.4 +// }, +// { +// "country": "非洲", +// "date": 1977, +// "value": 118.4 +// }, +// { +// "country": "非洲", +// "date": 1978, +// "value": 123.1 +// }, +// { +// "country": "非洲", +// "date": 1979, +// "value": 134.4 +// }, +// { +// "country": "非洲", +// "date": 1980, +// "value": 144.8 +// }, +// { +// "country": "非洲", +// "date": 1981, +// "value": 161.5 +// }, +// { +// "country": "非洲", +// "date": 1982, +// "value": 172.7 +// }, +// { +// "country": "非洲", +// "date": 1983, +// "value": 177.5 +// }, +// { +// "country": "非洲", +// "date": 1984, +// "value": 183.7 +// }, +// { +// "country": "非洲", +// "date": 1985, +// "value": 190.7 +// }, +// { +// "country": "非洲", +// "date": 1986, +// "value": 195.1 +// }, +// { +// "country": "非洲", +// "date": 1987, +// "value": 201.2 +// }, +// { +// "country": "非洲", +// "date": 1988, +// "value": 215.7 +// }, +// { +// "country": "非洲", +// "date": 1989, +// "value": 216.3 +// }, +// { +// "country": "非洲", +// "date": 1990, +// "value": 223.3 +// }, +// { +// "country": "非洲", +// "date": 1991, +// "value": 223 +// }, +// { +// "country": "非洲", +// "date": 1992, +// "value": 226.3 +// }, +// { +// "country": "非洲", +// "date": 1993, +// "value": 227.2 +// }, +// { +// "country": "非洲", +// "date": 1994, +// "value": 233.9 +// }, +// { +// "country": "非洲", +// "date": 1995, +// "value": 243.4 +// }, +// { +// "country": "非洲", +// "date": 1996, +// "value": 250.1 +// }, +// { +// "country": "非洲", +// "date": 1997, +// "value": 255.1 +// }, +// { +// "country": "非洲", +// "date": 1998, +// "value": 259.1 +// }, +// { +// "country": "非洲", +// "date": 1999, +// "value": 267.2 +// }, +// { +// "country": "非洲", +// "date": 2000, +// "value": 273.4 +// }, +// { +// "country": "非洲", +// "date": 2001, +// "value": 283.8 +// }, +// { +// "country": "非洲", +// "date": 2002, +// "value": 287.1 +// }, +// { +// "country": "非洲", +// "date": 2003, +// "value": 300.6 +// }, +// { +// "country": "非洲", +// "date": 2004, +// "value": 323.2 +// }, +// { +// "country": "非洲", +// "date": 2005, +// "value": 326.5 +// }, +// { +// "country": "非洲", +// "date": 2006, +// "value": 332.8 +// }, +// { +// "country": "非洲", +// "date": 2007, +// "value": 346.9 +// }, +// { +// "country": "非洲", +// "date": 2008, +// "value": 368.7 +// }, +// { +// "country": "非洲", +// "date": 2009, +// "value": 373.4 +// }, +// { +// "country": "非洲", +// "date": 2010, +// "value": 386.9 +// }, +// { +// "country": "非洲", +// "date": 2011, +// "value": 385.6 +// }, +// { +// "country": "非洲", +// "date": 2012, +// "value": 399.8 +// }, +// { +// "country": "非洲", +// "date": 2013, +// "value": 410.6 +// }, +// { +// "country": "非洲", +// "date": 2014, +// "value": 425.1 +// }, +// { +// "country": "非洲", +// "date": 2015, +// "value": 429.4 +// }, +// { +// "country": "非洲", +// "date": 2016, +// "value": 438 +// }, +// { +// "country": "非洲", +// "date": 2017, +// "value": 449.5 +// }, +// { +// "country": "亚太地区", +// "date": 1965, +// "value": 441.6 +// }, +// { +// "country": "亚太地区", +// "date": 1966, +// "value": 482.9 +// }, +// { +// "country": "亚太地区", +// "date": 1967, +// "value": 506.1 +// }, +// { +// "country": "亚太地区", +// "date": 1968, +// "value": 544.1 +// }, +// { +// "country": "亚太地区", +// "date": 1969, +// "value": 619.8 +// }, +// { +// "country": "亚太地区", +// "date": 1970, +// "value": 704.9 +// }, +// { +// "country": "亚太地区", +// "date": 1971, +// "value": 771.4 +// }, +// { +// "country": "亚太地区", +// "date": 1972, +// "value": 817.9 +// }, +// { +// "country": "亚太地区", +// "date": 1973, +// "value": 885.1 +// }, +// { +// "country": "亚太地区", +// "date": 1974, +// "value": 902.2 +// }, +// { +// "country": "亚太地区", +// "date": 1975, +// "value": 936.1 +// }, +// { +// "country": "亚太地区", +// "date": 1976, +// "value": 983.2 +// }, +// { +// "country": "亚太地区", +// "date": 1977, +// "value": 1037.3 +// }, +// { +// "country": "亚太地区", +// "date": 1978, +// "value": 1106.2 +// }, +// { +// "country": "亚太地区", +// "date": 1979, +// "value": 1157.6 +// }, +// { +// "country": "亚太地区", +// "date": 1980, +// "value": 1168 +// }, +// { +// "country": "亚太地区", +// "date": 1981, +// "value": 1175 +// }, +// { +// "country": "亚太地区", +// "date": 1982, +// "value": 1186.8 +// }, +// { +// "country": "亚太地区", +// "date": 1983, +// "value": 1240.7 +// }, +// { +// "country": "亚太地区", +// "date": 1984, +// "value": 1326.7 +// }, +// { +// "country": "亚太地区", +// "date": 1985, +// "value": 1395.9 +// }, +// { +// "country": "亚太地区", +// "date": 1986, +// "value": 1456.5 +// }, +// { +// "country": "亚太地区", +// "date": 1987, +// "value": 1538 +// }, +// { +// "country": "亚太地区", +// "date": 1988, +// "value": 1650.5 +// }, +// { +// "country": "亚太地区", +// "date": 1989, +// "value": 1740.4 +// }, +// { +// "country": "亚太地区", +// "date": 1990, +// "value": 1812.8 +// }, +// { +// "country": "亚太地区", +// "date": 1991, +// "value": 1896.9 +// }, +// { +// "country": "亚太地区", +// "date": 1992, +// "value": 1984.5 +// }, +// { +// "country": "亚太地区", +// "date": 1993, +// "value": 2088.9 +// }, +// { +// "country": "亚太地区", +// "date": 1994, +// "value": 2204.3 +// }, +// { +// "country": "亚太地区", +// "date": 1995, +// "value": 2306.8 +// }, +// { +// "country": "亚太地区", +// "date": 1996, +// "value": 2413.2 +// }, +// { +// "country": "亚太地区", +// "date": 1997, +// "value": 2487 +// }, +// { +// "country": "亚太地区", +// "date": 1998, +// "value": 2481 +// }, +// { +// "country": "亚太地区", +// "date": 1999, +// "value": 2577.9 +// }, +// { +// "country": "亚太地区", +// "date": 2000, +// "value": 2671.9 +// }, +// { +// "country": "亚太地区", +// "date": 2001, +// "value": 2759.7 +// }, +// { +// "country": "亚太地区", +// "date": 2002, +// "value": 2901.2 +// }, +// { +// "country": "亚太地区", +// "date": 2003, +// "value": 3145.5 +// }, +// { +// "country": "亚太地区", +// "date": 2004, +// "value": 3445.8 +// }, +// { +// "country": "亚太地区", +// "date": 2005, +// "value": 3724.3 +// }, +// { +// "country": "亚太地区", +// "date": 2006, +// "value": 3944 +// }, +// { +// "country": "亚太地区", +// "date": 2007, +// "value": 4195.2 +// }, +// { +// "country": "亚太地区", +// "date": 2008, +// "value": 4310.8 +// }, +// { +// "country": "亚太地区", +// "date": 2009, +// "value": 4411.1 +// }, +// { +// "country": "亚太地区", +// "date": 2010, +// "value": 4696.1 +// }, +// { +// "country": "亚太地区", +// "date": 2011, +// "value": 4951.1 +// }, +// { +// "country": "亚太地区", +// "date": 2012, +// "value": 5118.2 +// }, +// { +// "country": "亚太地区", +// "date": 2013, +// "value": 5269.9 +// }, +// { +// "country": "亚太地区", +// "date": 2014, +// "value": 5382.9 +// }, +// { +// "country": "亚太地区", +// "date": 2015, +// "value": 5472.4 +// }, +// { +// "country": "亚太地区", +// "date": 2016, +// "value": 5585.5 +// }, +// { +// "country": "亚太地区", +// "date": 2017, +// "value": 5743.6 +// } +// ] + +const PopulationAnalysisPanel = () => { + // const [populationData, setPopulationData] = useState([]) + const [totalPopulationData, setTotalPopulationData] = useState<{ xValue: number; yValue: number; category: string; }[]>([]) + const [newBirthData, setNewBirthData] = useState<{ xValue: number; yValue: number; category: string; }[]>([]) + const [totalMigrationData, setTotalMigrationData] = useState<{ xValue: number; yValue: number; category: string; }[]>([]) + const [newMigrationData, setNewMigrationData] = useState<{ xValue: number; yValue: number; category: string; }[]>([]) + const [data, setData] = useState<{ xValue: number; yValue: number; category: string; }[]>([]) + const { displayOptions } = useContext(DataDisplayContext) + + useEffect(() => { + fetchPopulationData() + .then(JSONData => { + // setPopulationData(JSONData) + // console.log('test1=>') + const total_newBirth_data = JSONData.filter((jd: { name: string; }) => jd.name === 'total_population')[0].details + setTotalPopulationData( + Object.keys(total_newBirth_data).filter((key: any) => key.split('-').length === 1).map((total_popu_key: string) => ({ + xValue: parseInt(total_popu_key), + yValue: total_newBirth_data[total_popu_key], + category: 'total_population' + })) + ) + // console.log('test1=>') + // console.log(Object.keys(total_newBirth_data).filter((key: any) => key.split('-').length === 1).map((total_popu_key: string) => ({ + // xValue: parseInt(total_popu_key), + // yValue: total_newBirth_data[total_popu_key], + // category: 'total_population' + // }))) + setNewBirthData( + Object.keys(total_newBirth_data).filter((key: any) => key.split('-').length !== 1).map((total_popu_key: string) => ({ + xValue: parseInt(total_popu_key.split('-')[0]), + yValue: total_newBirth_data[total_popu_key], + category: 'new_birth_population' + })) + ) + setNewMigrationData( + Object.entries(JSONData.filter((jd: { name: string; }) => jd.name === 'migration')[0].details).map(keyValue => ({ + xValue: parseInt(keyValue[0]), + yValue: keyValue[1] as number, + category: 'new_migration' + })) + ) + setTotalMigrationData( + Object.entries(JSONData.filter((jd: { name: string; }) => jd.name === 'population')[0].details).map(keyValue => ({ + xValue: parseInt(keyValue[0]), + yValue: keyValue[1] as number, + category: 'total_migration' + })) + ) + }) + .catch(e => { + console.log('Error when fetching population data') + console.log(e) + }) + }, []) + + useEffect(() => { + let updatedDisplayDataset: any[] = [] + + if (displayOptions.includes(Population_Panel_Options.TOTAL_POPULATION)) { + updatedDisplayDataset = [...updatedDisplayDataset, totalPopulationData] + } + if (displayOptions.includes(Population_Panel_Options.NEW_MIGRATION)) { + updatedDisplayDataset = [...updatedDisplayDataset, newMigrationData] + } + if (displayOptions.includes(Population_Panel_Options.NEW_BIRTH)) { + updatedDisplayDataset = [...updatedDisplayDataset, newBirthData] + } + if (displayOptions.includes(Population_Panel_Options.MIGRATION_POPULATION)) { + updatedDisplayDataset = [...updatedDisplayDataset, totalMigrationData] + } + setData(updatedDisplayDataset.flat()) + }, [displayOptions, totalMigrationData, totalPopulationData, newBirthData, newMigrationData]) + + useEffect(() => { + // if(data.length > 0) { + const area = new Area(`container`, { + data, + xField: 'xValue', + yField: 'yValue', + seriesField: 'category', + }); + area.render(); + return () => { + area.destroy() + } + // } + }, [data]) + + return ( +
+
+
+ ) +} + +export default PopulationAnalysisPanel; \ No newline at end of file diff --git a/frontend/src/components/slider/slider.tsx b/frontend/src/components/slider/slider.tsx new file mode 100644 index 0000000..4a0a036 --- /dev/null +++ b/frontend/src/components/slider/slider.tsx @@ -0,0 +1,40 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Slider from '@mui/material/Slider'; + +const minDistance = 0.01; + +const SliderComponent = () => { + const [value1, setValue1] = React.useState([20, 37]); + + const handleChange1 = ( + event: Event, + newValue: number | number[], + activeThumb: number, + ) => { + if (!Array.isArray(newValue)) { + return; + } + + if (activeThumb === 0) { + setValue1([Math.min(newValue[0], value1[1] - minDistance), value1[1]]); + } else { + setValue1([value1[0], Math.max(newValue[1], value1[0] + minDistance)]); + } + }; + + return ( + + 'Minimum distance'} + value={value1} + onChange={handleChange1} + valueLabelDisplay="auto" + // getAriaValueText={valuetext} + disableSwap + /> + + ); +} + +export default SliderComponent \ No newline at end of file diff --git a/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx b/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx new file mode 100644 index 0000000..775b548 --- /dev/null +++ b/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx @@ -0,0 +1,50 @@ +import React from "react"; + +import Box from "@mui/material/Box"; +import { DataDisplayContext } from "../../App"; +import Stack from "@mui/material/Stack"; +import { Button, Step, StepContent, StepLabel, Typography } from "@mui/material"; +import LooksTwoIcon from '@mui/icons-material/LooksTwo'; +import Looks3Icon from '@mui/icons-material/Looks3'; +import SliderComponent from "../slider/slider"; + +const Top10LanguageAnalysisOptionsPanel = () => { + return ( + <> + + + + + + Choose the time range + + + + + + + + + + + + + + + LoadData + + + + + + + + + + + ) +} + +export default Top10LanguageAnalysisOptionsPanel \ No newline at end of file diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index 032464f..23562d1 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -3,13 +3,16 @@ import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; +import { BrowserRouter } from 'react-router-dom'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement ); root.render( - + + + ); diff --git a/frontend/src/meta-data/index.ts b/frontend/src/meta-data/index.ts new file mode 100644 index 0000000..e8bbdb0 --- /dev/null +++ b/frontend/src/meta-data/index.ts @@ -0,0 +1,15 @@ +export enum Panels{ + POPULATION_PANEL, +} + +export enum Scenarios { + POPULATION_ANALYSIS = 'Population Analysis', + TOP_10_LANGUAGE_ANALYSIS = 'Top 10 Languages Analysis' +} + +export enum Population_Panel_Options { + TOTAL_POPULATION = 'total_population', + MIGRATION_POPULATION = 'migration_population', + NEW_MIGRATION = 'new_migration', + NEW_BIRTH = 'new_birth' +} \ No newline at end of file diff --git a/frontend/src/page/data-panal-page.tsx b/frontend/src/page/data-panal-page.tsx new file mode 100644 index 0000000..7eee230 --- /dev/null +++ b/frontend/src/page/data-panal-page.tsx @@ -0,0 +1,28 @@ +import Container from "@mui/material/Container"; +import React, { useContext, useMemo } from "react"; +import { DataDisplayContext } from "../App"; +import LeftDrawer from "../components/left-drawer/left-drawer"; +import PopulationAnalysisPanel from "../components/population-analysis-panel/population-analysis-panel"; +import { Scenarios } from "../meta-data"; + +const DataPanelPage = () => { + const { selectedScenario } = useContext(DataDisplayContext) + const dataPanel = useMemo(() => { + switch(selectedScenario) { + case Scenarios.POPULATION_ANALYSIS: + return + } + }, [selectedScenario]) + + + return ( +
+ + + { dataPanel } + +
+ ) +} + +export default DataPanelPage \ No newline at end of file diff --git a/frontend/src/services/services.ts b/frontend/src/services/services.ts new file mode 100644 index 0000000..8b78a6c --- /dev/null +++ b/frontend/src/services/services.ts @@ -0,0 +1,7 @@ +export const fetchPopulationData = () => { + return fetch('http://localhost:5000/api/scenario/languages', {mode: 'cors'}) + .then(async (data) => { + const JSONData = await data.json() + return JSONData + }) +} \ No newline at end of file From 70b692848ffc004fd7d8333bbf93b116edf31305 Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Wed, 11 May 2022 22:39:01 +1000 Subject: [PATCH 2/8] fix: backend update --- backend/config/app_config.yaml | 7 ------- .../top10language-analysis-panel.tsx | 13 +++++++++++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/backend/config/app_config.yaml b/backend/config/app_config.yaml index 51546f7..526b8ee 100644 --- a/backend/config/app_config.yaml +++ b/backend/config/app_config.yaml @@ -10,12 +10,6 @@ app: # - 127.0.0.1 # MRC cluster - 172.26.128.63 -<<<<<<< HEAD - # - 172.26.134.211 - # - 172.26.133.48 - master-node: - - 172.26.128.254 -======= - 172.26.129.177 - 172.26.134.100 master-node: 172.26.128.63 @@ -23,6 +17,5 @@ app: covid-db: covid_search_tweet_mentioned_melb_db lockdown-db: covid_search_tweet_melb_jul_to_sep_2020_db stream-db: stream_debug_db ->>>>>>> 62d84b02069af2ff9b6a248844ff1ee45b013c8e diff --git a/frontend/src/components/top10language-analysis-panel/top10language-analysis-panel.tsx b/frontend/src/components/top10language-analysis-panel/top10language-analysis-panel.tsx index ce074cd..c976874 100644 --- a/frontend/src/components/top10language-analysis-panel/top10language-analysis-panel.tsx +++ b/frontend/src/components/top10language-analysis-panel/top10language-analysis-panel.tsx @@ -26,12 +26,21 @@ const Top10LanguageAnalysisPanel = ({ languageCountData }: Top10LanguageAnalysis } }) }) - setDisplayData(Object.keys(resultData).map(keyd => { + const d = Object.keys(resultData).map(keyd => { return { xValue: keyd, yValue: resultData[keyd] } - }).slice(0, 11)) + }).sort((a, b) => { + if (a.yValue > b.yValue) { + return -1 + } + else if(a.yValue < b.yValue) { + return 1 + } + return 0 + }) + setDisplayData(d.slice(0, 11)) }, [displayOptions, languageCountData]) From 7a17309b496a2ec591a8640043b5473936aaaf8d Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Thu, 12 May 2022 12:05:32 +1000 Subject: [PATCH 3/8] feat: finish lockdown analysis panel --- frontend/package-lock.json | 15 +- frontend/package.json | 2 + .../components/left-drawer/left-drawer.tsx | 3 + ...ckdown-influence-analysis-option-panel.tsx | 36 +++ .../lockdown-influence-analysis-panel.tsx | 244 ++++++++++++++++++ frontend/src/meta-data/index.ts | 3 +- frontend/src/page/data-panal-page.tsx | 3 + frontend/src/services/services.ts | 8 + 8 files changed, 302 insertions(+), 12 deletions(-) create mode 100644 frontend/src/components/lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel.tsx create mode 100644 frontend/src/components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel.tsx diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 02bff4a..b66d657 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -6916,14 +6916,12 @@ } }, "falafel": { - "version": "2.2.4", - "resolved": "https://registry.npmmirror.com/falafel/-/falafel-2.2.4.tgz", - "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", "requires": { "acorn": "^7.1.1", - "foreach": "^2.0.5", - "isarray": "^2.0.1", - "object-keys": "^1.0.6" + "isarray": "^2.0.1" }, "dependencies": { "acorn": { @@ -7225,11 +7223,6 @@ "is-callable": "^1.1.3" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA==" - }, "fork-ts-checker-webpack-plugin": { "version": "6.5.2", "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index 7111485..ab19870 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,6 +5,8 @@ "dependencies": { "@ant-design/charts": "^1.3.6", "@antv/g2plot": "^2.4.16", + "@antv/l7": "^2.8.35", + "@antv/l7-maps": "^2.8.35", "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", "@mui/icons-material": "^5.6.2", diff --git a/frontend/src/components/left-drawer/left-drawer.tsx b/frontend/src/components/left-drawer/left-drawer.tsx index 978d1c4..37394d8 100644 --- a/frontend/src/components/left-drawer/left-drawer.tsx +++ b/frontend/src/components/left-drawer/left-drawer.tsx @@ -14,6 +14,7 @@ import LooksTwoIcon from '@mui/icons-material/LooksTwo'; import PopulationAnalysisOptionPanel from "../population-analysis-option-panel/population-analysis-option-panel"; import Looks3Icon from '@mui/icons-material/Looks3'; import Top10LanguageAnalysisOptionsPanel from "../top10language-analysis-options-panel/top10language-analysis-options-panel"; +import LockdownInfluenceAnalysisOptionPanel from "../lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel"; const LeftDrawer = () => { const { openOptionsDrawer, setOpenOptionsDrawer, selectedScenario, setScenario } = useContext(DataDisplayContext) @@ -25,6 +26,8 @@ const LeftDrawer = () => { return case Scenarios.TOP_10_LANGUAGE_ANALYSIS: return + case Scenarios.LOCK_DOWN_INFLUENCE_ANALYSIS: + return } }, [currentSelectedScenario]) diff --git a/frontend/src/components/lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel.tsx b/frontend/src/components/lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel.tsx new file mode 100644 index 0000000..6617705 --- /dev/null +++ b/frontend/src/components/lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel.tsx @@ -0,0 +1,36 @@ +import Stack from "@mui/material/Stack"; +import Step from "@mui/material/Step"; +import StepContent from "@mui/material/StepContent"; +import StepLabel from "@mui/material/StepLabel"; +import Typography from "@mui/material/Typography"; +import LooksTwoIcon from '@mui/icons-material/LooksTwo'; +import React, { useContext } from "react"; +import Button from "@mui/material/Button"; +import { DataDisplayContext } from "../../App"; +import Box from "@mui/material/Box"; + +const LockdownInfluenceAnalysisOptionPanel = () => { + const { setOpenOptionsDrawer } = useContext(DataDisplayContext) + + return ( + + + + + + Options + + + + + + + + + + ) +} + +export default LockdownInfluenceAnalysisOptionPanel \ No newline at end of file diff --git a/frontend/src/components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel.tsx b/frontend/src/components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel.tsx new file mode 100644 index 0000000..cd4f227 --- /dev/null +++ b/frontend/src/components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel.tsx @@ -0,0 +1,244 @@ +import { Console } from "console"; +import React, { useContext, useEffect, useState } from "react"; +import { fetchCovidData } from "../../services/services"; +import { Chart } from '@antv/g2'; +import Stack from "@mui/material/Stack"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Typography from '@mui/material/Typography'; +import { DataDisplayContext } from "../../App"; + + + +const LockdownInfluenceAnalysisPanel = () => { + const { selectedScenario } = useContext(DataDisplayContext) + const [unEmploymentCount, setUnEmploymentCount] = useState([]) + const [unEmploymentRate, setUnEmploymentRate] = useState([]) + const [employmentCount, setEmploymentCount] = useState([]) + const [totalPolarity, setTotalPolarity] = useState([]) + const [lockDownPolarity, setLockDownPolarity] = useState([]) + + useEffect(() => { + fetchCovidData() + .then(JSONData => { + console.log('lock down') + setUnEmploymentCount( + Object.entries(JSONData.filter((jd: {name: string}) => jd.name === "unemployment")[0].details) + .map(keyValue => ({ + xValue: keyValue[0], + yValue: keyValue[1], + })) + ) + setUnEmploymentRate( + Object.entries(JSONData.filter((jd: {name: string}) => jd.name === "unemployment_rate")[0].details) + .map(keyValue => ({ + xValue: keyValue[0], + yValue: keyValue[1], + })) + ) + setEmploymentCount( + Object.entries(JSONData.filter((jd: {name: string}) => jd.name === "employment")[0].details) + .map(keyValue => ({ + xValue: keyValue[0], + yValue: keyValue[1], + })) + ) + setTotalPolarity( + Object.entries(JSONData.filter((jd: {name: string}) => jd.name === "total_polarity")[0].details) + .map(keyValue => ({ + xValue: keyValue[0], + yValue: keyValue[1], + })) + ) + setLockDownPolarity( + Object.entries(JSONData.filter((jd: {name: string}) => jd.name === "lockdowm_polarity")[0].details) + .map(keyValue => ({ + xValue: keyValue[0], + yValue: keyValue[1], + })) + ) + }) + }, []) + + useEffect(() => { + const chart_unemployment = new Chart({ + container: 'container_unemployment', + autoFit: true, + height: 500, + }); + chart_unemployment.data(unEmploymentRate); + chart_unemployment.scale({ + xValue: { + tickCount: 10 + }, + yValue: { + nice: true, + } + }); + chart_unemployment.axis('xValue', { + label: { + formatter: text => text + } + }); + + chart_unemployment.line().position('xValue*yValue'); + chart_unemployment.render(); + return () => {chart_unemployment.destroy()} + }, [unEmploymentCount]) + + useEffect(() => { + const chart_unemployment_rate = new Chart({ + container: 'container_unemployment_rate', + autoFit: true, + height: 500, + }); + chart_unemployment_rate.data(unEmploymentCount); + chart_unemployment_rate.scale({ + xValue: { + tickCount: 10 + }, + yValue: { + nice: true, + } + }); + chart_unemployment_rate.axis('xValue', { + label: { + formatter: text => text + } + }); + + chart_unemployment_rate.line().position('xValue*yValue'); + chart_unemployment_rate.render(); + return () => {chart_unemployment_rate.destroy()} + }, [unEmploymentRate]) + + useEffect(() => { + const chart_unemployment_rate = new Chart({ + container: 'container_employment_count', + autoFit: true, + height: 500, + }); + chart_unemployment_rate.data(employmentCount); + chart_unemployment_rate.scale({ + xValue: { + tickCount: 10 + }, + yValue: { + nice: true, + } + }); + chart_unemployment_rate.axis('xValue', { + label: { + formatter: text => text + } + }); + + chart_unemployment_rate.line().position('xValue*yValue'); + chart_unemployment_rate.render(); + return () => {chart_unemployment_rate.destroy()} + }, [employmentCount]) + + useEffect(() => { + const chart_unemployment_rate = new Chart({ + container: 'container_sentimental_rate', + autoFit: true, + height: 500, + }); + chart_unemployment_rate.data(totalPolarity); + chart_unemployment_rate.scale({ + xValue: { + tickCount: 10 + }, + yValue: { + nice: true, + } + }); + chart_unemployment_rate.axis('xValue', { + label: { + formatter: text => text + } + }); + + chart_unemployment_rate.line().position('xValue*yValue'); + chart_unemployment_rate.render(); + return () => {chart_unemployment_rate.destroy()} + }, [totalPolarity]) + + useEffect(() => { + const chart_unemployment_rate = new Chart({ + container: 'lockdown_date_sentimental_rate', + autoFit: true, + height: 500, + }); + chart_unemployment_rate.data(lockDownPolarity); + chart_unemployment_rate.scale({ + xValue: { + tickCount: 10 + }, + yValue: { + nice: true, + } + }); + chart_unemployment_rate.axis('xValue', { + label: { + formatter: text => text + } + }); + + chart_unemployment_rate.line().position('xValue*yValue'); + chart_unemployment_rate.render(); + return () => {chart_unemployment_rate.destroy()} + }, [lockDownPolarity]) + + return ( + + + + + + Unemployment Rate + +
+
+
+ + + + Unemployment Count + +
+
+
+
+ + + + + Employment Count + +
+
+
+ + + + Sentimental Rate + +
+
+
+
+ + + + + Lockdown Date Sentimental Rate + +
+
+
+
+ ) +} + +export default LockdownInfluenceAnalysisPanel; \ No newline at end of file diff --git a/frontend/src/meta-data/index.ts b/frontend/src/meta-data/index.ts index e8bbdb0..4242bc8 100644 --- a/frontend/src/meta-data/index.ts +++ b/frontend/src/meta-data/index.ts @@ -4,7 +4,8 @@ export enum Panels{ export enum Scenarios { POPULATION_ANALYSIS = 'Population Analysis', - TOP_10_LANGUAGE_ANALYSIS = 'Top 10 Languages Analysis' + TOP_10_LANGUAGE_ANALYSIS = 'Top 10 Languages Analysis', + LOCK_DOWN_INFLUENCE_ANALYSIS = 'Lock down influence analysis' } export enum Population_Panel_Options { diff --git a/frontend/src/page/data-panal-page.tsx b/frontend/src/page/data-panal-page.tsx index c35b25b..f28db41 100644 --- a/frontend/src/page/data-panal-page.tsx +++ b/frontend/src/page/data-panal-page.tsx @@ -2,6 +2,7 @@ import Container from "@mui/material/Container"; import React, { useContext, useEffect, useMemo, useState } from "react"; import { DataDisplayContext } from "../App"; import LeftDrawer from "../components/left-drawer/left-drawer"; +import LockdownInfluenceAnalysisPanel from "../components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel"; import PopulationAnalysisPanel from "../components/population-analysis-panel/population-analysis-panel"; import Top10LanguageAnalysisPanel from "../components/top10language-analysis-panel/top10language-analysis-panel"; import { Scenarios } from "../meta-data"; @@ -16,6 +17,8 @@ const DataPanelPage = () => { return case Scenarios.TOP_10_LANGUAGE_ANALYSIS: return + case Scenarios.LOCK_DOWN_INFLUENCE_ANALYSIS: + return } }, [selectedScenario]) diff --git a/frontend/src/services/services.ts b/frontend/src/services/services.ts index 28cb1fc..382f0c2 100644 --- a/frontend/src/services/services.ts +++ b/frontend/src/services/services.ts @@ -12,4 +12,12 @@ export const fetchLanguagesCountData = () => { const JSONData = await data.json() return JSONData }) +} + +export const fetchCovidData = () => { + return fetch('http://localhost:5000/api/scenario/covid', {mode: 'cors'}) + .then(async (data) => { + const JSONData = await data.json() + return JSONData + }) } \ No newline at end of file From 13ce7f30d6b0349a66e2e66f76b7e29fc8292b6e Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Fri, 13 May 2022 18:40:11 +1000 Subject: [PATCH 4/8] feat: initial house price heat map --- .../house-price-analysis-panel.tsx | 111 ++++++++++++++ .../house-price-analysis-panel/mock-data.ts | 135 ++++++++++++++++++ .../house-price-options-panel.tsx | 81 +++++++++++ .../components/left-drawer/left-drawer.tsx | 3 + frontend/src/components/slider/slider.tsx | 4 +- frontend/src/meta-data/index.ts | 9 +- frontend/src/page/data-panal-page.tsx | 3 + frontend/src/services/services.ts | 8 ++ 8 files changed, 351 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx create mode 100644 frontend/src/components/house-price-analysis-panel/mock-data.ts create mode 100644 frontend/src/components/house-price-options-panel/house-price-options-panel.tsx diff --git a/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx b/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx new file mode 100644 index 0000000..ce5d6c7 --- /dev/null +++ b/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx @@ -0,0 +1,111 @@ +import React, { useContext, useEffect, useState } from "react"; +import { GaodeMap, Mapbox } from '@antv/l7-maps'; +import data from "./mock-data"; +import { Scene, PointLayer } from '@antv/l7'; +import Stack from "@mui/material/Stack"; +import ArrowLeftIcon from '@mui/icons-material/ArrowLeft'; +import ArrowRightIcon from '@mui/icons-material/ArrowRight'; +import Box from "@mui/system/Box"; +import IconButton from "@mui/material/IconButton"; +import { fetchHousePriceData } from "../../services/services"; +import { DataDisplayContext } from "../../App"; + +const HousePriceAnalysisPanel = () => { + const [arleadyLoadMap, setAlreadyLoadMap] = useState(false) + const [selectedTime, setSelectedTime] = useState(0) + const [allTimeSlots, setAllTimeSlots] = useState([]) + const [housePriceData, setHousePriceData] = useState({}) + const {displayOptions: {houseType, priceType}} = useContext(DataDisplayContext) + const [displayData, setDisplayData] = useState({}) + + useEffect(() => { + fetchHousePriceData() + .then(JSONData => { + const JSONHousePriceData = JSONData.filter((jd: { name: string; }) => jd.name === "aurin_house_price")[0].details + setAllTimeSlots(Object.keys(JSONHousePriceData)) + // setAllTimeSlots(Object.values(JSONData)) + setHousePriceData(JSONHousePriceData) + } + ) + }, []) + + useEffect(() => { + const scene = new Scene({ + id: 'housePrice-analysis-heatMap', + map: new Mapbox({ + pitch: 0, + style: 'light', + center: [ 144.92874662745265, -37.81343237141352 ], + zoom: 9.9, + maxZoom: 10 + }) + }); + scene.on('loaded', () => { + const pointLayer = new PointLayer({}) + .source(displayData) + .shape('circle') + .size('price', [ 30, 56 ]) + .color('price', [ + '#F39E9E', + '#F49393', + '#F38E8E', + '#F16363', + '#ED4343', + '#70505' + ]) + .active(true) + .style({ + opacity: 0.5, + strokeWidth: 0 + }); + scene.addLayer(pointLayer); + }); + return () => {scene.destroy()} + }, [displayData]) + + useEffect(() => { + if(housePriceData[allTimeSlots[selectedTime]]? housePriceData[allTimeSlots[selectedTime]][houseType]: undefined) { + const d = housePriceData[allTimeSlots[selectedTime]][houseType] + data.features = data.features.map(feature => { + // console.log(d[feature.name]) + // console.log(d[feature.name][priceType]) + if(d[feature.name]? d[feature.name][priceType]: undefined) { + feature.properties.price = d[feature.name][priceType] + } + return feature}) + console.log('update data') + setDisplayData(data) + } + }, [selectedTime, houseType]) + + const setNextYear = () => { + if(selectedTime < allTimeSlots.length - 1) { + setSelectedTime(selectedTime + 1) + } + } + + const setPreviousYear = () => { + if(selectedTime > 0) { + setSelectedTime(selectedTime - 1) + } + } + + return ( + + + {setPreviousYear()}}> + + + + {allTimeSlots[selectedTime]} + + {setNextYear()}}> + + + +
+ + ) +} + +export default HousePriceAnalysisPanel \ No newline at end of file diff --git a/frontend/src/components/house-price-analysis-panel/mock-data.ts b/frontend/src/components/house-price-analysis-panel/mock-data.ts new file mode 100644 index 0000000..433bf10 --- /dev/null +++ b/frontend/src/components/house-price-analysis-panel/mock-data.ts @@ -0,0 +1,135 @@ +// const data = { +// "type": "FeatureCollection", +// "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, +// "features": [ +// {"type": "Feature", +// "properties": { +// "id": "pr2017261001", +// "name": "Melbourne - Inner", +// "price": 55551,}, +// "geometry": { +// "type": "Point", +// "coordinates": [ -64.7745, 18.8611, ] }}, +// ] +// } + + // const data = { + // "type": "FeatureCollection", + // "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, + // "features": [ + // {"type": "Feature", + // "properties": { + // "id": "pr2017261001", + // "name": "Melbourne - Inner", + // "price": 55551,}, + // "geometry": { + // "type": "Point", + // "coordinates": [ -64.7745, 18.8611, 60.0 ] }}, + // ] + // } +const data = { + "type": "FeatureCollection", + "features": [ + { + name: 'Melbourne - Inner', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 144.92874662745265, -37.81343237141352 ] + }, + "properties": { + "price":521684.3, + } + }, + { + name: 'Melbourne - Inner East', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 145.01465383001445, -37.81601449715302 ] + }, + "properties": { + "price":441439.2, + } + }, + { + name: 'Melbourne - Inner South', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 145.0013736823581, -37.88713722205395 ] + }, + "properties": { + "price":6720, + } + }, + { + name: 'Melbourne - North East', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 145.10876965905746, -37.7320380000303 ] + }, + "properties": { + "price":6720, + } + }, + { + name: 'Melbourne - North West', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 144.922270194144, -37.713312853354175 ] + }, + "properties": { + "price":6720, + } + }, + { + name: 'Melbourne - Outer East', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 145.219630022102, -37.826504851657 ] + }, + "properties": { + "price":6720, + } + }, + { + name: 'Melbourne - South East', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 145.11626466491896, -37.944728858607014 ] + }, + "properties": { + "price":6720, + } + }, + { + name: 'Melbourne - West', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 144.81821891718084, -37.818407158660825 ] + }, + "properties": { + "price":6720, + } + }, + { + name: 'Mornington Peninsula', + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ 144.75289382178616, -37.875149824765614 ] + }, + "properties": { + "price":6720, + } + }, + ] +} + +export default data \ No newline at end of file diff --git a/frontend/src/components/house-price-options-panel/house-price-options-panel.tsx b/frontend/src/components/house-price-options-panel/house-price-options-panel.tsx new file mode 100644 index 0000000..041ba0d --- /dev/null +++ b/frontend/src/components/house-price-options-panel/house-price-options-panel.tsx @@ -0,0 +1,81 @@ +import React, { useContext, useState } from "react"; + +import CheckBox from "../check-box/check-box"; +import Box from "@mui/material/Box"; +import { DataDisplayContext } from "../../App"; +import Stack from "@mui/material/Stack"; +import { Button, Step, StepContent, StepLabel, Typography } from "@mui/material"; +import LooksTwoIcon from '@mui/icons-material/LooksTwo'; +import Looks3Icon from '@mui/icons-material/Looks3'; +import DropdownSelector from "../dropdown-selector/dropdown-selector"; +import { House_Price_Panel_Options } from "../../meta-data"; + +const HousePriceOptionsPanel = () => { + const { setDisplayOptions } = useContext(DataDisplayContext) + + const [houseType, setHouseType] = useState(House_Price_Panel_Options.HOUSE_TYPE[0]) + const [priceType, setPriceType] = useState(House_Price_Panel_Options.PRICE_TYPE[0]) + + const handleSubmit = () => { + setDisplayOptions({ + houseType, + priceType + }) + } + + return ( + <> + + + + + + Options + + + + + + + { + setHouseType(houseType) + }} + selectedItem={houseType} + /> + + + { + setPriceType(priceType) + }} + selectedItem={priceType} + /> + + + + + + + + + + LoadData + + + + + + + + + + + ) +} + +export default HousePriceOptionsPanel \ No newline at end of file diff --git a/frontend/src/components/left-drawer/left-drawer.tsx b/frontend/src/components/left-drawer/left-drawer.tsx index 37394d8..9f02130 100644 --- a/frontend/src/components/left-drawer/left-drawer.tsx +++ b/frontend/src/components/left-drawer/left-drawer.tsx @@ -15,6 +15,7 @@ import PopulationAnalysisOptionPanel from "../population-analysis-option-panel/p import Looks3Icon from '@mui/icons-material/Looks3'; import Top10LanguageAnalysisOptionsPanel from "../top10language-analysis-options-panel/top10language-analysis-options-panel"; import LockdownInfluenceAnalysisOptionPanel from "../lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel"; +import HousePriceOptionsPanel from "../house-price-options-panel/house-price-options-panel"; const LeftDrawer = () => { const { openOptionsDrawer, setOpenOptionsDrawer, selectedScenario, setScenario } = useContext(DataDisplayContext) @@ -26,6 +27,8 @@ const LeftDrawer = () => { return case Scenarios.TOP_10_LANGUAGE_ANALYSIS: return + case Scenarios.HOUSE_PRICE_ANALYSIS: + return case Scenarios.LOCK_DOWN_INFLUENCE_ANALYSIS: return } diff --git a/frontend/src/components/slider/slider.tsx b/frontend/src/components/slider/slider.tsx index 47bd93c..dd0ba39 100644 --- a/frontend/src/components/slider/slider.tsx +++ b/frontend/src/components/slider/slider.tsx @@ -12,8 +12,8 @@ interface SliderComponentProps { const SliderComponent = ({ startEndDate, selectedStartEndDate, updateSelectedStartEndDate }: SliderComponentProps) => { // const [value1, setValue1] = React.useState([20, 37]); - console.log('startEndDate222') - console.log(startEndDate) + // console.log('startEndDate222') + // console.log(startEndDate) const handleChange1 = ( event: Event, diff --git a/frontend/src/meta-data/index.ts b/frontend/src/meta-data/index.ts index 4242bc8..9cca682 100644 --- a/frontend/src/meta-data/index.ts +++ b/frontend/src/meta-data/index.ts @@ -5,7 +5,9 @@ export enum Panels{ export enum Scenarios { POPULATION_ANALYSIS = 'Population Analysis', TOP_10_LANGUAGE_ANALYSIS = 'Top 10 Languages Analysis', - LOCK_DOWN_INFLUENCE_ANALYSIS = 'Lock down influence analysis' + HOUSE_PRICE_ANALYSIS = 'House Price Analysis', + LOCK_DOWN_INFLUENCE_ANALYSIS = 'Lock down influence analysis', + } export enum Population_Panel_Options { @@ -13,4 +15,9 @@ export enum Population_Panel_Options { MIGRATION_POPULATION = 'migration_population', NEW_MIGRATION = 'new_migration', NEW_BIRTH = 'new_birth' +} + +export const House_Price_Panel_Options = { + HOUSE_TYPE: ['House', 'Unit'], + PRICE_TYPE: ['avg', 'max'] } \ No newline at end of file diff --git a/frontend/src/page/data-panal-page.tsx b/frontend/src/page/data-panal-page.tsx index f28db41..653b70c 100644 --- a/frontend/src/page/data-panal-page.tsx +++ b/frontend/src/page/data-panal-page.tsx @@ -1,6 +1,7 @@ import Container from "@mui/material/Container"; import React, { useContext, useEffect, useMemo, useState } from "react"; import { DataDisplayContext } from "../App"; +import HousePriceAnalysisPanel from "../components/house-price-analysis-panel/house-price-analysis-panel"; import LeftDrawer from "../components/left-drawer/left-drawer"; import LockdownInfluenceAnalysisPanel from "../components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel"; import PopulationAnalysisPanel from "../components/population-analysis-panel/population-analysis-panel"; @@ -19,6 +20,8 @@ const DataPanelPage = () => { return case Scenarios.LOCK_DOWN_INFLUENCE_ANALYSIS: return + case Scenarios.HOUSE_PRICE_ANALYSIS: + return } }, [selectedScenario]) diff --git a/frontend/src/services/services.ts b/frontend/src/services/services.ts index 382f0c2..4e79704 100644 --- a/frontend/src/services/services.ts +++ b/frontend/src/services/services.ts @@ -20,4 +20,12 @@ export const fetchCovidData = () => { const JSONData = await data.json() return JSONData }) +} + +export const fetchHousePriceData = () => { + return fetch('http://localhost:5000/api/scenario/house-price', {mode: 'cors'}) + .then(async (data) => { + const JSONData = await data.json() + return JSONData + }) } \ No newline at end of file From 0ad54861d8947d21f1e17043bcd2f5e097a69ef1 Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Fri, 13 May 2022 19:57:37 +1000 Subject: [PATCH 5/8] feat: Finish house price heat map --- .../house-price-analysis-panel/house-price-analysis-panel.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx b/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx index ce5d6c7..35729f4 100644 --- a/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx +++ b/frontend/src/components/house-price-analysis-panel/house-price-analysis-panel.tsx @@ -73,8 +73,10 @@ const HousePriceAnalysisPanel = () => { feature.properties.price = d[feature.name][priceType] } return feature}) + const newData = Object.assign({}, data) console.log('update data') - setDisplayData(data) + console.log(data) + setDisplayData(newData) } }, [selectedTime, houseType]) From 8085223712be3c56c7c524afd1bbeca986f01590 Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Fri, 13 May 2022 22:29:25 +1000 Subject: [PATCH 6/8] Fix: 1. fix fetch url cor problem 2. fix crush down bugs when chaning scenarios --- .../src/components/left-drawer/left-drawer.tsx | 16 ++++++++++++++-- .../top10language-analysis-options-panel.tsx | 7 ++++--- frontend/src/services/services.ts | 8 ++++---- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/left-drawer/left-drawer.tsx b/frontend/src/components/left-drawer/left-drawer.tsx index 9f02130..241fbcd 100644 --- a/frontend/src/components/left-drawer/left-drawer.tsx +++ b/frontend/src/components/left-drawer/left-drawer.tsx @@ -1,7 +1,7 @@ import React, { useContext, useMemo, useState } from "react"; import DropdownSelector from "../dropdown-selector/dropdown-selector"; -import { Scenarios } from "../../meta-data"; +import { Population_Panel_Options, Scenarios } from "../../meta-data"; import Box from "@mui/material/Box"; import Drawer from "@mui/material/Drawer/Drawer"; @@ -18,7 +18,7 @@ import LockdownInfluenceAnalysisOptionPanel from "../lockdown-influence-analysis import HousePriceOptionsPanel from "../house-price-options-panel/house-price-options-panel"; const LeftDrawer = () => { - const { openOptionsDrawer, setOpenOptionsDrawer, selectedScenario, setScenario } = useContext(DataDisplayContext) + const { openOptionsDrawer, setOpenOptionsDrawer, selectedScenario, setScenario, setDisplayOptions } = useContext(DataDisplayContext) const [ currentSelectedScenario, setCurrentSelectedScenario] = useState(selectedScenario) const optionsPanel = useMemo(() => { @@ -55,6 +55,18 @@ const LeftDrawer = () => { updateWhenSelect={(scenario: string) => { setCurrentSelectedScenario(scenario) setScenario(scenario) + switch(scenario) { + case Scenarios.POPULATION_ANALYSIS: + setDisplayOptions(Object.values(Population_Panel_Options)) + break; + case Scenarios.TOP_10_LANGUAGE_ANALYSIS: + // setDisplayOptions([1,2]) + break; + case Scenarios.HOUSE_PRICE_ANALYSIS: + break; + case Scenarios.LOCK_DOWN_INFLUENCE_ANALYSIS: + break; + } }} selectedItem={currentSelectedScenario} /> diff --git a/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx b/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx index 192adec..6aaf783 100644 --- a/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx +++ b/frontend/src/components/top10language-analysis-options-panel/top10language-analysis-options-panel.tsx @@ -17,9 +17,10 @@ const Top10LanguageAnalysisOptionsPanel = () => { useEffect(() => { console.log('displayOptions111=>') console.log(displayOptions) - if (displayOptions[0] === 1 && displayOptions[1] === 2) - setStartEndDate([displayOptions[0], displayOptions[1]]) - setSelectedStartEndDate([displayOptions[0], displayOptions[1]]) + if (startEndDate[0] !== 1 && startEndDate[1] !== 2) { + setStartEndDate([displayOptions[0], displayOptions[1]]) + setSelectedStartEndDate([displayOptions[0], displayOptions[1]]) + } }, [displayOptions]) return ( diff --git a/frontend/src/services/services.ts b/frontend/src/services/services.ts index 4e79704..95e2abe 100644 --- a/frontend/src/services/services.ts +++ b/frontend/src/services/services.ts @@ -1,5 +1,5 @@ export const fetchPopulationData = () => { - return fetch('http://localhost:5000/api/scenario/languages', {mode: 'cors'}) + return fetch('http://172.26.135.17:80/api/scenario/languages', {mode: 'cors'}) .then(async (data) => { const JSONData = await data.json() return JSONData @@ -7,7 +7,7 @@ export const fetchPopulationData = () => { } export const fetchLanguagesCountData = () => { - return fetch('http://localhost:5000/api/scenario/languages-month', {mode: 'cors'}) + return fetch('http://172.26.135.17:80/api/scenario/languages-month', {mode: 'cors'}) .then(async (data) => { const JSONData = await data.json() return JSONData @@ -15,7 +15,7 @@ export const fetchLanguagesCountData = () => { } export const fetchCovidData = () => { - return fetch('http://localhost:5000/api/scenario/covid', {mode: 'cors'}) + return fetch('http://172.26.135.17:80/api/scenario/covid', {mode: 'cors'}) .then(async (data) => { const JSONData = await data.json() return JSONData @@ -23,7 +23,7 @@ export const fetchCovidData = () => { } export const fetchHousePriceData = () => { - return fetch('http://localhost:5000/api/scenario/house-price', {mode: 'cors'}) + return fetch('http://172.26.135.17:80/api/scenario/house-price', {mode: 'cors'}) .then(async (data) => { const JSONData = await data.json() return JSONData From 0e6e92c634c6dd07e479937731eeb985448ebd8d Mon Sep 17 00:00:00 2001 From: WeiFeng Wu Date: Sun, 15 May 2022 12:57:38 +1000 Subject: [PATCH 7/8] feat: finish latest twitter analysis --- .../components/left-drawer/left-drawer.tsx | 3 + .../twitter-analysis-option-panel.tsx | 37 +++++ .../twitter-analysis-panel.tsx | 132 ++++++++++++++++++ frontend/src/meta-data/index.ts | 2 +- frontend/src/page/data-panal-page.tsx | 3 + frontend/src/services/services.ts | 8 ++ 6 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 frontend/src/components/twitter-analysis-option-panel/twitter-analysis-option-panel.tsx create mode 100644 frontend/src/components/twitter-analysis-panel/twitter-analysis-panel.tsx diff --git a/frontend/src/components/left-drawer/left-drawer.tsx b/frontend/src/components/left-drawer/left-drawer.tsx index 241fbcd..e7f43af 100644 --- a/frontend/src/components/left-drawer/left-drawer.tsx +++ b/frontend/src/components/left-drawer/left-drawer.tsx @@ -16,6 +16,7 @@ import Looks3Icon from '@mui/icons-material/Looks3'; import Top10LanguageAnalysisOptionsPanel from "../top10language-analysis-options-panel/top10language-analysis-options-panel"; import LockdownInfluenceAnalysisOptionPanel from "../lockdown-influence-analysis-option-panel/lockdown-influence-analysis-option-panel"; import HousePriceOptionsPanel from "../house-price-options-panel/house-price-options-panel"; +import TwitterAnalysisOptionPanel from "../twitter-analysis-option-panel/twitter-analysis-option-panel"; const LeftDrawer = () => { const { openOptionsDrawer, setOpenOptionsDrawer, selectedScenario, setScenario, setDisplayOptions } = useContext(DataDisplayContext) @@ -31,6 +32,8 @@ const LeftDrawer = () => { return case Scenarios.LOCK_DOWN_INFLUENCE_ANALYSIS: return + case Scenarios.TWITTER_ANALYSIS: + return } }, [currentSelectedScenario]) diff --git a/frontend/src/components/twitter-analysis-option-panel/twitter-analysis-option-panel.tsx b/frontend/src/components/twitter-analysis-option-panel/twitter-analysis-option-panel.tsx new file mode 100644 index 0000000..5e91f02 --- /dev/null +++ b/frontend/src/components/twitter-analysis-option-panel/twitter-analysis-option-panel.tsx @@ -0,0 +1,37 @@ +import React, { useContext } from "react"; +import { DataDisplayContext } from "../../App"; +import Stack from "@mui/material/Stack"; +import Step from "@mui/material/Step"; +import StepContent from "@mui/material/StepContent"; +import StepLabel from "@mui/material/StepLabel"; +import Typography from "@mui/material/Typography"; +import LooksTwoIcon from '@mui/icons-material/LooksTwo'; +import Button from "@mui/material/Button"; +import Box from "@mui/material/Box"; + +const TwitterAnalysisOptionPanel = () => { + const { setOpenOptionsDrawer } = useContext(DataDisplayContext) + + + return ( + + + + + + Options + + + + + + + + + + ) +} + +export default TwitterAnalysisOptionPanel \ No newline at end of file diff --git a/frontend/src/components/twitter-analysis-panel/twitter-analysis-panel.tsx b/frontend/src/components/twitter-analysis-panel/twitter-analysis-panel.tsx new file mode 100644 index 0000000..a4f11fd --- /dev/null +++ b/frontend/src/components/twitter-analysis-panel/twitter-analysis-panel.tsx @@ -0,0 +1,132 @@ +import React, { useEffect, useState } from "react"; +import { Pie } from '@antv/g2plot'; +import Stack from "@mui/material/Stack"; +import { fetchTwitter } from "../../services/services"; +import Card from "@mui/material/Card"; +import Typography from "@mui/material/Typography"; +import CardContent from "@mui/material/CardContent"; +import { CardActions } from "@mui/material"; + +const TwitterAnalysisOptionPanel = () => { + const [polarityData, setPolarityData] = useState<{ + type: string; + value: number; +}[]>([{ type: '分类一', value: 27 },]) + const [subjectivityData, setSubjectivityData] = useState<{ + type: string; + value: number; +}[]>([{ type: '分类一', value: 27 },]) + const [latestTwi, setLatestTwi] = useState([]) + + useEffect(() => { + fetchTwitter() + .then(JSONData => { + let pdata = JSONData.filter((jd: { name: string; }) => jd.name ==='polarity')[0].details + let sudata = JSONData.filter((jd: { name: string; }) => jd.name ==='subjectivity')[0].details + // console.log() + let total = 0 + Object.values(pdata).map((pd: any) => {total += pd}) + setPolarityData(Object.keys(pdata).map(pdKey => { + return { + type: pdKey, + value: pdata[pdKey] / total * 100 + } + })) + total = 0 + Object.values(sudata).map((pd: any) => {total += pd}) + setSubjectivityData(Object.keys(sudata).map(pdKey => { + return { + type: pdKey, + value: sudata[pdKey] / total * 100 + } + })) + setLatestTwi(JSONData.filter((jd: { name: string; }) => jd.name ==='sample')[0].details) + // console.log() + }) + }, []) + + useEffect(() => { + const data = polarityData + + const piePlot = new Pie('piePlot1', { + appendPadding: 10, + data, + angleField: 'value', + colorField: 'type', + radius: 0.9, + label: { + type: 'inner', + offset: '-30%', + content: ({ percent }) => `${(percent * 100).toFixed(0)}%`, + style: { + fontSize: 14, + textAlign: 'center', + }, + }, + interactions: [{ type: 'element-active' }], + }); + + piePlot.render(); + return () => {piePlot.destroy()} + }, [polarityData]); + + useEffect(() => { + const data = subjectivityData + + const piePlot2 = new Pie('piePlot2', { + appendPadding: 10, + data, + angleField: 'value', + colorField: 'type', + radius: 0.9, + label: { + type: 'inner', + offset: '-30%', + content: ({ percent }) => `${(percent * 100).toFixed(0)}%`, + style: { + fontSize: 14, + textAlign: 'center', + }, + }, + interactions: [{ type: 'element-active' }], + }); + + piePlot2.render(); + return () => {piePlot2.destroy()} + }, [subjectivityData]) + + return ( + + +
+
+
+ + Sentimental analysis of latest 10 twitters + {latestTwi.map(lw => ( + + + + {`Subjectivity: [${lw.subjectivity}] Polarity: [${lw.polarity}] Language: [${lw.lang}]`} + + + {lw.text} + + + + + + {`source: ${lw.source}`} + + + {`time: ${lw.time}`} + + + + ))} + +
+ ) +} + +export default TwitterAnalysisOptionPanel \ No newline at end of file diff --git a/frontend/src/meta-data/index.ts b/frontend/src/meta-data/index.ts index 9cca682..2bca0ee 100644 --- a/frontend/src/meta-data/index.ts +++ b/frontend/src/meta-data/index.ts @@ -7,7 +7,7 @@ export enum Scenarios { TOP_10_LANGUAGE_ANALYSIS = 'Top 10 Languages Analysis', HOUSE_PRICE_ANALYSIS = 'House Price Analysis', LOCK_DOWN_INFLUENCE_ANALYSIS = 'Lock down influence analysis', - + TWITTER_ANALYSIS = 'Twitter Analysis' } export enum Population_Panel_Options { diff --git a/frontend/src/page/data-panal-page.tsx b/frontend/src/page/data-panal-page.tsx index 653b70c..bfaba3d 100644 --- a/frontend/src/page/data-panal-page.tsx +++ b/frontend/src/page/data-panal-page.tsx @@ -6,6 +6,7 @@ import LeftDrawer from "../components/left-drawer/left-drawer"; import LockdownInfluenceAnalysisPanel from "../components/lockdown-influence-analysis-panel/lockdown-influence-analysis-panel"; import PopulationAnalysisPanel from "../components/population-analysis-panel/population-analysis-panel"; import Top10LanguageAnalysisPanel from "../components/top10language-analysis-panel/top10language-analysis-panel"; +import TwitterAnalysisOptionPanel from "../components/twitter-analysis-panel/twitter-analysis-panel"; import { Scenarios } from "../meta-data"; import { fetchLanguagesCountData } from "../services/services"; @@ -22,6 +23,8 @@ const DataPanelPage = () => { return case Scenarios.HOUSE_PRICE_ANALYSIS: return + case Scenarios.TWITTER_ANALYSIS: + return } }, [selectedScenario]) diff --git a/frontend/src/services/services.ts b/frontend/src/services/services.ts index 95e2abe..ad36eca 100644 --- a/frontend/src/services/services.ts +++ b/frontend/src/services/services.ts @@ -28,4 +28,12 @@ export const fetchHousePriceData = () => { const JSONData = await data.json() return JSONData }) +} + +export const fetchTwitter = () => { + return fetch('http://172.26.135.17:80/api/scenario/stream', {mode: 'cors'}) + .then(async (data) => { + const JSONData = await data.json() + return JSONData + }) } \ No newline at end of file From 246d14939707ee684ebee70b5838461b9ec9cc0f Mon Sep 17 00:00:00 2001 From: aabbaq <43639882+aabbaq@users.noreply.github.com> Date: Mon, 16 May 2022 13:07:25 +1000 Subject: [PATCH 8/8] Update README.md --- backend/README.md | 139 ++++++---------------------------------------- 1 file changed, 16 insertions(+), 123 deletions(-) diff --git a/backend/README.md b/backend/README.md index 4451ebc..e8add75 100644 --- a/backend/README.md +++ b/backend/README.md @@ -1,10 +1,10 @@ # RESTful backend: python + flask -## How to use (local for now) +## How to use ### Step 1 -#### Install required dependencies (for now) +#### Install required dependencies ```bash pip install -r requirements.txt @@ -12,7 +12,7 @@ ### Step 2 -#### Start Flask Server (local test for now) +#### Start Flask Server ```bash cd ./backend python3 app.py @@ -23,137 +23,30 @@ sh ./docker-run.sh ``` -## API URL (local for now) +## API URL -#### Only GET methods are allowed (for now?) +#### Only GET methods are allowed ``` - http://localhost:5000/api/api-type/data-type// + http://Host:Port/api/api-type/data-type/selected-view + http://Host:Port/api/api-type/scenario-view ``` 1. **api-source**: which type of api to use, ["aurin", "twitter", "scenario"] -`scenario` is for displaying some special processed data +`aurin` `twitter` is only for developing phase +`scenario` is for displaying demo data 2. **data-type**: data type from couchDB, * `covid` `house-price` for twitter data - * `rai` `income` `house-price` `migration` for aurin data + * `income` `house-price` `migration` for aurin data -3. **sub-data-type**: sub data type from couchDB, now only available for `house-price` - * `rent` `sale` - -4. **selected-view** (optional): map-reduce view, go to `util/constants.py` to see more +3. **selected-view**: map-reduce view, go to `util/constants.py` to see more * `year` `position` `type` or combination like `year-postion` * `sex` `English` or `english` for migration data * `subjectivity` `polarity` `language` for twitter data -## API URL From - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
api-typedata-typesub-data-typeselected-view
aurinincomenoneyear
position
2-combination (eg: year-position)
house-pricerent or saleposition
year
type
2-combination (eg: year-position)
sumary
migrationnonesex
year
population
total-population
english or English
rainonenone
twitterhouse-pricenoneyear
polarity
subjectivity
map
language
language-time (time: [month, quarter, year])
map-year
covidnonepolarity
subjectivity
language
language-time (time: [month, quarter, year])
scenariolanguagesnonenone
languages-monthnonenone
- +4. **scenario-view**: finally used in the system + * `languages` `languages-month` for scenario **Overseas Migration and Languagues Languages On Twitter** + * `house-price` for scenario **Relevance among House price, Income and Attitudes of People On Twitter** + * `covid` for scenario **How Decisions (Lockdown) made By Local Government Influence Employment and People's Feeling** + * `stream` for scenario **General Statistics of Real-time Tweets, and details of these Tweets** \ No newline at end of file