@terraware/web-components 3.5.11 → 3.5.12-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,48 +1,8 @@
1
1
  import React from 'react';
2
- import { MultiPolygon } from 'geojson';
3
2
  import { MapMouseEvent } from 'mapbox-gl';
4
3
  import 'mapbox-gl/dist/mapbox-gl.css';
5
- import { MapCursor, MapFillComponentStyle, MapIconComponentStyle, MapViewStyle } from './types';
6
- export type MapFeature = {
7
- featureId: string;
8
- geometry: MultiPolygon;
9
- label?: string;
10
- onClick?: () => void;
11
- priority?: number;
12
- selected?: boolean;
13
- };
14
- export type MapFeatureGroup = {
15
- groupId: string;
16
- hidden?: boolean;
17
- features: MapFeature[];
18
- style: MapFillComponentStyle;
19
- };
20
- export type MapHighlight = {
21
- featureIds: {
22
- featureGroupId: string;
23
- featureId: string;
24
- }[];
25
- highlightId: string;
26
- style: MapFillComponentStyle;
27
- };
28
- export type MapHighlightGroup = {
29
- hidden?: boolean;
30
- highlights: MapHighlight[];
31
- };
32
- export type MapMarker = {
33
- id: string;
34
- longitude: number;
35
- latitude: number;
36
- onClick?: () => void;
37
- selected?: boolean;
38
- };
39
- export type MapMarkerGroup = {
40
- hidden?: boolean;
41
- markers: MapMarker[];
42
- style: MapIconComponentStyle;
43
- };
4
+ import { MapCursor, MapHighlightGroup, MapLayer, MapMarkerGroup, MapViewStyle } from './types';
44
5
  export type MapBoxProps = {
45
- children?: React.ReactNode;
46
6
  clusterRadius?: number;
47
7
  containerId?: string;
48
8
  controlBottomLeft?: React.ReactNode;
@@ -51,7 +11,7 @@ export type MapBoxProps = {
51
11
  cursorMap?: MapCursor;
52
12
  disableDoubleClickZoom?: boolean;
53
13
  disableZoom?: boolean;
54
- featureGroups?: MapFeatureGroup[];
14
+ drawerOpen?: boolean;
55
15
  hideFullScreenControl?: boolean;
56
16
  hideMapViewStyleControl?: boolean;
57
17
  hideZoomControl?: boolean;
@@ -61,6 +21,7 @@ export type MapBoxProps = {
61
21
  longitude?: number;
62
22
  zoom?: number;
63
23
  };
24
+ layers?: MapLayer[];
64
25
  mapId: string;
65
26
  mapImageUrls?: string[];
66
27
  mapViewStyle: MapViewStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"MapBox.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapBox.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAajF,OAAO,EAAuB,aAAa,EAAS,MAAM,WAAW,CAAC;AACtE,OAAO,8BAA8B,CAAC;AAKtC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,QAAQ,EAER,cAAc,EAEd,YAAY,EAEb,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,MAAM,UAAW,WAAW,KAAG,WA4jBpC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -14,15 +14,9 @@ var _utils = require("../../utils");
14
14
  var _Icon = _interopRequireDefault(require("../Icon/Icon"));
15
15
  var _MapViewStyleControl = _interopRequireDefault(require("./MapViewStyleControl"));
16
16
  var _types = require("./types");
17
- // Each layer item will become a feature, with a property of id.
18
-
19
- // Each layer will become a set of features that have the same type.
20
-
21
- // Additional shading/annotations for map entities
22
-
17
+ var _useMaintainLayerOrder = require("./useMaintainLayerOrder");
23
18
  const MapBox = props => {
24
19
  const {
25
- children,
26
20
  clusterRadius,
27
21
  containerId,
28
22
  controlBottomLeft,
@@ -31,7 +25,8 @@ const MapBox = props => {
31
25
  cursorMap,
32
26
  disableDoubleClickZoom,
33
27
  disableZoom,
34
- featureGroups,
28
+ drawerOpen,
29
+ layers: featureGroups,
35
30
  hideFullScreenControl,
36
31
  hideMapViewStyleControl,
37
32
  hideZoomControl,
@@ -113,7 +108,7 @@ const MapBox = props => {
113
108
  // Find all layers with at least some clickable elements
114
109
  const interactiveLayerIds = (0, _react.useMemo)(() => {
115
110
  var _featureGroups$filter;
116
- return featureGroups === null || featureGroups === void 0 ? void 0 : (_featureGroups$filter = featureGroups.filter(group => group.features.some(feature => feature.onClick !== undefined))) === null || _featureGroups$filter === void 0 ? void 0 : _featureGroups$filter.map(group => group.groupId);
111
+ return featureGroups === null || featureGroups === void 0 ? void 0 : (_featureGroups$filter = featureGroups.filter(group => group.features.some(feature => feature.onClick !== undefined))) === null || _featureGroups$filter === void 0 ? void 0 : _featureGroups$filter.map(group => group.layerId);
117
112
  }, [featureGroups]);
118
113
  const geojson = (0, _react.useMemo)(() => {
119
114
  const features = featureGroups === null || featureGroups === void 0 ? void 0 : featureGroups.flatMap(group => {
@@ -123,8 +118,8 @@ const MapBox = props => {
123
118
  id: feature.featureId,
124
119
  clickable: feature.onClick !== undefined,
125
120
  label: feature.label,
126
- layerFeatureId: "".concat(group.groupId, "/").concat(feature.featureId),
127
- layerId: group.groupId,
121
+ layerFeatureId: "".concat(group.layerId, "/").concat(feature.featureId),
122
+ layerId: group.layerId,
128
123
  priority: (_feature$priority = feature.priority) !== null && _feature$priority !== void 0 ? _feature$priority : 0,
129
124
  selected: (_feature$selected = feature.selected) !== null && _feature$selected !== void 0 ? _feature$selected : false
130
125
  };
@@ -145,43 +140,43 @@ const MapBox = props => {
145
140
  fillLayers,
146
141
  textLayers
147
142
  } = (0, _react.useMemo)(() => {
148
- const visibleGroups = featureGroups === null || featureGroups === void 0 ? void 0 : featureGroups.filter(group => !group.hidden);
149
- const _borderLayers = visibleGroups === null || visibleGroups === void 0 ? void 0 : visibleGroups.map(group => {
143
+ const _borderLayers = featureGroups === null || featureGroups === void 0 ? void 0 : featureGroups.map(group => {
150
144
  return /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
151
- key: "".concat(group.groupId, "-border"),
152
- id: "".concat(group.groupId, "-border"),
145
+ key: "".concat(group.layerId, "-border"),
146
+ id: "".concat(group.layerId, "-border"),
153
147
  source: 'mapData',
154
148
  type: "line",
155
149
  paint: {
156
150
  'line-color': group.style.borderColor,
157
151
  'line-width': 2
158
152
  },
159
- filter: ['==', ['get', 'layerId'], group.groupId]
153
+ filter: ['==', ['get', 'layerId'], group.layerId]
160
154
  });
161
155
  });
162
- const _fillLayers = visibleGroups === null || visibleGroups === void 0 ? void 0 : visibleGroups.map(group => {
156
+ const _fillLayers = featureGroups === null || featureGroups === void 0 ? void 0 : featureGroups.map(group => {
163
157
  var _group$style$opacity;
164
158
  const opacity = Math.min(0.4, (_group$style$opacity = group.style.opacity) !== null && _group$style$opacity !== void 0 ? _group$style$opacity : 0.2);
165
159
  const selectedOpacity = opacity * 2;
166
160
  const hoverOpacity = opacity * 1.5;
167
161
  const hoverAndSelectedOpacity = opacity * 2.5;
168
- const groupFilter = ['==', ['get', 'layerId'], group.groupId];
162
+ const groupFilter = ['==', ['get', 'layerId'], group.layerId];
163
+ const clickableFilter = ['==', ['get', 'clickable'], true];
169
164
  const selectedFilter = ['==', ['get', 'selected'], true];
170
165
  const notSelectedFilter = ['==', ['get', 'selected'], false];
171
166
  const hoverFilter = ['==', ['get', 'id'], hoverFeatureId !== null && hoverFeatureId !== void 0 ? hoverFeatureId : null];
172
167
  const notHoverFilter = ['!=', ['get', 'id'], hoverFeatureId !== null && hoverFeatureId !== void 0 ? hoverFeatureId : null];
173
168
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
174
- key: group.groupId,
175
- id: group.groupId,
169
+ key: group.layerId,
170
+ id: group.layerId,
176
171
  source: 'mapData',
177
172
  type: 'fill',
178
173
  paint: {
179
174
  'fill-opacity': 0
180
175
  },
181
- filter: groupFilter
176
+ filter: ['all', groupFilter, clickableFilter]
182
177
  }), /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
183
- key: "".concat(group.groupId, "-unselected"),
184
- id: "".concat(group.groupId, "-unselected"),
178
+ key: "".concat(group.layerId, "-unselected"),
179
+ id: "".concat(group.layerId, "-unselected"),
185
180
  source: 'mapData',
186
181
  type: 'fill',
187
182
  paint: group.style.fillPatternUrl ? {
@@ -193,8 +188,9 @@ const MapBox = props => {
193
188
  },
194
189
  filter: ['all', groupFilter, notSelectedFilter, notHoverFilter]
195
190
  }), /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
196
- key: "".concat(group.groupId, "-selected"),
197
- id: "".concat(group.groupId, "-selected"),
191
+ key: "".concat(group.layerId, "-selected"),
192
+ id: "".concat(group.layerId, "-selected"),
193
+ slot: 'bottom',
198
194
  source: 'mapData',
199
195
  type: 'fill',
200
196
  paint: group.style.fillPatternUrl ? {
@@ -206,8 +202,8 @@ const MapBox = props => {
206
202
  },
207
203
  filter: ['all', groupFilter, selectedFilter, notHoverFilter]
208
204
  }), /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
209
- key: "".concat(group.groupId, "-hover"),
210
- id: "".concat(group.groupId, "-hover"),
205
+ key: "".concat(group.layerId, "-hover"),
206
+ id: "".concat(group.layerId, "-hover"),
211
207
  source: 'mapData',
212
208
  type: 'fill',
213
209
  paint: group.style.fillPatternUrl ? {
@@ -219,8 +215,8 @@ const MapBox = props => {
219
215
  },
220
216
  filter: ['all', groupFilter, hoverFilter, notSelectedFilter]
221
217
  }), /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
222
- key: "".concat(group.groupId, "-selected-hover"),
223
- id: "".concat(group.groupId, "-selected-hover"),
218
+ key: "".concat(group.layerId, "-selected-hover"),
219
+ id: "".concat(group.layerId, "-selected-hover"),
224
220
  source: 'mapData',
225
221
  type: 'fill',
226
222
  paint: group.style.fillPatternUrl ? {
@@ -233,12 +229,12 @@ const MapBox = props => {
233
229
  filter: ['all', groupFilter, hoverFilter, selectedFilter]
234
230
  }));
235
231
  });
236
- const _textLayers = visibleGroups === null || visibleGroups === void 0 ? void 0 : visibleGroups.map(group => {
237
- const groupFilter = ['==', ['get', 'layerId'], group.groupId];
232
+ const _textLayers = featureGroups === null || featureGroups === void 0 ? void 0 : featureGroups.map(group => {
233
+ const groupFilter = ['==', ['get', 'layerId'], group.layerId];
238
234
  const labelFilter = ['has', 'label'];
239
235
  return /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
240
- key: "".concat(group.groupId, "-label"),
241
- id: "".concat(group.groupId, "-label"),
236
+ key: "".concat(group.layerId, "-label"),
237
+ id: "".concat(group.layerId, "-label"),
242
238
  source: 'mapData',
243
239
  type: 'symbol',
244
240
  layout: {
@@ -256,27 +252,26 @@ const MapBox = props => {
256
252
  });
257
253
  });
258
254
  return {
259
- borderLayers: _borderLayers,
260
- fillLayers: _fillLayers,
261
- textLayers: _textLayers
255
+ borderLayers: _borderLayers !== null && _borderLayers !== void 0 ? _borderLayers : [],
256
+ fillLayers: _fillLayers !== null && _fillLayers !== void 0 ? _fillLayers : [],
257
+ textLayers: _textLayers !== null && _textLayers !== void 0 ? _textLayers : []
262
258
  };
263
259
  }, [featureGroups, hoverFeatureId]);
264
260
  const highlightLayers = (0, _react.useMemo)(() => {
265
- var _visibleGroups$flatMa;
266
- const visibleGroups = highlightGroups === null || highlightGroups === void 0 ? void 0 : highlightGroups.filter(group => !group.hidden);
267
- return (_visibleGroups$flatMa = visibleGroups === null || visibleGroups === void 0 ? void 0 : visibleGroups.flatMap(group => {
268
- return group.highlights.map(highlight => {
261
+ var _highlightGroups$flat;
262
+ return (_highlightGroups$flat = highlightGroups === null || highlightGroups === void 0 ? void 0 : highlightGroups.flatMap(group => {
263
+ return group.highlights.map((highlight, index) => {
269
264
  var _highlight$style$opac, _highlight$style$opac2;
270
265
  const highlightFeatureIds = highlight.featureIds.map(_ref => {
271
266
  let {
272
- featureGroupId,
267
+ layerId,
273
268
  featureId
274
269
  } = _ref;
275
- return "".concat(featureGroupId, "/").concat(featureId);
270
+ return "".concat(layerId, "/").concat(featureId);
276
271
  });
277
272
  return /*#__PURE__*/_react.default.createElement(_mapbox.Layer, {
278
- key: "highlight-".concat(highlight.highlightId),
279
- id: "highlight-".concat(highlight.highlightId),
273
+ key: "highlight-".concat(group.highlightId, "-").concat(index),
274
+ id: "highlight-".concat(group.highlightId, "-").concat(index),
280
275
  source: 'mapData',
281
276
  type: 'fill',
282
277
  paint: highlight.style.fillPatternUrl ? {
@@ -289,11 +284,10 @@ const MapBox = props => {
289
284
  filter: ['all', ['has', 'layerFeatureId'], ['match', ['get', 'layerFeatureId'], highlightFeatureIds, true, false]]
290
285
  });
291
286
  });
292
- })) !== null && _visibleGroups$flatMa !== void 0 ? _visibleGroups$flatMa : [];
287
+ })) !== null && _highlightGroups$flat !== void 0 ? _highlightGroups$flat : [];
293
288
  }, [highlightGroups]);
294
289
  const markersComponents = (0, _react.useMemo)(() => {
295
- var _markerGroups$filter;
296
- return markerGroups === null || markerGroups === void 0 ? void 0 : (_markerGroups$filter = markerGroups.filter(markerGroup => !markerGroup.hidden)) === null || _markerGroups$filter === void 0 ? void 0 : _markerGroups$filter.flatMap(markerGroup => {
290
+ return markerGroups === null || markerGroups === void 0 ? void 0 : markerGroups.flatMap(markerGroup => {
297
291
  // cluster markers here
298
292
  const clusteredMarkers = clusterMarkers(mapRef.current, markerGroup.markers);
299
293
  return clusteredMarkers.map((markers, i) => {
@@ -346,7 +340,7 @@ const MapBox = props => {
346
340
  backgroundColor: selected ? markerGroup.style.iconColor : theme.palette.TwClrBg
347
341
  }
348
342
  }, /*#__PURE__*/_react.default.createElement("p", {
349
- className: "title"
343
+ className: "count"
350
344
  }, markers.length), /*#__PURE__*/_react.default.createElement(_Icon.default, {
351
345
  fillColor: selected ? theme.palette.TwClrBg : markerGroup.style.iconColor,
352
346
  name: markerGroup.style.iconName,
@@ -369,18 +363,26 @@ const MapBox = props => {
369
363
  }
370
364
  setHoverFeatureId(undefined);
371
365
  }, []);
366
+ (0, _react.useEffect)(() => {
367
+ if (!mapRef.current) {
368
+ return;
369
+ }
370
+ const observer = new ResizeObserver(() => {
371
+ var _mapRef$current2;
372
+ (_mapRef$current2 = mapRef.current) === null || _mapRef$current2 === void 0 ? void 0 : _mapRef$current2.resize();
373
+ });
374
+ observer.observe(mapRef.current.getContainer());
375
+ return () => observer.disconnect();
376
+ }, []);
377
+ (0, _react.useEffect)(() => {
378
+ if (!mapRef.current) {
379
+ return;
380
+ }
381
+ mapRef.current.resize();
382
+ }, [drawerOpen]);
372
383
 
373
384
  // Hovering interactive layers
374
- const onMouseEnter = (0, _react.useCallback)(event => {
375
- if (event.features && event.features.some(feature => {
376
- var _feature$properties;
377
- return (_feature$properties = feature.properties) === null || _feature$properties === void 0 ? void 0 : _feature$properties.clickable;
378
- })) {
379
- setCursor(cursorInteract !== null && cursorInteract !== void 0 ? cursorInteract : 'auto');
380
- } else {
381
- setCursor('auto');
382
- }
383
- }, [cursorInteract]);
385
+ const onMouseEnter = (0, _react.useCallback)(() => setCursor(cursorInteract !== null && cursorInteract !== void 0 ? cursorInteract : 'pointer'), [cursorInteract]);
384
386
  const onMouseLeave = (0, _react.useCallback)(() => setCursor('auto'), []);
385
387
 
386
388
  // Entering and exiting canvases
@@ -408,6 +410,10 @@ const MapBox = props => {
408
410
  onClickCanvas(event);
409
411
  }
410
412
  }, [featureGroups, onClickCanvas]);
413
+ const orderedLayerIds = (0, _react.useMemo)(() => {
414
+ return [...fillLayers.map(layer => layer.props.id), ...highlightLayers.map(layer => layer.props.id), ...borderLayers.map(layer => layer.props.id), ...textLayers.map(layer => layer.props.id)];
415
+ }, [borderLayers, fillLayers, highlightLayers, textLayers]);
416
+ (0, _useMaintainLayerOrder.useMaintainLayerOrder)(mapRef, orderedLayerIds);
411
417
  return /*#__PURE__*/_react.default.createElement(_mapbox.default, {
412
418
  key: mapId,
413
419
  attributionControl: false,
@@ -420,8 +426,8 @@ const MapBox = props => {
420
426
  ref: mapRefCallback,
421
427
  scrollZoom: !disableZoom,
422
428
  style: {
423
- width: 'fill',
424
- height: isDesktop ? 'fill' : '80vh',
429
+ width: 'auto',
430
+ height: isDesktop ? 'auto' : '80vh',
425
431
  flexGrow: isDesktop ? 1 : undefined
426
432
  },
427
433
  onClick: onMapClick,
@@ -467,6 +473,6 @@ const MapBox = props => {
467
473
  id: "mapData",
468
474
  type: "geojson",
469
475
  data: geojson
470
- }, borderLayers, fillLayers, highlightLayers, textLayers), markersComponents, children);
476
+ }, fillLayers, highlightLayers, borderLayers, textLayers), markersComponents);
471
477
  };
472
478
  var _default = exports.default = MapBox;
@@ -1 +1 @@
1
- {"version":3,"file":"MapContainer.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapContainer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,eAAe,CAAC;AAEvB,KAAK,iBAAiB,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,YAAY,UAAW,iBAAiB,4CAgB7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"MapContainer.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapContainer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAGlD,OAAO,eAAe,CAAC;AAEvB,KAAK,iBAAiB,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,YAAY,UAAW,iBAAiB,4CAiB7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _utils = require("../../utils");
10
10
  require("./styles.scss");
11
11
  const MapContainer = props => {
@@ -19,9 +19,12 @@ const MapContainer = props => {
19
19
  const {
20
20
  isDesktop
21
21
  } = (0, _utils.useDeviceInfo)();
22
+ const drawerOnly = (0, _react.useMemo)(() => !isDesktop && drawerOpen, [drawerOpen, isDesktop]);
22
23
  return /*#__PURE__*/_react.default.createElement("div", {
23
24
  id: containerId,
24
25
  className: "map-container map-container".concat(isDesktop ? '--desktop' : "--mobile".concat(drawerOpen ? '-drawer-open' : ''))
25
- }, (isDesktop || !drawerOpen) && map, drawerOpen && drawer, (isDesktop || !drawerOpen) && legend);
26
+ }, /*#__PURE__*/_react.default.createElement("div", {
27
+ className: "map-holder".concat(drawerOnly ? ' map-holder--hidden' : '')
28
+ }, map), drawerOpen && drawer, !drawerOnly && legend);
26
29
  };
27
30
  var _default = exports.default = MapContainer;
@@ -1,6 +1,6 @@
1
1
  import { CSSProperties, ReactNode } from 'react';
2
2
  import './styles.scss';
3
- type MapDrawerSize = 'small' | 'medium';
3
+ export type MapDrawerSize = 'small' | 'medium';
4
4
  export type MapDrawerProp = {
5
5
  children?: ReactNode;
6
6
  onClose?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"MapDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapDrawer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMxD,OAAO,eAAe,CAAC;AAEvB,KAAK,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,SAAS,UAAW,aAAa,mDAqBtC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"MapDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapDrawer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMxD,OAAO,eAAe,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,SAAS,UAAW,aAAa,mDAqBtC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -7,10 +7,13 @@ export type MapLayerLegendItem = {
7
7
  style: MapIconComponentStyle | MapFillComponentStyle;
8
8
  };
9
9
  export type MapLayerLegendGroup = {
10
+ disabled?: boolean;
11
+ tooltip?: string;
12
+ title: string;
10
13
  type: 'layer';
11
14
  items: MapLayerLegendItem[];
12
- setSelectedLayer: (id: string) => void;
13
- selectedLayer: string;
15
+ setSelectedLayer: (id: string | undefined) => void;
16
+ selectedLayer?: string;
14
17
  };
15
18
  export type MapMarkerLegendItem = {
16
19
  disabled?: boolean;
@@ -21,24 +24,26 @@ export type MapMarkerLegendItem = {
21
24
  visible: boolean;
22
25
  };
23
26
  export type MapMarkerLegendGroup = {
27
+ disabled?: boolean;
28
+ tooltip?: string;
29
+ title: string;
24
30
  type: 'marker';
25
31
  items: MapMarkerLegendItem[];
26
32
  };
27
33
  export type MapHighlightLegendItem = {
28
34
  label: string;
29
- style: MapIconComponentStyle | MapFillComponentStyle;
35
+ style: MapFillComponentStyle;
30
36
  };
31
37
  export type MapHighlightLegendGroup = {
38
+ disabled?: boolean;
39
+ tooltip?: string;
40
+ title: string;
32
41
  type: 'highlight';
33
42
  items: MapHighlightLegendItem[];
34
43
  setVisible?: (visible: boolean) => void;
35
44
  visible: boolean;
36
45
  };
37
- export type MapLegendGroup = {
38
- disabled?: boolean;
39
- tooltip?: string;
40
- title: string;
41
- } & (MapMarkerLegendGroup | MapLayerLegendGroup | MapHighlightLegendGroup);
46
+ export type MapLegendGroup = MapMarkerLegendGroup | MapLayerLegendGroup | MapHighlightLegendGroup;
42
47
  export type MapLegendProps = {
43
48
  legends: MapLegendGroup[];
44
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MapLegend.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapLegend.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,CAAC,oBAAoB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,SAAS,gBAAiB,cAAc,KAAG,WAqLhD,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"MapLegend.d.ts","sourceRoot":"","sources":["../../../src/components/Map/MapLegend.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AAElG,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,SAAS,gBAAiB,cAAc,KAAG,WA0LhD,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -65,21 +65,27 @@ const MapLegend = _ref => {
65
65
  size: 'small'
66
66
  });
67
67
  } else {
68
- var _item$style$opacity, _item$style$borderCol;
69
- const opacity = (_item$style$opacity = item.style.opacity) !== null && _item$style$opacity !== void 0 ? _item$style$opacity : 0.2;
68
+ var _item$style$borderCol, _item$style$opacity;
70
69
  return /*#__PURE__*/_react.default.createElement(_material.Box, {
70
+ display: 'flex',
71
71
  sx: {
72
- border: "2px solid ".concat((_item$style$borderCol = item.style.borderColor) !== null && _item$style$borderCol !== void 0 ? _item$style$borderCol : theme.palette.TwClrBrdr),
73
- backgroundColor: item.style.fillColor,
74
- backgroundImage: item.style.fillPatternUrl ? "url('".concat(item.style.fillPatternUrl, "')") : undefined,
75
- backgroundRepeat: 'repeat',
76
- opacity: disabled ? 0.7 * opacity : opacity,
72
+ border: "2px solid ".concat((_item$style$borderCol = item.style.borderColor) !== null && _item$style$borderCol !== void 0 ? _item$style$borderCol : theme.palette.TwClrBaseGreen300),
73
+ opacity: disabled ? 0.7 : 1.0,
77
74
  height: '16px',
78
75
  width: '24px',
79
76
  minWidth: '24px',
80
77
  marginRight: theme.spacing(1)
81
78
  }
82
- });
79
+ }, /*#__PURE__*/_react.default.createElement(_material.Box, {
80
+ height: '16px',
81
+ width: '24px',
82
+ sx: {
83
+ backgroundColor: item.style.fillColor,
84
+ backgroundImage: item.style.fillPatternUrl ? "url('".concat(item.style.fillPatternUrl, "')") : undefined,
85
+ backgroundRepeat: 'repeat',
86
+ opacity: (_item$style$opacity = item.style.opacity) !== null && _item$style$opacity !== void 0 ? _item$style$opacity : 0.2
87
+ }
88
+ }));
83
89
  }
84
90
  };
85
91
  const visibleComponent = () => {
@@ -95,12 +101,11 @@ const MapLegend = _ref => {
95
101
  display: "flex"
96
102
  }, visibleIcon);
97
103
  case 'layer':
98
- const layerLegend = legend;
99
104
  const layerItem = item;
100
105
  return /*#__PURE__*/_react.default.createElement(_material.Box, {
101
106
  display: "flex",
102
107
  sx: {
103
- visibility: layerItem.id === layerLegend.selectedLayer ? 'visible' : 'hidden'
108
+ visibility: layerItem.id === legend.selectedLayer ? 'visible' : 'hidden'
104
109
  }
105
110
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
106
111
  name: "checkmark",
@@ -158,8 +163,10 @@ const MapLegend = _ref => {
158
163
  padding: theme.spacing(2, 1),
159
164
  flexDirection: 'column',
160
165
  maxWidth: isDesktop ? '184px' : 'fill',
166
+ minWidth: isDesktop ? '160px' : undefined,
161
167
  width: isDesktop ? 'auto' : 'fill',
162
- margin: 0
168
+ margin: 0,
169
+ overflow: 'scroll'
163
170
  }, legendComponents);
164
171
  };
165
172
  var _default = exports.default = MapLegend;
@@ -0,0 +1,59 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { MapMouseEvent } from 'mapbox-gl';
3
+ import { MapDrawerSize } from './MapDrawer';
4
+ import { MapHighlightLegendItem } from './MapLegend';
5
+ import { MapCursor, MapHighlightGroup, MapLayer, MapMarkerGroup, MapViewStyle } from './types';
6
+ export type MapHighlightFeatureSection = {
7
+ highlight: MapHighlightGroup;
8
+ legendItems: MapHighlightLegendItem[];
9
+ sectionDisabled?: boolean;
10
+ sectionTitle: string;
11
+ sectionTooltip?: string;
12
+ type: 'highlight';
13
+ };
14
+ export type MapLayerFeatureSection = {
15
+ layers: MapLayer[];
16
+ sectionDisabled?: boolean;
17
+ sectionTitle: string;
18
+ sectionTooltip?: string;
19
+ type: 'layer';
20
+ };
21
+ export type MapMarkerFeatureSection = {
22
+ groups: MapMarkerGroup[];
23
+ sectionDisabled?: boolean;
24
+ sectionTitle: string;
25
+ sectionTooltip?: string;
26
+ type: 'marker';
27
+ };
28
+ export type MapFeatureSection = MapHighlightFeatureSection | MapLayerFeatureSection | MapMarkerFeatureSection;
29
+ export type MapComponentProps = {
30
+ clusterRadius?: number;
31
+ controlBottomLeft?: React.ReactNode;
32
+ controlTopRight?: React.ReactNode;
33
+ cursorInteract?: MapCursor;
34
+ cursorMap?: MapCursor;
35
+ disableDoubleClickZoom?: boolean;
36
+ disableZoom?: boolean;
37
+ drawerChildren?: ReactNode;
38
+ drawerOpen?: boolean;
39
+ drawerSize?: MapDrawerSize;
40
+ drawerTitle?: string;
41
+ features?: MapFeatureSection[];
42
+ hideFullScreenControl?: boolean;
43
+ hideLegend?: boolean;
44
+ hideMapViewStyleControl?: boolean;
45
+ hideZoomControl?: boolean;
46
+ initialSelectedLayerId?: string;
47
+ initialMapViewStyle?: MapViewStyle;
48
+ initialViewState?: {
49
+ latitude?: number;
50
+ longitude?: number;
51
+ zoom?: number;
52
+ };
53
+ onClickCanvas?: (event: MapMouseEvent) => void;
54
+ setDrawerOpen?: (open: boolean) => void;
55
+ token: string;
56
+ };
57
+ declare const MapComponent: (props: MapComponentProps) => import("react/jsx-runtime").JSX.Element;
58
+ export default MapComponent;
59
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Map/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAkC,MAAM,OAAO,CAAC;AAKzE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,OAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAkB,EAAE,sBAAsB,EAAkB,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/F,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAE9G,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC,gBAAgB,CAAC,EAAE;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,YAAY,UAAW,iBAAiB,4CAgO7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _centroid = _interopRequireDefault(require("@turf/centroid"));
11
+ var _helpers = require("@turf/helpers");
12
+ var _union = _interopRequireDefault(require("@turf/union"));
13
+ var _MapBox = _interopRequireDefault(require("./MapBox"));
14
+ var _MapContainer = _interopRequireDefault(require("./MapContainer"));
15
+ var _MapDrawer = _interopRequireDefault(require("./MapDrawer"));
16
+ var _MapLegend = _interopRequireDefault(require("./MapLegend"));
17
+ const MapComponent = props => {
18
+ const {
19
+ clusterRadius,
20
+ controlBottomLeft,
21
+ controlTopRight,
22
+ cursorInteract,
23
+ cursorMap,
24
+ disableDoubleClickZoom,
25
+ disableZoom,
26
+ drawerChildren,
27
+ drawerOpen,
28
+ drawerSize,
29
+ drawerTitle,
30
+ features,
31
+ hideFullScreenControl,
32
+ hideLegend,
33
+ hideMapViewStyleControl,
34
+ hideZoomControl,
35
+ initialSelectedLayerId,
36
+ initialMapViewStyle,
37
+ initialViewState,
38
+ onClickCanvas,
39
+ setDrawerOpen,
40
+ token
41
+ } = props;
42
+ const [mapViewStyle, setMapViewStyle] = (0, _react.useState)(initialMapViewStyle !== null && initialMapViewStyle !== void 0 ? initialMapViewStyle : 'Streets');
43
+ const [visibleHighlights, setVisibleHighlights] = (0, _react.useState)([]);
44
+ const setHighlightVisible = (0, _react.useCallback)(highlightId => visible => {
45
+ if (visible) {
46
+ setVisibleHighlights(_visibleHighlights => [..._visibleHighlights, highlightId]);
47
+ } else {
48
+ setVisibleHighlights(_visibleHighlights => _visibleHighlights.filter(_highlightId => _highlightId !== highlightId));
49
+ }
50
+ }, []);
51
+ const [visibleMarkers, setVisibleMarkers] = (0, _react.useState)([]);
52
+ const setMarkerVisible = (0, _react.useCallback)(markerGroupId => visible => {
53
+ if (visible) {
54
+ setVisibleMarkers(_visibleMarkers => [..._visibleMarkers, markerGroupId]);
55
+ } else {
56
+ setVisibleMarkers(_visibleMarkers => _visibleMarkers.filter(_markerGroupId => _markerGroupId !== markerGroupId));
57
+ }
58
+ }, []);
59
+ const [selectedLayer, setSelectedLayer] = (0, _react.useState)(initialSelectedLayerId);
60
+ const legends = (0, _react.useMemo)(() => {
61
+ return features === null || features === void 0 ? void 0 : features.map(feature => {
62
+ const baseLegendGroup = {
63
+ disabled: feature.sectionDisabled,
64
+ title: feature.sectionTitle,
65
+ tooltip: feature.sectionTooltip
66
+ };
67
+ switch (feature.type) {
68
+ case 'highlight':
69
+ return {
70
+ ...baseLegendGroup,
71
+ items: feature.legendItems,
72
+ type: 'highlight',
73
+ visible: visibleHighlights.findIndex(highlightId => highlightId === feature.highlight.highlightId) >= 0,
74
+ setVisible: setHighlightVisible(feature.highlight.highlightId)
75
+ };
76
+ case 'layer':
77
+ return {
78
+ ...baseLegendGroup,
79
+ items: feature.layers.map(layer => ({
80
+ disabled: layer.disabled,
81
+ id: layer.layerId,
82
+ label: layer.label,
83
+ style: layer.style
84
+ })),
85
+ selectedLayer,
86
+ setSelectedLayer,
87
+ type: 'layer'
88
+ };
89
+ case 'marker':
90
+ return {
91
+ ...baseLegendGroup,
92
+ items: feature.groups.map(group => ({
93
+ disabled: group.disabled,
94
+ id: group.markerGroupId,
95
+ label: group.label,
96
+ style: group.style,
97
+ setVisible: setMarkerVisible(group.markerGroupId),
98
+ visible: visibleMarkers.findIndex(markerId => markerId === group.markerGroupId) >= 0
99
+ })),
100
+ type: 'marker'
101
+ };
102
+ }
103
+ });
104
+ }, [features, selectedLayer, visibleHighlights, visibleMarkers]);
105
+ const layers = (0, _react.useMemo)(() => {
106
+ var _features$filter, _features$filter$flat;
107
+ return features === null || features === void 0 ? void 0 : (_features$filter = features.filter(feature => feature.type === 'layer')) === null || _features$filter === void 0 ? void 0 : (_features$filter$flat = _features$filter.flatMap(feature => feature.layers)) === null || _features$filter$flat === void 0 ? void 0 : _features$filter$flat.filter(layer => layer.layerId === selectedLayer);
108
+ }, [features, selectedLayer]);
109
+ const highlightGroups = (0, _react.useMemo)(() => {
110
+ var _features$filter2, _features$filter2$map;
111
+ return features === null || features === void 0 ? void 0 : (_features$filter2 = features.filter(feature => feature.type === 'highlight')) === null || _features$filter2 === void 0 ? void 0 : (_features$filter2$map = _features$filter2.map(feature => feature.highlight)) === null || _features$filter2$map === void 0 ? void 0 : _features$filter2$map.filter(highlight => visibleHighlights.findIndex(_highlightId => _highlightId === highlight.highlightId) >= 0);
112
+ }, [features, visibleHighlights]);
113
+ const markerGroups = (0, _react.useMemo)(() => {
114
+ var _features$filter3;
115
+ return features === null || features === void 0 ? void 0 : (_features$filter3 = features.filter(feature => feature.type === 'marker')) === null || _features$filter3 === void 0 ? void 0 : _features$filter3.flatMap(feature => feature.groups).filter(group => visibleMarkers.findIndex(_markerId => _markerId === group.markerGroupId) >= 0);
116
+ }, [features, visibleMarkers]);
117
+ const mapViewState = (0, _react.useMemo)(() => {
118
+ if (initialViewState) {
119
+ return initialViewState;
120
+ } else if (features) {
121
+ const boundaries = features.filter(feature => feature.type === 'layer').flatMap(feature => feature.layers).flatMap(layer => layer.features).map(geoFeature => (0, _helpers.multiPolygon)(geoFeature.geometry.coordinates));
122
+ if (boundaries.length === 1) {
123
+ const center = (0, _centroid.default)(boundaries[0]);
124
+ return {
125
+ latitude: center.geometry.coordinates[1],
126
+ longitude: center.geometry.coordinates[0],
127
+ zoom: 12
128
+ };
129
+ } else if (boundaries.length > 1) {
130
+ const unionBoundaries = (0, _union.default)((0, _helpers.featureCollection)(boundaries));
131
+ if (unionBoundaries) {
132
+ const center = (0, _centroid.default)(unionBoundaries);
133
+ return {
134
+ latitude: center.geometry.coordinates[1],
135
+ longitude: center.geometry.coordinates[0],
136
+ zoom: 12 // TODO: Calculate default zoom level
137
+ };
138
+ }
139
+ }
140
+ }
141
+ }, [initialViewState]);
142
+ const mapImageUrls = (0, _react.useMemo)(() => {
143
+ var _features$filter4, _features$filter5;
144
+ const layerFeatures = (_features$filter4 = features === null || features === void 0 ? void 0 : features.filter(feature => feature.type === 'layer')) !== null && _features$filter4 !== void 0 ? _features$filter4 : [];
145
+ const highlightFeatures = (_features$filter5 = features === null || features === void 0 ? void 0 : features.filter(feature => feature.type === 'highlight')) !== null && _features$filter5 !== void 0 ? _features$filter5 : [];
146
+ const layerImageUrls = layerFeatures.flatMap(feature => feature.layers).map(layer => layer.style.fillPatternUrl).filter(url => url !== undefined);
147
+ const highlightImageUrls = highlightFeatures.flatMap(feature => feature.highlight.highlights).map(highlight => highlight.style.fillPatternUrl).filter(url => url !== undefined);
148
+ const imageUrls = new Set(layerImageUrls);
149
+ highlightImageUrls.forEach(url => imageUrls.add(url));
150
+ return Array.from(imageUrls);
151
+ }, [features]);
152
+ return /*#__PURE__*/_react.default.createElement(_MapContainer.default, {
153
+ containerId: 'map-container',
154
+ map: /*#__PURE__*/_react.default.createElement(_MapBox.default, {
155
+ clusterRadius: clusterRadius,
156
+ containerId: 'map-container',
157
+ controlBottomLeft: controlBottomLeft,
158
+ controlTopRight: controlTopRight,
159
+ cursorInteract: cursorInteract,
160
+ cursorMap: cursorMap,
161
+ disableDoubleClickZoom: disableDoubleClickZoom,
162
+ disableZoom: disableZoom,
163
+ drawerOpen: drawerOpen,
164
+ hideFullScreenControl: hideFullScreenControl,
165
+ hideMapViewStyleControl: hideMapViewStyleControl,
166
+ hideZoomControl: hideZoomControl,
167
+ highlightGroups: highlightGroups,
168
+ initialViewState: mapViewState,
169
+ layers: layers,
170
+ mapId: 'mapId',
171
+ mapImageUrls: mapImageUrls,
172
+ mapViewStyle: mapViewStyle,
173
+ markerGroups: markerGroups,
174
+ onClickCanvas: onClickCanvas,
175
+ setMapViewStyle: setMapViewStyle,
176
+ token: token
177
+ }),
178
+ drawer: /*#__PURE__*/_react.default.createElement(_MapDrawer.default, {
179
+ open: drawerOpen !== null && drawerOpen !== void 0 ? drawerOpen : false,
180
+ onClose: () => setDrawerOpen === null || setDrawerOpen === void 0 ? void 0 : setDrawerOpen(false),
181
+ size: drawerSize !== null && drawerSize !== void 0 ? drawerSize : 'small',
182
+ title: drawerTitle !== null && drawerTitle !== void 0 ? drawerTitle : ''
183
+ }, drawerChildren),
184
+ drawerOpen: drawerOpen,
185
+ legend: !hideLegend && legends && /*#__PURE__*/_react.default.createElement(_MapLegend.default, {
186
+ legends: legends
187
+ })
188
+ });
189
+ };
190
+ var _default = exports.default = MapComponent;
@@ -8,6 +8,7 @@
8
8
 
9
9
  &--desktop {
10
10
  flex-direction: row;
11
+ height: 700px;
11
12
  max-height: 700px;
12
13
 
13
14
  :fullscreen {
@@ -23,6 +24,17 @@
23
24
  border: none;
24
25
  border-radius: none;
25
26
  }
27
+
28
+ .map-holder {
29
+ display: flex;
30
+ flex-direction: column;
31
+ height: auto;
32
+ width: 100%;
33
+
34
+ &--hidden {
35
+ display: none;
36
+ }
37
+ }
26
38
  }
27
39
 
28
40
  .map-drawer {
@@ -1,3 +1,4 @@
1
+ import { MultiPolygon } from 'geojson';
1
2
  import { IconName } from '../Icon/icons';
2
3
  /**
3
4
  * Properties class for GeoJson, with a few reserved object defined.
@@ -23,6 +24,46 @@ export type MapFillComponentStyle = {
23
24
  opacity?: number;
24
25
  type: 'fill';
25
26
  };
27
+ export type MapLayerFeature = {
28
+ featureId: string;
29
+ geometry: MultiPolygon;
30
+ label?: string;
31
+ onClick?: () => void;
32
+ priority?: number;
33
+ selected?: boolean;
34
+ };
35
+ export type MapLayer = {
36
+ disabled?: boolean;
37
+ features: MapLayerFeature[];
38
+ label: string;
39
+ layerId: string;
40
+ style: MapFillComponentStyle;
41
+ };
42
+ export type MapHighlight = {
43
+ featureIds: {
44
+ layerId: string;
45
+ featureId: string;
46
+ }[];
47
+ style: MapFillComponentStyle;
48
+ };
49
+ export type MapHighlightGroup = {
50
+ highlightId: string;
51
+ highlights: MapHighlight[];
52
+ };
53
+ export type MapMarker = {
54
+ id: string;
55
+ longitude: number;
56
+ latitude: number;
57
+ onClick?: () => void;
58
+ selected?: boolean;
59
+ };
60
+ export type MapMarkerGroup = {
61
+ disabled?: boolean;
62
+ label: string;
63
+ markers: MapMarker[];
64
+ markerGroupId: string;
65
+ style: MapIconComponentStyle;
66
+ };
26
67
  export type MapViewStyle = 'Outdoors' | 'Satellite' | 'Light' | 'Dark' | 'Streets';
27
68
  export declare const MapViewStyles: MapViewStyle[];
28
69
  export declare const stylesUrl: Record<MapViewStyle, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Map/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AACnF,eAAO,MAAM,aAAa,EAAE,YAAY,EAA0D,CAAC;AAEnG,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAMlD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Map/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AACnF,eAAO,MAAM,aAAa,EAAE,YAAY,EAA0D,CAAC;AAEnG,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAMlD,CAAC"}
@@ -8,6 +8,12 @@ exports.stylesUrl = exports.MapViewStyles = void 0;
8
8
  * Properties class for GeoJson, with a few reserved object defined.
9
9
  */
10
10
 
11
+ // Each layer item will become a feature, with a property of id.
12
+
13
+ // Each layer will become a set of features that have the same type.
14
+
15
+ // Additional shading/annotations for map entities
16
+
11
17
  const MapViewStyles = exports.MapViewStyles = ['Outdoors', 'Satellite', 'Light', 'Dark', 'Streets'];
12
18
  const stylesUrl = exports.stylesUrl = {
13
19
  Outdoors: 'mapbox://styles/mapbox/outdoors-v12?optimize=true',
@@ -0,0 +1,7 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { MapRef } from 'react-map-gl/mapbox';
3
+ /**
4
+ * Ensures that all given layers maintain strict order in the Mapbox layer stack.
5
+ */
6
+ export declare const useMaintainLayerOrder: (mapRef: MutableRefObject<MapRef | null>, orderedLayerIds: string[]) => void;
7
+ //# sourceMappingURL=useMaintainLayerOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMaintainLayerOrder.d.ts","sourceRoot":"","sources":["../../../src/components/Map/useMaintainLayerOrder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAa,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAAY,iBAAiB,MAAM,GAAG,IAAI,CAAC,mBAAmB,MAAM,EAAE,SAoBvG,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMaintainLayerOrder = void 0;
7
+ var _react = require("react");
8
+ /**
9
+ * Ensures that all given layers maintain strict order in the Mapbox layer stack.
10
+ */
11
+ const useMaintainLayerOrder = (mapRef, orderedLayerIds) => {
12
+ (0, _react.useEffect)(() => {
13
+ const map = mapRef.current;
14
+ if (!map) {
15
+ return;
16
+ }
17
+
18
+ // Only move layers that exist
19
+ const existingLayerIds = orderedLayerIds.filter(id => map.getLayer(id));
20
+
21
+ // Reverse iterate so first in array ends up lowest
22
+ for (let i = existingLayerIds.length - 1; i >= 0; i--) {
23
+ const layerId = existingLayerIds[i];
24
+ try {
25
+ map.moveLayer(layerId, i < existingLayerIds.length - 1 ? existingLayerIds[i + 1] : undefined);
26
+ } catch (e) {
27
+ // moveLayer will throw if layer doesn't exist in current style
28
+ }
29
+ }
30
+ }, [mapRef, orderedLayerIds]);
31
+ };
32
+ exports.useMaintainLayerOrder = useMaintainLayerOrder;
package/index.d.ts CHANGED
@@ -15,6 +15,7 @@ import FormBottomBar from './components/FormBottomBar';
15
15
  import Icon from './components/Icon/Icon';
16
16
  import icons from './components/Icon/icons';
17
17
  import IconTooltip from './components/IconTooltip';
18
+ import MapComponent from './components/Map';
18
19
  import Message from './components/Message/Message';
19
20
  import MultiSelect from './components/MultiSelect';
20
21
  import NavFooter from './components/Navbar/NavFooter';
@@ -62,5 +63,5 @@ export type { Tab, TabsProps } from './components/Tabs';
62
63
  export type { ConfirmProps } from './components/Confirm';
63
64
  export type { DatePickerDateType, Props as DatePickerProps } from './components/DatePicker/DatePicker';
64
65
  export type { DateType } from './utils/date';
65
- export { AntSwitch, Autocomplete, Badge, BusySpinner, Button, CellRenderer, CellDateRenderer, Checkbox, Confirm, DatePicker, descendingComparator, DialogBox, Divisor, Dropdown, DropdownV1, ErrorBox, FileChooser, FormBottomBar, getComparator, icons, Icon, IconTooltip, Message, MultiSelect, NavFooter, NavItem, NavSection, Navbar, Note, PageForm, Pill, PillList, PhotoChooser, PlacementWrapper, Popover, PopoverMenu, PopoverMultiSelect, ProgressCircle, RadioButton, Select, SelectT, Separator, Slider, stableSort, SummaryBox, Svg, Table, Tabs, Textfield, TextTruncated, theme, Tooltip, ViewPhotosDialog, };
66
+ export { AntSwitch, Autocomplete, Badge, BusySpinner, Button, CellRenderer, CellDateRenderer, Checkbox, Confirm, DatePicker, descendingComparator, DialogBox, Divisor, Dropdown, DropdownV1, ErrorBox, FileChooser, FormBottomBar, getComparator, icons, Icon, IconTooltip, MapComponent, Message, MultiSelect, NavFooter, NavItem, NavSection, Navbar, Note, PageForm, Pill, PillList, PhotoChooser, PlacementWrapper, Popover, PopoverMenu, PopoverMultiSelect, ProgressCircle, RadioButton, Select, SelectT, Separator, Slider, stableSort, SummaryBox, Svg, Table, Tabs, Textfield, TextTruncated, theme, Tooltip, ViewPhotosDialog, };
66
67
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/index.js CHANGED
@@ -119,6 +119,12 @@ Object.defineProperty(exports, "IconTooltip", {
119
119
  return _IconTooltip.default;
120
120
  }
121
121
  });
122
+ Object.defineProperty(exports, "MapComponent", {
123
+ enumerable: true,
124
+ get: function () {
125
+ return _Map.default;
126
+ }
127
+ });
122
128
  Object.defineProperty(exports, "Message", {
123
129
  enumerable: true,
124
130
  get: function () {
@@ -335,6 +341,7 @@ var _FormBottomBar = _interopRequireDefault(require("./components/FormBottomBar"
335
341
  var _Icon = _interopRequireDefault(require("./components/Icon/Icon"));
336
342
  var _icons = _interopRequireDefault(require("./components/Icon/icons"));
337
343
  var _IconTooltip = _interopRequireDefault(require("./components/IconTooltip"));
344
+ var _Map = _interopRequireDefault(require("./components/Map"));
338
345
  var _Message = _interopRequireDefault(require("./components/Message/Message"));
339
346
  var _MultiSelect = _interopRequireDefault(require("./components/MultiSelect"));
340
347
  var _NavFooter = _interopRequireDefault(require("./components/Navbar/NavFooter"));
@@ -45,6 +45,6 @@ th, td {
45
45
  padding: 15px;
46
46
  }
47
47
  </style>
48
- <table><thead><tr><th class="string">department</th><th class="string">related to</th><th class="string">name</th><th class="string">license period</th><th class="string">material / not material</th><th class="string">license type</th><th class="string">link</th><th class="string">remote version</th><th class="string">installed version</th><th class="string">defined version</th><th class="string">author</th></tr></thead><tbody><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@dnd-kit/core</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/clauderic/dnd-kit.git</td><td class="string">6.3.1</td><td class="string">6.1.0</td><td class="string">^6.0.7</td><td class="string">Claudéric Demers</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@dnd-kit/sortable</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/clauderic/dnd-kit.git</td><td class="string">7.0.2</td><td class="string">7.0.2</td><td class="string">^7.0.2</td><td class="string">Claudéric Demers</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@emotion/react</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/emotion-js/emotion.git#main</td><td class="string">11.14.0</td><td class="string">11.11.4</td><td class="string">^11.11.3</td><td class="string">Emotion Contributors</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@emotion/styled</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/emotion-js/emotion.git#main</td><td class="string">11.14.1</td><td class="string">11.11.5</td><td class="string">^11.11.3</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/icons-material</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/material-ui.git</td><td class="string">6.5.0</td><td class="string">6.5.0</td><td class="string">^6.0.0</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/lab</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/material-ui.git</td><td class="string">6.0.1-beta.36</td><td class="string">6.0.1-beta.36</td><td class="string">^6.0.1-beta.36</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/material</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/material-ui.git</td><td class="string">6.5.0</td><td class="string">6.5.0</td><td class="string">^6.0.0</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/x-date-pickers</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/mui-x.git</td><td class="string">7.29.4</td><td class="string">7.22.0</td><td class="string">^7.22.0</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">classnames</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/JedWatson/classnames.git</td><td class="string">2.5.1</td><td class="string">2.5.1</td><td class="string">^2.3.2</td><td class="string">Jed Watson</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">geojson</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">http://github.com/caseycesari/geojson.js.git</td><td class="string">0.5.0</td><td class="string">0.5.0</td><td class="string">^0.5.0</td><td class="string">Casey Cesari</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">luxon</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/moment/luxon.git</td><td class="string">3.7.1</td><td class="string">3.4.4</td><td class="string">^3.3.0</td><td class="string">Isaac Cambron</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">mapbox-gl</td><td class="string">perpetual</td><td class="string">material</td><td class="string">SEE LICENSE IN LICENSE.txt</td><td class="string">git://github.com/mapbox/mapbox-gl-js.git</td><td class="string">3.14.0</td><td class="string">3.13.0</td><td class="string">^3.13.0</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/facebook/react.git</td><td class="string">18.3.1</td><td class="string">18.3.1</td><td class="string">^18.2.0</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-dom</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/facebook/react.git</td><td class="string">18.3.1</td><td class="string">18.3.1</td><td class="string">^18.2.0</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-intersection-observer</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/thebuilder/react-intersection-observer.git</td><td class="string">9.16.0</td><td class="string">9.10.2</td><td class="string">^9.5.2</td><td class="string">Daniel Schmidt</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-map-gl</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">https://github.com/visgl/react-map-gl.git</td><td class="string">8.0.4</td><td class="string">8.0.4</td><td class="string">^8.0.4</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-multi-carousel</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/YIZHUANG/react-multi-carousel.git</td><td class="string">2.8.6</td><td class="string">2.8.5</td><td class="string">^2.8.2</td><td class="string">YI ZHUANG https://github.com/YIZHUANG</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-responsive</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git://github.com/contra/react-responsive.git</td><td class="string">9.0.2</td><td class="string">9.0.2</td><td class="string">^9.0.2</td><td class="string">Contra <yo@contra.io> (https://contra.io)</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-sortable-hoc</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/clauderic/react-sortable-hoc.git</td><td class="string">2.0.0</td><td class="string">2.0.0</td><td class="string">^2.0.0</td><td class="string">Clauderic Demers me@ced.io</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">sass</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/sass/dart-sass.git</td><td class="string">1.90.0</td><td class="string">1.77.2</td><td class="string">^1.75.0</td><td class="string">Natalie Weizenbaum nweiz@google.com https://github.com/nex3</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">tinycolor2</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/bgrins/TinyColor.git</td><td class="string">1.6.0</td><td class="string">1.6.0</td><td class="string">^1.6.0</td><td class="string">Brian Grinstead <briangrinstead@gmail.com> (http://briangrinstead.com)</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">tslint</td><td class="string">perpetual</td><td class="string">material</td><td class="string">Apache-2.0</td><td class="string">https://github.com/palantir/tslint.git</td><td class="string">6.1.3</td><td class="string">6.1.3</td><td class="string">^6.1.3</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">web-vitals</td><td class="string">perpetual</td><td class="string">material</td><td class="string">Apache-2.0</td><td class="string">git+https://github.com/GoogleChrome/web-vitals.git</td><td class="string">3.5.2</td><td class="string">3.5.2</td><td class="string">^3.5.2</td><td class="string">Philip Walton philip@philipwalton.com http://philipwalton.com</td></tr></tbody></table>
48
+ <table><thead><tr><th class="string">department</th><th class="string">related to</th><th class="string">name</th><th class="string">license period</th><th class="string">material / not material</th><th class="string">license type</th><th class="string">link</th><th class="string">remote version</th><th class="string">installed version</th><th class="string">defined version</th><th class="string">author</th></tr></thead><tbody><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@dnd-kit/core</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/clauderic/dnd-kit.git</td><td class="string">6.3.1</td><td class="string">6.1.0</td><td class="string">^6.0.7</td><td class="string">Claudéric Demers</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@dnd-kit/sortable</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/clauderic/dnd-kit.git</td><td class="string">7.0.2</td><td class="string">7.0.2</td><td class="string">^7.0.2</td><td class="string">Claudéric Demers</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@emotion/react</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/emotion-js/emotion.git#main</td><td class="string">11.14.0</td><td class="string">11.11.4</td><td class="string">^11.11.3</td><td class="string">Emotion Contributors</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@emotion/styled</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/emotion-js/emotion.git#main</td><td class="string">11.14.1</td><td class="string">11.11.5</td><td class="string">^11.11.3</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/icons-material</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/material-ui.git</td><td class="string">6.5.0</td><td class="string">6.5.0</td><td class="string">^6.0.0</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/lab</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/material-ui.git</td><td class="string">6.0.1-beta.36</td><td class="string">6.0.1-beta.36</td><td class="string">^6.0.1-beta.36</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/material</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/material-ui.git</td><td class="string">6.5.0</td><td class="string">6.5.0</td><td class="string">^6.0.0</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@mui/x-date-pickers</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/mui/mui-x.git</td><td class="string">7.29.4</td><td class="string">7.22.0</td><td class="string">^7.22.0</td><td class="string">MUI Team</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@turf/bbox</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git://github.com/Turfjs/turf.git</td><td class="string">7.2.0</td><td class="string">7.2.0</td><td class="string">^7.2.0</td><td class="string">Turf Authors</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@turf/centroid</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git://github.com/Turfjs/turf.git</td><td class="string">7.2.0</td><td class="string">7.2.0</td><td class="string">^7.2.0</td><td class="string">Turf Authors</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@turf/helpers</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git://github.com/Turfjs/turf.git</td><td class="string">7.2.0</td><td class="string">7.2.0</td><td class="string">^7.2.0</td><td class="string">Turf Authors</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">@turf/union</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git://github.com/Turfjs/turf.git</td><td class="string">7.2.0</td><td class="string">7.2.0</td><td class="string">^7.2.0</td><td class="string">Turf Authors</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">classnames</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/JedWatson/classnames.git</td><td class="string">2.5.1</td><td class="string">2.5.1</td><td class="string">^2.3.2</td><td class="string">Jed Watson</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">geojson</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">http://github.com/caseycesari/geojson.js.git</td><td class="string">0.5.0</td><td class="string">0.5.0</td><td class="string">^0.5.0</td><td class="string">Casey Cesari</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">luxon</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/moment/luxon.git</td><td class="string">3.7.1</td><td class="string">3.4.4</td><td class="string">^3.3.0</td><td class="string">Isaac Cambron</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">mapbox-gl</td><td class="string">perpetual</td><td class="string">material</td><td class="string">SEE LICENSE IN LICENSE.txt</td><td class="string">git://github.com/mapbox/mapbox-gl-js.git</td><td class="string">3.14.0</td><td class="string">3.13.0</td><td class="string">^3.13.0</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/facebook/react.git</td><td class="string">18.3.1</td><td class="string">18.3.1</td><td class="string">^18.2.0</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-dom</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/facebook/react.git</td><td class="string">18.3.1</td><td class="string">18.3.1</td><td class="string">^18.2.0</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-intersection-observer</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/thebuilder/react-intersection-observer.git</td><td class="string">9.16.0</td><td class="string">9.10.2</td><td class="string">^9.5.2</td><td class="string">Daniel Schmidt</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-map-gl</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">https://github.com/visgl/react-map-gl.git</td><td class="string">8.0.4</td><td class="string">8.0.4</td><td class="string">^8.0.4</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-multi-carousel</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/YIZHUANG/react-multi-carousel.git</td><td class="string">2.8.6</td><td class="string">2.8.5</td><td class="string">^2.8.2</td><td class="string">YI ZHUANG https://github.com/YIZHUANG</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-responsive</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git://github.com/contra/react-responsive.git</td><td class="string">9.0.2</td><td class="string">9.0.2</td><td class="string">^9.0.2</td><td class="string">Contra <yo@contra.io> (https://contra.io)</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">react-sortable-hoc</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/clauderic/react-sortable-hoc.git</td><td class="string">2.0.0</td><td class="string">2.0.0</td><td class="string">^2.0.0</td><td class="string">Clauderic Demers me@ced.io</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">sass</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/sass/dart-sass.git</td><td class="string">1.90.0</td><td class="string">1.77.2</td><td class="string">^1.75.0</td><td class="string">Natalie Weizenbaum nweiz@google.com https://github.com/nex3</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">tinycolor2</td><td class="string">perpetual</td><td class="string">material</td><td class="string">MIT</td><td class="string">git+https://github.com/bgrins/TinyColor.git</td><td class="string">1.6.0</td><td class="string">1.6.0</td><td class="string">^1.6.0</td><td class="string">Brian Grinstead <briangrinstead@gmail.com> (http://briangrinstead.com)</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">tslint</td><td class="string">perpetual</td><td class="string">material</td><td class="string">Apache-2.0</td><td class="string">https://github.com/palantir/tslint.git</td><td class="string">6.1.3</td><td class="string">6.1.3</td><td class="string">^6.1.3</td><td class="string">n/a</td></tr><tr><td class="string">terraware</td><td class="string">web-components</td><td class="string">web-vitals</td><td class="string">perpetual</td><td class="string">material</td><td class="string">Apache-2.0</td><td class="string">git+https://github.com/GoogleChrome/web-vitals.git</td><td class="string">3.5.2</td><td class="string">3.5.2</td><td class="string">^3.5.2</td><td class="string">Philip Walton philip@philipwalton.com http://philipwalton.com</td></tr></tbody></table>
49
49
  </body>
50
50
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terraware/web-components",
3
- "version": "3.5.11",
3
+ "version": "3.5.12-rc.0",
4
4
  "author": "Terraformation Inc.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -22,6 +22,10 @@
22
22
  "@mui/lab": "^6.0.1-beta.36",
23
23
  "@mui/material": "^6.0.0",
24
24
  "@mui/x-date-pickers": "^7.22.0",
25
+ "@turf/bbox": "^7.2.0",
26
+ "@turf/centroid": "^7.2.0",
27
+ "@turf/helpers": "^7.2.0",
28
+ "@turf/union": "^7.2.0",
25
29
  "classnames": "^2.3.2",
26
30
  "geojson": "^0.5.0",
27
31
  "luxon": "^3.3.0",
@@ -1 +1 @@
1
- {"version":3,"file":"MapBox.stories.d.ts","sourceRoot":"","sources":["../../src/stories/MapBox.stories.tsx"],"names":[],"mappings":";AAMA,OAAe,EAAE,WAAW,EAAsC,MAAM,0BAA0B,CAAC;;;;;AAMnG,wBAGE;AA0MF,eAAO,MAAM,OAAO,oGAAoB,CAAC"}
1
+ {"version":3,"file":"MapBox.stories.d.ts","sourceRoot":"","sources":["../../src/stories/MapBox.stories.tsx"],"names":[],"mappings":";AAMA,OAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;;;;;AAM/D,wBAGE;AA6MF,eAAO,MAAM,OAAO,oGAAoB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { MapComponentProps } from '../components/Map';
2
+ declare const _default: {
3
+ title: string;
4
+ component: (props: MapComponentProps) => import("react/jsx-runtime").JSX.Element;
5
+ };
6
+ export default _default;
7
+ export declare const Default: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, MapComponentProps>;
8
+ //# sourceMappingURL=MapComponent.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapComponent.stories.d.ts","sourceRoot":"","sources":["../../src/stories/MapComponent.stories.tsx"],"names":[],"mappings":"AAMA,OAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;;;;;AAEpE,wBAGE;AAaF,eAAO,MAAM,OAAO,0GAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MapMarker.stories.d.ts","sourceRoot":"","sources":["../../src/stories/MapMarker.stories.tsx"],"names":[],"mappings":";;;;;AAcA,wBAGE;AAmHF,eAAO,MAAM,OAAO;mBAjHmB,MAAM;WAAS,MAAM;EAiHpB,CAAC"}
1
+ {"version":3,"file":"MapMarker.stories.d.ts","sourceRoot":"","sources":["../../src/stories/MapMarker.stories.tsx"],"names":[],"mappings":";;;;;AAcA,wBAGE;AAqHF,eAAO,MAAM,OAAO;mBAnHmB,MAAM;WAAS,MAAM;EAmHpB,CAAC"}