UI: Add in map widgets new group setting - Editor setting

This commit is contained in:
Vladyslav_Prykhodko 2021-12-23 11:20:22 +02:00
parent 6b9bdba92f
commit c20f6e4021
8 changed files with 176 additions and 97 deletions

View File

@ -28,7 +28,7 @@
"@date-io/date-fns": "^2.11.0", "@date-io/date-fns": "^2.11.0",
"@flowjs/flow.js": "^2.14.1", "@flowjs/flow.js": "^2.14.1",
"@flowjs/ngx-flow": "~0.4.6", "@flowjs/ngx-flow": "~0.4.6",
"@geoman-io/leaflet-geoman-free": "^2.11.3", "@geoman-io/leaflet-geoman-free": "^2.11.4",
"@juggle/resize-observer": "^3.3.1", "@juggle/resize-observer": "^3.3.1",
"@mat-datetimepicker/core": "~7.0.1", "@mat-datetimepicker/core": "~7.0.1",
"@material-ui/core": "^4.12.3", "@material-ui/core": "^4.12.3",

View File

@ -24,7 +24,9 @@ import {
defaultSettings, defaultSettings,
FormattedData, FormattedData,
MapSettings, MapSettings,
MarkerSettings, MarkerIconInfo, MarkerImageInfo, MarkerIconInfo,
MarkerImageInfo,
MarkerSettings,
PolygonSettings, PolygonSettings,
PolylineSettings, PolylineSettings,
ReplaceInfo, ReplaceInfo,
@ -182,7 +184,7 @@ export default abstract class LeafletMap {
addEditControl() { addEditControl() {
// Customize edit marker // Customize edit marker
if (this.options.draggableMarker) { if (this.options.draggableMarker && !this.options.hideDrawControlButton) {
const actions = [{ const actions = [{
text: L.PM.Utils.getTranslation('actions.cancel'), text: L.PM.Utils.getTranslation('actions.cancel'),
onClick: () => this.toggleDrawMode('tbMarker') onClick: () => this.toggleDrawMode('tbMarker')
@ -197,7 +199,7 @@ export default abstract class LeafletMap {
} }
// Customize edit polygon // Customize edit polygon
if (this.editPolygons) { if (this.editPolygons && !this.options.hideDrawControlButton) {
const rectangleActions = [ const rectangleActions = [
{ {
text: L.PM.Utils.getTranslation('actions.cancel'), text: L.PM.Utils.getTranslation('actions.cancel'),
@ -231,18 +233,27 @@ export default abstract class LeafletMap {
const translateService = this.ctx.$injector.get(TranslateService); const translateService = this.ctx.$injector.get(TranslateService);
this.map.pm.setLang('en', translateService.instant('widgets.maps'), 'en'); this.map.pm.setLang('en', translateService.instant('widgets.maps'), 'en');
if (!this.options.hideAllControlButton) {
this.map.pm.addControls({ this.map.pm.addControls({
position: 'topleft', position: 'topleft',
drawControls: !this.options.hideDrawControlButton,
drawMarker: false, drawMarker: false,
drawCircle: false, drawCircle: false,
drawCircleMarker: false, drawCircleMarker: false,
drawRectangle: false, drawRectangle: false,
drawPolyline: false, drawPolyline: false,
drawPolygon: false, drawPolygon: false,
editMode: this.editPolygons, dragMode: !this.options.hideEditControlButton,
cutPolygon: this.editPolygons, editMode: this.editPolygons && !this.options.hideEditControlButton,
rotateMode: this.editPolygons cutPolygon: this.editPolygons && !this.options.hideEditControlButton,
removalMode: !this.options.hideRemoveControlButton,
rotateMode: this.editPolygons && !this.options.hideEditControlButton
}); });
}
if (this.options.initDragMode) {
this.map.pm.enableGlobalDragMode();
}
this.map.on('pm:create', (e) => { this.map.on('pm:create', (e) => {
if (e.shape === 'tbMarker') { if (e.shape === 'tbMarker') {
@ -344,6 +355,7 @@ export default abstract class LeafletMap {
} }
if (this.options.draggableMarker || this.editPolygons) { if (this.options.draggableMarker || this.editPolygons) {
map.pm.setGlobalOptions({ snappable: false } as L.PM.GlobalOptions); map.pm.setGlobalOptions({ snappable: false } as L.PM.GlobalOptions);
map.pm.applyGlobalOptions();
this.addEditControl(); this.addEditControl();
} else { } else {
this.map.pm.disableDraw(); this.map.pm.disableDraw();
@ -555,7 +567,7 @@ export default abstract class LeafletMap {
updatedMarkers.push(m); updatedMarkers.push(m);
} }
} else { } else {
m = this.createMarker(data.entityName, data, markersData, this.options as MarkerSettings, updateBounds, callback); m = this.createMarker(data.entityName, data, markersData, this.options, updateBounds, callback);
if (m) { if (m) {
createdMarkers.push(m); createdMarkers.push(m);
} }
@ -569,7 +581,7 @@ export default abstract class LeafletMap {
} }
}); });
this.markersData = markersData; this.markersData = markersData;
if ((this.options as MarkerSettings).useClusterMarkers) { if (this.options.useClusterMarkers) {
if (createdMarkers.length) { if (createdMarkers.length) {
this.markersCluster.addLayers(createdMarkers.map(marker => marker.leafletMarker)); this.markersCluster.addLayers(createdMarkers.map(marker => marker.leafletMarker));
} }
@ -589,7 +601,7 @@ export default abstract class LeafletMap {
this.saveLocation(data, this.convertToCustomFormat(e.target._latlng)).subscribe(); this.saveLocation(data, this.convertToCustomFormat(e.target._latlng)).subscribe();
} }
private createMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings, private createMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: UnitedMapSettings,
updateBounds = true, callback?): Marker { updateBounds = true, callback?): Marker {
const newMarker = new Marker(this, this.convertPosition(data), settings, data, dataSources, this.dragMarker); const newMarker = new Marker(this, this.convertPosition(data), settings, data, dataSources, this.dragMarker);
if (callback) { if (callback) {
@ -597,7 +609,7 @@ export default abstract class LeafletMap {
callback(data, true); callback(data, true);
}); });
} }
if (this.bounds && updateBounds && !(this.options as MarkerSettings).useClusterMarkers) { if (this.bounds && updateBounds && !this.options.useClusterMarkers) {
this.fitBounds(this.bounds.extend(newMarker.leafletMarker.getLatLng())); this.fitBounds(this.bounds.extend(newMarker.leafletMarker.getLatLng()));
} }
this.markers.set(key, newMarker); this.markers.set(key, newMarker);
@ -786,7 +798,7 @@ export default abstract class LeafletMap {
this.saveLocation(data, this.convertPolygonToCustomFormat(coordinates)).subscribe(() => {}); this.saveLocation(data, this.convertPolygonToCustomFormat(coordinates)).subscribe(() => {});
} }
createPolygon(polyData: FormattedData, dataSources: FormattedData[], settings: PolygonSettings, updateBounds = true) { createPolygon(polyData: FormattedData, dataSources: FormattedData[], settings: UnitedMapSettings, updateBounds = true) {
const polygon = new Polygon(this.map, polyData, dataSources, settings, this.dragPolygonVertex); const polygon = new Polygon(this.map, polyData, dataSources, settings, this.dragPolygonVertex);
if (updateBounds) { if (updateBounds) {
const bounds = polygon.leafletPoly.getBounds(); const bounds = polygon.leafletPoly.getBounds();

View File

@ -192,6 +192,15 @@ export type PolylineSettings = {
strokeWeightFunction: GenericFunction; strokeWeightFunction: GenericFunction;
}; };
export interface EditorSettings {
snappable: boolean;
initDragMode: boolean;
hideAllControlButton: boolean;
hideDrawControlButton: boolean;
hideEditControlButton: boolean;
hideRemoveControlButton: boolean;
}
export interface HistorySelectSettings { export interface HistorySelectSettings {
buttonColor: string; buttonColor: string;
} }
@ -231,7 +240,7 @@ export interface TripAnimationSettings extends PolygonSettings {
export type actionsHandler = ($event: Event, datasource: Datasource) => void; export type actionsHandler = ($event: Event, datasource: Datasource) => void;
export type UnitedMapSettings = MapSettings & PolygonSettings & MarkerSettings & PolylineSettings & TripAnimationSettings; export type UnitedMapSettings = MapSettings & PolygonSettings & MarkerSettings & PolylineSettings & TripAnimationSettings & EditorSettings;
export const defaultSettings: any = { export const defaultSettings: any = {
xPosKeyName: 'xPos', xPosKeyName: 'xPos',
@ -271,7 +280,13 @@ export const defaultSettings: any = {
draggableMarker: false, draggableMarker: false,
editablePolygon: false, editablePolygon: false,
fitMapBounds: true, fitMapBounds: true,
mapPageSize: DEFAULT_MAP_PAGE_SIZE mapPageSize: DEFAULT_MAP_PAGE_SIZE,
snappable: false,
initDragMode: false,
hideAllControlButton: false,
hideDrawControlButton: false,
hideEditControlButton: false,
hideRemoveControlButton: false
}; };
export const hereProviders = [ export const hereProviders = [

View File

@ -18,6 +18,7 @@ import { defaultSettings, FormattedData, hereProviders, MapProviders, UnitedMapS
import LeafletMap from './leaflet-map'; import LeafletMap from './leaflet-map';
import { import {
commonMapSettingsSchema, commonMapSettingsSchema,
editorSettingSchema,
mapPolygonSchema, mapPolygonSchema,
markerClusteringSettingsSchema, markerClusteringSettingsSchema,
markerClusteringSettingsSchemaLeaflet, markerClusteringSettingsSchemaLeaflet,
@ -115,6 +116,8 @@ export class MapWidgetController implements MapWidgetInterface {
`model.useClusterMarkers === true && model.provider !== "image-map"`)]); `model.useClusterMarkers === true && model.provider !== "image-map"`)]);
addToSchema(schema, clusteringSchema); addToSchema(schema, clusteringSchema);
addGroupInfo(schema, 'Markers Clustering Settings'); addGroupInfo(schema, 'Markers Clustering Settings');
addToSchema(schema, addCondition(editorSettingSchema, '(model.editablePolygon === true || model.draggableMarker === true)'));
addGroupInfo(schema, 'Editor settings');
} }
return schema; return schema;
} }

View File

@ -14,19 +14,17 @@
/// limitations under the License. /// limitations under the License.
/// ///
import L, { Icon, LeafletMouseEvent } from 'leaflet'; import L, { LeafletMouseEvent } from 'leaflet';
import { FormattedData, MarkerIconInfo, MarkerIconReadyFunction, MarkerImageInfo, MarkerSettings } from './map-models';
import { import {
bindPopupActions, FormattedData,
createTooltip, MarkerIconInfo,
} from './maps-utils'; MarkerIconReadyFunction,
import { MarkerImageInfo,
aspectCache, MarkerSettings,
fillPattern, UnitedMapSettings
parseWithTranslation, } from './map-models';
processPattern, import { bindPopupActions, createTooltip, } from './maps-utils';
safeExecute import { aspectCache, fillPattern, parseWithTranslation, processPattern, safeExecute } from './common-maps-utils';
} from './common-maps-utils';
import tinycolor from 'tinycolor2'; import tinycolor from 'tinycolor2';
import { isDefined, isDefinedAndNotNull } from '@core/utils'; import { isDefined, isDefinedAndNotNull } from '@core/utils';
import LeafletMap from './leaflet-map'; import LeafletMap from './leaflet-map';
@ -40,10 +38,13 @@ export class Marker {
data: FormattedData; data: FormattedData;
dataSources: FormattedData[]; dataSources: FormattedData[];
constructor(private map: LeafletMap, private location: L.LatLng, public settings: MarkerSettings, constructor(private map: LeafletMap, private location: L.LatLng, public settings: UnitedMapSettings,
data?: FormattedData, dataSources?, onDragendListener?) { data?: FormattedData, dataSources?, onDragendListener?) {
this.setDataSources(data, dataSources); this.setDataSources(data, dataSources);
this.leafletMarker = L.marker(location, {pmIgnore: !settings.draggableMarker}); this.leafletMarker = L.marker(location, {
pmIgnore: !settings.draggableMarker,
snapIgnore: !settings.snappable
});
this.markerOffset = [ this.markerOffset = [
isDefined(settings.markerOffsetX) ? settings.markerOffsetX : 0.5, isDefined(settings.markerOffsetX) ? settings.markerOffsetX : 0.5,

View File

@ -23,7 +23,7 @@ import {
processPattern, processPattern,
safeExecute safeExecute
} from './common-maps-utils'; } from './common-maps-utils';
import { FormattedData, MarkerSettings, PolygonSettings } from './map-models'; import { FormattedData, PolygonSettings, UnitedMapSettings } from './map-models';
export class Polygon { export class Polygon {
@ -32,7 +32,7 @@ export class Polygon {
data: FormattedData; data: FormattedData;
dataSources: FormattedData[]; dataSources: FormattedData[];
constructor(public map, data: FormattedData, dataSources: FormattedData[], private settings: PolygonSettings, constructor(public map, data: FormattedData, dataSources: FormattedData[], private settings: UnitedMapSettings,
private onDragendListener?) { private onDragendListener?) {
this.dataSources = dataSources; this.dataSources = dataSources;
this.data = data; this.data = data;
@ -47,7 +47,8 @@ export class Polygon {
weight: settings.polygonStrokeWeight, weight: settings.polygonStrokeWeight,
fillOpacity: settings.polygonOpacity, fillOpacity: settings.polygonOpacity,
opacity: settings.polygonStrokeOpacity, opacity: settings.polygonStrokeOpacity,
pmIgnore: !settings.editablePolygon pmIgnore: !settings.editablePolygon,
snapIgnore: !settings.snappable
}).addTo(this.map); }).addTo(this.map);
this.updateLabel(settings); this.updateLabel(settings);

View File

@ -1311,3 +1311,61 @@ export const providerSets: { [key: string]: IProvider } = {
name: 'image-map' name: 'image-map'
} }
}; };
export const editorSettingSchema =
{
schema: {
title: 'Editor settings',
type: 'object',
properties: {
snappable: {
title: 'Enable snapping to other vertices for precision drawing',
type: 'boolean',
default: false
},
initDragMode: {
title: 'Initialize map in draggable mode',
type: 'boolean',
default: false
},
hideAllControlButton: {
title: 'Hide all button',
type: 'boolean',
default: false
},
hideDrawControlButton: {
title: 'Hide draw buttons',
type: 'boolean',
default: false
},
hideEditControlButton: {
title: 'Hide edit buttons',
type: 'boolean',
default: false
},
hideRemoveControlButton: {
title: 'Hide remove button',
type: 'boolean',
default: false
},
},
required: []
},
form: [
'snappable',
'initDragMode',
'hideAllControlButton',
{
key: 'hideDrawControlButton',
condition: 'model.hideAllControlButton == false'
},
{
key: 'hideEditControlButton',
condition: 'model.hideAllControlButton == false'
},
{
key: 'hideRemoveControlButton',
condition: 'model.hideAllControlButton == false'
}
]
};

View File

@ -1308,15 +1308,15 @@
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
"@geoman-io/leaflet-geoman-free@^2.11.3": "@geoman-io/leaflet-geoman-free@^2.11.4":
version "2.11.3" version "2.11.4"
resolved "https://registry.yarnpkg.com/@geoman-io/leaflet-geoman-free/-/leaflet-geoman-free-2.11.3.tgz#480164ab76c2b2a885003e0c111284f3c3160a36" resolved "https://registry.yarnpkg.com/@geoman-io/leaflet-geoman-free/-/leaflet-geoman-free-2.11.4.tgz#4a43fa8d3d5d2bca751135b775c19c6cc0063699"
integrity sha512-LsiurEgKEHBcTnAVl8h7EfS5V/doCuxePzPE9SnfrhtJBN7IzP6UwkEo35Agwko+BnIuw/o2bE4F7irvKwQzjw== integrity sha512-uWfgaGDhrtoCMHdHi2oNVKb8WXFMQvyNnan1sS/+Yn5jMPuhijWFyAjy0G5kTCamXhGXg4vUvlEpiRSrBwewKg==
dependencies: dependencies:
"@turf/boolean-contains" "6.3.0" "@turf/boolean-contains" "^6.5.0"
"@turf/kinks" "6.3.0" "@turf/kinks" "^6.5.0"
"@turf/line-intersect" "6.3.0" "@turf/line-intersect" "^6.5.0"
"@turf/line-split" "6.3.0" "@turf/line-split" "^6.5.0"
lodash "4.17.21" lodash "4.17.21"
polygon-clipping "0.15.3" polygon-clipping "0.15.3"
@ -1601,7 +1601,7 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e"
integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==
"@turf/bbox@*", "@turf/bbox@^6.3.0": "@turf/bbox@*", "@turf/bbox@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-6.5.0.tgz#bec30a744019eae420dac9ea46fb75caa44d8dc5" resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-6.5.0.tgz#bec30a744019eae420dac9ea46fb75caa44d8dc5"
integrity sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw== integrity sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==
@ -1617,18 +1617,18 @@
"@turf/helpers" "^6.5.0" "@turf/helpers" "^6.5.0"
"@turf/invariant" "^6.5.0" "@turf/invariant" "^6.5.0"
"@turf/boolean-contains@6.3.0": "@turf/boolean-contains@^6.5.0":
version "6.3.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-6.3.0.tgz#fe4fc359e408c8c3c89e7fb159c9d31fde48779a" resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz#f802e7432fb53109242d5bf57393ef2f53849bbf"
integrity sha512-1MW7B5G5tIu1lnAv3pXyFzl75wfBYnbA2GhwHDb4okIXMhloy/r5uIqAZHo0fOXykKVJS/gIfA/MioKIftoTug== integrity sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==
dependencies: dependencies:
"@turf/bbox" "^6.3.0" "@turf/bbox" "^6.5.0"
"@turf/boolean-point-in-polygon" "^6.3.0" "@turf/boolean-point-in-polygon" "^6.5.0"
"@turf/boolean-point-on-line" "^6.3.0" "@turf/boolean-point-on-line" "^6.5.0"
"@turf/helpers" "^6.3.0" "@turf/helpers" "^6.5.0"
"@turf/invariant" "^6.3.0" "@turf/invariant" "^6.5.0"
"@turf/boolean-point-in-polygon@^6.3.0": "@turf/boolean-point-in-polygon@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz#6d2e9c89de4cd2e4365004c1e51490b7795a63cf" resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz#6d2e9c89de4cd2e4365004c1e51490b7795a63cf"
integrity sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A== integrity sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==
@ -1636,7 +1636,7 @@
"@turf/helpers" "^6.5.0" "@turf/helpers" "^6.5.0"
"@turf/invariant" "^6.5.0" "@turf/invariant" "^6.5.0"
"@turf/boolean-point-on-line@^6.3.0": "@turf/boolean-point-on-line@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz#a8efa7bad88760676f395afb9980746bc5b376e9" resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz#a8efa7bad88760676f395afb9980746bc5b376e9"
integrity sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ== integrity sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==
@ -1660,37 +1660,26 @@
"@turf/helpers" "^6.5.0" "@turf/helpers" "^6.5.0"
"@turf/invariant" "^6.5.0" "@turf/invariant" "^6.5.0"
"@turf/helpers@6.x", "@turf/helpers@^6.3.0", "@turf/helpers@^6.5.0": "@turf/helpers@6.x", "@turf/helpers@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e" resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e"
integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw== integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==
"@turf/invariant@^6.3.0", "@turf/invariant@^6.5.0": "@turf/invariant@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f" resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f"
integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg== integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==
dependencies: dependencies:
"@turf/helpers" "^6.5.0" "@turf/helpers" "^6.5.0"
"@turf/kinks@6.3.0": "@turf/kinks@^6.5.0":
version "6.3.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-6.3.0.tgz#a16b4ccc5a5aae139d43e36271e0a0494fdb4bf7" resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-6.5.0.tgz#80e7456367535365012f658cf1a988b39a2c920b"
integrity sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ== integrity sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==
dependencies: dependencies:
"@turf/helpers" "^6.3.0" "@turf/helpers" "^6.5.0"
"@turf/line-intersect@6.3.0": "@turf/line-intersect@^6.5.0":
version "6.3.0"
resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.3.0.tgz#726a50edc66bb7b5e798b052b103fb0da4d1c4f4"
integrity sha512-3naxR7XpkPd2vst3Mw6DFry4C9m3o0/f2n/xu5UAyxb88Ie4m2k+1eqkhzMMx/0L+E6iThWpLx7DASM6q6o9ow==
dependencies:
"@turf/helpers" "^6.3.0"
"@turf/invariant" "^6.3.0"
"@turf/line-segment" "^6.3.0"
"@turf/meta" "^6.3.0"
geojson-rbush "3.x"
"@turf/line-intersect@^6.3.0", "@turf/line-intersect@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.5.0.tgz#dea48348b30c093715d2195d2dd7524aee4cf020" resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.5.0.tgz#dea48348b30c093715d2195d2dd7524aee4cf020"
integrity sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA== integrity sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==
@ -1701,7 +1690,7 @@
"@turf/meta" "^6.5.0" "@turf/meta" "^6.5.0"
geojson-rbush "3.x" geojson-rbush "3.x"
"@turf/line-segment@^6.3.0", "@turf/line-segment@^6.5.0": "@turf/line-segment@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-6.5.0.tgz#ee73f3ffcb7c956203b64ed966d96af380a4dd65" resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-6.5.0.tgz#ee73f3ffcb7c956203b64ed966d96af380a4dd65"
integrity sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw== integrity sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==
@ -1710,30 +1699,30 @@
"@turf/invariant" "^6.5.0" "@turf/invariant" "^6.5.0"
"@turf/meta" "^6.5.0" "@turf/meta" "^6.5.0"
"@turf/line-split@6.3.0": "@turf/line-split@^6.5.0":
version "6.3.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-6.3.0.tgz#ee218f66cd65ce84eafc4956c24083663f6082ea" resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-6.5.0.tgz#116d7fbf714457878225187f5820ef98db7b02c2"
integrity sha512-Q0nUJ0vczy11piyEz0FaKScFwSQtb1HJ2RPEMCw1coUJhTCB02KBWQLImhYqwsD3uLg+H/fxaJ1Gva6EPWoDNQ== integrity sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==
dependencies: dependencies:
"@turf/bbox" "^6.3.0" "@turf/bbox" "^6.5.0"
"@turf/helpers" "^6.3.0" "@turf/helpers" "^6.5.0"
"@turf/invariant" "^6.3.0" "@turf/invariant" "^6.5.0"
"@turf/line-intersect" "^6.3.0" "@turf/line-intersect" "^6.5.0"
"@turf/line-segment" "^6.3.0" "@turf/line-segment" "^6.5.0"
"@turf/meta" "^6.3.0" "@turf/meta" "^6.5.0"
"@turf/nearest-point-on-line" "^6.3.0" "@turf/nearest-point-on-line" "^6.5.0"
"@turf/square" "^6.3.0" "@turf/square" "^6.5.0"
"@turf/truncate" "^6.3.0" "@turf/truncate" "^6.5.0"
geojson-rbush "3.x" geojson-rbush "3.x"
"@turf/meta@6.x", "@turf/meta@^6.3.0", "@turf/meta@^6.5.0": "@turf/meta@6.x", "@turf/meta@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.5.0.tgz#b725c3653c9f432133eaa04d3421f7e51e0418ca" resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.5.0.tgz#b725c3653c9f432133eaa04d3421f7e51e0418ca"
integrity sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA== integrity sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==
dependencies: dependencies:
"@turf/helpers" "^6.5.0" "@turf/helpers" "^6.5.0"
"@turf/nearest-point-on-line@^6.3.0": "@turf/nearest-point-on-line@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz#8e1cd2cdc0b5acaf4c8d8b3b33bb008d3cb99e7b" resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz#8e1cd2cdc0b5acaf4c8d8b3b33bb008d3cb99e7b"
integrity sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg== integrity sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==
@ -1746,7 +1735,7 @@
"@turf/line-intersect" "^6.5.0" "@turf/line-intersect" "^6.5.0"
"@turf/meta" "^6.5.0" "@turf/meta" "^6.5.0"
"@turf/square@^6.3.0": "@turf/square@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/square/-/square-6.5.0.tgz#ab43eef99d39c36157ab5b80416bbeba1f6b2122" resolved "https://registry.yarnpkg.com/@turf/square/-/square-6.5.0.tgz#ab43eef99d39c36157ab5b80416bbeba1f6b2122"
integrity sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ== integrity sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==
@ -1754,7 +1743,7 @@
"@turf/distance" "^6.5.0" "@turf/distance" "^6.5.0"
"@turf/helpers" "^6.5.0" "@turf/helpers" "^6.5.0"
"@turf/truncate@^6.3.0": "@turf/truncate@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-6.5.0.tgz#c3a16cad959f1be1c5156157d5555c64b19185d8" resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-6.5.0.tgz#c3a16cad959f1be1c5156157d5555c64b19185d8"
integrity sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg== integrity sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==