@xyo-network/react-map-model 4.2.0 → 4.2.2

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,4 +1,3 @@
1
1
  export * from './useFindHashes.tsx';
2
2
  export * from './useHeatMapColors.tsx';
3
- export * from './useQuadKeyPayloadsToFeatures.tsx';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oCAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
@@ -148,54 +148,6 @@ var useHeatMapColors = /* @__PURE__ */ __name(() => {
148
148
  };
149
149
  }, "useHeatMapColors");
150
150
 
151
- // src/hooks/useQuadKeyPayloadsToFeatures.tsx
152
- import { exists } from "@xylabs/exists";
153
- import { GeoJson } from "@xyo-network/sdk-geo";
154
- import { useMemo as useMemo3, useState as useState2 } from "react";
155
- var quadKeyToFeature = /* @__PURE__ */ __name(({ density, quadkey }) => {
156
- const polygonFeature = new GeoJson(quadkey).polygonFeature();
157
- polygonFeature.properties = {
158
- count: density,
159
- density
160
- };
161
- return polygonFeature;
162
- }, "quadKeyToFeature");
163
- var setDensity = /* @__PURE__ */ __name((feature) => {
164
- if (feature.properties) {
165
- feature.properties.value = feature.properties.density / 5;
166
- }
167
- return feature;
168
- }, "setDensity");
169
- var useQuadKeyPayloadsToFeatures = /* @__PURE__ */ __name((payloads) => {
170
- const [multipleFeatureSets, setMultipleFeatureSets] = useState2([
171
- []
172
- ]);
173
- const [features, setFeatures] = useState2([]);
174
- const [error, setError] = useState2();
175
- useMemo3(() => {
176
- if (Array.isArray(payloads)) {
177
- if (payloads?.filter(exists).length > 0) {
178
- const mappedFeatures = payloads?.map((payload) => payload?.result.map(quadKeyToFeature));
179
- setMultipleFeatureSets(mappedFeatures.map((features2) => features2?.map(setDensity) ?? []));
180
- } else {
181
- setError(new Error("Cannot find payloads for provided hashes"));
182
- }
183
- }
184
- if (payloads && payloads.result) {
185
- const singlePayload = payloads;
186
- const mappedFeatures = singlePayload.result.map(quadKeyToFeature);
187
- setFeatures(mappedFeatures.map(setDensity));
188
- }
189
- }, [
190
- payloads
191
- ]);
192
- return {
193
- error,
194
- features,
195
- multipleFeatureSets
196
- };
197
- }, "useQuadKeyPayloadsToFeatures");
198
-
199
151
  // src/lib/MapStyle.ts
200
152
  var MapStyle = /* @__PURE__ */ function(MapStyle2) {
201
153
  MapStyle2["Dark"] = "mapbox/dark-v10";
@@ -229,7 +181,6 @@ export {
229
181
  isNetworkLocationHeatmapQuadkeyAnswer,
230
182
  useFindHashes,
231
183
  useHeatMapColors,
232
- useMapboxAccessToken,
233
- useQuadKeyPayloadsToFeatures
184
+ useMapboxAccessToken
234
185
  };
235
186
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/settings/DefaultMapSettings.ts","../../src/AnimatedHeatMapSettings.ts","../../src/contexts/MapboxAccessToken/Context.ts","../../src/contexts/MapboxAccessToken/Provider.tsx","../../src/contexts/MapboxAccessToken/use.ts","../../src/hooks/useFindHashes.tsx","../../src/hooks/useHeatMapColors.tsx","../../src/hooks/useQuadKeyPayloadsToFeatures.tsx","../../src/lib/MapStyle.ts","../../src/types/NetworkLocationAnswerBase.ts"],"sourcesContent":["import type { MapSetting } from './MapSetting.ts'\n\nexport const DefaultMapSettings: () => MapSetting = () => ({\n debugLayer: {\n devMode: true,\n field: 'debugLayer',\n hidden: true,\n label: 'Debug Layer',\n value: false,\n },\n debugLogging: {\n devMode: true,\n field: 'debugLogging',\n hidden: true,\n label: 'Debug Logging',\n value: false,\n },\n dynamicMapResize: {\n devMode: true,\n field: 'dynamicMapResize',\n hidden: true,\n label: 'Auto Map Resize',\n value: true,\n },\n enableControls: {\n devMode: true,\n field: 'enableControls',\n hidden: true,\n label: 'Map Controls',\n value: false,\n },\n fitToPoints: {\n devMode: true,\n field: 'fitToPoints',\n hidden: true,\n label: 'Fit To Points',\n value: false,\n },\n preferDark: {\n devMode: false,\n field: 'preferDark',\n hidden: true,\n label: 'Prefer dark',\n value: false,\n },\n scrollToZoom: {\n devMode: true,\n field: 'scrollToZoom',\n hidden: true,\n label: 'Scroll To Zoom',\n value: false,\n },\n})\n","import { DefaultMapSettings } from './settings/index.ts'\n\nexport const AnimatedHeatMapSettings = DefaultMapSettings()\nconst {\n debugLayer, scrollToZoom, fitToPoints, preferDark,\n} = AnimatedHeatMapSettings\ndebugLayer.hidden = false\nscrollToZoom.value = true\nfitToPoints.value = false\npreferDark.value = true\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport type { MapboxAccessTokenContextState } from './State.ts'\n\nexport const MapboxAccessTokenContext = createContextEx<MapboxAccessTokenContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { MapboxAccessTokenContext } from './Context.ts'\n\nexport interface MapboxAccessTokenProviderProps {\n defaultAccessToken?: string\n}\n\nexport const MapboxAccessTokenProvider: React.FC<PropsWithChildren<MapboxAccessTokenProviderProps>> = ({ defaultAccessToken, ...props }) => {\n const [accessToken, setAccessToken] = useState<string>()\n\n const value = useMemo(() => ({\n accessToken: accessToken ?? defaultAccessToken, provided: true, setAccessToken,\n }), [accessToken, defaultAccessToken, setAccessToken])\n\n return (\n <MapboxAccessTokenContext.Provider\n value={value}\n {...props}\n />\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { MapboxAccessTokenContext } from './Context.ts'\n\nexport const useMapboxAccessToken = (required = false) => {\n return useContextEx(MapboxAccessTokenContext, 'MapboxAccessToken', required)\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { ArchivistPreset } from '@xyo-network/react-network'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useMemo } from 'react'\n\nconst animatedAnswerHashesConst: Hash[] = [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e,',\n]\n\nconst staticAnswerHashConst: Hash = 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5'\n\nexport const useFindHashes = () => {\n const { network } = useNetwork()\n const exploreMapHashes = (network?.nodes?.find(node => node.type === 'archivist') as ArchivistPreset)?.explorerMapHashes\n const animatedAnswerHashes = exploreMapHashes?.animatedAnswerHashes || animatedAnswerHashesConst\n const staticAnswerHash = exploreMapHashes?.staticAnswerHash || staticAnswerHashConst\n const foundHashes = useMemo(() => [staticAnswerHash, ...animatedAnswerHashes], [animatedAnswerHashes, staticAnswerHash])\n return foundHashes\n}\n","import { useTheme } from '@mui/material'\n\nimport type { AnimatedHeatMapColorProps, ColorGradientLegendProps } from '../colors/index.ts'\n\nconst useHeatMapColors = () => {\n const theme = useTheme()\n const staticMapColor = '#FFFF75'\n const highUsageColor = '#FF0000'\n\n const heatMapColorProps: AnimatedHeatMapColorProps = {\n highUsageColor,\n lowUsageColor: '#FFB3B3',\n staticMapColor,\n }\n\n const legendProps: ColorGradientLegendProps = {\n endColor: highUsageColor,\n endLabel: 'High',\n heading: 'Network Usage',\n startColor: staticMapColor,\n startLabel: 'Low',\n textColor: theme.palette.common.white,\n }\n\n return { heatMapColorProps, legendProps }\n}\n\nexport { useHeatMapColors }\n","import { exists } from '@xylabs/exists'\nimport { GeoJson } from '@xyo-network/sdk-geo'\nimport type { Feature, Geometry } from 'geojson'\nimport { useMemo, useState } from 'react'\n\nimport type { NetworkLocationHeatmapQuadkeyAnswerPayload } from '../types/index.ts'\n\nconst quadKeyToFeature = ({ density, quadkey }: { density: number; quadkey: string }) => {\n const polygonFeature = new GeoJson(quadkey).polygonFeature()\n polygonFeature.properties = {\n count: density,\n density,\n }\n return polygonFeature\n}\n\nconst setDensity = (feature: Feature) => {\n if (feature.properties) {\n feature.properties.value = feature.properties.density / 5\n }\n return feature\n}\n\nconst useQuadKeyPayloadsToFeatures = (payloads?: NetworkLocationHeatmapQuadkeyAnswerPayload[] | NetworkLocationHeatmapQuadkeyAnswerPayload) => {\n const [multipleFeatureSets, setMultipleFeatureSets] = useState<Feature<Geometry>[][]>([[]])\n const [features, setFeatures] = useState<Feature<Geometry>[]>([])\n const [error, setError] = useState<Error>()\n\n useMemo(() => {\n // Convert Multiple Payloads from Quadkey to GeoJson\n if (Array.isArray(payloads)) {\n if ((payloads)?.filter(exists).length > 0) {\n const mappedFeatures = payloads?.map(payload => payload?.result.map(quadKeyToFeature))\n\n setMultipleFeatureSets(mappedFeatures.map(features => features?.map(setDensity) ?? []))\n } else {\n setError(new Error('Cannot find payloads for provided hashes'))\n }\n }\n\n // Convert Single Payload from Quadkey to GeoJson\n if (payloads && (payloads as NetworkLocationHeatmapQuadkeyAnswerPayload).result) {\n const singlePayload = payloads as NetworkLocationHeatmapQuadkeyAnswerPayload\n const mappedFeatures = singlePayload.result.map(quadKeyToFeature)\n\n setFeatures(mappedFeatures.map(setDensity))\n }\n }, [payloads])\n\n return {\n error, features, multipleFeatureSets,\n }\n}\n\nexport { useQuadKeyPayloadsToFeatures }\n","export enum MapStyle {\n Dark = 'mapbox/dark-v10',\n Light = 'mapbox/light-v10',\n Outdoors = 'mapbox/outdoors-v11',\n Satellite = 'mapbox/satellite-v9',\n SatelliteStreets = 'mapbox/satellite-streets-v11',\n Streets = 'mapbox/streets-v11',\n}\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type {\n Feature, Point, Polygon,\n} from 'geojson'\n\nexport interface NetworkLocationAnswerBase<T> {\n result: T\n}\n\nexport const NetworkLocationAnswerSchema = 'network.xyo.location.range.answer'\nexport type NetworkLocationAnswerSchema = 'network.xyo.location.range.answer'\nexport type NetworkLocationAnswerPayload = Payload<NetworkLocationAnswerBase<{ features: Feature<Point>[] }>, NetworkLocationAnswerSchema>\nexport const isNetworkLocationAnswer = isPayloadOfSchemaType<NetworkLocationAnswerPayload>(NetworkLocationAnswerSchema)\n\nexport const NetworkLocationHeatmapAnswerSchema = 'network.xyo.location.heatmap.answer'\nexport type NetworkLocationHeatmapAnswerSchema = 'network.xyo.location.heatmap.answer'\nexport type NetworkLocationHeatmapAnswerPayload = Payload<\n NetworkLocationAnswerBase<{ features: Feature<Polygon>[] }>,\n NetworkLocationHeatmapAnswerSchema\n>\nexport const isNetworkLocationHeatmapAnswer = isPayloadOfSchemaType<NetworkLocationHeatmapAnswerPayload>(NetworkLocationHeatmapAnswerSchema)\n\nexport const NetworkLocationHeatmapQuadkeyAnswerSchema = 'network.xyo.location.heatmap.quadkey.answer'\nexport type NetworkLocationHeatmapQuadkeyAnswerSchema = 'network.xyo.location.heatmap.quadkey.answer'\nexport type NetworkLocationHeatmapQuadkeyAnswerPayload = Payload<\n NetworkLocationAnswerBase<{ density: number; quadkey: string }[]>,\n NetworkLocationHeatmapQuadkeyAnswerSchema\n>\nexport const isNetworkLocationHeatmapQuadkeyAnswer = isPayloadOfSchemaType<NetworkLocationHeatmapAnswerPayload>(\n NetworkLocationHeatmapQuadkeyAnswerSchema,\n)\n"],"mappings":"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","names":["DefaultMapSettings","debugLayer","devMode","field","hidden","label","value","debugLogging","dynamicMapResize","enableControls","fitToPoints","preferDark","scrollToZoom","AnimatedHeatMapSettings","DefaultMapSettings","debugLayer","scrollToZoom","fitToPoints","preferDark","hidden","value","createContextEx","MapboxAccessTokenContext","React","useMemo","useState","MapboxAccessTokenProvider","defaultAccessToken","props","accessToken","setAccessToken","useState","value","useMemo","provided","MapboxAccessTokenContext","Provider","useContextEx","useMapboxAccessToken","required","useContextEx","MapboxAccessTokenContext","useNetwork","useMemo","animatedAnswerHashesConst","staticAnswerHashConst","useFindHashes","network","useNetwork","exploreMapHashes","nodes","find","node","type","explorerMapHashes","animatedAnswerHashes","staticAnswerHash","foundHashes","useMemo","useTheme","useHeatMapColors","theme","useTheme","staticMapColor","highUsageColor","heatMapColorProps","lowUsageColor","legendProps","endColor","endLabel","heading","startColor","startLabel","textColor","palette","common","white","exists","GeoJson","useMemo","useState","quadKeyToFeature","density","quadkey","polygonFeature","GeoJson","properties","count","setDensity","feature","value","useQuadKeyPayloadsToFeatures","payloads","multipleFeatureSets","setMultipleFeatureSets","useState","features","setFeatures","error","setError","useMemo","Array","isArray","filter","exists","length","mappedFeatures","map","payload","result","Error","singlePayload","MapStyle","isPayloadOfSchemaType","NetworkLocationAnswerSchema","isNetworkLocationAnswer","NetworkLocationHeatmapAnswerSchema","isNetworkLocationHeatmapAnswer","NetworkLocationHeatmapQuadkeyAnswerSchema","isNetworkLocationHeatmapQuadkeyAnswer"]}
1
+ {"version":3,"sources":["../../src/settings/DefaultMapSettings.ts","../../src/AnimatedHeatMapSettings.ts","../../src/contexts/MapboxAccessToken/Context.ts","../../src/contexts/MapboxAccessToken/Provider.tsx","../../src/contexts/MapboxAccessToken/use.ts","../../src/hooks/useFindHashes.tsx","../../src/hooks/useHeatMapColors.tsx","../../src/lib/MapStyle.ts","../../src/types/NetworkLocationAnswerBase.ts"],"sourcesContent":["import type { MapSetting } from './MapSetting.ts'\n\nexport const DefaultMapSettings: () => MapSetting = () => ({\n debugLayer: {\n devMode: true,\n field: 'debugLayer',\n hidden: true,\n label: 'Debug Layer',\n value: false,\n },\n debugLogging: {\n devMode: true,\n field: 'debugLogging',\n hidden: true,\n label: 'Debug Logging',\n value: false,\n },\n dynamicMapResize: {\n devMode: true,\n field: 'dynamicMapResize',\n hidden: true,\n label: 'Auto Map Resize',\n value: true,\n },\n enableControls: {\n devMode: true,\n field: 'enableControls',\n hidden: true,\n label: 'Map Controls',\n value: false,\n },\n fitToPoints: {\n devMode: true,\n field: 'fitToPoints',\n hidden: true,\n label: 'Fit To Points',\n value: false,\n },\n preferDark: {\n devMode: false,\n field: 'preferDark',\n hidden: true,\n label: 'Prefer dark',\n value: false,\n },\n scrollToZoom: {\n devMode: true,\n field: 'scrollToZoom',\n hidden: true,\n label: 'Scroll To Zoom',\n value: false,\n },\n})\n","import { DefaultMapSettings } from './settings/index.ts'\n\nexport const AnimatedHeatMapSettings = DefaultMapSettings()\nconst {\n debugLayer, scrollToZoom, fitToPoints, preferDark,\n} = AnimatedHeatMapSettings\ndebugLayer.hidden = false\nscrollToZoom.value = true\nfitToPoints.value = false\npreferDark.value = true\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport type { MapboxAccessTokenContextState } from './State.ts'\n\nexport const MapboxAccessTokenContext = createContextEx<MapboxAccessTokenContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { MapboxAccessTokenContext } from './Context.ts'\n\nexport interface MapboxAccessTokenProviderProps {\n defaultAccessToken?: string\n}\n\nexport const MapboxAccessTokenProvider: React.FC<PropsWithChildren<MapboxAccessTokenProviderProps>> = ({ defaultAccessToken, ...props }) => {\n const [accessToken, setAccessToken] = useState<string>()\n\n const value = useMemo(() => ({\n accessToken: accessToken ?? defaultAccessToken, provided: true, setAccessToken,\n }), [accessToken, defaultAccessToken, setAccessToken])\n\n return (\n <MapboxAccessTokenContext.Provider\n value={value}\n {...props}\n />\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { MapboxAccessTokenContext } from './Context.ts'\n\nexport const useMapboxAccessToken = (required = false) => {\n return useContextEx(MapboxAccessTokenContext, 'MapboxAccessToken', required)\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { ArchivistPreset } from '@xyo-network/react-network'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { useMemo } from 'react'\n\nconst animatedAnswerHashesConst: Hash[] = [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e,',\n]\n\nconst staticAnswerHashConst: Hash = 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5'\n\nexport const useFindHashes = () => {\n const { network } = useNetwork()\n const exploreMapHashes = (network?.nodes?.find(node => node.type === 'archivist') as ArchivistPreset)?.explorerMapHashes\n const animatedAnswerHashes = exploreMapHashes?.animatedAnswerHashes || animatedAnswerHashesConst\n const staticAnswerHash = exploreMapHashes?.staticAnswerHash || staticAnswerHashConst\n const foundHashes = useMemo(() => [staticAnswerHash, ...animatedAnswerHashes], [animatedAnswerHashes, staticAnswerHash])\n return foundHashes\n}\n","import { useTheme } from '@mui/material'\n\nimport type { AnimatedHeatMapColorProps, ColorGradientLegendProps } from '../colors/index.ts'\n\nconst useHeatMapColors = () => {\n const theme = useTheme()\n const staticMapColor = '#FFFF75'\n const highUsageColor = '#FF0000'\n\n const heatMapColorProps: AnimatedHeatMapColorProps = {\n highUsageColor,\n lowUsageColor: '#FFB3B3',\n staticMapColor,\n }\n\n const legendProps: ColorGradientLegendProps = {\n endColor: highUsageColor,\n endLabel: 'High',\n heading: 'Network Usage',\n startColor: staticMapColor,\n startLabel: 'Low',\n textColor: theme.palette.common.white,\n }\n\n return { heatMapColorProps, legendProps }\n}\n\nexport { useHeatMapColors }\n","export enum MapStyle {\n Dark = 'mapbox/dark-v10',\n Light = 'mapbox/light-v10',\n Outdoors = 'mapbox/outdoors-v11',\n Satellite = 'mapbox/satellite-v9',\n SatelliteStreets = 'mapbox/satellite-streets-v11',\n Streets = 'mapbox/streets-v11',\n}\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type {\n Feature, Point, Polygon,\n} from 'geojson'\n\nexport interface NetworkLocationAnswerBase<T> {\n result: T\n}\n\nexport const NetworkLocationAnswerSchema = 'network.xyo.location.range.answer'\nexport type NetworkLocationAnswerSchema = 'network.xyo.location.range.answer'\nexport type NetworkLocationAnswerPayload = Payload<NetworkLocationAnswerBase<{ features: Feature<Point>[] }>, NetworkLocationAnswerSchema>\nexport const isNetworkLocationAnswer = isPayloadOfSchemaType<NetworkLocationAnswerPayload>(NetworkLocationAnswerSchema)\n\nexport const NetworkLocationHeatmapAnswerSchema = 'network.xyo.location.heatmap.answer'\nexport type NetworkLocationHeatmapAnswerSchema = 'network.xyo.location.heatmap.answer'\nexport type NetworkLocationHeatmapAnswerPayload = Payload<\n NetworkLocationAnswerBase<{ features: Feature<Polygon>[] }>,\n NetworkLocationHeatmapAnswerSchema\n>\nexport const isNetworkLocationHeatmapAnswer = isPayloadOfSchemaType<NetworkLocationHeatmapAnswerPayload>(NetworkLocationHeatmapAnswerSchema)\n\nexport const NetworkLocationHeatmapQuadkeyAnswerSchema = 'network.xyo.location.heatmap.quadkey.answer'\nexport type NetworkLocationHeatmapQuadkeyAnswerSchema = 'network.xyo.location.heatmap.quadkey.answer'\nexport type NetworkLocationHeatmapQuadkeyAnswerPayload = Payload<\n NetworkLocationAnswerBase<{ density: number; quadkey: string }[]>,\n NetworkLocationHeatmapQuadkeyAnswerSchema\n>\nexport const isNetworkLocationHeatmapQuadkeyAnswer = isPayloadOfSchemaType<NetworkLocationHeatmapAnswerPayload>(\n NetworkLocationHeatmapQuadkeyAnswerSchema,\n)\n"],"mappings":";;;;AAEO,IAAMA,qBAAuC,8BAAO;EACzDC,YAAY;IACVC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;EACAC,cAAc;IACZL,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;EACAE,kBAAkB;IAChBN,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;EACAG,gBAAgB;IACdP,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;EACAI,aAAa;IACXR,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;EACAK,YAAY;IACVT,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;EACAM,cAAc;IACZV,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,OAAO;EACT;AACF,IAlDoD;;;ACA7C,IAAMO,0BAA0BC,mBAAAA;AACvC,IAAM,EACJC,YAAYC,cAAcC,aAAaC,WAAU,IAC/CL;AACJE,WAAWI,SAAS;AACpBH,aAAaI,QAAQ;AACrBH,YAAYG,QAAQ;AACpBF,WAAWE,QAAQ;;;ACTnB,SAASC,uBAAuB;AAIzB,IAAMC,2BAA2BD,gBAAAA;;;ACHxC,OAAOE,SAASC,SAASC,gBAAgB;AAQlC,IAAMC,4BAAyF,wBAAC,EAAEC,oBAAoB,GAAGC,MAAAA,MAAO;AACrI,QAAM,CAACC,aAAaC,cAAAA,IAAkBC,SAAAA;AAEtC,QAAMC,QAAQC,QAAQ,OAAO;IAC3BJ,aAAaA,eAAeF;IAAoBO,UAAU;IAAMJ;EAClE,IAAI;IAACD;IAAaF;IAAoBG;GAAe;AAErD,SACE,sBAAA,cAACK,yBAAyBC,UAAQ;IAChCJ;IACC,GAAGJ;;AAGV,GAbsG;;;ACTtG,SAASS,oBAAoB;AAItB,IAAMC,uBAAuB,wBAACC,WAAW,UAAK;AACnD,SAAOC,aAAaC,0BAA0B,qBAAqBF,QAAAA;AACrE,GAFoC;;;ACFpC,SAASG,kBAAkB;AAC3B,SAASC,WAAAA,gBAAe;AAExB,IAAMC,4BAAoC;EACxC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,IAAMC,wBAA8B;AAE7B,IAAMC,gBAAgB,6BAAA;AAC3B,QAAM,EAAEC,QAAO,IAAKC,WAAAA;AACpB,QAAMC,mBAAoBF,SAASG,OAAOC,KAAKC,CAAAA,SAAQA,KAAKC,SAAS,WAAA,GAAkCC;AACvG,QAAMC,uBAAuBN,kBAAkBM,wBAAwBX;AACvE,QAAMY,mBAAmBP,kBAAkBO,oBAAoBX;AAC/D,QAAMY,cAAcC,SAAQ,MAAM;IAACF;OAAqBD;KAAuB;IAACA;IAAsBC;GAAiB;AACvH,SAAOC;AACT,GAP6B;;;ACrB7B,SAASE,gBAAgB;AAIzB,IAAMC,mBAAmB,6BAAA;AACvB,QAAMC,QAAQC,SAAAA;AACd,QAAMC,iBAAiB;AACvB,QAAMC,iBAAiB;AAEvB,QAAMC,oBAA+C;IACnDD;IACAE,eAAe;IACfH;EACF;AAEA,QAAMI,cAAwC;IAC5CC,UAAUJ;IACVK,UAAU;IACVC,SAAS;IACTC,YAAYR;IACZS,YAAY;IACZC,WAAWZ,MAAMa,QAAQC,OAAOC;EAClC;AAEA,SAAO;IAAEX;IAAmBE;EAAY;AAC1C,GArByB;;;ACJlB,IAAKU,WAAAA,yBAAAA,WAAAA;;;;;;;SAAAA;;;;ACCZ,SAASC,6BAA6B;AAS/B,IAAMC,8BAA8B;AAGpC,IAAMC,0BAA0BF,sBAAoDC,2BAAAA;AAEpF,IAAME,qCAAqC;AAM3C,IAAMC,iCAAiCJ,sBAA2DG,kCAAAA;AAElG,IAAME,4CAA4C;AAMlD,IAAMC,wCAAwCN,sBACnDK,yCAAAA;","names":["DefaultMapSettings","debugLayer","devMode","field","hidden","label","value","debugLogging","dynamicMapResize","enableControls","fitToPoints","preferDark","scrollToZoom","AnimatedHeatMapSettings","DefaultMapSettings","debugLayer","scrollToZoom","fitToPoints","preferDark","hidden","value","createContextEx","MapboxAccessTokenContext","React","useMemo","useState","MapboxAccessTokenProvider","defaultAccessToken","props","accessToken","setAccessToken","useState","value","useMemo","provided","MapboxAccessTokenContext","Provider","useContextEx","useMapboxAccessToken","required","useContextEx","MapboxAccessTokenContext","useNetwork","useMemo","animatedAnswerHashesConst","staticAnswerHashConst","useFindHashes","network","useNetwork","exploreMapHashes","nodes","find","node","type","explorerMapHashes","animatedAnswerHashes","staticAnswerHash","foundHashes","useMemo","useTheme","useHeatMapColors","theme","useTheme","staticMapColor","highUsageColor","heatMapColorProps","lowUsageColor","legendProps","endColor","endLabel","heading","startColor","startLabel","textColor","palette","common","white","MapStyle","isPayloadOfSchemaType","NetworkLocationAnswerSchema","isNetworkLocationAnswer","NetworkLocationHeatmapAnswerSchema","isNetworkLocationHeatmapAnswer","NetworkLocationHeatmapQuadkeyAnswerSchema","isNetworkLocationHeatmapQuadkeyAnswer"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-map-model",
3
- "version": "4.2.0",
3
+ "version": "4.2.2",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -43,12 +43,10 @@
43
43
  "lint-pkg": "npmPkgJsonLint ."
44
44
  },
45
45
  "dependencies": {
46
- "@xylabs/exists": "^4.3.3",
47
- "@xylabs/hex": "^4.3.3",
46
+ "@xylabs/hex": "^4.3.4",
48
47
  "@xyo-network/payload-model": "^3.3.2",
49
- "@xyo-network/react-network": "^4.2.0",
50
- "@xyo-network/react-shared": "^4.2.0",
51
- "@xyo-network/sdk-geo": "^3.0.2"
48
+ "@xyo-network/react-network": "^4.2.2",
49
+ "@xyo-network/react-shared": "^4.2.2"
52
50
  },
53
51
  "devDependencies": {
54
52
  "@mui/icons-material": "^6.1.6",
@@ -1,3 +1,2 @@
1
1
  export * from './useFindHashes.tsx'
2
2
  export * from './useHeatMapColors.tsx'
3
- export * from './useQuadKeyPayloadsToFeatures.tsx'
@@ -1,9 +0,0 @@
1
- import type { Feature, Geometry } from 'geojson';
2
- import type { NetworkLocationHeatmapQuadkeyAnswerPayload } from '../types/index.ts';
3
- declare const useQuadKeyPayloadsToFeatures: (payloads?: NetworkLocationHeatmapQuadkeyAnswerPayload[] | NetworkLocationHeatmapQuadkeyAnswerPayload) => {
4
- error: Error | undefined;
5
- features: Feature<Geometry, import("geojson").GeoJsonProperties>[];
6
- multipleFeatureSets: Feature<Geometry, import("geojson").GeoJsonProperties>[][];
7
- };
8
- export { useQuadKeyPayloadsToFeatures };
9
- //# sourceMappingURL=useQuadKeyPayloadsToFeatures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useQuadKeyPayloadsToFeatures.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuadKeyPayloadsToFeatures.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGhD,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,mBAAmB,CAAA;AAkBnF,QAAA,MAAM,4BAA4B,cAAe,0CAA0C,EAAE,GAAG,0CAA0C;;;;CA6BzI,CAAA;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
@@ -1,55 +0,0 @@
1
- import { exists } from '@xylabs/exists'
2
- import { GeoJson } from '@xyo-network/sdk-geo'
3
- import type { Feature, Geometry } from 'geojson'
4
- import { useMemo, useState } from 'react'
5
-
6
- import type { NetworkLocationHeatmapQuadkeyAnswerPayload } from '../types/index.ts'
7
-
8
- const quadKeyToFeature = ({ density, quadkey }: { density: number; quadkey: string }) => {
9
- const polygonFeature = new GeoJson(quadkey).polygonFeature()
10
- polygonFeature.properties = {
11
- count: density,
12
- density,
13
- }
14
- return polygonFeature
15
- }
16
-
17
- const setDensity = (feature: Feature) => {
18
- if (feature.properties) {
19
- feature.properties.value = feature.properties.density / 5
20
- }
21
- return feature
22
- }
23
-
24
- const useQuadKeyPayloadsToFeatures = (payloads?: NetworkLocationHeatmapQuadkeyAnswerPayload[] | NetworkLocationHeatmapQuadkeyAnswerPayload) => {
25
- const [multipleFeatureSets, setMultipleFeatureSets] = useState<Feature<Geometry>[][]>([[]])
26
- const [features, setFeatures] = useState<Feature<Geometry>[]>([])
27
- const [error, setError] = useState<Error>()
28
-
29
- useMemo(() => {
30
- // Convert Multiple Payloads from Quadkey to GeoJson
31
- if (Array.isArray(payloads)) {
32
- if ((payloads)?.filter(exists).length > 0) {
33
- const mappedFeatures = payloads?.map(payload => payload?.result.map(quadKeyToFeature))
34
-
35
- setMultipleFeatureSets(mappedFeatures.map(features => features?.map(setDensity) ?? []))
36
- } else {
37
- setError(new Error('Cannot find payloads for provided hashes'))
38
- }
39
- }
40
-
41
- // Convert Single Payload from Quadkey to GeoJson
42
- if (payloads && (payloads as NetworkLocationHeatmapQuadkeyAnswerPayload).result) {
43
- const singlePayload = payloads as NetworkLocationHeatmapQuadkeyAnswerPayload
44
- const mappedFeatures = singlePayload.result.map(quadKeyToFeature)
45
-
46
- setFeatures(mappedFeatures.map(setDensity))
47
- }
48
- }, [payloads])
49
-
50
- return {
51
- error, features, multipleFeatureSets,
52
- }
53
- }
54
-
55
- export { useQuadKeyPayloadsToFeatures }