mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[Maps] Use mapbox feature-state for dynamic properties and upgrade mapbox-gl to 0.54 (#36466) (#36860)
This commit is contained in:
parent
3b693993e7
commit
1015f48cf5
9 changed files with 129 additions and 90 deletions
|
@ -257,7 +257,7 @@
|
|||
"lodash.topath": "^4.5.2",
|
||||
"lodash.uniqby": "^4.7.0",
|
||||
"lz-string": "^1.4.4",
|
||||
"mapbox-gl": "0.52.0",
|
||||
"mapbox-gl": "0.54.0",
|
||||
"mapbox-gl-draw-rectangle-mode": "^1.0.4",
|
||||
"markdown-it": "^8.4.1",
|
||||
"mime": "^2.2.2",
|
||||
|
|
|
@ -24,6 +24,7 @@ export const SOURCE_DATA_ID_ORIGIN = 'source';
|
|||
|
||||
export const DECIMAL_DEGREES_PRECISION = 5; // meters precision
|
||||
export const ZOOM_PRECISION = 2;
|
||||
export const DEFAULT_ES_DOC_LIMIT = 2048;
|
||||
|
||||
export const FEATURE_ID_PROPERTY_NAME = '__kbn__feature_id__';
|
||||
|
||||
|
|
|
@ -4,6 +4,4 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
export const DEFAULT_ES_DOC_LIMIT = 2048;
|
||||
|
||||
export const DEFAULT_FILTER_BY_MAP_BOUNDS = true;
|
||||
|
|
|
@ -16,8 +16,8 @@ import { NoIndexPatternCallout } from '../../../components/no_index_pattern_call
|
|||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { kfetch } from 'ui/kfetch';
|
||||
import { ES_GEO_FIELD_TYPE, GIS_API_PATH } from '../../../../../common/constants';
|
||||
import { DEFAULT_ES_DOC_LIMIT, DEFAULT_FILTER_BY_MAP_BOUNDS } from './constants';
|
||||
import { ES_GEO_FIELD_TYPE, GIS_API_PATH, DEFAULT_ES_DOC_LIMIT } from '../../../../../common/constants';
|
||||
import { DEFAULT_FILTER_BY_MAP_BOUNDS } from './constants';
|
||||
|
||||
function filterGeoField(field) {
|
||||
return [ES_GEO_FIELD_TYPE.GEO_POINT, ES_GEO_FIELD_TYPE.GEO_SHAPE].includes(field.type);
|
||||
|
|
|
@ -14,13 +14,13 @@ import { SearchSource } from '../../../../kibana_services';
|
|||
import { hitsToGeoJson } from '../../../../elasticsearch_geo_utils';
|
||||
import { CreateSourceEditor } from './create_source_editor';
|
||||
import { UpdateSourceEditor } from './update_source_editor';
|
||||
import { ES_SEARCH, ES_GEO_FIELD_TYPE } from '../../../../../common/constants';
|
||||
import { ES_SEARCH, ES_GEO_FIELD_TYPE, DEFAULT_ES_DOC_LIMIT } from '../../../../../common/constants';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { getDataSourceLabel } from '../../../../../common/i18n_getters';
|
||||
import { ESTooltipProperty } from '../../tooltips/es_tooltip_property';
|
||||
import { getTermsFields } from '../../../utils/get_terms_fields';
|
||||
|
||||
import { DEFAULT_ES_DOC_LIMIT, DEFAULT_FILTER_BY_MAP_BOUNDS } from './constants';
|
||||
import { DEFAULT_FILTER_BY_MAP_BOUNDS } from './constants';
|
||||
|
||||
export class ESSearchSource extends AbstractESSource {
|
||||
|
||||
|
@ -54,7 +54,6 @@ export class ESSearchSource extends AbstractESSource {
|
|||
type: ESSearchSource.type,
|
||||
indexPatternId: descriptor.indexPatternId,
|
||||
geoField: descriptor.geoField,
|
||||
limit: _.get(descriptor, 'limit', DEFAULT_ES_DOC_LIMIT),
|
||||
filterByMapBounds: _.get(descriptor, 'filterByMapBounds', DEFAULT_FILTER_BY_MAP_BOUNDS),
|
||||
tooltipProperties: _.get(descriptor, 'tooltipProperties', []),
|
||||
}, inspectorAdapters);
|
||||
|
@ -129,7 +128,7 @@ export class ESSearchSource extends AbstractESSource {
|
|||
}
|
||||
|
||||
async getGeoJsonWithMeta(layerName, searchFilters) {
|
||||
const searchSource = await this._makeSearchSource(searchFilters, this._descriptor.limit);
|
||||
const searchSource = await this._makeSearchSource(searchFilters, DEFAULT_ES_DOC_LIMIT);
|
||||
// Setting "fields" instead of "source: { includes: []}"
|
||||
// because SearchSource automatically adds the following by default
|
||||
// 1) all scripted fields
|
||||
|
|
|
@ -303,12 +303,8 @@ export class VectorStyle extends AbstractStyle {
|
|||
return (<VectorStyleLegend styleProperties={styleProperties}/>);
|
||||
}
|
||||
|
||||
addScaledPropertiesBasedOnStyle(featureCollection) {
|
||||
if (!featureCollection || featureCollection.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const scaledFields = this.getDynamicPropertiesArray()
|
||||
_getScaledFields() {
|
||||
return this.getDynamicPropertiesArray()
|
||||
.map(({ options }) => {
|
||||
const name = options.field.name;
|
||||
return {
|
||||
|
@ -318,16 +314,46 @@ export class VectorStyle extends AbstractStyle {
|
|||
};
|
||||
})
|
||||
.filter(({ range }) => {
|
||||
return range;
|
||||
return !!range;
|
||||
});
|
||||
|
||||
if (scaledFields.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
clearFeatureState(featureCollection, mbMap, sourceId) {
|
||||
const tmpFeatureIdentifier = {
|
||||
source: null,
|
||||
id: null
|
||||
};
|
||||
for (let i = 0; i < featureCollection.features.length; i++) {
|
||||
const feature = featureCollection.features[i];
|
||||
tmpFeatureIdentifier.source = sourceId;
|
||||
tmpFeatureIdentifier.id = feature.id;
|
||||
mbMap.removeFeatureState(tmpFeatureIdentifier);
|
||||
}
|
||||
}
|
||||
|
||||
setFeatureState(featureCollection, mbMap, sourceId) {
|
||||
|
||||
if (!featureCollection) {
|
||||
return;
|
||||
}
|
||||
|
||||
const scaledFields = this._getScaledFields();
|
||||
if (scaledFields.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const tmpFeatureIdentifier = {
|
||||
source: null,
|
||||
id: null
|
||||
};
|
||||
const tmpFeatureState = {};
|
||||
|
||||
//scale to [0,1] domain
|
||||
featureCollection.features.forEach(feature => {
|
||||
scaledFields.forEach(({ name, range, computedName }) => {
|
||||
for (let i = 0; i < featureCollection.features.length; i++) {
|
||||
const feature = featureCollection.features[i];
|
||||
for (let j = 0; j < scaledFields.length; j++) {
|
||||
const { name, range, computedName } = scaledFields[j];
|
||||
const unscaledValue = parseFloat(feature.properties[name]);
|
||||
let scaledValue;
|
||||
if (isNaN(unscaledValue)) {//cannot scale
|
||||
|
@ -337,11 +363,12 @@ export class VectorStyle extends AbstractStyle {
|
|||
} else {
|
||||
scaledValue = (feature.properties[name] - range.min) / range.delta;
|
||||
}
|
||||
feature.properties[computedName] = scaledValue;
|
||||
});
|
||||
});
|
||||
|
||||
return true;
|
||||
tmpFeatureState[computedName] = scaledValue;
|
||||
}
|
||||
tmpFeatureIdentifier.source = sourceId;
|
||||
tmpFeatureIdentifier.id = feature.id;
|
||||
mbMap.setFeatureState(tmpFeatureIdentifier, tmpFeatureState);
|
||||
}
|
||||
}
|
||||
|
||||
_getMBDataDrivenColor({ fieldName, color }) {
|
||||
|
@ -354,7 +381,7 @@ export class VectorStyle extends AbstractStyle {
|
|||
return [
|
||||
'interpolate',
|
||||
['linear'],
|
||||
['coalesce', ['get', targetName], -1],
|
||||
['coalesce', ['feature-state', targetName], -1],
|
||||
-1, 'rgba(0,0,0,0)',
|
||||
...colorRange
|
||||
];
|
||||
|
@ -364,7 +391,7 @@ export class VectorStyle extends AbstractStyle {
|
|||
const targetName = VectorStyle.getComputedFieldName(fieldName);
|
||||
return ['interpolate',
|
||||
['linear'],
|
||||
['get', targetName],
|
||||
['feature-state', targetName],
|
||||
0, minSize,
|
||||
1, maxSize
|
||||
];
|
||||
|
|
|
@ -21,7 +21,6 @@ const EMPTY_FEATURE_COLLECTION = {
|
|||
features: []
|
||||
};
|
||||
|
||||
|
||||
const CLOSED_SHAPE_MB_FILTER = [
|
||||
'any',
|
||||
['==', ['geometry-type'], GEO_JSON_TYPE.POLYGON],
|
||||
|
@ -36,6 +35,15 @@ const ALL_SHAPE_MB_FILTER = [
|
|||
['==', ['geometry-type'], GEO_JSON_TYPE.MULTI_LINE_STRING]
|
||||
];
|
||||
|
||||
|
||||
let idCounter = 0;
|
||||
function generateNumericalId() {
|
||||
const newId = idCounter < Number.MAX_SAFE_INTEGER ? idCounter : 0;
|
||||
idCounter = newId + 1;
|
||||
return newId;
|
||||
}
|
||||
|
||||
|
||||
export class VectorLayer extends AbstractLayer {
|
||||
|
||||
static type = 'VECTOR';
|
||||
|
@ -364,11 +372,12 @@ export class VectorLayer extends AbstractLayer {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
_assignIdsToFeatures(featureCollection) {
|
||||
for (let i = 0; i < featureCollection.features.length; i++) {
|
||||
const feature = featureCollection.features[i];
|
||||
feature.properties[FEATURE_ID_PROPERTY_NAME] = (typeof feature.id === 'string' || typeof feature.id === 'number') ? feature.id : i;
|
||||
const id = generateNumericalId();
|
||||
feature.properties[FEATURE_ID_PROPERTY_NAME] = id;
|
||||
feature.id = id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -406,23 +415,23 @@ export class VectorLayer extends AbstractLayer {
|
|||
}
|
||||
|
||||
_syncFeatureCollectionWithMb(mbMap) {
|
||||
const mbGeoJSONSource = mbMap.getSource(this.getId());
|
||||
|
||||
const mbGeoJSONSource = mbMap.getSource(this.getId());
|
||||
const featureCollection = this._getSourceFeatureCollection();
|
||||
const featureCollectionOnMap = AbstractLayer.getBoundDataForSource(mbMap, this.getId());
|
||||
|
||||
if (!featureCollection) {
|
||||
if (featureCollectionOnMap) {
|
||||
this._style.clearFeatureState(featureCollectionOnMap, mbMap, this.getId());
|
||||
}
|
||||
mbGeoJSONSource.setData(EMPTY_FEATURE_COLLECTION);
|
||||
return;
|
||||
}
|
||||
|
||||
const dataBoundToMap = AbstractLayer.getBoundDataForSource(mbMap, this.getId());
|
||||
if (featureCollection !== dataBoundToMap) {
|
||||
mbGeoJSONSource.setData(featureCollection);
|
||||
}
|
||||
|
||||
const shouldRefresh = this._style.addScaledPropertiesBasedOnStyle(featureCollection);
|
||||
if (shouldRefresh) {
|
||||
if (featureCollection !== featureCollectionOnMap) {
|
||||
mbGeoJSONSource.setData(featureCollection);
|
||||
}
|
||||
this._style.setFeatureState(featureCollection, mbMap, this.getId());
|
||||
}
|
||||
|
||||
_setMbPointsProperties(mbMap) {
|
||||
|
|
|
@ -79,16 +79,16 @@ export default function ({ getPageObjects, getService }) {
|
|||
|
||||
//circle layer for points
|
||||
// eslint-disable-next-line max-len
|
||||
expect(layersForVectorSource[0]).to.eql({ 'id': 'n1t6f_circle', 'type': 'circle', 'source': 'n1t6f', 'minzoom': 0, 'maxzoom': 24, 'filter': ['any', ['==', ['geometry-type'], 'Point'], ['==', ['geometry-type'], 'MultiPoint']], 'paint': { 'circle-color': ['interpolate', ['linear'], ['coalesce', ['get', '__kbn__scaled(__kbnjoin__max_of_prop1_groupby_meta_for_geo_shapes*.shape_name)'], -1], -1, 'rgba(0,0,0,0)', 0, '#f7faff', 0.125, '#ddeaf7', 0.25, '#c5daee', 0.375, '#9dc9e0', 0.5, '#6aadd5', 0.625, '#4191c5', 0.75, '#2070b4', 0.875, '#072f6b'], 'circle-opacity': 0.75, 'circle-stroke-color': '#FFFFFF', 'circle-stroke-opacity': 0.75, 'circle-stroke-width': 1, 'circle-radius': 10 } });
|
||||
expect(layersForVectorSource[0]).to.eql({ 'id': 'n1t6f_circle', 'type': 'circle', 'source': 'n1t6f', 'minzoom': 0, 'maxzoom': 24, 'filter': ['any', ['==', ['geometry-type'], 'Point'], ['==', ['geometry-type'], 'MultiPoint']], 'layout': { 'visibility': 'visible' }, 'paint': { 'circle-color': ['interpolate', ['linear'], ['coalesce', ['feature-state', '__kbn__scaled(__kbnjoin__max_of_prop1_groupby_meta_for_geo_shapes*.shape_name)'], -1], -1, 'rgba(0,0,0,0)', 0, '#f7faff', 0.125, '#ddeaf7', 0.25, '#c5daee', 0.375, '#9dc9e0', 0.5, '#6aadd5', 0.625, '#4191c5', 0.75, '#2070b4', 0.875, '#072f6b'], 'circle-opacity': 0.75, 'circle-stroke-color': '#FFFFFF', 'circle-stroke-opacity': 0.75, 'circle-stroke-width': 1, 'circle-radius': 10 } });
|
||||
|
||||
//fill layer
|
||||
// eslint-disable-next-line max-len
|
||||
expect(layersForVectorSource[1]).to.eql({ 'id': 'n1t6f_fill', 'type': 'fill', 'source': 'n1t6f', 'minzoom': 0, 'maxzoom': 24, 'filter': ['any', ['==', ['geometry-type'], 'Polygon'], ['==', ['geometry-type'], 'MultiPolygon']], 'paint': { 'fill-color': ['interpolate', ['linear'], ['coalesce', ['get', '__kbn__scaled(__kbnjoin__max_of_prop1_groupby_meta_for_geo_shapes*.shape_name)'], -1], -1, 'rgba(0,0,0,0)', 0, '#f7faff', 0.125, '#ddeaf7', 0.25, '#c5daee', 0.375, '#9dc9e0', 0.5, '#6aadd5', 0.625, '#4191c5', 0.75, '#2070b4', 0.875, '#072f6b'], 'fill-opacity': 0.75 } }
|
||||
expect(layersForVectorSource[1]).to.eql({ 'id': 'n1t6f_fill', 'type': 'fill', 'source': 'n1t6f', 'minzoom': 0, 'maxzoom': 24, 'filter': ['any', ['==', ['geometry-type'], 'Polygon'], ['==', ['geometry-type'], 'MultiPolygon']], 'layout': { 'visibility': 'visible' }, 'paint': { 'fill-color': ['interpolate', ['linear'], ['coalesce', ['feature-state', '__kbn__scaled(__kbnjoin__max_of_prop1_groupby_meta_for_geo_shapes*.shape_name)'], -1], -1, 'rgba(0,0,0,0)', 0, '#f7faff', 0.125, '#ddeaf7', 0.25, '#c5daee', 0.375, '#9dc9e0', 0.5, '#6aadd5', 0.625, '#4191c5', 0.75, '#2070b4', 0.875, '#072f6b'], 'fill-opacity': 0.75 } }
|
||||
);
|
||||
|
||||
//line layer for borders
|
||||
// eslint-disable-next-line max-len
|
||||
expect(layersForVectorSource[2]).to.eql({ 'id': 'n1t6f_line', 'type': 'line', 'source': 'n1t6f', 'minzoom': 0, 'maxzoom': 24, 'filter': ['any', ['==', ['geometry-type'], 'Polygon'], ['==', ['geometry-type'], 'MultiPolygon'], ['==', ['geometry-type'], 'LineString'], ['==', ['geometry-type'], 'MultiLineString']], 'paint': { 'line-color': '#FFFFFF', 'line-opacity': 0.75, 'line-width': 1 } });
|
||||
expect(layersForVectorSource[2]).to.eql({ 'id': 'n1t6f_line', 'type': 'line', 'source': 'n1t6f', 'minzoom': 0, 'maxzoom': 24, 'filter': ['any', ['==', ['geometry-type'], 'Polygon'], ['==', ['geometry-type'], 'MultiPolygon'], ['==', ['geometry-type'], 'LineString'], ['==', ['geometry-type'], 'MultiLineString']], 'layout': { 'visibility': 'visible' }, 'paint': { 'line-color': '#FFFFFF', 'line-opacity': 0.75, 'line-width': 1 } });
|
||||
|
||||
});
|
||||
|
||||
|
|
103
yarn.lock
103
yarn.lock
|
@ -1779,6 +1779,16 @@
|
|||
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.0"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-rewind/-/geojson-rewind-0.4.0.tgz#0d3632d4c1b4a928cf10a06ade387e1c8a8c181b"
|
||||
integrity sha512-b+1uPWBERW4Pet/969BNu61ZPDyH2ilIxBjJDFzxyS9TyszF9UrTQyYIl/G38clux3rtpAGGFSGTCSF/qR6UjA==
|
||||
dependencies:
|
||||
"@mapbox/geojson-area" "0.2.2"
|
||||
concat-stream "~1.6.0"
|
||||
minimist "1.2.0"
|
||||
sharkdown "^0.1.0"
|
||||
|
||||
"@mapbox/geojson-types@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz#9aecf642cb00eab1080a57c4f949a65b4a5846d6"
|
||||
|
@ -9858,11 +9868,16 @@ eachr@^3.2.0:
|
|||
editions "^1.1.1"
|
||||
typechecker "^4.3.0"
|
||||
|
||||
earcut@^2.0.0, earcut@^2.1.3:
|
||||
earcut@^2.0.0:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.1.3.tgz#ca579545f351941af7c3d0df49c9f7d34af99b0c"
|
||||
integrity sha512-AxdCdWUk1zzK/NuZ7e1ljj6IGC+VAdC3Qb7QQDsXpfNrc5IM8tL9nNXUmEGE6jRHTfZ10zhzRhtDmWVsR5pd3A==
|
||||
|
||||
earcut@^2.1.5:
|
||||
version "2.1.5"
|
||||
resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.1.5.tgz#829280a9a3a0f5fee0529f0a47c3e4eff09b21e4"
|
||||
integrity sha512-QFWC7ywTVLtvRAJTVp8ugsuuGQ5mVqNmJ1cRYeLrSHgP3nycr2RHTJob9OtM0v8ujuoKN0NY1a93J/omeTL1PA==
|
||||
|
||||
ecc-jsbn@~0.1.1:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
||||
|
@ -10673,10 +10688,10 @@ eslint@^5.16.0:
|
|||
table "^5.2.3"
|
||||
text-table "^0.2.0"
|
||||
|
||||
esm@^3.0.84:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.3.tgz#a5453468d030bdc5ec539f5ce5d9e95731f956d2"
|
||||
integrity sha512-qkokqXI9pblukGvc0gG1FHMwKWjriIyCgDKbpzgtlis5tQ21dIFPL5s7ffcSVdE+k9Zw7R5ZC/dl0z/Ib5m1Pw==
|
||||
esm@~3.0.84:
|
||||
version "3.0.84"
|
||||
resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63"
|
||||
integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw==
|
||||
|
||||
espree@^3.1.6:
|
||||
version "3.5.4"
|
||||
|
@ -12126,16 +12141,6 @@ geojson-random@^0.2.2:
|
|||
resolved "https://registry.yarnpkg.com/geojson-random/-/geojson-random-0.2.2.tgz#ab4838f126adc5e16f8f94e655def820f9119dbc"
|
||||
integrity sha1-q0g48SatxeFvj5TmVd74IPkRnbw=
|
||||
|
||||
geojson-rewind@^0.3.0:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/geojson-rewind/-/geojson-rewind-0.3.1.tgz#22240797c847cc2f0c1d313e4aa0c915afa7f29d"
|
||||
integrity sha1-IiQHl8hHzC8MHTE+SqDJFa+n8p0=
|
||||
dependencies:
|
||||
"@mapbox/geojson-area" "0.2.2"
|
||||
concat-stream "~1.6.0"
|
||||
minimist "1.2.0"
|
||||
sharkdown "^0.1.0"
|
||||
|
||||
geojson-vt@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/geojson-vt/-/geojson-vt-3.2.1.tgz#f8adb614d2c1d3f6ee7c4265cad4bbf3ad60c8b7"
|
||||
|
@ -12276,10 +12281,10 @@ github-username@^3.0.0:
|
|||
dependencies:
|
||||
gh-got "^5.0.0"
|
||||
|
||||
gl-matrix@^2.6.1:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-2.8.1.tgz#1c7873448eac61d2cd25803a074e837bd42581a3"
|
||||
integrity sha512-0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw==
|
||||
gl-matrix@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.0.0.tgz#888301ac7650e148c3865370e13ec66d08a8381f"
|
||||
integrity sha512-PD4mVH/C/Zs64kOozeFnKY8ybhgwxXXQYGWdB4h68krAHknWJgk9uKOn6z8YElh5//vs++90pb6csrTIDWnexA==
|
||||
|
||||
glob-all@^3.1.0:
|
||||
version "3.1.0"
|
||||
|
@ -12948,10 +12953,10 @@ graphql@^0.13.2:
|
|||
dependencies:
|
||||
iterall "^1.2.1"
|
||||
|
||||
grid-index@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/grid-index/-/grid-index-1.0.0.tgz#ad2c5d54ce5b35437faff1d70a9aeb3d1d261110"
|
||||
integrity sha1-rSxdVM5bNUN/r/HXCprrPR0mERA=
|
||||
grid-index@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/grid-index/-/grid-index-1.1.0.tgz#97f8221edec1026c8377b86446a7c71e79522ea7"
|
||||
integrity sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==
|
||||
|
||||
grouped-queue@^0.3.0, grouped-queue@^0.3.3:
|
||||
version "0.3.3"
|
||||
|
@ -17520,11 +17525,12 @@ mapbox-gl-draw-rectangle-mode@^1.0.4:
|
|||
resolved "https://registry.yarnpkg.com/mapbox-gl-draw-rectangle-mode/-/mapbox-gl-draw-rectangle-mode-1.0.4.tgz#42987d68872a5fb5cc5d76d3375ee20cd8bab8f7"
|
||||
integrity sha512-BdF6nwEK2p8n9LQoMPzBO8LhddW1fe+d5vK8HQIei+4VcRnUbKNsEj7Z15FsJxCHzsc2BQKXbESx5GaE8x0imQ==
|
||||
|
||||
mapbox-gl@0.52.0:
|
||||
version "0.52.0"
|
||||
resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-0.52.0.tgz#a43b61caa339ae28e43c87ecfbe9ce4032795859"
|
||||
integrity sha512-jiZMGI7LjBNiSwYpFA3drzbZXrgEGERGJRpNS95t5BLZoc8Z+ggOOI1Fz2X+zLlh1j32iNDtf4j6En+caWwYiQ==
|
||||
mapbox-gl@0.54.0:
|
||||
version "0.54.0"
|
||||
resolved "https://registry.yarnpkg.com/mapbox-gl/-/mapbox-gl-0.54.0.tgz#f6cb96ecb8e64276a8ed2fe4a4f213fabab4123e"
|
||||
integrity sha512-wCcSlxO3wqYYo4nFXuR0HNi10Xkz2mYQ3szFAxYpWP1mzyC81f/u3HU5oa2JzJTWgSxkqQXTC9u48D0wO3PTfw==
|
||||
dependencies:
|
||||
"@mapbox/geojson-rewind" "^0.4.0"
|
||||
"@mapbox/geojson-types" "^1.0.2"
|
||||
"@mapbox/jsonlint-lines-primitives" "^2.0.2"
|
||||
"@mapbox/mapbox-gl-supported" "^1.4.0"
|
||||
|
@ -17534,21 +17540,20 @@ mapbox-gl@0.52.0:
|
|||
"@mapbox/vector-tile" "^1.3.1"
|
||||
"@mapbox/whoots-js" "^3.1.0"
|
||||
csscolorparser "~1.0.2"
|
||||
earcut "^2.1.3"
|
||||
esm "^3.0.84"
|
||||
geojson-rewind "^0.3.0"
|
||||
earcut "^2.1.5"
|
||||
esm "~3.0.84"
|
||||
geojson-vt "^3.2.1"
|
||||
gl-matrix "^2.6.1"
|
||||
grid-index "^1.0.0"
|
||||
gl-matrix "^3.0.0"
|
||||
grid-index "^1.1.0"
|
||||
minimist "0.0.8"
|
||||
murmurhash-js "^1.0.0"
|
||||
pbf "^3.0.5"
|
||||
potpack "^1.0.1"
|
||||
quickselect "^1.0.0"
|
||||
quickselect "^2.0.0"
|
||||
rw "^1.3.3"
|
||||
supercluster "^5.0.0"
|
||||
tinyqueue "^1.1.0"
|
||||
vt-pbf "^3.0.1"
|
||||
supercluster "^6.0.1"
|
||||
tinyqueue "^2.0.0"
|
||||
vt-pbf "^3.1.1"
|
||||
|
||||
markdown-escapes@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
@ -20900,10 +20905,10 @@ quick-lru@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
|
||||
integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
|
||||
|
||||
quickselect@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2"
|
||||
integrity sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==
|
||||
quickselect@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018"
|
||||
integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==
|
||||
|
||||
quote-stream@^1.0.1:
|
||||
version "1.0.2"
|
||||
|
@ -24664,10 +24669,10 @@ superagent@3.8.2:
|
|||
qs "^6.5.1"
|
||||
readable-stream "^2.0.5"
|
||||
|
||||
supercluster@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-5.0.0.tgz#2a5a9b1ffbd0d6180dea10039d78b5d95fdb8f27"
|
||||
integrity sha512-9eeD5Q3908+tqdz+wYHHzi5mLKgnqtpO5mrjUfqr67UmGuOwBtVoQ9pJJrfcVHwMwC0wEBvfNRF9PgFOZgsOpw==
|
||||
supercluster@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-6.0.1.tgz#4c0177d96daa195d58a5bad9f55dbf12fb727a4c"
|
||||
integrity sha512-NTth/FBFUt9mwW03+Z6Byscex+UHu0utroIe6uXjGu9PrTuWtW70LYv9I1vPSYYIHQL74S5zAkrXrHEk0L7dGA==
|
||||
dependencies:
|
||||
kdbush "^3.0.0"
|
||||
|
||||
|
@ -25283,10 +25288,10 @@ tinymath@1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/tinymath/-/tinymath-1.1.1.tgz#67f42ee0bb351508fe3a9ce4cb8db019ac4500ca"
|
||||
integrity sha512-dpnNUQvyO3AKvgJ5AtblOYuM/SJoSyjvhM7pstKzkVKUBRPMaSOi0+8h/QXMlfnOVFWV0qSpfxSAUAHKZ3XN2g==
|
||||
|
||||
tinyqueue@^1.1.0:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-1.2.3.tgz#b6a61de23060584da29f82362e45df1ec7353f3d"
|
||||
integrity sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==
|
||||
tinyqueue@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.2.tgz#b4fe66d28a5b503edb99c149f87910059782a0cc"
|
||||
integrity sha512-1oUV+ZAQaeaf830ui/p5JZpzGBw46qs1pKHcfqIc6/QxYDQuEmcBLIhiT0xAxLnekz+qxQusubIYk4cAS8TB2A==
|
||||
|
||||
title-case@^2.1.0:
|
||||
version "2.1.1"
|
||||
|
@ -27281,7 +27286,7 @@ vscode-uri@^1.0.5, vscode-uri@^1.0.6:
|
|||
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.6.tgz#6b8f141b0bbc44ad7b07e94f82f168ac7608ad4d"
|
||||
integrity sha512-sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww==
|
||||
|
||||
vt-pbf@^3.0.1:
|
||||
vt-pbf@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/vt-pbf/-/vt-pbf-3.1.1.tgz#b0f627e39a10ce91d943b898ed2363d21899fb82"
|
||||
integrity sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue