@xyo-network/react-map 3.0.14 → 3.0.16
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.
- package/dist/browser/Components/LayerAnimator.d.ts.map +1 -1
- package/dist/browser/Components/MapBox.d.ts.map +1 -1
- package/dist/browser/Components/MapBoxPoints.d.ts.map +1 -1
- package/dist/browser/Contexts/HeatMapInitializer/Provider.d.ts.map +1 -1
- package/dist/browser/hooks/useDynamicMapResize.d.ts.map +1 -1
- package/dist/browser/hooks/useDynamicPositioning.d.ts +1 -1
- package/dist/browser/hooks/useDynamicPositioning.d.ts.map +1 -1
- package/dist/browser/index.mjs +83 -92
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +12 -12
- package/src/Components/LayerAnimator.tsx +14 -17
- package/src/Components/MapBox.tsx +1 -0
- package/src/Components/MapBoxPoints.tsx +9 -10
- package/src/Contexts/HeatMapInitializer/Provider.tsx +10 -14
- package/src/hooks/useDynamicMapResize.tsx +3 -8
- package/src/hooks/useDynamicPositioning.tsx +4 -5
- package/src/hooks/useQuadKeyPayloadsToFeatures.tsx +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerAnimator.d.ts","sourceRoot":"","sources":["../../../src/Components/LayerAnimator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAEN,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;CACrB;AAKD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"LayerAnimator.d.ts","sourceRoot":"","sources":["../../../src/Components/LayerAnimator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAEN,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;CACrB;AAKD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAkGpE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapBox.d.ts","sourceRoot":"","sources":["../../../src/Components/MapBox.tsx"],"names":[],"mappings":"AACA,OAAO,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,KAEN,MAAM,OAAO,CAAA;AAMd,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"MapBox.d.ts","sourceRoot":"","sources":["../../../src/Components/MapBox.tsx"],"names":[],"mappings":"AACA,OAAO,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,KAEN,MAAM,OAAO,CAAA;AAMd,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2DxC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapBoxPoints.d.ts","sourceRoot":"","sources":["../../../src/Components/MapBoxPoints.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAEN,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAKzD,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"MapBoxPoints.d.ts","sourceRoot":"","sources":["../../../src/Components/MapBoxPoints.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAEN,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAKzD,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA+ElE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/Contexts/HeatMapInitializer/Provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/Contexts/HeatMapInitializer/Provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAOrD,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA;IAClC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,iBAAiB,GAAG,yBAAyB,CAAA;IAChE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAoE1F,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDynamicMapResize.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDynamicMapResize.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useDynamicMapResize.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDynamicMapResize.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAM7C,eAAO,MAAM,mBAAmB,oBACb,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,gBAC1C,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAC1C,GAAG,2BAgClB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDynamicPositioning.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDynamicPositioning.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAiD3C,QAAA,MAAM,qBAAqB;;
|
|
1
|
+
{"version":3,"file":"useDynamicPositioning.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDynamicPositioning.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAiD3C,QAAA,MAAM,qBAAqB;;CAe1B,CAAA;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -65,16 +65,15 @@ preferDark.value = true;
|
|
|
65
65
|
// src/Components/AnimatedHeatMap.tsx
|
|
66
66
|
import { darken, useTheme as useTheme2 } from "@mui/material";
|
|
67
67
|
import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
|
|
68
|
-
import React9, { useState as
|
|
68
|
+
import React9, { useState as useState6 } from "react";
|
|
69
69
|
|
|
70
70
|
// src/Contexts/HeatMapInitializer/Provider.tsx
|
|
71
71
|
import { forget as forget2 } from "@xylabs/forget";
|
|
72
|
-
import React3, { useEffect as
|
|
72
|
+
import React3, { useEffect as useEffect4, useMemo as useMemo7 } from "react";
|
|
73
73
|
|
|
74
74
|
// src/hooks/useDynamicMapResize.tsx
|
|
75
|
-
import { useEffect, useMemo
|
|
75
|
+
import { useEffect, useMemo } from "react";
|
|
76
76
|
var useDynamicMapResize = /* @__PURE__ */ __name((mapContainerRef, mapCanvasRef, mapInstance, active = true) => {
|
|
77
|
-
const [dependenciesReady, setDependenciesReady] = useState(false);
|
|
78
77
|
const resizer = useMemo(() => new ResizeObserver(() => {
|
|
79
78
|
const width = mapContainerRef.current?.getBoundingClientRect().width;
|
|
80
79
|
if (width && mapCanvasRef.current) {
|
|
@@ -86,9 +85,8 @@ var useDynamicMapResize = /* @__PURE__ */ __name((mapContainerRef, mapCanvasRef,
|
|
|
86
85
|
mapContainerRef,
|
|
87
86
|
mapInstance
|
|
88
87
|
]);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
setDependenciesReady(dependenciesReady2);
|
|
88
|
+
const dependenciesReady = useMemo(() => {
|
|
89
|
+
return !!(active && mapInstance && mapContainerRef?.current && mapCanvasRef.current);
|
|
92
90
|
}, [
|
|
93
91
|
active,
|
|
94
92
|
mapCanvasRef,
|
|
@@ -116,7 +114,7 @@ var useDynamicMapResize = /* @__PURE__ */ __name((mapContainerRef, mapCanvasRef,
|
|
|
116
114
|
|
|
117
115
|
// src/hooks/useDynamicPositioning.tsx
|
|
118
116
|
import { useWindowSize } from "@xylabs/react-shared";
|
|
119
|
-
import {
|
|
117
|
+
import { useMemo as useMemo2 } from "react";
|
|
120
118
|
var defaultZoom = 1.6;
|
|
121
119
|
var defaultAspectRatioRange = [
|
|
122
120
|
0.5,
|
|
@@ -140,18 +138,17 @@ var linearInterpolate = /* @__PURE__ */ __name((aspectRatio, degreeRange, aspect
|
|
|
140
138
|
return scaledDegree;
|
|
141
139
|
}, "linearInterpolate");
|
|
142
140
|
var useDynamicPositioning = /* @__PURE__ */ __name(() => {
|
|
143
|
-
const [options, setOptions] = useState2({});
|
|
144
141
|
const { width, height } = useWindowSize();
|
|
145
|
-
|
|
142
|
+
const options = useMemo2(() => {
|
|
146
143
|
if (width && height) {
|
|
147
144
|
const aspectRatio = width / height;
|
|
148
|
-
|
|
145
|
+
return {
|
|
149
146
|
center: [
|
|
150
147
|
linearInterpolate(aspectRatio, lngRange),
|
|
151
148
|
linearInterpolate(aspectRatio, latRange)
|
|
152
149
|
],
|
|
153
150
|
zoom: defaultZoom
|
|
154
|
-
}
|
|
151
|
+
};
|
|
155
152
|
}
|
|
156
153
|
}, [
|
|
157
154
|
height,
|
|
@@ -164,7 +161,7 @@ var useDynamicPositioning = /* @__PURE__ */ __name(() => {
|
|
|
164
161
|
|
|
165
162
|
// src/hooks/useFindHashes.tsx
|
|
166
163
|
import { useNetwork } from "@xyo-network/react-network";
|
|
167
|
-
import { useMemo as
|
|
164
|
+
import { useMemo as useMemo3 } from "react";
|
|
168
165
|
var animatedAnswerHashesConst = [
|
|
169
166
|
"79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5",
|
|
170
167
|
"531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898",
|
|
@@ -184,7 +181,7 @@ var useFindHashes = /* @__PURE__ */ __name(() => {
|
|
|
184
181
|
const exploreMapHashes = network?.nodes?.find((node) => node.type === "archivist")?.explorerMapHashes;
|
|
185
182
|
const animatedAnswerHashes = exploreMapHashes?.animatedAnswerHashes || animatedAnswerHashesConst;
|
|
186
183
|
const staticAnswerHash = exploreMapHashes?.staticAnswerHash || staticAnswerHashConst;
|
|
187
|
-
const foundHashes =
|
|
184
|
+
const foundHashes = useMemo3(() => [
|
|
188
185
|
staticAnswerHash,
|
|
189
186
|
...animatedAnswerHashes
|
|
190
187
|
], [
|
|
@@ -222,7 +219,7 @@ var useHeatMapColors = /* @__PURE__ */ __name(() => {
|
|
|
222
219
|
// src/hooks/useQuadKeyPayloadsToFeatures.tsx
|
|
223
220
|
import { exists } from "@xylabs/exists";
|
|
224
221
|
import { GeoJson } from "@xyo-network/sdk-geo";
|
|
225
|
-
import {
|
|
222
|
+
import { useMemo as useMemo4, useState } from "react";
|
|
226
223
|
var quadKeyToFeature = /* @__PURE__ */ __name(({ density, quadkey }) => {
|
|
227
224
|
const polygonFeature = new GeoJson(quadkey).polygonFeature();
|
|
228
225
|
polygonFeature.properties = {
|
|
@@ -238,12 +235,12 @@ var setDensity = /* @__PURE__ */ __name((feature) => {
|
|
|
238
235
|
return feature;
|
|
239
236
|
}, "setDensity");
|
|
240
237
|
var useQuadKeyPayloadsToFeatures = /* @__PURE__ */ __name((payloads) => {
|
|
241
|
-
const [multipleFeatureSets, setMultipleFeatureSets] =
|
|
238
|
+
const [multipleFeatureSets, setMultipleFeatureSets] = useState([
|
|
242
239
|
[]
|
|
243
240
|
]);
|
|
244
|
-
const [features, setFeatures] =
|
|
245
|
-
const [error, setError] =
|
|
246
|
-
|
|
241
|
+
const [features, setFeatures] = useState([]);
|
|
242
|
+
const [error, setError] = useState();
|
|
243
|
+
useMemo4(() => {
|
|
247
244
|
if (Array.isArray(payloads)) {
|
|
248
245
|
if (payloads?.filter(exists).length > 0) {
|
|
249
246
|
const mappedFeatures = payloads?.map((payload) => payload?.result.map(quadKeyToFeature));
|
|
@@ -594,7 +591,7 @@ var MapSettings = class _MapSettings {
|
|
|
594
591
|
};
|
|
595
592
|
|
|
596
593
|
// src/Contexts/MapBoxInstance/Provider.tsx
|
|
597
|
-
import React, { useEffect as
|
|
594
|
+
import React, { useEffect as useEffect2, useMemo as useMemo5, useState as useState2 } from "react";
|
|
598
595
|
|
|
599
596
|
// src/Contexts/MapBoxInstance/Context.ts
|
|
600
597
|
import { createContext } from "react";
|
|
@@ -602,9 +599,9 @@ var MapBoxInstanceContext = createContext({});
|
|
|
602
599
|
|
|
603
600
|
// src/Contexts/MapBoxInstance/Provider.tsx
|
|
604
601
|
var MapBoxInstanceProvider = /* @__PURE__ */ __name(({ children }) => {
|
|
605
|
-
const [map, setMapBoxInstance] =
|
|
606
|
-
const [mapInitialized, setMapInitialized] =
|
|
607
|
-
const value =
|
|
602
|
+
const [map, setMapBoxInstance] = useState2();
|
|
603
|
+
const [mapInitialized, setMapInitialized] = useState2(false);
|
|
604
|
+
const value = useMemo5(() => ({
|
|
608
605
|
map,
|
|
609
606
|
mapInitialized,
|
|
610
607
|
setMapBoxInstance
|
|
@@ -613,7 +610,7 @@ var MapBoxInstanceProvider = /* @__PURE__ */ __name(({ children }) => {
|
|
|
613
610
|
mapInitialized,
|
|
614
611
|
setMapBoxInstance
|
|
615
612
|
]);
|
|
616
|
-
|
|
613
|
+
useEffect2(() => {
|
|
617
614
|
if (!mapInitialized && map) {
|
|
618
615
|
map?.on("load", () => {
|
|
619
616
|
setMapInitialized(true);
|
|
@@ -639,7 +636,7 @@ var useMapBoxInstance = /* @__PURE__ */ __name(() => {
|
|
|
639
636
|
}, "useMapBoxInstance");
|
|
640
637
|
|
|
641
638
|
// src/Contexts/MapSettings/Provider.tsx
|
|
642
|
-
import React2, { useEffect as
|
|
639
|
+
import React2, { useEffect as useEffect3, useMemo as useMemo6, useState as useState3 } from "react";
|
|
643
640
|
|
|
644
641
|
// src/Contexts/MapSettings/Context.ts
|
|
645
642
|
import { createContext as createContext2 } from "react";
|
|
@@ -647,16 +644,16 @@ var MapSettingsContext = createContext2({});
|
|
|
647
644
|
|
|
648
645
|
// src/Contexts/MapSettings/Provider.tsx
|
|
649
646
|
var MapSettingsProvider = /* @__PURE__ */ __name(({ children, debugLayerName, defaultMapSettings, requestLocation, zoom = 1 }) => {
|
|
650
|
-
const [mapSettings, setMapSettings] =
|
|
647
|
+
const [mapSettings, setMapSettings] = useState3(defaultMapSettings || {});
|
|
651
648
|
const { map, mapInitialized } = useMapBoxInstance();
|
|
652
|
-
const value =
|
|
649
|
+
const value = useMemo6(() => ({
|
|
653
650
|
mapSettings,
|
|
654
651
|
setMapSettings
|
|
655
652
|
}), [
|
|
656
653
|
mapSettings,
|
|
657
654
|
setMapSettings
|
|
658
655
|
]);
|
|
659
|
-
|
|
656
|
+
useEffect3(() => {
|
|
660
657
|
if (mapSettings && map && mapInitialized) {
|
|
661
658
|
MapSettings.updateSettings({
|
|
662
659
|
debugLayerName,
|
|
@@ -692,18 +689,28 @@ var HeatMapInitializerContext = createContext3({});
|
|
|
692
689
|
|
|
693
690
|
// src/Contexts/HeatMapInitializer/Provider.tsx
|
|
694
691
|
var HeatMapInitializerProvider = /* @__PURE__ */ __name(({ children, featureSets, featureSetsLayers, features, fitToPadding, heatMapColorProps, layers, zoom }) => {
|
|
695
|
-
const [mapHeat, setMapHeat] = useState6();
|
|
696
692
|
const { options } = useDynamicPositioning();
|
|
697
693
|
const { mapSettings } = useMapSettings();
|
|
698
694
|
const { map, mapInitialized } = useMapBoxInstance();
|
|
699
|
-
const
|
|
695
|
+
const mapHeat = useMemo7(() => {
|
|
696
|
+
return map && features?.length ? new MapHeat({
|
|
697
|
+
features,
|
|
698
|
+
map,
|
|
699
|
+
zoom
|
|
700
|
+
}) : void 0;
|
|
701
|
+
}, [
|
|
702
|
+
map,
|
|
703
|
+
features,
|
|
704
|
+
zoom
|
|
705
|
+
]);
|
|
706
|
+
const value = useMemo7(() => ({
|
|
700
707
|
MapHeat: mapHeat,
|
|
701
708
|
heatMapColorProps
|
|
702
709
|
}), [
|
|
703
710
|
mapHeat,
|
|
704
711
|
heatMapColorProps
|
|
705
712
|
]);
|
|
706
|
-
|
|
713
|
+
useEffect4(() => {
|
|
707
714
|
if (mapInitialized && featureSets?.length && featureSets[0].length > 0 && map && featureSetsLayers?.length) {
|
|
708
715
|
const { lowUsageColor, highUsageColor } = heatMapColorProps;
|
|
709
716
|
forget2(MapHeat.initializeAnimatedHeatMapSource(featureSetsLayers, featureSets, map, lowUsageColor, highUsageColor));
|
|
@@ -718,7 +725,7 @@ var HeatMapInitializerProvider = /* @__PURE__ */ __name(({ children, featureSets
|
|
|
718
725
|
map,
|
|
719
726
|
heatMapColorProps
|
|
720
727
|
]);
|
|
721
|
-
|
|
728
|
+
useEffect4(() => {
|
|
722
729
|
if (mapHeat && mapInitialized && features?.length && layers?.length) {
|
|
723
730
|
mapHeat.initializeHeatMapSource(layers);
|
|
724
731
|
}
|
|
@@ -728,7 +735,7 @@ var HeatMapInitializerProvider = /* @__PURE__ */ __name(({ children, featureSets
|
|
|
728
735
|
layers,
|
|
729
736
|
mapInitialized
|
|
730
737
|
]);
|
|
731
|
-
|
|
738
|
+
useEffect4(() => {
|
|
732
739
|
if (mapInitialized) {
|
|
733
740
|
const { fitToPoints: fitToPoints3 } = mapSettings || {};
|
|
734
741
|
if (map) {
|
|
@@ -741,7 +748,7 @@ var HeatMapInitializerProvider = /* @__PURE__ */ __name(({ children, featureSets
|
|
|
741
748
|
top: fitToPadding
|
|
742
749
|
}
|
|
743
750
|
}, map, features);
|
|
744
|
-
} else if (options
|
|
751
|
+
} else if (options?.zoom && options.center) {
|
|
745
752
|
map.setZoom(options.zoom);
|
|
746
753
|
map.setCenter(options.center);
|
|
747
754
|
}
|
|
@@ -756,19 +763,6 @@ var HeatMapInitializerProvider = /* @__PURE__ */ __name(({ children, featureSets
|
|
|
756
763
|
mapInitialized,
|
|
757
764
|
features
|
|
758
765
|
]);
|
|
759
|
-
useEffect6(() => {
|
|
760
|
-
if (map && features?.length) {
|
|
761
|
-
setMapHeat(new MapHeat({
|
|
762
|
-
features,
|
|
763
|
-
map,
|
|
764
|
-
zoom
|
|
765
|
-
}));
|
|
766
|
-
}
|
|
767
|
-
}, [
|
|
768
|
-
map,
|
|
769
|
-
features,
|
|
770
|
-
zoom
|
|
771
|
-
]);
|
|
772
766
|
return /* @__PURE__ */ React3.createElement(HeatMapInitializerContext.Provider, {
|
|
773
767
|
value
|
|
774
768
|
}, children);
|
|
@@ -788,10 +782,10 @@ import { createContextEx } from "@xyo-network/react-shared";
|
|
|
788
782
|
var MapboxAccessTokenContext = createContextEx();
|
|
789
783
|
|
|
790
784
|
// src/Contexts/MapboxAccessToken/Provider.tsx
|
|
791
|
-
import React4, { useMemo as
|
|
785
|
+
import React4, { useMemo as useMemo8, useState as useState4 } from "react";
|
|
792
786
|
var MapboxAccessTokenProvider = /* @__PURE__ */ __name(({ defaultAccessToken, ...props }) => {
|
|
793
|
-
const [accessToken, setAccessToken] =
|
|
794
|
-
const value =
|
|
787
|
+
const [accessToken, setAccessToken] = useState4();
|
|
788
|
+
const value = useMemo8(() => ({
|
|
795
789
|
accessToken: accessToken ?? defaultAccessToken,
|
|
796
790
|
provided: true,
|
|
797
791
|
setAccessToken
|
|
@@ -1120,7 +1114,7 @@ import React8 from "react";
|
|
|
1120
1114
|
// src/Components/MapBox.tsx
|
|
1121
1115
|
import "mapbox-gl/dist/mapbox-gl.css";
|
|
1122
1116
|
import { Map } from "mapbox-gl";
|
|
1123
|
-
import React5, { useEffect as
|
|
1117
|
+
import React5, { useEffect as useEffect5, useRef, useState as useState5 } from "react";
|
|
1124
1118
|
|
|
1125
1119
|
// src/lib/MapStyle.ts
|
|
1126
1120
|
var MapStyle;
|
|
@@ -1135,14 +1129,14 @@ var MapStyle;
|
|
|
1135
1129
|
|
|
1136
1130
|
// src/Components/MapBox.tsx
|
|
1137
1131
|
var MapBox = /* @__PURE__ */ __name(({ accessToken, darkMode = false, options, zoom = 2, ...props }) => {
|
|
1138
|
-
const [map, setMap] =
|
|
1132
|
+
const [map, setMap] = useState5();
|
|
1139
1133
|
const mapContainerRef = useRef(null);
|
|
1140
1134
|
const mapCanvasRef = useRef(null);
|
|
1141
1135
|
const { setMapBoxInstance, map: mapInstance } = useMapBoxInstance();
|
|
1142
1136
|
const { mapSettings } = useMapSettings();
|
|
1143
1137
|
const activeResize = mapSettings?.dynamicMapResize.value;
|
|
1144
1138
|
useDynamicMapResize(mapContainerRef, mapCanvasRef, mapInstance, activeResize);
|
|
1145
|
-
|
|
1139
|
+
useEffect5(() => {
|
|
1146
1140
|
if (mapSettings?.preferDark?.value === true) {
|
|
1147
1141
|
map?.setStyle(`mapbox://styles/${MapStyle.Dark}`);
|
|
1148
1142
|
} else {
|
|
@@ -1153,7 +1147,7 @@ var MapBox = /* @__PURE__ */ __name(({ accessToken, darkMode = false, options, z
|
|
|
1153
1147
|
darkMode,
|
|
1154
1148
|
mapSettings
|
|
1155
1149
|
]);
|
|
1156
|
-
|
|
1150
|
+
useEffect5(() => {
|
|
1157
1151
|
const map2 = new Map({
|
|
1158
1152
|
accessToken,
|
|
1159
1153
|
center: [
|
|
@@ -1268,7 +1262,7 @@ var AnimatedHeatMap = /* @__PURE__ */ __name(({ accessToken, animatedFeatureSets
|
|
|
1268
1262
|
const theme = useTheme2();
|
|
1269
1263
|
const { staticMapColor, lowUsageColor, highUsageColor } = heatMapColorProps || {};
|
|
1270
1264
|
const localStaticMapColor = staticMapColor ?? theme.palette.primary.light;
|
|
1271
|
-
const [layers] =
|
|
1265
|
+
const [layers] = useState6(() => [
|
|
1272
1266
|
LocationHeatMapLayerBuilderAnimated(localStaticMapColor, 0, "static"),
|
|
1273
1267
|
LocationHeatMapLayerBuilderAnimated(lowUsageColor || localStaticMapColor, 0, "animated"),
|
|
1274
1268
|
LocationHeatMapLayerBuilderAnimated(highUsageColor || darken(localStaticMapColor, 0.9), 1, "animated")
|
|
@@ -1400,12 +1394,30 @@ fitToPoints2.value = true;
|
|
|
1400
1394
|
|
|
1401
1395
|
// src/Components/LayerAnimator.tsx
|
|
1402
1396
|
import { useInterval } from "@xylabs/react-shared";
|
|
1403
|
-
import React13, { useCallback, useEffect as
|
|
1397
|
+
import React13, { useCallback, useEffect as useEffect6, useMemo as useMemo9, useRef as useRef2 } from "react";
|
|
1404
1398
|
var timeIncrement = 2e3;
|
|
1405
1399
|
var animatedLayerCount = 3;
|
|
1406
1400
|
var LayerAnimator = /* @__PURE__ */ __name(({ animateLayers, children, layers, layersInitialized, map }) => {
|
|
1407
|
-
const [fillLayers, setFillLayers] = useState10([]);
|
|
1408
1401
|
const layerIndexQueue = useRef2([]);
|
|
1402
|
+
const fillLayers = useMemo9(() => {
|
|
1403
|
+
if (layers?.length && map && layersInitialized) {
|
|
1404
|
+
return layers.filter((layer) => {
|
|
1405
|
+
const fillLayer = layer.id.startsWith("location-fill");
|
|
1406
|
+
if (fillLayer) {
|
|
1407
|
+
map.setPaintProperty(layer.id, "fill-opacity-transition", {
|
|
1408
|
+
delay: 0,
|
|
1409
|
+
duration: 4e3
|
|
1410
|
+
});
|
|
1411
|
+
}
|
|
1412
|
+
return fillLayer;
|
|
1413
|
+
});
|
|
1414
|
+
}
|
|
1415
|
+
return [];
|
|
1416
|
+
}, [
|
|
1417
|
+
layers,
|
|
1418
|
+
layersInitialized,
|
|
1419
|
+
map
|
|
1420
|
+
]);
|
|
1409
1421
|
const incrementQueue = useCallback((index) => {
|
|
1410
1422
|
if (fillLayers[index]) {
|
|
1411
1423
|
layerIndexQueue.current.push(index);
|
|
@@ -1453,24 +1465,6 @@ var LayerAnimator = /* @__PURE__ */ __name(({ animateLayers, children, layers, l
|
|
|
1453
1465
|
map,
|
|
1454
1466
|
unshiftQueue
|
|
1455
1467
|
]);
|
|
1456
|
-
useEffect8(() => {
|
|
1457
|
-
if (layers?.length && map && layersInitialized) {
|
|
1458
|
-
setFillLayers(layers.filter((layer) => {
|
|
1459
|
-
const fillLayer = layer.id.startsWith("location-fill");
|
|
1460
|
-
if (fillLayer) {
|
|
1461
|
-
map.setPaintProperty(layer.id, "fill-opacity-transition", {
|
|
1462
|
-
delay: 0,
|
|
1463
|
-
duration: 4e3
|
|
1464
|
-
});
|
|
1465
|
-
}
|
|
1466
|
-
return fillLayer;
|
|
1467
|
-
}));
|
|
1468
|
-
}
|
|
1469
|
-
}, [
|
|
1470
|
-
layers,
|
|
1471
|
-
layersInitialized,
|
|
1472
|
-
map
|
|
1473
|
-
]);
|
|
1474
1468
|
const queueLayerAnimation = useCallback(() => {
|
|
1475
1469
|
const animatedLayers = [];
|
|
1476
1470
|
for (let i = 0; i < animatedLayerCount; i++) {
|
|
@@ -1489,7 +1483,7 @@ var LayerAnimator = /* @__PURE__ */ __name(({ animateLayers, children, layers, l
|
|
|
1489
1483
|
getNextLayer,
|
|
1490
1484
|
layerAnimateWorker
|
|
1491
1485
|
]);
|
|
1492
|
-
|
|
1486
|
+
useEffect6(() => {
|
|
1493
1487
|
if (animateLayers && layersInitialized && map && fillLayers.length > 0) {
|
|
1494
1488
|
queueLayerAnimation();
|
|
1495
1489
|
}
|
|
@@ -1511,9 +1505,8 @@ var LayerAnimator = /* @__PURE__ */ __name(({ animateLayers, children, layers, l
|
|
|
1511
1505
|
// src/Components/MapBoxPoints.tsx
|
|
1512
1506
|
import { Alert as Alert2 } from "@mui/material";
|
|
1513
1507
|
import { FlexCol as FlexCol6 } from "@xylabs/react-flexbox";
|
|
1514
|
-
import React14, { useCallback as useCallback2, useEffect as
|
|
1508
|
+
import React14, { useCallback as useCallback2, useEffect as useEffect7, useMemo as useMemo10 } from "react";
|
|
1515
1509
|
var MapboxPointsFlexBox = /* @__PURE__ */ __name(({ accessToken, features, fitToPointsPadding = 20, layers, zoom, ...props }) => {
|
|
1516
|
-
const [mapPoints, setMapPoints] = useState11();
|
|
1517
1510
|
const { mapSettings } = useMapSettings();
|
|
1518
1511
|
const { map, mapInitialized } = useMapBoxInstance();
|
|
1519
1512
|
const customFitToBoundsOptions = /* @__PURE__ */ __name((zoom2) => {
|
|
@@ -1524,6 +1517,17 @@ var MapboxPointsFlexBox = /* @__PURE__ */ __name(({ accessToken, features, fitTo
|
|
|
1524
1517
|
}
|
|
1525
1518
|
return {};
|
|
1526
1519
|
}, "customFitToBoundsOptions");
|
|
1520
|
+
const mapPoints = useMemo10(() => {
|
|
1521
|
+
return map && features?.length ? new MapPoints({
|
|
1522
|
+
features,
|
|
1523
|
+
map,
|
|
1524
|
+
zoom
|
|
1525
|
+
}) : void 0;
|
|
1526
|
+
}, [
|
|
1527
|
+
map,
|
|
1528
|
+
features,
|
|
1529
|
+
zoom
|
|
1530
|
+
]);
|
|
1527
1531
|
const updateFeatures = useCallback2(() => {
|
|
1528
1532
|
if (mapPoints?.isMapReady && features?.length && layers) for (const layer of layers) {
|
|
1529
1533
|
mapPoints.initializeMapSource(layer);
|
|
@@ -1570,20 +1574,7 @@ var MapboxPointsFlexBox = /* @__PURE__ */ __name(({ accessToken, features, fitTo
|
|
|
1570
1574
|
updateFeatures,
|
|
1571
1575
|
zoom
|
|
1572
1576
|
]);
|
|
1573
|
-
|
|
1574
|
-
if (map && features?.length) {
|
|
1575
|
-
setMapPoints(new MapPoints({
|
|
1576
|
-
features,
|
|
1577
|
-
map,
|
|
1578
|
-
zoom
|
|
1579
|
-
}));
|
|
1580
|
-
}
|
|
1581
|
-
}, [
|
|
1582
|
-
map,
|
|
1583
|
-
features,
|
|
1584
|
-
zoom
|
|
1585
|
-
]);
|
|
1586
|
-
useEffect9(() => {
|
|
1577
|
+
useEffect7(() => {
|
|
1587
1578
|
if (mapInitialized) {
|
|
1588
1579
|
updateMapSetup();
|
|
1589
1580
|
reInitializeMap();
|