diff --git a/client/.eslintignore b/client/.eslintignore
index 334e01e38..5c7f4f6da 100644
--- a/client/.eslintignore
+++ b/client/.eslintignore
@@ -1,2 +1,4 @@
*.json
*.test.js*
+v1/*
+
diff --git a/client/.eslintrc.js b/client/.eslintrc.js
index 3f4f2351b..f313ff840 100644
--- a/client/.eslintrc.js
+++ b/client/.eslintrc.js
@@ -50,5 +50,14 @@ module.exports = {
}
],
"template-curly-spacing": 'off',
+ 'jsx-a11y/no-noninteractive-tabindex': [
+ 'error',
+ {
+ tags: [],
+ roles: ['tabpanel'],
+ },
+ ],
+ "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
},
+
};
diff --git a/client/App.jsx b/client/App.jsx
index 85ea17064..909bb18f4 100644
--- a/client/App.jsx
+++ b/client/App.jsx
@@ -1,18 +1,13 @@
import React, { useEffect } from 'react';
import PropTypes from 'proptypes';
import { connect } from 'react-redux';
-import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
-import 'focus-visible';
+import { ThemeProvider } from '@material-ui/core/styles';
+import { CssBaseline } from '@material-ui/core';
import { getMetadataRequest } from '@reducers/metadata';
-
-import RouteChange from '@components/main/util/RouteChange';
-import actions from '@components/main/util/routeChangeActions';
-import CookieNotice from '@components/main/body/CookieNotice';
-import Header from '@components/main/header/Header';
-import Footer from '@components/main/footer/Footer';
-import StaticFooter from '@components/main/footer/StaticFooter';
-import { SnapshotRenderer } from '@components/export/SnapshotService';
-import Routes from './Routes';
+import Header from '@components/Header';
+import Footer from '@components/Footer';
+import Map from '@components/Map';
+import theme from './theme/theme';
const App = ({
getMetadata,
@@ -22,17 +17,12 @@ const App = ({
});
return (
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
);
};
diff --git a/client/Routes.jsx b/client/Routes.jsx
index e60a1372c..421d053f8 100644
--- a/client/Routes.jsx
+++ b/client/Routes.jsx
@@ -1,3 +1,5 @@
+/* eslint-disable */
+// temporarily disabling eslint here until v2 refactor
import React from 'react';
import {
Switch,
diff --git a/client/components/Footer.jsx b/client/components/Footer.jsx
new file mode 100644
index 000000000..606216be1
--- /dev/null
+++ b/client/components/Footer.jsx
@@ -0,0 +1,59 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'proptypes';
+import {
+ Container,
+ Typography,
+} from '@material-ui/core';
+import { makeStyles } from '@material-ui/core/styles';
+import moment from 'moment';
+
+// TODO: pull style constants into mui theme
+const useStyles = makeStyles({
+ footer: {
+ position: 'absolute',
+ bottom: 0,
+ height: '40px',
+ width: '100%',
+ backgroundColor: '#2A404E',
+ },
+ lastUpdated: {
+ lineHeight: '40px',
+ fontSize: '14px',
+ },
+});
+
+// TODO: check with UI/UX re placement of social media, privacy policy links
+const Footer = ({
+ lastUpdated,
+}) => {
+ const classes = useStyles();
+
+ return (
+
+ );
+};
+
+const mapStateToProps = state => ({
+ lastUpdated: state.metadata.lastPulled,
+});
+
+Footer.propTypes = {
+ lastUpdated: PropTypes.string,
+};
+
+Footer.defaultProps = {
+ lastUpdated: undefined,
+};
+
+export default connect(mapStateToProps, null)(Footer);
diff --git a/client/components/Header.jsx b/client/components/Header.jsx
new file mode 100644
index 000000000..809dc6bb4
--- /dev/null
+++ b/client/components/Header.jsx
@@ -0,0 +1,47 @@
+import React from 'react';
+// import { NavLink } from 'react-router-dom';
+import { makeStyles } from '@material-ui/core/styles';
+import {
+ AppBar,
+ Button,
+ Toolbar,
+ Typography,
+} from '@material-ui/core';
+
+const useStyles = makeStyles({
+ appBar: {
+ height: '62px',
+ backgroundColor: '#2A404E',
+ },
+ button: {
+ textTransform: 'none',
+ },
+ title: {
+ flexGrow: 1,
+ fontFamily: 'Oswald, sans-serif',
+ fontSize: '30px',
+ fontWeight: 'bold',
+ letterSpacing: '4px',
+ },
+});
+
+// TODO: links/routing, mobile
+const Header = () => {
+ const classes = useStyles();
+
+ return (
+
+
+
+ 311DATA
+
+
+
+
+
+
+
+ );
+};
+
+export default Header;
diff --git a/client/components/Map/index.js b/client/components/Map/index.js
new file mode 100644
index 000000000..5523125fd
--- /dev/null
+++ b/client/components/Map/index.js
@@ -0,0 +1,7 @@
+import React from 'react';
+
+const Map = () => (
+
Map goes here
+);
+
+export default Map;
diff --git a/client/components/common/CONSTANTS.js b/client/components/common/CONSTANTS.js
index 2d8a5ddd1..0498dccfb 100644
--- a/client/components/common/CONSTANTS.js
+++ b/client/components/common/CONSTANTS.js
@@ -1,5 +1,7 @@
export default {};
+// TODO: fetch constants from backend
+
// 'primary' or 'alt' to change request type colors
const COLOR_SELECTION = 'alt';
diff --git a/client/index.js b/client/index.js
index a9126b5be..069ee496c 100644
--- a/client/index.js
+++ b/client/index.js
@@ -5,8 +5,6 @@ import 'regenerator-runtime/runtime';
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
-import './styles/styles.scss';
-
import store from './redux/store';
import App from './App';
diff --git a/client/package-lock.json b/client/package-lock.json
index d026ff695..c1c2401d7 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -1177,6 +1177,11 @@
"minimist": "^1.2.0"
}
},
+ "@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
+ },
"@jest/console": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz",
@@ -1371,354 +1376,152 @@
"@types/yargs": "^13.0.0"
}
},
- "@pixi/accessibility": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.3.3.tgz",
- "integrity": "sha512-wC/enJtw5CrdWnu6l5u3VN9UIZPumNSNXlGez2BULY0osiLTywHJPdHpmXMz2YPXw75GsEBzkEvK4LTtnTp21A==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/app": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/app/-/app-5.3.3.tgz",
- "integrity": "sha512-OkO7Kq3N+FPRshVmApuiHKBpobic56VYbLVCMYPy6rjV0hc5ctkchKGFyouJuPt/rHeI6FrqZ0TaON1TShnKiA==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3"
- }
- },
- "@pixi/constants": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.3.3.tgz",
- "integrity": "sha512-IybgxzLlEPm7ihp70cLNKc3IPyqkFuW+idk9Zw2St+OayJTw5ctCnLAg9cducwIVHjPYTvN46BYDa+n0KRWZYw=="
- },
- "@pixi/core": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.3.3.tgz",
- "integrity": "sha512-taw50LnzV+TQVMx5HQA2ZJgF9wuhZ6DeoXHW2KkevYB0ekKYnEO2VMMiRDMcmchtyvHclJebzjeHZLGqDtKDgw==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/runner": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/ticker": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/display": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.3.3.tgz",
- "integrity": "sha512-dPm7Vk2BH9byu6RHBYsI9MtjUU8x1HNm/PIi6lIlxANhTjWnhxwfvmrGE7ZcRLThTenNdDVlZ2ke2XAXP98UgA==",
- "requires": {
- "@pixi/math": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/extract": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-5.3.3.tgz",
- "integrity": "sha512-CE0GA+tEBPurpaXER2B1aq1sdumKLtCqE/Mms6fYUkIKF9D0Ogw9rqo79QCL9XkLMexa7xVeC3KPPiXW5wrOaA==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/filter-alpha": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.3.3.tgz",
- "integrity": "sha512-AxyHLnvO892va9raZbMMtMtEGDVqO8SvEHHNnCjTBEZ67kVKy0HEYXFOBA6nJZ6BiTgGp9js+7kevi11tfqnJQ==",
- "requires": {
- "@pixi/core": "5.3.3"
- }
- },
- "@pixi/filter-blur": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.3.3.tgz",
- "integrity": "sha512-vLN1DL6PQXo4p7j/32PZIf+lhcBVfb9hdphSmtbxlAlpbhMWI52n3YUkeInwHs7Ev08NyhI/UhNWHqjN/lAM3w==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/settings": "5.3.3"
- }
- },
- "@pixi/filter-color-matrix": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.3.tgz",
- "integrity": "sha512-HFr+vth5ZHHEFJYcjtWZ+O0s7Z2YWJyDyxr+nTd5Q8AT7gMDTVehpNVrm7ByaCKeEovOZzZI6A347+WmHcNpGg==",
- "requires": {
- "@pixi/core": "5.3.3"
- }
- },
- "@pixi/filter-displacement": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.3.3.tgz",
- "integrity": "sha512-kvrKMgqW4ELg+yT2p5vmu6h/IER/L8GD1PWyXovnzpI8RG7k8l136F9VvA3wkB6sYuNcXiDtqMtRQy5e6O4+rw==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/math": "5.3.3"
- }
- },
- "@pixi/filter-fxaa": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.3.3.tgz",
- "integrity": "sha512-p4vKdBwaoGRNZcoHz2ET8hBF1SoWvy9xU2B3Ci32+c0dg89ZUdGTEW0zimUHi2gMdU+2v/T0lqZ9NC9B6WVYAg==",
- "requires": {
- "@pixi/core": "5.3.3"
- }
- },
- "@pixi/filter-noise": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.3.3.tgz",
- "integrity": "sha512-HCky3XPk6BYGXTS7d9/FnAHnqq7Rwm5Rlj2XtWW3JItXGCScEBII227xYwrJu5Ke84tpVlDXK4W1/BevZ1AwlQ==",
- "requires": {
- "@pixi/core": "5.3.3"
- }
- },
- "@pixi/graphics": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.3.3.tgz",
- "integrity": "sha512-1bn9Jptg3JXgVOw0SrEMdmjSwkTBYDm6fPnPnh4goF3yDozh0xEqmXobVtCgy2fulMfHRzIfbgtRxrBf2mkCAg==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/sprite": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/interaction": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.3.3.tgz",
- "integrity": "sha512-Tjuw4XwmrG1fhGzfn5oGspRJT2OtlH+6V7AHscH0v5Ht1Kvk6aKjNncZuSCXllhGGlIuMu3Nn9WPvDEIvW3JNw==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/ticker": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/loaders": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.3.3.tgz",
- "integrity": "sha512-wj0DzniApfDoZA/buMmO/CgCB7Q7SsESForHh7wSd7UC8rrCmz5prUTEICmJGhdHpBuVB7KDPtwaaLtr9Q/kQg==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/utils": "5.3.3",
- "resource-loader": "^3.0.1"
- }
- },
- "@pixi/math": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.3.3.tgz",
- "integrity": "sha512-k5C3kQpxlGm2AdBJEUjjW2l2YlSvTKf+54vNOjD4UcEfRoDevC5p4Zg49q3UAu855lrs5qw49AbkrFKsQvPIRA=="
- },
- "@pixi/mesh": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.3.3.tgz",
- "integrity": "sha512-q8w70oAFNdArzOHVnsn7ban68NmO5S5TMg6qSez4A8te6cebMRQsNrT/0dQ/nZcG7ACFK4jiYfbXRQivO+jgVA==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/mesh-extras": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.3.3.tgz",
- "integrity": "sha512-V2hARC7nUPaTEFxd+B8GDkSMrMZ38S8/IInqtYzGUy6FtFs7IYKty9Rz/G665eN7ThIq8tZrOVZOl6JRBtEC8A==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/mesh": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/mixin-cache-as-bitmap": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.3.tgz",
- "integrity": "sha512-P1mo3HKDWS8IZLgaP8gujiy4We4vRcxJH6EvQAevf+GsBzdjKfcGgkKzVb9HlyQvsXML5gpTOJuw5eKgRTxSQA==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/sprite": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
- "@pixi/mixin-get-child-by-name": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.3.tgz",
- "integrity": "sha512-CksDZ5ZG4/tHZfDOwSuznANduasJg5JR89X3D6E9DVYx4CLVE3G2K1sbeiOJNXfGIKy30UoSD7Y7IFmUzLxp/g==",
- "requires": {
- "@pixi/display": "5.3.3"
- }
- },
- "@pixi/mixin-get-global-position": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.3.tgz",
- "integrity": "sha512-M3faQYDW/ISa1+lhVkjHXRALJ33BMzLN+7x9ucx8VeCmUWvcaLlRo3CaxZsgiR+52Fii5WHl/PF/cMzdkRMF9g==",
+ "@mapbox/geojson-rewind": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz",
+ "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==",
"requires": {
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3"
+ "concat-stream": "~2.0.0",
+ "minimist": "^1.2.5"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ }
}
},
- "@pixi/particles": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.3.3.tgz",
- "integrity": "sha512-t+lG8iGNYyS6ujKvC9qQjKzyxvjxqbFxvB6hkXcOKR98JWM2726ZguHouFlIbOzOxYAGoeuHIWSDlnQNvnVE2g==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
+ "@mapbox/geojson-types": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz",
+ "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw=="
},
- "@pixi/polyfill": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.3.3.tgz",
- "integrity": "sha512-gmx67A6VmwKllxfIMQWzMUNJ8wJfWPT5FlUR0SoPastdTB/SfbgbyQBgKLZHqgmc6LOh2CrOLhN423lNiAroeA==",
- "requires": {
- "es6-promise-polyfill": "^1.2.0",
- "object-assign": "^4.1.1"
- }
+ "@mapbox/jsonlint-lines-primitives": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
+ "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ="
},
- "@pixi/prepare": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.3.3.tgz",
- "integrity": "sha512-DPsKWfYJ97J67YCjPU6uvU+LBdw+64O9LG9vmzfChmYXom5VMQF9yUC6ZoYTHUPmH31iilqzGeMlPUTobnqSog==",
- "requires": {
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/graphics": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/text": "5.3.3",
- "@pixi/ticker": "5.3.3"
- }
+ "@mapbox/mapbox-gl-supported": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz",
+ "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg=="
},
- "@pixi/runner": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.3.3.tgz",
- "integrity": "sha512-7eLZxxT+PwxuwzcRL1egrnEdLHwD41yFb24pMSo6XM86ppP1tdBjrv5+pLDnUuDEfNjZQxx07FAlZY+sMKANmw=="
+ "@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI="
},
- "@pixi/settings": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.3.3.tgz",
- "integrity": "sha512-1MYJokqpPUtvYEX0BVi0Pq2Xi6KGmWDV5hlQnTXY9NGv6tmqrPYvIb/uHFaDyVUWmrqsFL3xZ4W5zMo+c/dwVA==",
- "requires": {
- "ismobilejs": "^1.1.0"
- }
+ "@mapbox/tiny-sdf": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz",
+ "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg=="
},
- "@pixi/sprite": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.3.3.tgz",
- "integrity": "sha512-qo7DG0oWS1uIBqfxw2jZPn34RCR6gQ+IjZRBpFxZPKPB1cL359scZmDBqBbQ4bd4rJ/6QXQfzUdGhXfQJtc9oQ==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
+ "@mapbox/unitbezier": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
+ "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4="
},
- "@pixi/sprite-animated": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.3.3.tgz",
- "integrity": "sha512-nG5j8veJ/cFXQTgzafPLkZqaHKbuaHcIj+ZYN1I2f31Y85/pfr2PQQLHbGr+3441wOYkEHht9nHhmZHWlOOZ0Q==",
+ "@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
"requires": {
- "@pixi/core": "5.3.3",
- "@pixi/sprite": "5.3.3",
- "@pixi/ticker": "5.3.3"
+ "@mapbox/point-geometry": "~0.1.0"
}
},
- "@pixi/sprite-tiling": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.3.3.tgz",
- "integrity": "sha512-+Xk9AUh82rpArtrnZkw+9aJchrmHZ8QkpjsPRJcgPFHx3WEfABIkT6QEoYbRKiYH34OgO7ZOUXy9hcGPHnxjvw==",
- "requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/sprite": "5.3.3",
- "@pixi/utils": "5.3.3"
+ "@mapbox/whoots-js": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
+ "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q=="
+ },
+ "@material-ui/core": {
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.0.tgz",
+ "integrity": "sha512-bYo9uIub8wGhZySHqLQ833zi4ZML+XCBE1XwJ8EuUVSpTWWG57Pm+YugQToJNFsEyiKFhPh8DPD0bgupz8n01g==",
+ "requires": {
+ "@babel/runtime": "^7.4.4",
+ "@material-ui/styles": "^4.10.0",
+ "@material-ui/system": "^4.9.14",
+ "@material-ui/types": "^5.1.0",
+ "@material-ui/utils": "^4.10.2",
+ "@types/react-transition-group": "^4.2.0",
+ "clsx": "^1.0.4",
+ "hoist-non-react-statics": "^3.3.2",
+ "popper.js": "1.16.1-lts",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.8.0",
+ "react-transition-group": "^4.4.0"
+ },
+ "dependencies": {
+ "popper.js": {
+ "version": "1.16.1-lts",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
+ "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
+ }
}
},
- "@pixi/spritesheet": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.3.3.tgz",
- "integrity": "sha512-pTkOCTL8jsmyAguCgcbz03UPYu+3buRkgua1g/vGyeoZBN2eJ04iSXdB0pfPrsPisxkvThGHyU23UqEDYVtXRQ==",
+ "@material-ui/icons": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz",
+ "integrity": "sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg==",
"requires": {
- "@pixi/core": "5.3.3",
- "@pixi/loaders": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/utils": "5.3.3"
+ "@babel/runtime": "^7.4.4"
}
},
- "@pixi/text": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/text/-/text-5.3.3.tgz",
- "integrity": "sha512-juinZC2yFXnzucWWxSdty9nfIIOAq2WA8DD2k40YL+7Y5L52/ggkgnokeQ2lrTb1BvTfx6YVNlvAsKonUek0Og==",
+ "@material-ui/styles": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.10.0.tgz",
+ "integrity": "sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q==",
"requires": {
- "@pixi/core": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/sprite": "5.3.3",
- "@pixi/utils": "5.3.3"
+ "@babel/runtime": "^7.4.4",
+ "@emotion/hash": "^0.8.0",
+ "@material-ui/types": "^5.1.0",
+ "@material-ui/utils": "^4.9.6",
+ "clsx": "^1.0.4",
+ "csstype": "^2.5.2",
+ "hoist-non-react-statics": "^3.3.2",
+ "jss": "^10.0.3",
+ "jss-plugin-camel-case": "^10.0.3",
+ "jss-plugin-default-unit": "^10.0.3",
+ "jss-plugin-global": "^10.0.3",
+ "jss-plugin-nested": "^10.0.3",
+ "jss-plugin-props-sort": "^10.0.3",
+ "jss-plugin-rule-value-function": "^10.0.3",
+ "jss-plugin-vendor-prefixer": "^10.0.3",
+ "prop-types": "^15.7.2"
}
},
- "@pixi/text-bitmap": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.3.3.tgz",
- "integrity": "sha512-QRRdEAFBwmRctp8PCPii5WUPM57T1I3r/EwyTvFCCDubOYOZu4aX/iFpCKZMl5GIphDFaGp8mNvbl+BwjUmBCA==",
+ "@material-ui/system": {
+ "version": "4.9.14",
+ "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.14.tgz",
+ "integrity": "sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w==",
"requires": {
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/loaders": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/mesh": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/text": "5.3.3",
- "@pixi/utils": "5.3.3"
+ "@babel/runtime": "^7.4.4",
+ "@material-ui/utils": "^4.9.6",
+ "csstype": "^2.5.2",
+ "prop-types": "^15.7.2"
}
},
- "@pixi/ticker": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.3.3.tgz",
- "integrity": "sha512-p5F/dwJGwfZWUg5cCPqOnEx5iYGW+huQlZZtrTKKd1KoVehFsrzHeRBOEp4d584jsOmBf7fjJaUTyzsFn0YtOQ==",
- "requires": {
- "@pixi/settings": "5.3.3"
- }
+ "@material-ui/types": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
+ "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A=="
},
- "@pixi/utils": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.3.3.tgz",
- "integrity": "sha512-GDP2h1Mph9Uei4zmJjzDK6GZ5S9O2A09VySVfWyKgWwP3SQ/Ss0bGYm4sE6+u1NMSz1WCrLgu66H82XuXs2Cbg==",
+ "@material-ui/utils": {
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.10.2.tgz",
+ "integrity": "sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw==",
"requires": {
- "@pixi/constants": "5.3.3",
- "@pixi/settings": "5.3.3",
- "earcut": "^2.1.5",
- "eventemitter3": "^3.1.0",
- "url": "^0.11.0"
- },
- "dependencies": {
- "eventemitter3": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
- "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
- }
+ "@babel/runtime": "^7.4.4",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.8.0"
}
},
"@react-pdf/fontkit": {
@@ -1944,12 +1747,41 @@
"integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==",
"dev": true
},
+ "@types/prop-types": {
+ "version": "15.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
+ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
+ },
"@types/q": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
"integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
"dev": true
},
+ "@types/react": {
+ "version": "16.9.56",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz",
+ "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==",
+ "requires": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz",
+ "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA=="
+ }
+ }
+ },
+ "@types/react-transition-group": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz",
+ "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
"@types/stack-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
@@ -2471,6 +2303,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
"requires": {
"array-uniq": "^1.0.1"
}
@@ -2478,7 +2311,8 @@
"array-uniq": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
},
"array-unique": {
"version": "0.3.2",
@@ -2610,6 +2444,7 @@
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
"requires": {
"lodash": "^4.17.14"
}
@@ -3259,21 +3094,6 @@
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
"dev": true
},
- "bulma": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.8.2.tgz",
- "integrity": "sha512-vMM/ijYSxX+Sm+nD7Lmc1UgWDy2JcL2nTKqwgEqXuOMU+IGALbXd5MLt/BcjBAPLIx36TtzhzBcSnOP974gcqA=="
- },
- "bulma-checkradio": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/bulma-checkradio/-/bulma-checkradio-1.1.1.tgz",
- "integrity": "sha512-6Wn2faBiFkctSeiaQkeU2MbjkQeuXsN4AthBDEKrHGGPl5wmV2GEj4iZCqzvw7Te7baaHdU8PbUgrmlD5D6oGA=="
- },
- "bulma-switch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/bulma-switch/-/bulma-switch-2.0.0.tgz",
- "integrity": "sha512-myD38zeUfjmdduq+pXabhJEe3x2hQP48l/OI+Y0fO3HdDynZUY/VJygucvEAJKRjr4HxD5DnEm4yx+oDOBXpAA=="
- },
"bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -3576,11 +3396,6 @@
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
"dev": true
},
- "chroma-js": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-1.1.1.tgz",
- "integrity": "sha1-m7lDSVkzbs51cAqq3+7ccYBtjAU="
- },
"chrome-trace-event": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
@@ -3702,6 +3517,11 @@
"shallow-clone": "^3.0.0"
}
},
+ "clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
+ },
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -4175,11 +3995,25 @@
}
}
},
+ "css-vendor": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
+ "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
+ "requires": {
+ "@babel/runtime": "^7.8.3",
+ "is-in-browser": "^1.0.2"
+ }
+ },
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
"integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
},
+ "csscolorparser": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
+ "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs="
+ },
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -4232,6 +4066,11 @@
"cssom": "0.3.x"
}
},
+ "csstype": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz",
+ "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A=="
+ },
"currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -4691,6 +4530,22 @@
"utila": "~0.4"
}
},
+ "dom-helpers": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz",
+ "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==",
+ "requires": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz",
+ "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA=="
+ }
+ }
+ },
"dom-serializer": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
@@ -4707,11 +4562,6 @@
}
}
},
- "dom-to-image": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/dom-to-image/-/dom-to-image-2.6.0.tgz",
- "integrity": "sha1-ilA2CAiMh7HCL5A0rgMuGJiVWGc="
- },
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
@@ -4868,11 +4718,6 @@
}
}
},
- "email-addresses": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz",
- "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg=="
- },
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -5037,11 +4882,6 @@
"is-symbol": "^1.0.2"
}
},
- "es6-promise-polyfill": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz",
- "integrity": "sha1-84kl8jyz4+jObNqP93T867sJDN4="
- },
"escalade": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz",
@@ -6112,41 +5952,12 @@
}
}
},
- "file-saver": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz",
- "integrity": "sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg=="
- },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"optional": true
},
- "filename-reserved-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
- "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q="
- },
- "filenamify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
- "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
- "requires": {
- "filename-reserved-regex": "^1.0.0",
- "strip-outer": "^1.0.0",
- "trim-repeated": "^1.0.0"
- }
- },
- "filenamify-url": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz",
- "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=",
- "requires": {
- "filenamify": "^1.0.0",
- "humanize-url": "^1.0.0"
- }
- },
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -6384,16 +6195,6 @@
}
}
},
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
"fs-write-stream-atomic": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@@ -6539,6 +6340,11 @@
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
"integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="
},
+ "geojson-vt": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/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.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -6571,18 +6377,10 @@
"assert-plus": "^1.0.0"
}
},
- "gh-pages": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz",
- "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==",
- "requires": {
- "async": "^2.6.1",
- "commander": "^2.18.0",
- "email-addresses": "^3.0.1",
- "filenamify-url": "^1.0.0",
- "fs-extra": "^8.1.0",
- "globby": "^6.1.0"
- }
+ "gl-matrix": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz",
+ "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA=="
},
"glob": {
"version": "7.1.6",
@@ -6659,6 +6457,7 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
"integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
"requires": {
"array-union": "^1.0.1",
"glob": "^7.0.3",
@@ -6670,7 +6469,8 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
}
}
},
@@ -6690,6 +6490,11 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
},
+ "grid-index": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
+ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA=="
+ },
"growly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -7073,20 +6878,16 @@
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
"dev": true
},
- "humanize-url": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz",
- "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=",
- "requires": {
- "normalize-url": "^1.0.0",
- "strip-url-auth": "^1.0.0"
- }
- },
"hyphen": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/hyphen/-/hyphen-1.6.2.tgz",
"integrity": "sha512-WcyRGy0kB+QcSlgV9ovP4UQ7E+LpDCv7q9gziO2Q2eqpJ4AtHVfVhNXxlW0EBKgUMmcEHecQKy9AWdm2EavW1Q=="
},
+ "hyphenate-style-name": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -7107,8 +6908,7 @@
"ieee754": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
- "dev": true
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
},
"iferr": {
"version": "0.1.5",
@@ -7518,6 +7318,11 @@
"is-extglob": "^2.1.1"
}
},
+ "is-in-browser": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
+ "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
+ },
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
@@ -7569,7 +7374,8 @@
"is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
},
"is-plain-object": {
"version": "2.0.4",
@@ -7648,11 +7454,6 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
- "ismobilejs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
- "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw=="
- },
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
@@ -8299,14 +8100,6 @@
"minimist": "^1.2.5"
}
},
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -8318,6 +8111,91 @@
"verror": "1.10.0"
}
},
+ "jss": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss/-/jss-10.4.0.tgz",
+ "integrity": "sha512-l7EwdwhsDishXzqTc3lbsbyZ83tlUl5L/Hb16pHCvZliA9lRDdNBZmHzeJHP0sxqD0t1mrMmMR8XroR12JBYzw==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "csstype": "^3.0.2",
+ "is-in-browser": "^1.1.3",
+ "tiny-warning": "^1.0.2"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz",
+ "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA=="
+ }
+ }
+ },
+ "jss-plugin-camel-case": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.4.0.tgz",
+ "integrity": "sha512-9oDjsQ/AgdBbMyRjc06Kl3P8lDCSEts2vYZiPZfGAxbGCegqE4RnMob3mDaBby5H9vL9gWmyyImhLRWqIkRUCw==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "hyphenate-style-name": "^1.0.3",
+ "jss": "10.4.0"
+ }
+ },
+ "jss-plugin-default-unit": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.4.0.tgz",
+ "integrity": "sha512-BYJ+Y3RUYiMEgmlcYMLqwbA49DcSWsGgHpVmEEllTC8MK5iJ7++pT9TnKkKBnNZZxTV75ycyFCR5xeLSOzVm4A==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.4.0"
+ }
+ },
+ "jss-plugin-global": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.4.0.tgz",
+ "integrity": "sha512-b8IHMJUmv29cidt3nI4bUI1+Mo5RZE37kqthaFpmxf5K7r2aAegGliAw4hXvA70ca6ckAoXMUl4SN/zxiRcRag==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.4.0"
+ }
+ },
+ "jss-plugin-nested": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.4.0.tgz",
+ "integrity": "sha512-cKgpeHIxAP0ygeWh+drpLbrxFiak6zzJ2toVRi/NmHbpkNaLjTLgePmOz5+67ln3qzJiPdXXJB1tbOyYKAP4Pw==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.4.0",
+ "tiny-warning": "^1.0.2"
+ }
+ },
+ "jss-plugin-props-sort": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.4.0.tgz",
+ "integrity": "sha512-j/t0R40/2fp+Nzt6GgHeUFnHVY2kPGF5drUVlgkcwYoHCgtBDOhTTsOfdaQFW6sHWfoQYgnGV4CXdjlPiRrzwA==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.4.0"
+ }
+ },
+ "jss-plugin-rule-value-function": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.4.0.tgz",
+ "integrity": "sha512-w8504Cdfu66+0SJoLkr6GUQlEb8keHg8ymtJXdVHWh0YvFxDG2l/nS93SI5Gfx0fV29dO6yUugXnKzDFJxrdFQ==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "jss": "10.4.0",
+ "tiny-warning": "^1.0.2"
+ }
+ },
+ "jss-plugin-vendor-prefixer": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.4.0.tgz",
+ "integrity": "sha512-DpF+/a+GU8hMh/948sBGnKSNfKkoHg2p9aRFUmyoyxgKjOeH9n74Ht3Yt8lOgdZsuWNJbPrvaa3U4PXKwxVpTQ==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "css-vendor": "^2.0.8",
+ "jss": "10.4.0"
+ }
+ },
"jsx-ast-utils": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
@@ -8328,6 +8206,11 @@
"object.assign": "^4.1.0"
}
},
+ "kdbush": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz",
+ "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
+ },
"killable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@@ -8359,30 +8242,6 @@
"language-subtag-registry": "~0.3.2"
}
},
- "leaflet": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz",
- "integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ=="
- },
- "leaflet-easyprint": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/leaflet-easyprint/-/leaflet-easyprint-2.1.9.tgz",
- "integrity": "sha1-7Tlcfh43elzdlE98wHIW/q6duDM=",
- "requires": {
- "dom-to-image": "^2.5.2",
- "file-saver": "^1.3.3"
- }
- },
- "leaflet-pixi-overlay": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/leaflet-pixi-overlay/-/leaflet-pixi-overlay-1.8.1.tgz",
- "integrity": "sha512-YEAvD5vGuhCvVnlcgMxQyh5wIKDtfRoDXUp/iLd3HNY+mOLhVKMqogQXmyBbzjn4eYkzAOVRF1DBPJaCjYrb8w=="
- },
- "leaflet.markercluster": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz",
- "integrity": "sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw=="
- },
"left-pad": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
@@ -8460,63 +8319,6 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
},
- "lodash._arraymap": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz",
- "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY="
- },
- "lodash._basecallback": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz",
- "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=",
- "requires": {
- "lodash._baseisequal": "^3.0.0",
- "lodash._bindcallback": "^3.0.0",
- "lodash.isarray": "^3.0.0",
- "lodash.pairs": "^3.0.0"
- }
- },
- "lodash._baseeach": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz",
- "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=",
- "requires": {
- "lodash.keys": "^3.0.0"
- }
- },
- "lodash._baseget": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz",
- "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ="
- },
- "lodash._baseisequal": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz",
- "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=",
- "requires": {
- "lodash.isarray": "^3.0.0",
- "lodash.istypedarray": "^3.0.0",
- "lodash.keys": "^3.0.0"
- }
- },
- "lodash._bindcallback": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
- "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4="
- },
- "lodash._getnative": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
- },
- "lodash._topath": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz",
- "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=",
- "requires": {
- "lodash.isarray": "^3.0.0"
- }
- },
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
@@ -8529,117 +8331,24 @@
"integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=",
"dev": true
},
- "lodash.filter": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
- "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4="
- },
"lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
"integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
"dev": true
},
- "lodash.foreach": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
- "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM="
- },
- "lodash.isarguments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
- },
- "lodash.isarray": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
- },
"lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
"dev": true
},
- "lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
- },
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
"dev": true
},
- "lodash.istypedarray": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz",
- "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I="
- },
- "lodash.keys": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "requires": {
- "lodash._getnative": "^3.0.0",
- "lodash.isarguments": "^3.0.0",
- "lodash.isarray": "^3.0.0"
- }
- },
- "lodash.map": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
- "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM="
- },
- "lodash.max": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz",
- "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o="
- },
- "lodash.min": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.min/-/lodash.min-4.0.1.tgz",
- "integrity": "sha1-SsG5qLr4ttKKaQ1xZRJRDPwUcIw="
- },
- "lodash.pairs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz",
- "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=",
- "requires": {
- "lodash.keys": "^3.0.0"
- }
- },
- "lodash.pluck": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.pluck/-/lodash.pluck-3.1.2.tgz",
- "integrity": "sha1-s0fwN0wBafDusE1nLYnOyGMsIjE=",
- "requires": {
- "lodash._baseget": "^3.0.0",
- "lodash._topath": "^3.0.0",
- "lodash.isarray": "^3.0.0",
- "lodash.map": "^3.0.0"
- },
- "dependencies": {
- "lodash.map": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-3.1.4.tgz",
- "integrity": "sha1-tIOs0beGxce0ksSV97UmYim8AMI=",
- "requires": {
- "lodash._arraymap": "^3.0.0",
- "lodash._basecallback": "^3.0.0",
- "lodash._baseeach": "^3.0.0",
- "lodash.isarray": "^3.0.0",
- "lodash.keys": "^3.0.0"
- }
- }
- }
- },
- "lodash.reduce": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
- "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs="
- },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -8732,6 +8441,36 @@
"object-visit": "^1.0.0"
}
},
+ "mapbox-gl": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.12.0.tgz",
+ "integrity": "sha512-B3URR4qY9R/Bx+DKqP8qmGCai8IOZYMSZF7ZSvcCZaYTaOYhQQi8ErTEDZtFMOR0ZPj7HFWOkkhl5SqvDfpJpA==",
+ "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"
+ }
+ },
"md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
@@ -9028,11 +8767,6 @@
}
}
},
- "mini-signals": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mini-signals/-/mini-signals-1.2.0.tgz",
- "integrity": "sha1-RbCAE8X65RokqhqTXNMXye1yHXQ="
- },
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -9154,6 +8888,11 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true
},
+ "murmurhash-js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
+ "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E="
+ },
"mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@@ -9462,6 +9201,7 @@
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
"integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
"requires": {
"object-assign": "^4.0.1",
"prepend-http": "^1.0.0",
@@ -9473,6 +9213,7 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
"integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
"requires": {
"object-assign": "^4.1.0",
"strict-uri-encode": "^1.0.0"
@@ -9891,11 +9632,6 @@
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
- "parse-uri": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.3.tgz",
- "integrity": "sha512-upMnGxNcm+45So85HoguwZTVZI9u11i36DdxJfGF2HYWS2eh3TIx7+/tTi7qrEq15qzGkVhsKjesau+kCk48pA=="
- },
"parse5": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
@@ -9973,6 +9709,15 @@
"pify": "^3.0.0"
}
},
+ "pbf": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
+ "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==",
+ "requires": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ }
+ },
"pbkdf2": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
@@ -10006,12 +9751,14 @@
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
"requires": {
"pinkie": "^2.0.0"
}
@@ -10024,47 +9771,6 @@
"node-modules-regexp": "^1.0.0"
}
},
- "pixi.js": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.3.3.tgz",
- "integrity": "sha512-uFQOXXyPMAVVayDebSFBS1AFfPT6QYNuz9Vu11yI2/k1DAef/rbYoJpSMM6SeB6dezDJPtIAaXXNxdaYzbe+kg==",
- "requires": {
- "@pixi/accessibility": "5.3.3",
- "@pixi/app": "5.3.3",
- "@pixi/constants": "5.3.3",
- "@pixi/core": "5.3.3",
- "@pixi/display": "5.3.3",
- "@pixi/extract": "5.3.3",
- "@pixi/filter-alpha": "5.3.3",
- "@pixi/filter-blur": "5.3.3",
- "@pixi/filter-color-matrix": "5.3.3",
- "@pixi/filter-displacement": "5.3.3",
- "@pixi/filter-fxaa": "5.3.3",
- "@pixi/filter-noise": "5.3.3",
- "@pixi/graphics": "5.3.3",
- "@pixi/interaction": "5.3.3",
- "@pixi/loaders": "5.3.3",
- "@pixi/math": "5.3.3",
- "@pixi/mesh": "5.3.3",
- "@pixi/mesh-extras": "5.3.3",
- "@pixi/mixin-cache-as-bitmap": "5.3.3",
- "@pixi/mixin-get-child-by-name": "5.3.3",
- "@pixi/mixin-get-global-position": "5.3.3",
- "@pixi/particles": "5.3.3",
- "@pixi/polyfill": "5.3.3",
- "@pixi/prepare": "5.3.3",
- "@pixi/runner": "5.3.3",
- "@pixi/settings": "5.3.3",
- "@pixi/sprite": "5.3.3",
- "@pixi/sprite-animated": "5.3.3",
- "@pixi/sprite-tiling": "5.3.3",
- "@pixi/spritesheet": "5.3.3",
- "@pixi/text": "5.3.3",
- "@pixi/text-bitmap": "5.3.3",
- "@pixi/ticker": "5.3.3",
- "@pixi/utils": "5.3.3"
- }
- },
"pkg-dir": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
@@ -10202,6 +9908,11 @@
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
"dev": true
},
+ "potpack": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz",
+ "integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw=="
+ },
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -10210,7 +9921,8 @@
"prepend-http": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
},
"pretty-error": {
"version": "2.1.1",
@@ -10297,6 +10009,11 @@
"resolved": "https://registry.npmjs.org/proptypes/-/proptypes-1.1.0.tgz",
"integrity": "sha1-eLOCilqmuxMIk54N48YETf1L0jk="
},
+ "protocol-buffers-schema": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz",
+ "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA=="
+ },
"proxy-addr": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
@@ -10407,7 +10124,8 @@
"querystring": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
},
"querystring-es3": {
"version": "0.2.1",
@@ -10421,6 +10139,11 @@
"integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
"dev": true
},
+ "quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
+ },
"raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
@@ -10544,77 +10267,6 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
- "react-leaflet": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-2.7.0.tgz",
- "integrity": "sha512-pMf5eRyWU8RH9HohM2i0NZymcWHraJA1m6iMFYu94/01PAaBJpOyxORZJmN6cV9dBzkVWaLjAAHTNmxbwIpcfw==",
- "requires": {
- "@babel/runtime": "^7.9.2",
- "fast-deep-equal": "^3.1.1",
- "hoist-non-react-statics": "^3.3.2",
- "warning": "^4.0.3"
- }
- },
- "react-leaflet-choropleth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/react-leaflet-choropleth/-/react-leaflet-choropleth-2.0.1.tgz",
- "integrity": "sha512-OACZWbcPgQ+WI2LxI6xalHQukTcHAolcSd+ZbNtNmMOK4xN1ITWRPb8bFIPlVmofh6iYFv7SGlz8YrkjeDSQ5g==",
- "requires": {
- "chroma-js": "1.1.1"
- }
- },
- "react-leaflet-control": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/react-leaflet-control/-/react-leaflet-control-2.1.2.tgz",
- "integrity": "sha512-xdheoLuLEeDGZ6/FKsnKjMYxC9BlyxsK5L5S27Dd6Z+FYP4jIa1Ekhu7UDgTV7GGSw+Yjjf8uofoheylxggB6w=="
- },
- "react-leaflet-easyprint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/react-leaflet-easyprint/-/react-leaflet-easyprint-2.0.0.tgz",
- "integrity": "sha512-MASgFifsXnq6wJUuUFn6MlNxwJKERGodvnmDuBEfxyfgIv7ZWIhqPywffdELoA2DJB47joeuxYpSBt8XAWHnxA==",
- "requires": {
- "leaflet-easyprint": "^2.1.9"
- }
- },
- "react-leaflet-heatmap-layer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/react-leaflet-heatmap-layer/-/react-leaflet-heatmap-layer-2.0.0.tgz",
- "integrity": "sha512-mgzXLPASseUtHpzK9P34cOiJeC3C/rL1/3Pcmc67HFEhutCr7EumUtlbBaPToEdlRjrTqIo4N6ANdLm9keVnYQ==",
- "requires": {
- "lodash.filter": "^4.3.0",
- "lodash.foreach": "^4.2.0",
- "lodash.isnumber": "^3.0.3",
- "lodash.map": "^4.3.0",
- "lodash.max": "^4.0.0",
- "lodash.min": "^4.0.0",
- "lodash.pluck": "^3.1.2",
- "lodash.reduce": "^4.3.0",
- "simpleheat": "^0.4.0"
- }
- },
- "react-leaflet-markercluster": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/react-leaflet-markercluster/-/react-leaflet-markercluster-2.0.0.tgz",
- "integrity": "sha512-X1OuaMf4LeAQap638+X46+AN7ZqJKZse84o964brKj4AVVifs4fKCxTTFH6+MoyIarbWvF8x6tJ4vxT2BtxLYg==",
- "requires": {
- "leaflet": "^1.6.0",
- "leaflet.markercluster": "^1.4.1",
- "react-leaflet": "^2.6.3"
- }
- },
- "react-leaflet-pixi-overlay": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/react-leaflet-pixi-overlay/-/react-leaflet-pixi-overlay-1.0.5.tgz",
- "integrity": "sha512-iIfomGLsFk5PPpN31wcK891qHU9wqwfCwM6LT651PE/BPHYkmc7W1TPstXdabtSCxr+i908SE0Ix/E8MNFMFNw==",
- "requires": {
- "leaflet": "^1.6.0",
- "leaflet-pixi-overlay": "^1.8.1",
- "pixi.js": "^5.2.0",
- "react": "^16.12.0",
- "react-leaflet": "^2.6.1",
- "use-leaflet": "^1.6.1"
- }
- },
"react-motion": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz",
@@ -10786,6 +10438,17 @@
}
}
},
+ "react-transition-group": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
+ "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
+ "requires": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ }
+ },
"react-vis": {
"version": "1.11.7",
"resolved": "https://registry.npmjs.org/react-vis/-/react-vis-1.11.7.tgz",
@@ -11142,20 +10805,19 @@
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
+ "resolve-protobuf-schema": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
+ "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
+ "requires": {
+ "protocol-buffers-schema": "^3.3.1"
+ }
+ },
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
},
- "resource-loader": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/resource-loader/-/resource-loader-3.0.1.tgz",
- "integrity": "sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA==",
- "requires": {
- "mini-signals": "^1.2.0",
- "parse-uri": "^1.0.0"
- }
- },
"restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@@ -11619,11 +11281,6 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
- "simpleheat": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/simpleheat/-/simpleheat-0.4.0.tgz",
- "integrity": "sha1-4t6NRUj88aaWC2Nr+pOdBbzUmns="
- },
"sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@@ -11820,6 +11477,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
"integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
"requires": {
"is-plain-obj": "^1.0.0"
}
@@ -12317,19 +11975,6 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
- "strip-outer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
- "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
- "requires": {
- "escape-string-regexp": "^1.0.2"
- }
- },
- "strip-url-auth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz",
- "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164="
- },
"style-loader": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz",
@@ -12365,6 +12010,14 @@
}
}
},
+ "supercluster": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz",
+ "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==",
+ "requires": {
+ "kdbush": "^3.0.0"
+ }
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -12610,6 +12263,11 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
+ "tinyqueue": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
+ "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -12707,14 +12365,6 @@
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
"dev": true
},
- "trim-repeated": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
- "requires": {
- "escape-string-regexp": "^1.0.2"
- }
- },
"true-case-path": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
@@ -12804,8 +12454,7 @@
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"typescript-compare": {
"version": "0.0.2",
@@ -12921,11 +12570,6 @@
"imurmurhash": "^0.1.4"
}
},
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
- },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -13002,6 +12646,7 @@
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
"requires": {
"punycode": "1.3.2",
"querystring": "0.2.0"
@@ -13010,7 +12655,8 @@
"punycode": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
}
}
},
@@ -13029,11 +12675,6 @@
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
},
- "use-leaflet": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/use-leaflet/-/use-leaflet-1.6.1.tgz",
- "integrity": "sha512-a1MWzxpr+IEr8lIWifdhu/8V8O+JJrY3qhJ79VqamKOPiGf9YR9l91uAaxiWNBOAZgFfBd8ZnlFElYpfArPVnw=="
- },
"util": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
@@ -13125,6 +12766,16 @@
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
"dev": true
},
+ "vt-pbf": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz",
+ "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==",
+ "requires": {
+ "@mapbox/point-geometry": "0.1.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "pbf": "^3.0.5"
+ }
+ },
"w3c-hr-time": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
diff --git a/client/package.json b/client/package.json
index f51d7dc43..8cb30c08c 100644
--- a/client/package.json
+++ b/client/package.json
@@ -3,13 +3,12 @@
"version": "0.1.0",
"homepage": "https://www.311-data.org/",
"dependencies": {
+ "@material-ui/core": "^4.11.0",
+ "@material-ui/icons": "^4.9.1",
"@react-pdf/renderer": "^1.6.8",
"axios": "^0.19.0",
"babel-jest": "^24.9.0",
"bezier-easing": "^2.1.0",
- "bulma": "^0.8.0",
- "bulma-checkradio": "^1.1.1",
- "bulma-switch": "^2.0.0",
"chart.js": "^2.9.3",
"chartjs-chart-box-and-violin-plot": "^2.2.0",
"chartjs-plugin-datalabels": "^0.7.0",
@@ -20,28 +19,17 @@
"dotenv": "^8.2.0",
"dotenv-webpack": "^1.7.0",
"focus-visible": "^5.1.0",
- "gh-pages": "^2.1.1",
"html-webpack-plugin": "^3.2.0",
"html2canvas": "^1.0.0-rc.5",
"jest": "^24.9.0",
- "leaflet": "^1.5.1",
- "leaflet-pixi-overlay": "^1.8.1",
- "leaflet.markercluster": "^1.4.1",
+ "mapbox-gl": "^1.12.0",
"mixpanel-browser": "^2.36.0",
"moment": "^2.24.0",
- "pixi.js": "^5.3.3",
"proptypes": "^1.1.0",
"query-string": "^5.1.1",
"react": "^16.8.6",
"react-datepicker": "^2.12.1",
"react-dom": "^16.8.6",
- "react-leaflet": "^2.4.0",
- "react-leaflet-choropleth": "^2.0.0",
- "react-leaflet-control": "^2.1.2",
- "react-leaflet-easyprint": "^2.0.0",
- "react-leaflet-heatmap-layer": "^2.0.0",
- "react-leaflet-markercluster": "^2.0.0-rc3",
- "react-leaflet-pixi-overlay": "^1.0.5",
"react-redux": "^7.1.3",
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
diff --git a/client/public/index.html b/client/public/index.html
index 3cb063aed..f8323d854 100644
--- a/client/public/index.html
+++ b/client/public/index.html
@@ -6,24 +6,25 @@
-
+
-
+
-
+
+
+
<%= htmlWebpackPlugin.options.title %>
diff --git a/client/theme/colors.js b/client/theme/colors.js
new file mode 100644
index 000000000..004ada004
--- /dev/null
+++ b/client/theme/colors.js
@@ -0,0 +1,5 @@
+const primaryTextColor = '#FFFFFF';
+
+export default {
+ primaryTextColor,
+};
diff --git a/client/theme/theme.js b/client/theme/theme.js
new file mode 100644
index 000000000..318da8c7a
--- /dev/null
+++ b/client/theme/theme.js
@@ -0,0 +1,9 @@
+import { createMuiTheme } from '@material-ui/core/styles';
+
+const theme = createMuiTheme({
+ palette: {
+ type: 'dark',
+ },
+});
+
+export default theme;
diff --git a/client/v1/App.jsx b/client/v1/App.jsx
new file mode 100644
index 000000000..85ea17064
--- /dev/null
+++ b/client/v1/App.jsx
@@ -0,0 +1,47 @@
+import React, { useEffect } from 'react';
+import PropTypes from 'proptypes';
+import { connect } from 'react-redux';
+import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
+import 'focus-visible';
+import { getMetadataRequest } from '@reducers/metadata';
+
+import RouteChange from '@components/main/util/RouteChange';
+import actions from '@components/main/util/routeChangeActions';
+import CookieNotice from '@components/main/body/CookieNotice';
+import Header from '@components/main/header/Header';
+import Footer from '@components/main/footer/Footer';
+import StaticFooter from '@components/main/footer/StaticFooter';
+import { SnapshotRenderer } from '@components/export/SnapshotService';
+import Routes from './Routes';
+
+const App = ({
+ getMetadata,
+}) => {
+ useEffect(() => {
+ getMetadata();
+ });
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+const mapDispatchToProps = dispatch => ({
+ getMetadata: () => dispatch(getMetadataRequest()),
+});
+
+export default connect(null, mapDispatchToProps)(App);
+
+App.propTypes = {
+ getMetadata: PropTypes.func.isRequired,
+};
diff --git a/client/components/Chart/Chart.jsx b/client/v1/components/Chart/Chart.jsx
similarity index 96%
rename from client/components/Chart/Chart.jsx
rename to client/v1/components/Chart/Chart.jsx
index 70443e6f3..e451bb354 100644
--- a/client/components/Chart/Chart.jsx
+++ b/client/v1/components/Chart/Chart.jsx
@@ -101,6 +101,7 @@ class Chart extends React.Component {
titleInfo,
titleInfoPosition,
exportButton,
+ ariaLabelString,
} = this.props;
const { top, right } = this.state;
@@ -129,7 +130,7 @@ class Chart extends React.Component {
/>
)}
@@ -152,6 +153,7 @@ Chart.propTypes = {
exportButton: PropTypes.element,
className: PropTypes.string,
tooltip: PropTypes.func,
+ ariaLabelString: PropTypes.string,
};
Chart.defaultProps = {
@@ -163,4 +165,5 @@ Chart.defaultProps = {
exportButton: null,
className: undefined,
tooltip: undefined,
+ ariaLabelString: '',
};
diff --git a/client/components/Chart/ChartTooltip.jsx b/client/v1/components/Chart/ChartTooltip.jsx
similarity index 100%
rename from client/components/Chart/ChartTooltip.jsx
rename to client/v1/components/Chart/ChartTooltip.jsx
diff --git a/client/components/Chart/PieChart.jsx b/client/v1/components/Chart/PieChart.jsx
similarity index 96%
rename from client/components/Chart/PieChart.jsx
rename to client/v1/components/Chart/PieChart.jsx
index c26b2f170..55180fa06 100644
--- a/client/components/Chart/PieChart.jsx
+++ b/client/v1/components/Chart/PieChart.jsx
@@ -11,6 +11,7 @@ const PieChart = ({
exportable,
componentName,
pdfTemplateName,
+ ariaLabelString,
}) => {
// // SET ORDER OF SECTORS ////
// This weird code goes a long way towards ensuring that the sectors
@@ -122,6 +123,7 @@ const PieChart = ({
options={chartOptions}
datalabels
exportButton={exportButton}
+ ariaLabelString={ariaLabelString}
/>
);
};
@@ -140,6 +142,7 @@ PieChart.propTypes = {
exportable: PropTypes.bool,
componentName: PropTypes.string,
pdfTemplateName: PropTypes.string,
+ ariaLabelString: PropTypes.string,
};
PieChart.defaultProps = {
@@ -149,4 +152,5 @@ PieChart.defaultProps = {
exportable: true,
componentName: undefined,
pdfTemplateName: undefined,
+ ariaLabelString: '',
};
diff --git a/client/components/Chart/defaults.js b/client/v1/components/Chart/defaults.js
similarity index 100%
rename from client/components/Chart/defaults.js
rename to client/v1/components/Chart/defaults.js
diff --git a/client/components/Chart/index.js b/client/v1/components/Chart/index.js
similarity index 100%
rename from client/components/Chart/index.js
rename to client/v1/components/Chart/index.js
diff --git a/client/components/Chart/plugins.js b/client/v1/components/Chart/plugins.js
similarity index 100%
rename from client/components/Chart/plugins.js
rename to client/v1/components/Chart/plugins.js
diff --git a/client/components/Comparison/Contact311Comparison.jsx b/client/v1/components/Comparison/Contact311Comparison.jsx
similarity index 73%
rename from client/components/Comparison/Contact311Comparison.jsx
rename to client/v1/components/Comparison/Contact311Comparison.jsx
index dcedc8442..3c06c63ef 100644
--- a/client/components/Comparison/Contact311Comparison.jsx
+++ b/client/v1/components/Comparison/Contact311Comparison.jsx
@@ -67,6 +67,50 @@ const Contact311Comparison = ({
};
};
+ const ariaLabelGenerator = set => {
+ const labelDataSet = {};
+ let ariaLabel = '';
+
+ if (set === 1) {
+ labelDataSet.name = set1list;
+ labelDataSet.label = setSectors(set1counts);
+ } else {
+ labelDataSet.name = set2list;
+ labelDataSet.label = setSectors(set2counts);
+ }
+
+ let totalVal = 0;
+ const { name, label } = labelDataSet;
+ label.forEach(item => {
+ totalVal += item.value;
+ });
+
+ let count = 0;
+ const max = label.length;
+
+ let setNames = '';
+ name.forEach(n => {
+ // eslint-disable-next-line no-unused-expressions
+ setNames === ''
+ ? setNames += ` ${n}`
+ : setNames += `, ${n}`;
+ });
+
+ while (count < max) {
+ const percent = ((label[count].value / totalVal) * 100).toFixed(1);
+ // eslint-disable-next-line no-unused-expressions
+ (ariaLabel === '')
+ ? ariaLabel = `This pie chart looks at how people contacted Neighborhood Council Set ${set} :${setNames}. ${label[count].label}: ${percent}% of contact methods.`
+ : ariaLabel += ` ${label[count].label}: ${percent}% of contact methods.`;
+ count += 1;
+ }
+
+ return ariaLabel;
+ };
+
+ const setOneAriaLabelString = ariaLabelGenerator(1);
+ const setTwoAriaLabelString = ariaLabelGenerator(2);
+
return (
{`${set1name}${set1list.length > 1 ? 's' : ''} (Set 1):`}
{ set1list.join(', ')}
@@ -94,6 +139,7 @@ const Contact311Comparison = ({
sectors={setSectors(set2counts)}
addLabels
exportable={false}
+ ariaLabelString={setTwoAriaLabelString}
/>
{`${set2name}${set2list.length > 1 ? 's' : ''} (Set 2):`}
{ set2list.join(', ') }
diff --git a/client/components/Comparison/FrequencyComparison.jsx b/client/v1/components/Comparison/FrequencyComparison.jsx
similarity index 76%
rename from client/components/Comparison/FrequencyComparison.jsx
rename to client/v1/components/Comparison/FrequencyComparison.jsx
index 3c489c679..f0a30239a 100644
--- a/client/components/Comparison/FrequencyComparison.jsx
+++ b/client/v1/components/Comparison/FrequencyComparison.jsx
@@ -95,6 +95,34 @@ const FrequencyComparison = ({
},
};
+ const ariaLabelGenerator = () => {
+ const { labels, datasets } = chartData;
+ const setOneData = datasets[0].data;
+ const setTwoData = datasets[1].data;
+ const dataLabels = labels;
+ let ariaLabel = '';
+ let count = 0;
+
+ if (dataLabels.length === 0) {
+ return ariaLabel;
+ }
+
+ while (count < dataLabels.length) {
+ if (ariaLabel === '') {
+ ariaLabel = (
+ `This table displays datasets comparing request frequencies for selected request types for ${datasets[0].label} and ${datasets[1].label}. Starting ${dataLabels[count]}, there were ${setOneData[count]} for ${datasets[0].label} and ${setTwoData[count]} for ${datasets[1].label}.`
+ );
+ } else {
+ ariaLabel += ` Starting ${dataLabels[count]}, there were ${setOneData[count]} for ${datasets[0].label} and ${setTwoData[count]} for ${datasets[1].label}.`;
+ }
+ count += 1;
+ }
+
+ return ariaLabel;
+ };
+
+ const ariaLabelString = ariaLabelGenerator();
+
return (
);
};
diff --git a/client/components/Comparison/TimeToCloseComparison.jsx b/client/v1/components/Comparison/TimeToCloseComparison.jsx
similarity index 80%
rename from client/components/Comparison/TimeToCloseComparison.jsx
rename to client/v1/components/Comparison/TimeToCloseComparison.jsx
index c8bc3311b..0ebc261d4 100644
--- a/client/components/Comparison/TimeToCloseComparison.jsx
+++ b/client/v1/components/Comparison/TimeToCloseComparison.jsx
@@ -70,6 +70,24 @@ const TimeToCloseComparison = ({
return
;
};
+ const generateAriaLabelString = () => {
+ const { labels, datasets } = chartData;
+ const targetData = datasets[0].data;
+ let string = '';
+
+ let count = 0;
+ const totalDistricts = datasets[0].data.length;
+ while (count < totalDistricts) {
+ string += (
+ `${labels[count]}: ${targetData[count].count} total requests. Minimum time to close was ${(targetData[count].min).toFixed(2)} days. Maximum time to close was ${(targetData[count].max).toFixed(2)} days. 25% were closed in ${(targetData[count].q1).toFixed(2)} days. 50% were closed in ${(targetData[count].median).toFixed(2)} days. 75% were closed in ${(targetData[count].q3).toFixed(2)} days.
+ `
+ );
+ count += 1;
+ }
+
+ return string;
+ };
+ const AriaLabelString = generateAriaLabelString();
/* /// EXPORT /// */
const exportData = () => {
@@ -127,6 +145,7 @@ const TimeToCloseComparison = ({
height={Math.max(160, 130 + (chartData.labels.length * 40))}
exportButton={exportButton}
tooltip={tooltip}
+ ariaLabelString={AriaLabelString}
/>
);
};
diff --git a/client/components/Comparison/TotalRequestsComparison.jsx b/client/v1/components/Comparison/TotalRequestsComparison.jsx
similarity index 76%
rename from client/components/Comparison/TotalRequestsComparison.jsx
rename to client/v1/components/Comparison/TotalRequestsComparison.jsx
index e01fd5b47..8385cbee1 100644
--- a/client/components/Comparison/TotalRequestsComparison.jsx
+++ b/client/v1/components/Comparison/TotalRequestsComparison.jsx
@@ -42,6 +42,32 @@ const TotalRequestsComparison = ({
getDataSet('set2'),
],
};
+ const generateAriaLabelString = () => {
+ const { labels, datasets } = chartData;
+ const setOneData = datasets[0].data;
+ const setTwoData = datasets[1].data;
+ const dataLabels = labels;
+ let ariaLabel = '';
+ let count = 0;
+
+ if (dataLabels.length === 0) {
+ return ariaLabel;
+ }
+
+ while (count < dataLabels.length) {
+ if (ariaLabel === '') {
+ ariaLabel = (
+ `This table displays datasets comparing total requests of selected request types for ${datasets[0].label} and ${datasets[1].label}. Starting ${dataLabels[count]}, there were ${setOneData[count]} for ${datasets[0].label} and ${setTwoData[count]} for ${datasets[1].label}.`
+ );
+ } else {
+ ariaLabel += ` Starting ${dataLabels[count]}, there were ${setOneData[count]} for ${datasets[0].label} and ${setTwoData[count]} for ${datasets[1].label}.`;
+ }
+ count += 1;
+ }
+
+ return ariaLabel;
+ };
+ const ariaLabelString = generateAriaLabelString();
/* /// EXPORT /// */
@@ -103,6 +129,7 @@ const TotalRequestsComparison = ({
data={chartData}
options={chartOptions}
exportButton={exportButton}
+ ariaLabelString={ariaLabelString}
/>
);
};
diff --git a/client/components/Comparison/index.jsx b/client/v1/components/Comparison/index.jsx
similarity index 100%
rename from client/components/Comparison/index.jsx
rename to client/v1/components/Comparison/index.jsx
diff --git a/client/components/PinMap/ClusterMarker.jsx b/client/v1/components/PinMap/ClusterMarker.jsx
similarity index 100%
rename from client/components/PinMap/ClusterMarker.jsx
rename to client/v1/components/PinMap/ClusterMarker.jsx
diff --git a/client/components/PinMap/CustomMarker.jsx b/client/v1/components/PinMap/CustomMarker.jsx
similarity index 100%
rename from client/components/PinMap/CustomMarker.jsx
rename to client/v1/components/PinMap/CustomMarker.jsx
diff --git a/client/components/PinMap/DotsLayer.jsx b/client/v1/components/PinMap/DotsLayer.jsx
similarity index 100%
rename from client/components/PinMap/DotsLayer.jsx
rename to client/v1/components/PinMap/DotsLayer.jsx
diff --git a/client/components/PinMap/ExportLegend.jsx b/client/v1/components/PinMap/ExportLegend.jsx
similarity index 100%
rename from client/components/PinMap/ExportLegend.jsx
rename to client/v1/components/PinMap/ExportLegend.jsx
diff --git a/client/components/PinMap/HeatmapLegend.jsx b/client/v1/components/PinMap/HeatmapLegend.jsx
similarity index 100%
rename from client/components/PinMap/HeatmapLegend.jsx
rename to client/v1/components/PinMap/HeatmapLegend.jsx
diff --git a/client/components/PinMap/MapboxWordmark.jsx b/client/v1/components/PinMap/MapboxWordmark.jsx
similarity index 100%
rename from client/components/PinMap/MapboxWordmark.jsx
rename to client/v1/components/PinMap/MapboxWordmark.jsx
diff --git a/client/components/PinMap/PinMap.jsx b/client/v1/components/PinMap/PinMap.jsx
similarity index 71%
rename from client/components/PinMap/PinMap.jsx
rename to client/v1/components/PinMap/PinMap.jsx
index 07a8a4c94..46fd5557b 100644
--- a/client/components/PinMap/PinMap.jsx
+++ b/client/v1/components/PinMap/PinMap.jsx
@@ -59,20 +59,95 @@ class PinMap extends Component {
heatmapVisible: false,
zoomBreak: 14,
zoomThresholdMet: false,
+ ariaStatement: '',
};
this.container = React.createRef();
}
componentDidMount() {
- this.setDimensions();
+ const { filters } = this.props;
+ this.setDimensions(filters);
this.setState({ ready: true });
window.addEventListener('resize', this.setDimensions);
}
+ componentDidUpdate(prevProps) {
+ const { filters } = this.props;
+ const { ariaStatement } = this.state;
+ if (prevProps !== this.props) {
+ this.updateAriaStatement(filters);
+ // eslint-disable-next-line no-underscore-dangle
+ this.map._container.ariaLabel = ariaStatement;
+ }
+ }
+
componentWillUnmount() {
window.removeEventListener('resize', this.setDimensions);
}
+ updateRequestString = requestTypes => {
+ let requests = '';
+
+ Object.keys(requestTypes).forEach(key => {
+ if (requestTypes[key] === true) {
+ if (requests === '') {
+ requests += ` ${key}`;
+ } else {
+ requests += `, ${key}`;
+ }
+ }
+ });
+
+ return requests;
+ }
+
+ updateCouncilString = councils => {
+ let neighborhoodCouncil = '';
+
+ councils.forEach(council => {
+ // eslint-disable-next-line no-unused-expressions
+ (neighborhoodCouncil === '')
+ ? neighborhoodCouncil = ` in ${council} neighborhood council`
+ : neighborhoodCouncil += `, ${council} neighborhood council`;
+ });
+
+ return neighborhoodCouncil;
+ }
+
+ updateRequestBreakdown = pins => {
+ let requestsBreakdown = '';
+ const pinsPerRequestType = {};
+
+ pins.forEach(pin => {
+ const request = pin.requesttype;
+ // eslint-disable-next-line no-unused-expressions
+ Object.prototype.hasOwnProperty.call(pinsPerRequestType, request)
+ ? pinsPerRequestType[request] += 1
+ : pinsPerRequestType[request] = 1;
+ });
+
+ Object.keys(pinsPerRequestType).forEach(key => {
+ // eslint-disable-next-line no-unused-expressions
+ (requestsBreakdown === '')
+ ? requestsBreakdown = ` There were ${pinsPerRequestType[key]} ${key} requests`
+ : requestsBreakdown += `, ${pinsPerRequestType[key]} ${key} requests`;
+ });
+
+ return requestsBreakdown;
+ }
+
+ updateAriaStatement = filters => {
+ const { requestTypes, dateRange, councils } = filters;
+ const { pins } = this.props;
+ const pinLength = pins.length;
+ const requests = this.updateRequestString(requestTypes);
+ const requestsBreakdown = this.updateRequestBreakdown(pins);
+ const neighborhoodCouncil = this.updateCouncilString(councils);
+ this.setState({
+ ariaStatement: `Map displaying ${pinLength}${requests} 311 requests for ${dateRange || 'no date range'}${neighborhoodCouncil}.${requestsBreakdown}`,
+ });
+ }
+
setDimensions = () => {
this.setState({
width: this.container.current.offsetWidth,
@@ -141,6 +216,7 @@ class PinMap extends Component {
mouseover: this.highlightRegion,
mouseout: this.resetRegionHighlight,
click: this.zoomToRegion,
+ focus: this.zoomToRegion,
});
}
@@ -271,12 +347,33 @@ class PinMap extends Component {
markersVisible,
dotsVisible,
zoomThresholdMet,
+ ariaStatement,
} = this.state;
const { heatmap, pins } = this.props;
+ const handleExportMap = () => {
+ const { exportMap } = this.props;
+ const selector = '.leaflet-control-easyPrint .CurrentSize';
+ const link = document.body.querySelector(selector);
+ if (link) link.click();
+ exportMap();
+ };
+
return (
<>
+