Migrate the map editor to mapbox-gl with react component
This commit is contained in:
parent
92edbd1724
commit
9aea1fffee
17 changed files with 5424 additions and 19 deletions
199
app/javascript/components/MapEditor/MapEditor.js
Normal file
199
app/javascript/components/MapEditor/MapEditor.js
Normal file
|
@ -0,0 +1,199 @@
|
|||
import React, { useState, useRef, useEffect } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import mapboxgl from 'mapbox-gl';
|
||||
import ReactMapboxGl, { GeoJSONLayer, ZoomControl } from 'react-mapbox-gl';
|
||||
import DrawControl from 'react-mapbox-gl-draw';
|
||||
import area from '@turf/area';
|
||||
import SwitchMapStyle from './SwitchMapStyle';
|
||||
import SearchInput from './SearchInput';
|
||||
import { fire } from '@utils';
|
||||
import ortho from './styles/ortho.json';
|
||||
import vector from './styles/vector.json';
|
||||
import {
|
||||
createFeatureCollection,
|
||||
polygonCadastresFill,
|
||||
polygonCadastresLine,
|
||||
ERROR_GEO_JSON
|
||||
} from './utils';
|
||||
import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css';
|
||||
|
||||
const Map = ReactMapboxGl({});
|
||||
|
||||
const MapEditor = ({ featureCollection: { features, bbox, id } }) => {
|
||||
const drawControl = useRef(null);
|
||||
const [style, setStyle] = useState('ortho');
|
||||
const [coords, setCoords] = useState([1.7, 46.9]);
|
||||
const [zoom, setZoom] = useState([5]);
|
||||
const [currentMap, setCurrentMap] = useState({});
|
||||
let input = document.querySelector(
|
||||
`input[data-feature-collection-id="${id}"]`
|
||||
);
|
||||
|
||||
let userSelections = features.filter(
|
||||
feature => feature.properties.source === 'selection_utilisateur'
|
||||
);
|
||||
|
||||
let cadastresFeatureCollection = {
|
||||
type: 'FeatureCollection',
|
||||
features: []
|
||||
};
|
||||
|
||||
const constructCadastresFeatureCollection = features => {
|
||||
for (let feature of features) {
|
||||
switch (feature.properties.source) {
|
||||
case 'cadastre':
|
||||
cadastresFeatureCollection.features.push(feature);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
constructCadastresFeatureCollection(features);
|
||||
|
||||
const mapStyle = style === 'ortho' ? ortho : vector;
|
||||
|
||||
const saveFeatureCollection = featuresToSave => {
|
||||
const featuresCollection = createFeatureCollection(featuresToSave);
|
||||
if (area(featuresCollection) < 300000) {
|
||||
input.value = JSON.stringify(featuresCollection);
|
||||
} else {
|
||||
input.value = ERROR_GEO_JSON;
|
||||
}
|
||||
fire(input, 'change');
|
||||
};
|
||||
|
||||
const onDrawCreate = ({ features }) => {
|
||||
const draw = drawControl.current.draw;
|
||||
const featureId = features[0].id;
|
||||
draw.setFeatureProperty(featureId, 'id', featureId);
|
||||
draw.setFeatureProperty(featureId, 'source', 'selection_utilisateur');
|
||||
userSelections.push(draw.get(featureId));
|
||||
saveFeatureCollection(userSelections);
|
||||
};
|
||||
|
||||
const onDrawUpdate = ({ features }) => {
|
||||
let featureId = features[0].properties.id;
|
||||
userSelections = userSelections.map(selection => {
|
||||
if (selection.properties.id === featureId) {
|
||||
selection = features[0];
|
||||
}
|
||||
return selection;
|
||||
});
|
||||
saveFeatureCollection(userSelections);
|
||||
};
|
||||
|
||||
const onDrawDelete = ({ features }) => {
|
||||
userSelections = userSelections.filter(
|
||||
selection => selection.properties.id !== features[0].properties.id
|
||||
);
|
||||
saveFeatureCollection(userSelections);
|
||||
};
|
||||
|
||||
const onMapLoad = map => {
|
||||
setCurrentMap(map);
|
||||
if (userSelections.length > 0) {
|
||||
userSelections.map((selection, index) => {
|
||||
selection.properties.id = index + 1;
|
||||
drawControl.current.draw.add(selection);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const onMapUpdate = evt => {
|
||||
if (currentMap) {
|
||||
cadastresFeatureCollection.features = [];
|
||||
constructCadastresFeatureCollection(
|
||||
evt.detail.featureCollection.features
|
||||
);
|
||||
currentMap
|
||||
.getSource('cadastres-layer')
|
||||
.setData(cadastresFeatureCollection);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
addEventListener('map:update', onMapUpdate);
|
||||
return () => removeEventListener('map:update', onMapUpdate);
|
||||
});
|
||||
|
||||
if (!mapboxgl.supported()) {
|
||||
return (
|
||||
<p>
|
||||
Nous ne pouvons pas afficher notre éditeur de carte car il est
|
||||
imcompatible avec votre navigateur. Nous vous conseillons de le mettre à
|
||||
jour ou utiliser les dernières versions de Chrome, Firefox ou Safari
|
||||
</p>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
style={{
|
||||
marginBottom: '62px'
|
||||
}}
|
||||
>
|
||||
<SearchInput
|
||||
getCoords={searchTerm => {
|
||||
setCoords(searchTerm);
|
||||
setZoom([17]);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<Map
|
||||
onStyleLoad={map => onMapLoad(map)}
|
||||
fitBounds={bbox}
|
||||
fitBoundsOptions={{ padding: 100 }}
|
||||
center={coords}
|
||||
zoom={zoom}
|
||||
style={mapStyle}
|
||||
containerStyle={{
|
||||
height: '500px'
|
||||
}}
|
||||
>
|
||||
<GeoJSONLayer
|
||||
id="cadastres-layer"
|
||||
data={cadastresFeatureCollection}
|
||||
fillPaint={polygonCadastresFill}
|
||||
linePaint={polygonCadastresLine}
|
||||
/>
|
||||
<DrawControl
|
||||
ref={drawControl}
|
||||
onDrawCreate={onDrawCreate}
|
||||
onDrawUpdate={onDrawUpdate}
|
||||
onDrawDelete={onDrawDelete}
|
||||
displayControlsDefault={false}
|
||||
controls={{
|
||||
point: true,
|
||||
line_string: true,
|
||||
polygon: true,
|
||||
trash: true
|
||||
}}
|
||||
/>
|
||||
<div
|
||||
className="style-switch"
|
||||
style={{
|
||||
position: 'absolute',
|
||||
bottom: 0,
|
||||
left: 0
|
||||
}}
|
||||
onClick={() =>
|
||||
style === 'ortho' ? setStyle('vector') : setStyle('ortho')
|
||||
}
|
||||
>
|
||||
<SwitchMapStyle isVector={style === 'vector' ? true : false} />
|
||||
</div>
|
||||
<ZoomControl />
|
||||
</Map>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
MapEditor.propTypes = {
|
||||
featureCollection: PropTypes.shape({
|
||||
bbox: PropTypes.array,
|
||||
features: PropTypes.array,
|
||||
id: PropTypes.number
|
||||
})
|
||||
};
|
||||
|
||||
export default MapEditor;
|
99
app/javascript/components/MapEditor/SearchInput.js
Normal file
99
app/javascript/components/MapEditor/SearchInput.js
Normal file
|
@ -0,0 +1,99 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
import { getJSON } from '@utils';
|
||||
import {
|
||||
Combobox,
|
||||
ComboboxInput,
|
||||
ComboboxPopover,
|
||||
ComboboxList,
|
||||
ComboboxOption
|
||||
} from '@reach/combobox';
|
||||
import '@reach/combobox/styles.css';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
let cache = {};
|
||||
const useAddressSearch = searchTerm => {
|
||||
const [addresses, setAddresses] = useState([]);
|
||||
useEffect(() => {
|
||||
if (searchTerm.trim() !== '') {
|
||||
let isFresh = true;
|
||||
fetchAddresses(searchTerm).then(addresses => {
|
||||
if (isFresh) setAddresses(addresses);
|
||||
});
|
||||
return () => (isFresh = false);
|
||||
}
|
||||
}, [searchTerm]);
|
||||
return addresses;
|
||||
};
|
||||
|
||||
const fetchAddresses = value => {
|
||||
if (cache[value]) {
|
||||
return Promise.resolve(cache[value]);
|
||||
}
|
||||
const url = `https://api-adresse.data.gouv.fr/search/`;
|
||||
return getJSON(url, { q: value, limit: 5 }, 'get').then(result => {
|
||||
if (result) {
|
||||
cache[value] = result;
|
||||
}
|
||||
return result;
|
||||
});
|
||||
};
|
||||
|
||||
const SearchInput = ({ getCoords }) => {
|
||||
const [searchTerm, setSearchTerm] = useState('');
|
||||
const addresses = useAddressSearch(searchTerm);
|
||||
const handleSearchTermChange = event => {
|
||||
setSearchTerm(event.target.value);
|
||||
};
|
||||
return (
|
||||
<Combobox aria-label="addresses">
|
||||
<ComboboxInput
|
||||
placeholder="Saisissez au moins 2 caractères"
|
||||
className="address-search-input"
|
||||
style={{
|
||||
font: 'inherit',
|
||||
padding: '.25rem .5rem',
|
||||
width: '100%',
|
||||
minHeight: '62px'
|
||||
}}
|
||||
onChange={handleSearchTermChange}
|
||||
/>
|
||||
{addresses.features && (
|
||||
<ComboboxPopover
|
||||
style={{
|
||||
borderTopColor: '#ddd',
|
||||
marginTop: '-1px',
|
||||
boxShadow: '0 2px 4px rgba(0,0,0,.15)',
|
||||
position: 'absolute',
|
||||
width: '400px',
|
||||
left: '351px',
|
||||
top: '5562px'
|
||||
}}
|
||||
className="shadow-popup"
|
||||
>
|
||||
{addresses.features.length > 0 ? (
|
||||
<ComboboxList>
|
||||
{addresses.features.map(feature => {
|
||||
const str = `${feature.properties.name}, ${feature.properties.city}`;
|
||||
return (
|
||||
<ComboboxOption
|
||||
onClick={() => getCoords(feature.geometry.coordinates)}
|
||||
key={str}
|
||||
value={str}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</ComboboxList>
|
||||
) : (
|
||||
<span style={{ display: 'block', margin: 8 }}>Aucun résultat</span>
|
||||
)}
|
||||
</ComboboxPopover>
|
||||
)}
|
||||
</Combobox>
|
||||
);
|
||||
};
|
||||
|
||||
SearchInput.propTypes = {
|
||||
getCoords: PropTypes.func
|
||||
};
|
||||
|
||||
export default SearchInput;
|
40
app/javascript/components/MapEditor/SwitchMapStyle.js
Normal file
40
app/javascript/components/MapEditor/SwitchMapStyle.js
Normal file
|
@ -0,0 +1,40 @@
|
|||
import React from 'react';
|
||||
import ortho from './images/preview-ortho.png';
|
||||
import vector from './images/preview-vector.png';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
const SwitchMapStyle = ({ isVector }) => {
|
||||
const style = isVector ? 'Satellite' : 'Vectoriel';
|
||||
const source = `${isVector ? ortho : vector}`;
|
||||
|
||||
const imgStyle = {
|
||||
width: '100%',
|
||||
height: '100%'
|
||||
};
|
||||
|
||||
const textStyle = {
|
||||
position: 'relative',
|
||||
bottom: '26px',
|
||||
left: '4px',
|
||||
color: `${isVector ? '#fff' : '#000'}`
|
||||
};
|
||||
return (
|
||||
<div className="switch-style mapboxgl-ctrl-swith-map-style">
|
||||
<img alt={style} style={imgStyle} src={source} />
|
||||
<div className="text" style={textStyle}>
|
||||
{style}
|
||||
</div>
|
||||
<style jsx>{`
|
||||
img:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
`}</style>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
SwitchMapStyle.propTypes = {
|
||||
isVector: PropTypes.bool
|
||||
};
|
||||
|
||||
export default SwitchMapStyle;
|
BIN
app/javascript/components/MapEditor/images/preview-ortho.png
Normal file
BIN
app/javascript/components/MapEditor/images/preview-ortho.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
app/javascript/components/MapEditor/images/preview-vector.png
Normal file
BIN
app/javascript/components/MapEditor/images/preview-vector.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
2292
app/javascript/components/MapEditor/styles/ortho.json
Normal file
2292
app/javascript/components/MapEditor/styles/ortho.json
Normal file
File diff suppressed because it is too large
Load diff
2460
app/javascript/components/MapEditor/styles/vector.json
Normal file
2460
app/javascript/components/MapEditor/styles/vector.json
Normal file
File diff suppressed because it is too large
Load diff
18
app/javascript/components/MapEditor/utils.js
Normal file
18
app/javascript/components/MapEditor/utils.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
export const ERROR_GEO_JSON = '';
|
||||
export const createFeatureCollection = selectionsUtilisateur => {
|
||||
return {
|
||||
type: 'FeatureCollection',
|
||||
features: selectionsUtilisateur
|
||||
};
|
||||
};
|
||||
|
||||
export const polygonCadastresFill = {
|
||||
'fill-color': '#EC3323',
|
||||
'fill-opacity': 0.3
|
||||
};
|
||||
|
||||
export const polygonCadastresLine = {
|
||||
'line-color': 'rgba(255, 0, 0, 1)',
|
||||
'line-width': 4,
|
||||
'line-dasharray': [1, 1]
|
||||
};
|
3
app/javascript/loaders/MapEditor.js
Normal file
3
app/javascript/loaders/MapEditor.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
import Loadable from '../components/Loadable';
|
||||
|
||||
export default Loadable(() => import('../components/MapEditor/MapEditor'));
|
|
@ -4,5 +4,8 @@
|
|||
partial: 'shared/champs/carte/geo_areas',
|
||||
locals: { champ: @champ, error: @error }) %>
|
||||
|
||||
<%= fire_event('carte:update', { selector: @selector, data: @champ.to_render_data }.to_json) %>
|
||||
<% if feature_enabled?(:new_map_editor) %>
|
||||
<%= fire_event('map:update', { featureCollection: @champ.to_feature_collection }.to_json) %>
|
||||
<% else %>
|
||||
<%= fire_event('carte:update', { selector: @selector, data: @champ.to_render_data }.to_json) %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
|
||||
- if feature_enabled?(:new_map_editor)
|
||||
= react_component("MapEditor", { featureCollection: champ.to_feature_collection }, class: "carte-#{form.index}")
|
||||
- else
|
||||
.toolbar
|
||||
%button.button.primary.new-area Ajouter une zone
|
||||
%select.select2.adresse{ data: { address: true }, placeholder: 'Saisissez une adresse ou positionner la carte' }
|
||||
|
||||
.carte.edit{ data: { geo: geo_data(champ) }, class: "carte-#{form.index}" }
|
||||
|
||||
.geo-areas
|
||||
= render partial: 'shared/champs/carte/geo_areas', locals: { champ: champ, error: false }
|
||||
|
||||
= form.hidden_field :value,
|
||||
data: { remote: true, url: champs_carte_path(form.index), params: champ_carte_params(champ).to_query, method: 'post' }
|
||||
data: { remote: true, feature_collection_id: champ.type_de_champ.stable_id, url: champs_carte_path(form.index), params: champ_carte_params(champ).to_query, method: 'post' }
|
||||
|
|
|
@ -7,6 +7,8 @@ Rails.application.config.assets.version = '1.0'
|
|||
Rails.application.config.assets.paths << Rails.root.join('node_modules', 'trix', 'dist')
|
||||
Rails.application.config.assets.paths << Rails.root.join('node_modules', 'select2', 'dist', 'css')
|
||||
Rails.application.config.assets.paths << Rails.root.join('node_modules', 'mapbox-gl', 'dist')
|
||||
Rails.application.config.assets.paths << Rails.root.join('node_modules', '@reach', 'combobox')
|
||||
Rails.application.config.assets.paths << Rails.root.join('node_modules', '@mapbox', 'mapbox-gl-draw', 'dist')
|
||||
|
||||
# Precompile additional assets.
|
||||
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
||||
|
|
|
@ -8,7 +8,7 @@ Rails.application.config.content_security_policy do |policy|
|
|||
# c'est trop compliqué pour être rectifié immédiatement (et sans valeur ajoutée:
|
||||
# c'est hardcodé dans les vues, donc pas injectable).
|
||||
policy.style_src :self, "*.crisp.chat", "crisp.chat", :unsafe_inline
|
||||
policy.connect_src :self, "wss://*.crisp.chat", "*.crisp.chat", "*.demarches-simplifiees.fr", "in-automate.sendinblue.com", "app.franceconnect.gouv.fr", "sentry.io", "geo.api.gouv.fr", "api-adresse.data.gouv.fr", "openmaptiles.geo.data.gouv.fr", "openmaptiles.github.io"
|
||||
policy.connect_src :self, "wss://*.crisp.chat", "*.crisp.chat", "*.demarches-simplifiees.fr", "in-automate.sendinblue.com", "app.franceconnect.gouv.fr", "sentry.io", "geo.api.gouv.fr", "api-adresse.data.gouv.fr", "openmaptiles.geo.data.gouv.fr", "openmaptiles.github.io", "tiles.geo.api.gouv.fr"
|
||||
# Pour tout le reste, par défaut on accepte uniquement ce qui vient de chez nous
|
||||
# et dans la notification on inclue la source de l'erreur
|
||||
policy.default_src :self, :data, :report_sample, "fonts.gstatic.com", "in-automate.sendinblue.com", "player.vimeo.com", "app.franceconnect.gouv.fr", "sentry.io", "static.demarches-simplifiees.fr", "*.crisp.chat", "crisp.chat", "*.crisp.help", "*.sibautomation.com", "sibautomation.com", "data"
|
||||
|
|
|
@ -32,6 +32,7 @@ features = [
|
|||
:instructeur_bypass_email_login_token,
|
||||
:autosave_dossier_draft,
|
||||
:autoupload_dossier_attachments,
|
||||
:new_map_editor,
|
||||
:maintenance_mode,
|
||||
:mini_profiler,
|
||||
:operation_log_serialize_subject,
|
||||
|
|
|
@ -255,10 +255,10 @@ ActiveRecord::Schema.define(version: 2020_04_22_090426) do
|
|||
t.datetime "brouillon_close_to_expiration_notice_sent_at"
|
||||
t.datetime "groupe_instructeur_updated_at"
|
||||
t.datetime "en_construction_close_to_expiration_notice_sent_at"
|
||||
t.interval "en_construction_conservation_extension", default: "PT0S"
|
||||
t.datetime "termine_close_to_expiration_notice_sent_at"
|
||||
t.index "to_tsvector('french'::regconfig, (search_terms || private_search_terms))", name: "index_dossiers_on_search_terms_private_search_terms", using: :gin
|
||||
t.index "to_tsvector('french'::regconfig, search_terms)", name: "index_dossiers_on_search_terms", using: :gin
|
||||
t.interval "en_construction_conservation_extension", default: "00:00:00"
|
||||
t.datetime "termine_close_to_expiration_notice_sent_at"
|
||||
t.index ["archived"], name: "index_dossiers_on_archived"
|
||||
t.index ["groupe_instructeur_id"], name: "index_dossiers_on_groupe_instructeur_id"
|
||||
t.index ["hidden_at"], name: "index_dossiers_on_hidden_at"
|
||||
|
|
|
@ -4,10 +4,12 @@
|
|||
"@fortawesome/fontawesome-svg-core": "^1.2.26",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.12.0",
|
||||
"@fortawesome/react-fontawesome": "^0.1.8",
|
||||
"@mapbox/mapbox-gl-draw": "^1.1.2",
|
||||
"@rails/actiontext": "^6.0.2-1",
|
||||
"@rails/activestorage": "^6.0.2-1",
|
||||
"@rails/ujs": "^6.0.2-1",
|
||||
"@rails/webpacker": "4.2.2",
|
||||
"@reach/combobox": "^0.10.0",
|
||||
"@sentry/browser": "^5.11.2",
|
||||
"@turf/area": "^6.0.1",
|
||||
"babel-plugin-macros": "^2.8.0",
|
||||
|
@ -29,6 +31,7 @@
|
|||
"react-intersection-observer": "^8.25.2",
|
||||
"react-loadable": "^5.5.0",
|
||||
"react-mapbox-gl": "^4.8.3",
|
||||
"react-mapbox-gl-draw": "^2.0.4",
|
||||
"react-scroll-to-component": "^1.0.2",
|
||||
"react-sortable-hoc": "^1.11.0",
|
||||
"react_ujs": "^2.6.1",
|
||||
|
|
299
yarn.lock
299
yarn.lock
|
@ -957,13 +957,41 @@
|
|||
dependencies:
|
||||
prop-types "^15.5.10"
|
||||
|
||||
"@mapbox/geojson-area@0.2.2":
|
||||
"@mapbox/extent@0.4.0":
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/extent/-/extent-0.4.0.tgz#3e591f32e1f0c3981c864239f7b0ac06e610f8a9"
|
||||
integrity sha1-PlkfMuHww5gchkI597CsBuYQ+Kk=
|
||||
|
||||
"@mapbox/geojson-area@0.2.2", "@mapbox/geojson-area@^0.2.1":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz#18d7814aa36bf23fbbcc379f8e26a22927debf10"
|
||||
integrity sha1-GNeBSqNr8j+7zDefjiaiKSfevxA=
|
||||
dependencies:
|
||||
wgs84 "0.0.0"
|
||||
|
||||
"@mapbox/geojson-coords@0.0.0":
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-coords/-/geojson-coords-0.0.0.tgz#4847a5b96059666e527a2139e75e35d84fd58f50"
|
||||
integrity sha1-SEeluWBZZm5SeiE551412E/Vj1A=
|
||||
dependencies:
|
||||
"@mapbox/geojson-normalize" "0.0.1"
|
||||
geojson-flatten "~0.2.1"
|
||||
|
||||
"@mapbox/geojson-extent@^0.3.2":
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-extent/-/geojson-extent-0.3.2.tgz#a1bdb2015afd0e031c18c3f29f7eb229e4e1950f"
|
||||
integrity sha1-ob2yAVr9DgMcGMPyn36yKeThlQ8=
|
||||
dependencies:
|
||||
"@mapbox/extent" "0.4.0"
|
||||
"@mapbox/geojson-coords" "0.0.0"
|
||||
rw "~0.1.4"
|
||||
traverse "~0.6.6"
|
||||
|
||||
"@mapbox/geojson-normalize@0.0.1":
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-normalize/-/geojson-normalize-0.0.1.tgz#1da1e6b3a7add3ad29909b30f438f60581b7cd80"
|
||||
integrity sha1-HaHms6et060pkJsw9Dj2BYG3zYA=
|
||||
|
||||
"@mapbox/geojson-rewind@^0.4.0":
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-rewind/-/geojson-rewind-0.4.1.tgz#357d79300adb7fec7c1f091512988bca6458f068"
|
||||
|
@ -979,11 +1007,36 @@
|
|||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz#9aecf642cb00eab1080a57c4f949a65b4a5846d6"
|
||||
integrity sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==
|
||||
|
||||
"@mapbox/geojsonhint@^2.0.0":
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojsonhint/-/geojsonhint-2.2.0.tgz#75ca94706e9a56e6debf4e1c78fabdc67978b883"
|
||||
integrity sha512-8qQYRB+/2z2JsN5s6D0WAnpo69+3V3nvJsSFLwMB1dsaWz1V4oZeuoje9srbYAxxL8PXCwIywfhYa3GxOkBv5Q==
|
||||
dependencies:
|
||||
concat-stream "^1.6.1"
|
||||
jsonlint-lines "1.7.1"
|
||||
minimist "1.2.0"
|
||||
vfile "^4.0.0"
|
||||
vfile-reporter "^5.1.1"
|
||||
|
||||
"@mapbox/jsonlint-lines-primitives@^2.0.2":
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz#ce56e539f83552b58d10d672ea4d6fc9adc7b234"
|
||||
integrity sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=
|
||||
|
||||
"@mapbox/mapbox-gl-draw@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.1.2.tgz#247b3f0727db34c2641ab718df5eebeee69a2585"
|
||||
integrity sha512-DWtATUAnJaGZYoH/y2O+QTRybxrp5y3w3eV5FXHFNVcKsCAojKEMB8ALKUG2IsiCKqV/JCAguK9AlPWR7Bjafw==
|
||||
dependencies:
|
||||
"@mapbox/geojson-area" "^0.2.1"
|
||||
"@mapbox/geojson-extent" "^0.3.2"
|
||||
"@mapbox/geojson-normalize" "0.0.1"
|
||||
"@mapbox/geojsonhint" "^2.0.0"
|
||||
"@mapbox/point-geometry" "0.1.0"
|
||||
hat "0.0.3"
|
||||
lodash.isequal "^4.2.0"
|
||||
xtend "^4.0.1"
|
||||
|
||||
"@mapbox/mapbox-gl-supported@^1.4.0":
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz#f60b6a55a5d8e5ee908347d2ce4250b15103dc8e"
|
||||
|
@ -1086,6 +1139,78 @@
|
|||
webpack-cli "^3.3.10"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
"@reach/auto-id@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/auto-id/-/auto-id-0.10.0.tgz#72b70b9bb3f7d0f39b9fae0dcb412168ee139762"
|
||||
integrity sha512-Uwsd4eNFa5YteZ7DKCVIbhE3c8x9DYVwtLy6ZCl1jo6bXAF6Di1dYm/XnkTmo+OYoKOZlVTu7umONDeezY33rQ==
|
||||
dependencies:
|
||||
"@reach/utils" "^0.10.0"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@reach/combobox@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/combobox/-/combobox-0.10.0.tgz#5735a0f8c32019402dad7590562e5ccdb92e760a"
|
||||
integrity sha512-UMgPPF3s8pcO+GQ8lT1qmyxZri2NuEX/HLPhNJlog7V7yBCdCRrFT5KdLDlIqg6I3jHy52n9Q4DrxMJiLp1ZJw==
|
||||
dependencies:
|
||||
"@reach/auto-id" "^0.10.0"
|
||||
"@reach/descendants" "^0.10.0"
|
||||
"@reach/popover" "^0.10.0"
|
||||
"@reach/portal" "^0.10.0"
|
||||
"@reach/utils" "^0.10.0"
|
||||
highlight-words-core "1.2.2"
|
||||
prop-types "^15.7.2"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@reach/descendants@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/descendants/-/descendants-0.10.0.tgz#43eeba4aea10ffc62fe5144248c1455ab317964b"
|
||||
integrity sha512-G7wm0poMVR+aT9W5O8C6cnrZBYskIAfgBfPwByOY7F6TwEj7HqHDs7tZ/3Paj6UIZZ9lkVfhHPEGGvfOpEXhlg==
|
||||
dependencies:
|
||||
"@reach/utils" "^0.10.0"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@reach/observe-rect@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.1.0.tgz#4e967a93852b6004c3895d9ed8d4e5b41895afde"
|
||||
integrity sha512-kE+jvoj/OyJV24C03VvLt5zclb9ArJi04wWXMMFwQvdZjdHoBlN4g0ZQFjyy/ejPF1Z/dpUD5dhRdBiUmIGZTA==
|
||||
|
||||
"@reach/popover@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/popover/-/popover-0.10.0.tgz#054601f98ef1616a0d439be4dafd8cf7ac172da6"
|
||||
integrity sha512-Iff9qHuJypxdG7a6IiAZFFgpbfQK9v3FH+GDsdZiKLbtmRDIMC3AM8ebkBTKUAnEsumHekBrk8cf9WAIJVz1jg==
|
||||
dependencies:
|
||||
"@reach/portal" "^0.10.0"
|
||||
"@reach/rect" "^0.10.0"
|
||||
"@reach/utils" "^0.10.0"
|
||||
tabbable "^4.0.0"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@reach/portal@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/portal/-/portal-0.10.0.tgz#ed119d796de1b5ea7c975007fa6b2e507bc7567e"
|
||||
integrity sha512-soXCiLDWcyXMgs1pArjdt67d+IARu1rpkOmHWD3c7XDE2hanWVeQiGC4L8UVNrm51pWrCDtLH1R446tG6uNz2Q==
|
||||
dependencies:
|
||||
"@reach/utils" "^0.10.0"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@reach/rect@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/rect/-/rect-0.10.0.tgz#5e9310592f1a9413382c4a8a80e96ca167d2f32d"
|
||||
integrity sha512-fZLZiBDc/ZDSNnNFZCQFHOw4v8QLI/DjWbX+JecXVGIhgwBUl4+3cJVmlthk/FUrndO7cQ8vjFWzEhB4o2mOnw==
|
||||
dependencies:
|
||||
"@reach/observe-rect" "^1.1.0"
|
||||
"@reach/utils" "^0.10.0"
|
||||
prop-types "^15.7.2"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@reach/utils@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.10.0.tgz#480332433f9d0232aff2c36374cf9a2fe559990b"
|
||||
integrity sha512-qPiwjw8jcT7JYrVT+ZO7bLTVEdp9KyvY0RO1emyCxqpYVr4s9oSZ3XG6n7G+bvnKeyjpbpIfCVfxYvPF1Uq2DQ==
|
||||
dependencies:
|
||||
tslib "^1.10.0"
|
||||
warning "^4.0.3"
|
||||
|
||||
"@sentry/browser@^5.11.2":
|
||||
version "5.15.4"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.15.4.tgz#5a7e7bad088556665ed8e69bceb0e18784e4f6c7"
|
||||
|
@ -1226,6 +1351,11 @@
|
|||
dependencies:
|
||||
"@types/geojson" "*"
|
||||
|
||||
"@types/unist@^2.0.0", "@types/unist@^2.0.2":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
|
||||
integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==
|
||||
|
||||
"@webassemblyjs/ast@1.9.0":
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
|
||||
|
@ -1381,6 +1511,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
||||
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
||||
|
||||
"JSV@>= 4.0.x":
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57"
|
||||
integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
|
@ -1550,6 +1685,11 @@ ansi-styles@^4.1.0:
|
|||
"@types/color-name" "^1.1.1"
|
||||
color-convert "^2.0.1"
|
||||
|
||||
ansi-styles@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
|
||||
integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=
|
||||
|
||||
ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
|
||||
|
@ -2279,6 +2419,15 @@ chalk@^3.0.0:
|
|||
ansi-styles "^4.1.0"
|
||||
supports-color "^7.1.0"
|
||||
|
||||
chalk@~0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
|
||||
integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=
|
||||
dependencies:
|
||||
ansi-styles "~1.0.0"
|
||||
has-color "~0.1.0"
|
||||
strip-ansi "~0.1.0"
|
||||
|
||||
chardet@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
|
||||
|
@ -2613,7 +2762,7 @@ concat-map@0.0.1:
|
|||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||
|
||||
concat-stream@^1.5.0, concat-stream@~1.6.0:
|
||||
concat-stream@^1.5.0, concat-stream@^1.6.1, concat-stream@~1.6.0:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
|
||||
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
|
||||
|
@ -4199,6 +4348,14 @@ gensync@^1.0.0-beta.1:
|
|||
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
|
||||
integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==
|
||||
|
||||
geojson-flatten@~0.2.1:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/geojson-flatten/-/geojson-flatten-0.2.4.tgz#8f3396f31a0f5b747e39c9e6a14088f43ba4ecfb"
|
||||
integrity sha512-LiX6Jmot8adiIdZ/fthbcKKPOfWjTQchX/ggHnwMZ2e4b0I243N1ANUos0LvnzepTEsj0+D4fIJ5bKhBrWnAHA==
|
||||
dependencies:
|
||||
get-stdin "^6.0.0"
|
||||
minimist "1.2.0"
|
||||
|
||||
geojson-vt@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/geojson-vt/-/geojson-vt-3.2.1.tgz#f8adb614d2c1d3f6ee7c4265cad4bbf3ad60c8b7"
|
||||
|
@ -4490,6 +4647,11 @@ has-ansi@^2.0.0:
|
|||
dependencies:
|
||||
ansi-regex "^2.0.0"
|
||||
|
||||
has-color@~0.1.0:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
|
||||
integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
|
||||
|
||||
has-flag@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
||||
|
@ -4564,6 +4726,11 @@ hash.js@^1.0.0, hash.js@^1.0.3:
|
|||
inherits "^2.0.3"
|
||||
minimalistic-assert "^1.0.1"
|
||||
|
||||
hat@0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a"
|
||||
integrity sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=
|
||||
|
||||
hex-color-regex@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
|
||||
|
@ -4574,6 +4741,11 @@ highcharts@^8.0.0:
|
|||
resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-8.0.0.tgz#fcf77a511d6ea477b9d8447afd9dedbfc85e2727"
|
||||
integrity sha512-jRKLiP0i29zKSEgMDASyrfpivrM3e8V8yTv8YUZtRzB2mXR+hsBNHWZw2hNRZVxqq1QCVmW/9Z/BLFvYlJELqA==
|
||||
|
||||
highlight-words-core@1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/highlight-words-core/-/highlight-words-core-1.2.2.tgz#1eff6d7d9f0a22f155042a00791237791b1eeaaa"
|
||||
integrity sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==
|
||||
|
||||
highlight.js@~9.12.0:
|
||||
version "9.12.0"
|
||||
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e"
|
||||
|
@ -4969,6 +5141,11 @@ is-buffer@^1.1.5:
|
|||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
||||
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
||||
|
||||
is-buffer@^2.0.0:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
|
||||
integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
|
||||
|
||||
is-buffer@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
|
||||
|
@ -5338,6 +5515,14 @@ jsonfile@^4.0.0:
|
|||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonlint-lines@1.7.1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonlint-lines/-/jsonlint-lines-1.7.1.tgz#507de680d3fb8c4be1641cc57d6f679f29f178ff"
|
||||
integrity sha1-UH3mgNP7jEvhZBzFfW9nnynxeP8=
|
||||
dependencies:
|
||||
JSV ">= 4.0.x"
|
||||
nomnom ">= 1.5.x"
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||
|
@ -5566,6 +5751,11 @@ lodash.has@^4.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"
|
||||
integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=
|
||||
|
||||
lodash.isequal@^4.2.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
|
||||
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
|
||||
|
||||
lodash.memoize@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
||||
|
@ -5908,7 +6098,7 @@ minimist@0.0.8:
|
|||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||
|
||||
minimist@^1.1.3, minimist@^1.2.0:
|
||||
minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
|
||||
|
@ -6164,6 +6354,14 @@ node-sass@^4.13.0:
|
|||
stdout-stream "^1.4.0"
|
||||
"true-case-path" "^1.0.2"
|
||||
|
||||
"nomnom@>= 1.5.x":
|
||||
version "1.8.1"
|
||||
resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
|
||||
integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=
|
||||
dependencies:
|
||||
chalk "~0.4.0"
|
||||
underscore "~1.6.0"
|
||||
|
||||
"nopt@2 || 3":
|
||||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
|
||||
|
@ -7695,6 +7893,11 @@ react-loadable@^5.5.0:
|
|||
dependencies:
|
||||
prop-types "^15.5.0"
|
||||
|
||||
react-mapbox-gl-draw@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/react-mapbox-gl-draw/-/react-mapbox-gl-draw-2.0.4.tgz#476d70a6efc07c329fa61c11022bcdab60ac4b91"
|
||||
integrity sha512-oaBdIlyu+g7PhLUvwnCsl/wvu+5tGB9I3RLjcrYLt6U1sUMzQJqplKtVxXRv9TZqRdNaAU5qNOP+dRs55QKjsA==
|
||||
|
||||
react-mapbox-gl@^4.8.3:
|
||||
version "4.8.3"
|
||||
resolved "https://registry.yarnpkg.com/react-mapbox-gl/-/react-mapbox-gl-4.8.3.tgz#11f5901fe26a4c704a6a22e797bd69404c320e47"
|
||||
|
@ -7917,7 +8120,7 @@ repeat-element@^1.1.2:
|
|||
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
|
||||
integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
|
||||
|
||||
repeat-string@^1.6.1:
|
||||
repeat-string@^1.5.0, repeat-string@^1.6.1:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
|
||||
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
|
||||
|
@ -7929,7 +8132,7 @@ repeating@^2.0.0:
|
|||
dependencies:
|
||||
is-finite "^1.0.0"
|
||||
|
||||
replace-ext@^1.0.0:
|
||||
replace-ext@1.0.0, replace-ext@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
||||
integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
|
||||
|
@ -8114,6 +8317,11 @@ rw@^1.3.3:
|
|||
resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
|
||||
integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
|
||||
|
||||
rw@~0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/rw/-/rw-0.1.4.tgz#4903cbd80248ae0ede685bf58fd236a7a9b29a3e"
|
||||
integrity sha1-SQPL2AJIrg7eaFv1j9I2p6mymj4=
|
||||
|
||||
rxjs@^6.5.3:
|
||||
version "6.5.4"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
|
||||
|
@ -8768,6 +8976,11 @@ strip-ansi@^6.0.0:
|
|||
dependencies:
|
||||
ansi-regex "^5.0.0"
|
||||
|
||||
strip-ansi@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
|
||||
integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=
|
||||
|
||||
strip-bom@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
|
||||
|
@ -8828,7 +9041,7 @@ supports-color@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
|
||||
|
||||
supports-color@^5.3.0:
|
||||
supports-color@^5.0.0, supports-color@^5.3.0:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
||||
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
||||
|
@ -8861,6 +9074,11 @@ svgo@^1.0.0:
|
|||
unquote "~1.1.1"
|
||||
util.promisify "~1.0.0"
|
||||
|
||||
tabbable@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-4.0.0.tgz#5bff1d1135df1482cf0f0206434f15eadbeb9261"
|
||||
integrity sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ==
|
||||
|
||||
table@^5.2.3:
|
||||
version "5.4.6"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
|
||||
|
@ -9073,6 +9291,11 @@ tough-cookie@~2.5.0:
|
|||
psl "^1.1.28"
|
||||
punycode "^2.1.1"
|
||||
|
||||
traverse@~0.6.6:
|
||||
version "0.6.6"
|
||||
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
|
||||
integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
|
||||
|
||||
trim-newlines@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
|
||||
|
@ -9105,7 +9328,7 @@ ts-pnp@^1.1.6:
|
|||
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
|
||||
integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
|
||||
|
||||
tslib@^1.9.0, tslib@^1.9.3:
|
||||
tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3:
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
|
||||
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
|
||||
|
@ -9179,6 +9402,11 @@ unc-path-regex@^0.1.2:
|
|||
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
|
||||
integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo=
|
||||
|
||||
underscore@~1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
|
||||
integrity sha1-izixDKze9jM3uLJOT/htRa6lKag=
|
||||
|
||||
unicode-canonical-property-names-ecmascript@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
|
||||
|
@ -9244,6 +9472,13 @@ unique-stream@^2.0.2:
|
|||
json-stable-stringify-without-jsonify "^1.0.1"
|
||||
through2-filter "^3.0.0"
|
||||
|
||||
unist-util-stringify-position@^2.0.0:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
|
||||
integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==
|
||||
dependencies:
|
||||
"@types/unist" "^2.0.2"
|
||||
|
||||
universalify@^0.1.0:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||
|
@ -9391,6 +9626,47 @@ verror@1.10.0:
|
|||
core-util-is "1.0.2"
|
||||
extsprintf "^1.2.0"
|
||||
|
||||
vfile-message@^2.0.0:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a"
|
||||
integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==
|
||||
dependencies:
|
||||
"@types/unist" "^2.0.0"
|
||||
unist-util-stringify-position "^2.0.0"
|
||||
|
||||
vfile-reporter@^5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-5.1.2.tgz#80f1db5cbe8f9c12f2f30cce3e2cd18353a48519"
|
||||
integrity sha512-b15sTuss1wOPWVlyWOvu+n6wGJ/eTYngz3uqMLimQvxZ+Q5oFQGYZZP1o3dR9sk58G5+wej0UPCZSwQBX/mzrQ==
|
||||
dependencies:
|
||||
repeat-string "^1.5.0"
|
||||
string-width "^2.0.0"
|
||||
supports-color "^5.0.0"
|
||||
unist-util-stringify-position "^2.0.0"
|
||||
vfile-sort "^2.1.2"
|
||||
vfile-statistics "^1.1.0"
|
||||
|
||||
vfile-sort@^2.1.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190"
|
||||
integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==
|
||||
|
||||
vfile-statistics@^1.1.0:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245"
|
||||
integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==
|
||||
|
||||
vfile@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.0.tgz#d79248957f43225d57ff67a56effc67bef08946e"
|
||||
integrity sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==
|
||||
dependencies:
|
||||
"@types/unist" "^2.0.0"
|
||||
is-buffer "^2.0.0"
|
||||
replace-ext "1.0.0"
|
||||
unist-util-stringify-position "^2.0.0"
|
||||
vfile-message "^2.0.0"
|
||||
|
||||
vinyl-fs@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7"
|
||||
|
@ -9453,6 +9729,13 @@ vt-pbf@^3.1.1:
|
|||
"@mapbox/vector-tile" "^1.3.1"
|
||||
pbf "^3.0.5"
|
||||
|
||||
warning@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
|
||||
integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
watchpack@^1.6.0:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2"
|
||||
|
@ -9718,7 +10001,7 @@ xmlbuilder@^10.0.0:
|
|||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz#8cae6688cc9b38d850b7c8d3c0a4161dcaf475b0"
|
||||
integrity sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==
|
||||
|
||||
xtend@^4.0.0, xtend@~4.0.1:
|
||||
xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
||||
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
||||
|
|
Loading…
Reference in a new issue