@xyo-network/react-map 2.26.44
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/LICENSE +165 -0
- package/README.md +70 -0
- package/dist/cjs/AnimatedHeatMapSettings.d.ts +2 -0
- package/dist/cjs/AnimatedHeatMapSettings.js +12 -0
- package/dist/cjs/AnimatedHeatMapSettings.js.map +1 -0
- package/dist/cjs/Colors/XyoMapColorProps.d.ts +16 -0
- package/dist/cjs/Colors/XyoMapColorProps.js +3 -0
- package/dist/cjs/Colors/XyoMapColorProps.js.map +1 -0
- package/dist/cjs/Colors/index.d.ts +1 -0
- package/dist/cjs/Colors/index.js +5 -0
- package/dist/cjs/Colors/index.js.map +1 -0
- package/dist/cjs/Components/AnimatedHeatMap.d.ts +14 -0
- package/dist/cjs/Components/AnimatedHeatMap.js +25 -0
- package/dist/cjs/Components/AnimatedHeatMap.js.map +1 -0
- package/dist/cjs/Components/AnimatedHetaMapLoaded.d.ts +6 -0
- package/dist/cjs/Components/AnimatedHetaMapLoaded.js +24 -0
- package/dist/cjs/Components/AnimatedHetaMapLoaded.js.map +1 -0
- package/dist/cjs/Components/FeaturesToLayersMap.d.ts +6 -0
- package/dist/cjs/Components/FeaturesToLayersMap.js +3 -0
- package/dist/cjs/Components/FeaturesToLayersMap.js.map +1 -0
- package/dist/cjs/Components/HeatMapSettings.d.ts +2 -0
- package/dist/cjs/Components/HeatMapSettings.js +11 -0
- package/dist/cjs/Components/HeatMapSettings.js.map +1 -0
- package/dist/cjs/Components/LayerAnimator.d.ts +12 -0
- package/dist/cjs/Components/LayerAnimator.js +94 -0
- package/dist/cjs/Components/LayerAnimator.js.map +1 -0
- package/dist/cjs/Components/Legend.d.ts +4 -0
- package/dist/cjs/Components/Legend.js +23 -0
- package/dist/cjs/Components/Legend.js.map +1 -0
- package/dist/cjs/Components/Legends/ColorGradient.d.ts +4 -0
- package/dist/cjs/Components/Legends/ColorGradient.js +14 -0
- package/dist/cjs/Components/Legends/ColorGradient.js.map +1 -0
- package/dist/cjs/Components/Legends/index.d.ts +1 -0
- package/dist/cjs/Components/Legends/index.js +5 -0
- package/dist/cjs/Components/Legends/index.js.map +1 -0
- package/dist/cjs/Components/MapBox.d.ts +10 -0
- package/dist/cjs/Components/MapBox.js +42 -0
- package/dist/cjs/Components/MapBox.js.map +1 -0
- package/dist/cjs/Components/MapBoxHeat.d.ts +3 -0
- package/dist/cjs/Components/MapBoxHeat.js +14 -0
- package/dist/cjs/Components/MapBoxHeat.js.map +1 -0
- package/dist/cjs/Components/MapBoxPoints.d.ts +9 -0
- package/dist/cjs/Components/MapBoxPoints.js +51 -0
- package/dist/cjs/Components/MapBoxPoints.js.map +1 -0
- package/dist/cjs/Components/MapSettingsComponents/Setting.d.ts +6 -0
- package/dist/cjs/Components/MapSettingsComponents/Setting.js +26 -0
- package/dist/cjs/Components/MapSettingsComponents/Setting.js.map +1 -0
- package/dist/cjs/Components/MapSettingsComponents/Settings.d.ts +3 -0
- package/dist/cjs/Components/MapSettingsComponents/Settings.js +18 -0
- package/dist/cjs/Components/MapSettingsComponents/Settings.js.map +1 -0
- package/dist/cjs/Components/MapSettingsComponents/index.d.ts +2 -0
- package/dist/cjs/Components/MapSettingsComponents/index.js +6 -0
- package/dist/cjs/Components/MapSettingsComponents/index.js.map +1 -0
- package/dist/cjs/Components/index.d.ts +11 -0
- package/dist/cjs/Components/index.js +15 -0
- package/dist/cjs/Components/index.js.map +1 -0
- package/dist/cjs/Contexts/HeatMapInitializer/Context.d.ts +4 -0
- package/dist/cjs/Contexts/HeatMapInitializer/Context.js +7 -0
- package/dist/cjs/Contexts/HeatMapInitializer/Context.js.map +1 -0
- package/dist/cjs/Contexts/HeatMapInitializer/Provider.d.ts +16 -0
- package/dist/cjs/Contexts/HeatMapInitializer/Provider.js +58 -0
- package/dist/cjs/Contexts/HeatMapInitializer/Provider.js.map +1 -0
- package/dist/cjs/Contexts/HeatMapInitializer/State.d.ts +6 -0
- package/dist/cjs/Contexts/HeatMapInitializer/State.js +3 -0
- package/dist/cjs/Contexts/HeatMapInitializer/State.js.map +1 -0
- package/dist/cjs/Contexts/HeatMapInitializer/index.d.ts +2 -0
- package/dist/cjs/Contexts/HeatMapInitializer/index.js +6 -0
- package/dist/cjs/Contexts/HeatMapInitializer/index.js.map +1 -0
- package/dist/cjs/Contexts/HeatMapInitializer/useHeatMapInitializer.d.ts +2 -0
- package/dist/cjs/Contexts/HeatMapInitializer/useHeatMapInitializer.js +13 -0
- package/dist/cjs/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +1 -0
- package/dist/cjs/Contexts/MapBoxInstance/Context.d.ts +4 -0
- package/dist/cjs/Contexts/MapBoxInstance/Context.js +7 -0
- package/dist/cjs/Contexts/MapBoxInstance/Context.js.map +1 -0
- package/dist/cjs/Contexts/MapBoxInstance/Provider.d.ts +3 -0
- package/dist/cjs/Contexts/MapBoxInstance/Provider.js +21 -0
- package/dist/cjs/Contexts/MapBoxInstance/Provider.js.map +1 -0
- package/dist/cjs/Contexts/MapBoxInstance/State.d.ts +7 -0
- package/dist/cjs/Contexts/MapBoxInstance/State.js +3 -0
- package/dist/cjs/Contexts/MapBoxInstance/State.js.map +1 -0
- package/dist/cjs/Contexts/MapBoxInstance/index.d.ts +2 -0
- package/dist/cjs/Contexts/MapBoxInstance/index.js +6 -0
- package/dist/cjs/Contexts/MapBoxInstance/index.js.map +1 -0
- package/dist/cjs/Contexts/MapBoxInstance/useMapBoxInstance.d.ts +2 -0
- package/dist/cjs/Contexts/MapBoxInstance/useMapBoxInstance.js +13 -0
- package/dist/cjs/Contexts/MapBoxInstance/useMapBoxInstance.js.map +1 -0
- package/dist/cjs/Contexts/MapSettings/Context.d.ts +4 -0
- package/dist/cjs/Contexts/MapSettings/Context.js +7 -0
- package/dist/cjs/Contexts/MapSettings/Context.js.map +1 -0
- package/dist/cjs/Contexts/MapSettings/Provider.d.ts +11 -0
- package/dist/cjs/Contexts/MapSettings/Provider.js +24 -0
- package/dist/cjs/Contexts/MapSettings/Provider.js.map +1 -0
- package/dist/cjs/Contexts/MapSettings/State.d.ts +6 -0
- package/dist/cjs/Contexts/MapSettings/State.js +3 -0
- package/dist/cjs/Contexts/MapSettings/State.js.map +1 -0
- package/dist/cjs/Contexts/MapSettings/index.d.ts +2 -0
- package/dist/cjs/Contexts/MapSettings/index.js +6 -0
- package/dist/cjs/Contexts/MapSettings/index.js.map +1 -0
- package/dist/cjs/Contexts/MapSettings/useMapSettings.d.ts +2 -0
- package/dist/cjs/Contexts/MapSettings/useMapSettings.js +13 -0
- package/dist/cjs/Contexts/MapSettings/useMapSettings.js.map +1 -0
- package/dist/cjs/Contexts/MapboxAccessToken/Context.d.ts +3 -0
- package/dist/cjs/Contexts/MapboxAccessToken/Context.js +6 -0
- package/dist/cjs/Contexts/MapboxAccessToken/Context.js.map +1 -0
- package/dist/cjs/Contexts/MapboxAccessToken/Provider.d.ts +6 -0
- package/dist/cjs/Contexts/MapboxAccessToken/Provider.js +14 -0
- package/dist/cjs/Contexts/MapboxAccessToken/Provider.js.map +1 -0
- package/dist/cjs/Contexts/MapboxAccessToken/State.d.ts +6 -0
- package/dist/cjs/Contexts/MapboxAccessToken/State.js +3 -0
- package/dist/cjs/Contexts/MapboxAccessToken/State.js.map +1 -0
- package/dist/cjs/Contexts/MapboxAccessToken/index.d.ts +4 -0
- package/dist/cjs/Contexts/MapboxAccessToken/index.js +8 -0
- package/dist/cjs/Contexts/MapboxAccessToken/index.js.map +1 -0
- package/dist/cjs/Contexts/MapboxAccessToken/use.d.ts +1 -0
- package/dist/cjs/Contexts/MapboxAccessToken/use.js +10 -0
- package/dist/cjs/Contexts/MapboxAccessToken/use.js.map +1 -0
- package/dist/cjs/Contexts/index.d.ts +4 -0
- package/dist/cjs/Contexts/index.js +8 -0
- package/dist/cjs/Contexts/index.js.map +1 -0
- package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilder.d.ts +12 -0
- package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilder.js +27 -0
- package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilder.js.map +1 -0
- package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilderAnimated.d.ts +2 -0
- package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +21 -0
- package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +1 -0
- package/dist/cjs/Layers/Builders/LocationPointsMapLayerBuilder.d.ts +6 -0
- package/dist/cjs/Layers/Builders/LocationPointsMapLayerBuilder.js +17 -0
- package/dist/cjs/Layers/Builders/LocationPointsMapLayerBuilder.js.map +1 -0
- package/dist/cjs/Layers/Builders/index.d.ts +3 -0
- package/dist/cjs/Layers/Builders/index.js +7 -0
- package/dist/cjs/Layers/Builders/index.js.map +1 -0
- package/dist/cjs/Layers/CircleLayer.d.ts +8 -0
- package/dist/cjs/Layers/CircleLayer.js +20 -0
- package/dist/cjs/Layers/CircleLayer.js.map +1 -0
- package/dist/cjs/Layers/Configs/HeatMapFillLayerConfig.d.ts +2 -0
- package/dist/cjs/Layers/Configs/HeatMapFillLayerConfig.js +11 -0
- package/dist/cjs/Layers/Configs/HeatMapFillLayerConfig.js.map +1 -0
- package/dist/cjs/Layers/Configs/HeatMapLineLayerConfig.d.ts +2 -0
- package/dist/cjs/Layers/Configs/HeatMapLineLayerConfig.js +16 -0
- package/dist/cjs/Layers/Configs/HeatMapLineLayerConfig.js.map +1 -0
- package/dist/cjs/Layers/Configs/HeatMapSymbolLayerConfig.d.ts +2 -0
- package/dist/cjs/Layers/Configs/HeatMapSymbolLayerConfig.js +16 -0
- package/dist/cjs/Layers/Configs/HeatMapSymbolLayerConfig.js.map +1 -0
- package/dist/cjs/Layers/Configs/LocationPointLayerConfig.d.ts +2 -0
- package/dist/cjs/Layers/Configs/LocationPointLayerConfig.js +14 -0
- package/dist/cjs/Layers/Configs/LocationPointLayerConfig.js.map +1 -0
- package/dist/cjs/Layers/Configs/index.d.ts +4 -0
- package/dist/cjs/Layers/Configs/index.js +8 -0
- package/dist/cjs/Layers/Configs/index.js.map +1 -0
- package/dist/cjs/Layers/FillLayer.d.ts +8 -0
- package/dist/cjs/Layers/FillLayer.js +17 -0
- package/dist/cjs/Layers/FillLayer.js.map +1 -0
- package/dist/cjs/Layers/LineLayer.d.ts +8 -0
- package/dist/cjs/Layers/LineLayer.js +17 -0
- package/dist/cjs/Layers/LineLayer.js.map +1 -0
- package/dist/cjs/Layers/SymbolLayer.d.ts +8 -0
- package/dist/cjs/Layers/SymbolLayer.js +17 -0
- package/dist/cjs/Layers/SymbolLayer.js.map +1 -0
- package/dist/cjs/Layers/XyoMapLayer.d.ts +5 -0
- package/dist/cjs/Layers/XyoMapLayer.js +3 -0
- package/dist/cjs/Layers/XyoMapLayer.js.map +1 -0
- package/dist/cjs/Layers/index.d.ts +7 -0
- package/dist/cjs/Layers/index.js +11 -0
- package/dist/cjs/Layers/index.js.map +1 -0
- package/dist/cjs/MapBoxClasses/XyoMapBase.d.ts +15 -0
- package/dist/cjs/MapBoxClasses/XyoMapBase.js +31 -0
- package/dist/cjs/MapBoxClasses/XyoMapBase.js.map +1 -0
- package/dist/cjs/MapBoxClasses/XyoMapHeat.d.ts +13 -0
- package/dist/cjs/MapBoxClasses/XyoMapHeat.js +146 -0
- package/dist/cjs/MapBoxClasses/XyoMapHeat.js.map +1 -0
- package/dist/cjs/MapBoxClasses/XyoMapPoints.d.ts +11 -0
- package/dist/cjs/MapBoxClasses/XyoMapPoints.js +29 -0
- package/dist/cjs/MapBoxClasses/XyoMapPoints.js.map +1 -0
- package/dist/cjs/MapBoxClasses/XyoMapSettings.d.ts +29 -0
- package/dist/cjs/MapBoxClasses/XyoMapSettings.js +107 -0
- package/dist/cjs/MapBoxClasses/XyoMapSettings.js.map +1 -0
- package/dist/cjs/MapBoxClasses/index.d.ts +4 -0
- package/dist/cjs/MapBoxClasses/index.js +8 -0
- package/dist/cjs/MapBoxClasses/index.js.map +1 -0
- package/dist/cjs/Settings/DefaultMapSettings.d.ts +2 -0
- package/dist/cjs/Settings/DefaultMapSettings.js +46 -0
- package/dist/cjs/Settings/DefaultMapSettings.js.map +1 -0
- package/dist/cjs/Settings/MapSetting.d.ts +11 -0
- package/dist/cjs/Settings/MapSetting.js +3 -0
- package/dist/cjs/Settings/MapSetting.js.map +1 -0
- package/dist/cjs/Settings/index.d.ts +2 -0
- package/dist/cjs/Settings/index.js +6 -0
- package/dist/cjs/Settings/index.js.map +1 -0
- package/dist/cjs/hooks/index.d.ts +5 -0
- package/dist/cjs/hooks/index.js +9 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/hooks/useDynamicPositioning.d.ts +5 -0
- package/dist/cjs/hooks/useDynamicPositioning.js +60 -0
- package/dist/cjs/hooks/useDynamicPositioning.js.map +1 -0
- package/dist/cjs/hooks/useFetchPayloads.d.ts +8 -0
- package/dist/cjs/hooks/useFetchPayloads.js +53 -0
- package/dist/cjs/hooks/useFetchPayloads.js.map +1 -0
- package/dist/cjs/hooks/useFindHashes.d.ts +2 -0
- package/dist/cjs/hooks/useFindHashes.js +17 -0
- package/dist/cjs/hooks/useFindHashes.js.map +1 -0
- package/dist/cjs/hooks/useHeatMapColors.d.ts +6 -0
- package/dist/cjs/hooks/useHeatMapColors.js +25 -0
- package/dist/cjs/hooks/useHeatMapColors.js.map +1 -0
- package/dist/cjs/hooks/useQuadKeyPayloadsToFeatures.d.ts +7 -0
- package/dist/cjs/hooks/useQuadKeyPayloadsToFeatures.js +40 -0
- package/dist/cjs/hooks/useQuadKeyPayloadsToFeatures.js.map +1 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/XyoMapBoxBaseProps.d.ts +17 -0
- package/dist/cjs/lib/XyoMapBoxBaseProps.js +3 -0
- package/dist/cjs/lib/XyoMapBoxBaseProps.js.map +1 -0
- package/dist/cjs/lib/XyoMapStyle.d.ts +8 -0
- package/dist/cjs/lib/XyoMapStyle.js +13 -0
- package/dist/cjs/lib/XyoMapStyle.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +2 -0
- package/dist/cjs/lib/index.js +6 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/types/NetworkLocationAnswerBase.d.ts +16 -0
- package/dist/cjs/types/NetworkLocationAnswerBase.js +3 -0
- package/dist/cjs/types/NetworkLocationAnswerBase.js.map +1 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +5 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/docs.json +16 -0
- package/dist/esm/AnimatedHeatMapSettings.d.ts +2 -0
- package/dist/esm/AnimatedHeatMapSettings.js +9 -0
- package/dist/esm/AnimatedHeatMapSettings.js.map +1 -0
- package/dist/esm/Colors/XyoMapColorProps.d.ts +16 -0
- package/dist/esm/Colors/XyoMapColorProps.js +2 -0
- package/dist/esm/Colors/XyoMapColorProps.js.map +1 -0
- package/dist/esm/Colors/index.d.ts +1 -0
- package/dist/esm/Colors/index.js +2 -0
- package/dist/esm/Colors/index.js.map +1 -0
- package/dist/esm/Components/AnimatedHeatMap.d.ts +14 -0
- package/dist/esm/Components/AnimatedHeatMap.js +19 -0
- package/dist/esm/Components/AnimatedHeatMap.js.map +1 -0
- package/dist/esm/Components/AnimatedHetaMapLoaded.d.ts +6 -0
- package/dist/esm/Components/AnimatedHetaMapLoaded.js +18 -0
- package/dist/esm/Components/AnimatedHetaMapLoaded.js.map +1 -0
- package/dist/esm/Components/FeaturesToLayersMap.d.ts +6 -0
- package/dist/esm/Components/FeaturesToLayersMap.js +2 -0
- package/dist/esm/Components/FeaturesToLayersMap.js.map +1 -0
- package/dist/esm/Components/HeatMapSettings.d.ts +2 -0
- package/dist/esm/Components/HeatMapSettings.js +8 -0
- package/dist/esm/Components/HeatMapSettings.js.map +1 -0
- package/dist/esm/Components/LayerAnimator.d.ts +12 -0
- package/dist/esm/Components/LayerAnimator.js +91 -0
- package/dist/esm/Components/LayerAnimator.js.map +1 -0
- package/dist/esm/Components/Legend.d.ts +4 -0
- package/dist/esm/Components/Legend.js +18 -0
- package/dist/esm/Components/Legend.js.map +1 -0
- package/dist/esm/Components/Legends/ColorGradient.d.ts +4 -0
- package/dist/esm/Components/Legends/ColorGradient.js +9 -0
- package/dist/esm/Components/Legends/ColorGradient.js.map +1 -0
- package/dist/esm/Components/Legends/index.d.ts +1 -0
- package/dist/esm/Components/Legends/index.js +2 -0
- package/dist/esm/Components/Legends/index.js.map +1 -0
- package/dist/esm/Components/MapBox.d.ts +10 -0
- package/dist/esm/Components/MapBox.js +48 -0
- package/dist/esm/Components/MapBox.js.map +1 -0
- package/dist/esm/Components/MapBoxHeat.d.ts +3 -0
- package/dist/esm/Components/MapBoxHeat.js +8 -0
- package/dist/esm/Components/MapBoxHeat.js.map +1 -0
- package/dist/esm/Components/MapBoxPoints.d.ts +9 -0
- package/dist/esm/Components/MapBoxPoints.js +46 -0
- package/dist/esm/Components/MapBoxPoints.js.map +1 -0
- package/dist/esm/Components/MapSettingsComponents/Setting.d.ts +6 -0
- package/dist/esm/Components/MapSettingsComponents/Setting.js +20 -0
- package/dist/esm/Components/MapSettingsComponents/Setting.js.map +1 -0
- package/dist/esm/Components/MapSettingsComponents/Settings.d.ts +3 -0
- package/dist/esm/Components/MapSettingsComponents/Settings.js +14 -0
- package/dist/esm/Components/MapSettingsComponents/Settings.js.map +1 -0
- package/dist/esm/Components/MapSettingsComponents/index.d.ts +2 -0
- package/dist/esm/Components/MapSettingsComponents/index.js +3 -0
- package/dist/esm/Components/MapSettingsComponents/index.js.map +1 -0
- package/dist/esm/Components/index.d.ts +11 -0
- package/dist/esm/Components/index.js +12 -0
- package/dist/esm/Components/index.js.map +1 -0
- package/dist/esm/Contexts/HeatMapInitializer/Context.d.ts +4 -0
- package/dist/esm/Contexts/HeatMapInitializer/Context.js +4 -0
- package/dist/esm/Contexts/HeatMapInitializer/Context.js.map +1 -0
- package/dist/esm/Contexts/HeatMapInitializer/Provider.d.ts +16 -0
- package/dist/esm/Contexts/HeatMapInitializer/Provider.js +54 -0
- package/dist/esm/Contexts/HeatMapInitializer/Provider.js.map +1 -0
- package/dist/esm/Contexts/HeatMapInitializer/State.d.ts +6 -0
- package/dist/esm/Contexts/HeatMapInitializer/State.js +2 -0
- package/dist/esm/Contexts/HeatMapInitializer/State.js.map +1 -0
- package/dist/esm/Contexts/HeatMapInitializer/index.d.ts +2 -0
- package/dist/esm/Contexts/HeatMapInitializer/index.js +3 -0
- package/dist/esm/Contexts/HeatMapInitializer/index.js.map +1 -0
- package/dist/esm/Contexts/HeatMapInitializer/useHeatMapInitializer.d.ts +2 -0
- package/dist/esm/Contexts/HeatMapInitializer/useHeatMapInitializer.js +10 -0
- package/dist/esm/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +1 -0
- package/dist/esm/Contexts/MapBoxInstance/Context.d.ts +4 -0
- package/dist/esm/Contexts/MapBoxInstance/Context.js +4 -0
- package/dist/esm/Contexts/MapBoxInstance/Context.js.map +1 -0
- package/dist/esm/Contexts/MapBoxInstance/Provider.d.ts +3 -0
- package/dist/esm/Contexts/MapBoxInstance/Provider.js +17 -0
- package/dist/esm/Contexts/MapBoxInstance/Provider.js.map +1 -0
- package/dist/esm/Contexts/MapBoxInstance/State.d.ts +7 -0
- package/dist/esm/Contexts/MapBoxInstance/State.js +2 -0
- package/dist/esm/Contexts/MapBoxInstance/State.js.map +1 -0
- package/dist/esm/Contexts/MapBoxInstance/index.d.ts +2 -0
- package/dist/esm/Contexts/MapBoxInstance/index.js +3 -0
- package/dist/esm/Contexts/MapBoxInstance/index.js.map +1 -0
- package/dist/esm/Contexts/MapBoxInstance/useMapBoxInstance.d.ts +2 -0
- package/dist/esm/Contexts/MapBoxInstance/useMapBoxInstance.js +10 -0
- package/dist/esm/Contexts/MapBoxInstance/useMapBoxInstance.js.map +1 -0
- package/dist/esm/Contexts/MapSettings/Context.d.ts +4 -0
- package/dist/esm/Contexts/MapSettings/Context.js +4 -0
- package/dist/esm/Contexts/MapSettings/Context.js.map +1 -0
- package/dist/esm/Contexts/MapSettings/Provider.d.ts +11 -0
- package/dist/esm/Contexts/MapSettings/Provider.js +20 -0
- package/dist/esm/Contexts/MapSettings/Provider.js.map +1 -0
- package/dist/esm/Contexts/MapSettings/State.d.ts +6 -0
- package/dist/esm/Contexts/MapSettings/State.js +2 -0
- package/dist/esm/Contexts/MapSettings/State.js.map +1 -0
- package/dist/esm/Contexts/MapSettings/index.d.ts +2 -0
- package/dist/esm/Contexts/MapSettings/index.js +3 -0
- package/dist/esm/Contexts/MapSettings/index.js.map +1 -0
- package/dist/esm/Contexts/MapSettings/useMapSettings.d.ts +2 -0
- package/dist/esm/Contexts/MapSettings/useMapSettings.js +10 -0
- package/dist/esm/Contexts/MapSettings/useMapSettings.js.map +1 -0
- package/dist/esm/Contexts/MapboxAccessToken/Context.d.ts +3 -0
- package/dist/esm/Contexts/MapboxAccessToken/Context.js +3 -0
- package/dist/esm/Contexts/MapboxAccessToken/Context.js.map +1 -0
- package/dist/esm/Contexts/MapboxAccessToken/Provider.d.ts +6 -0
- package/dist/esm/Contexts/MapboxAccessToken/Provider.js +8 -0
- package/dist/esm/Contexts/MapboxAccessToken/Provider.js.map +1 -0
- package/dist/esm/Contexts/MapboxAccessToken/State.d.ts +6 -0
- package/dist/esm/Contexts/MapboxAccessToken/State.js +2 -0
- package/dist/esm/Contexts/MapboxAccessToken/State.js.map +1 -0
- package/dist/esm/Contexts/MapboxAccessToken/index.d.ts +4 -0
- package/dist/esm/Contexts/MapboxAccessToken/index.js +5 -0
- package/dist/esm/Contexts/MapboxAccessToken/index.js.map +1 -0
- package/dist/esm/Contexts/MapboxAccessToken/use.d.ts +1 -0
- package/dist/esm/Contexts/MapboxAccessToken/use.js +6 -0
- package/dist/esm/Contexts/MapboxAccessToken/use.js.map +1 -0
- package/dist/esm/Contexts/index.d.ts +4 -0
- package/dist/esm/Contexts/index.js +5 -0
- package/dist/esm/Contexts/index.js.map +1 -0
- package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilder.d.ts +12 -0
- package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilder.js +23 -0
- package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilder.js.map +1 -0
- package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilderAnimated.d.ts +2 -0
- package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +17 -0
- package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +1 -0
- package/dist/esm/Layers/Builders/LocationPointsMapLayerBuilder.d.ts +6 -0
- package/dist/esm/Layers/Builders/LocationPointsMapLayerBuilder.js +13 -0
- package/dist/esm/Layers/Builders/LocationPointsMapLayerBuilder.js.map +1 -0
- package/dist/esm/Layers/Builders/index.d.ts +3 -0
- package/dist/esm/Layers/Builders/index.js +4 -0
- package/dist/esm/Layers/Builders/index.js.map +1 -0
- package/dist/esm/Layers/CircleLayer.d.ts +8 -0
- package/dist/esm/Layers/CircleLayer.js +24 -0
- package/dist/esm/Layers/CircleLayer.js.map +1 -0
- package/dist/esm/Layers/Configs/HeatMapFillLayerConfig.d.ts +2 -0
- package/dist/esm/Layers/Configs/HeatMapFillLayerConfig.js +7 -0
- package/dist/esm/Layers/Configs/HeatMapFillLayerConfig.js.map +1 -0
- package/dist/esm/Layers/Configs/HeatMapLineLayerConfig.d.ts +2 -0
- package/dist/esm/Layers/Configs/HeatMapLineLayerConfig.js +12 -0
- package/dist/esm/Layers/Configs/HeatMapLineLayerConfig.js.map +1 -0
- package/dist/esm/Layers/Configs/HeatMapSymbolLayerConfig.d.ts +2 -0
- package/dist/esm/Layers/Configs/HeatMapSymbolLayerConfig.js +12 -0
- package/dist/esm/Layers/Configs/HeatMapSymbolLayerConfig.js.map +1 -0
- package/dist/esm/Layers/Configs/LocationPointLayerConfig.d.ts +2 -0
- package/dist/esm/Layers/Configs/LocationPointLayerConfig.js +10 -0
- package/dist/esm/Layers/Configs/LocationPointLayerConfig.js.map +1 -0
- package/dist/esm/Layers/Configs/index.d.ts +4 -0
- package/dist/esm/Layers/Configs/index.js +5 -0
- package/dist/esm/Layers/Configs/index.js.map +1 -0
- package/dist/esm/Layers/FillLayer.d.ts +8 -0
- package/dist/esm/Layers/FillLayer.js +18 -0
- package/dist/esm/Layers/FillLayer.js.map +1 -0
- package/dist/esm/Layers/LineLayer.d.ts +8 -0
- package/dist/esm/Layers/LineLayer.js +19 -0
- package/dist/esm/Layers/LineLayer.js.map +1 -0
- package/dist/esm/Layers/SymbolLayer.d.ts +8 -0
- package/dist/esm/Layers/SymbolLayer.js +18 -0
- package/dist/esm/Layers/SymbolLayer.js.map +1 -0
- package/dist/esm/Layers/XyoMapLayer.d.ts +5 -0
- package/dist/esm/Layers/XyoMapLayer.js +2 -0
- package/dist/esm/Layers/XyoMapLayer.js.map +1 -0
- package/dist/esm/Layers/index.d.ts +7 -0
- package/dist/esm/Layers/index.js +8 -0
- package/dist/esm/Layers/index.js.map +1 -0
- package/dist/esm/MapBoxClasses/XyoMapBase.d.ts +15 -0
- package/dist/esm/MapBoxClasses/XyoMapBase.js +27 -0
- package/dist/esm/MapBoxClasses/XyoMapBase.js.map +1 -0
- package/dist/esm/MapBoxClasses/XyoMapHeat.d.ts +13 -0
- package/dist/esm/MapBoxClasses/XyoMapHeat.js +139 -0
- package/dist/esm/MapBoxClasses/XyoMapHeat.js.map +1 -0
- package/dist/esm/MapBoxClasses/XyoMapPoints.d.ts +11 -0
- package/dist/esm/MapBoxClasses/XyoMapPoints.js +25 -0
- package/dist/esm/MapBoxClasses/XyoMapPoints.js.map +1 -0
- package/dist/esm/MapBoxClasses/XyoMapSettings.d.ts +29 -0
- package/dist/esm/MapBoxClasses/XyoMapSettings.js +103 -0
- package/dist/esm/MapBoxClasses/XyoMapSettings.js.map +1 -0
- package/dist/esm/MapBoxClasses/index.d.ts +4 -0
- package/dist/esm/MapBoxClasses/index.js +5 -0
- package/dist/esm/MapBoxClasses/index.js.map +1 -0
- package/dist/esm/Settings/DefaultMapSettings.d.ts +2 -0
- package/dist/esm/Settings/DefaultMapSettings.js +42 -0
- package/dist/esm/Settings/DefaultMapSettings.js.map +1 -0
- package/dist/esm/Settings/MapSetting.d.ts +11 -0
- package/dist/esm/Settings/MapSetting.js +2 -0
- package/dist/esm/Settings/MapSetting.js.map +1 -0
- package/dist/esm/Settings/index.d.ts +2 -0
- package/dist/esm/Settings/index.js +3 -0
- package/dist/esm/Settings/index.js.map +1 -0
- package/dist/esm/hooks/index.d.ts +5 -0
- package/dist/esm/hooks/index.js +6 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/hooks/useDynamicPositioning.d.ts +5 -0
- package/dist/esm/hooks/useDynamicPositioning.js +57 -0
- package/dist/esm/hooks/useDynamicPositioning.js.map +1 -0
- package/dist/esm/hooks/useFetchPayloads.d.ts +8 -0
- package/dist/esm/hooks/useFetchPayloads.js +49 -0
- package/dist/esm/hooks/useFetchPayloads.js.map +1 -0
- package/dist/esm/hooks/useFindHashes.d.ts +2 -0
- package/dist/esm/hooks/useFindHashes.js +13 -0
- package/dist/esm/hooks/useFindHashes.js.map +1 -0
- package/dist/esm/hooks/useHeatMapColors.d.ts +6 -0
- package/dist/esm/hooks/useHeatMapColors.js +22 -0
- package/dist/esm/hooks/useHeatMapColors.js.map +1 -0
- package/dist/esm/hooks/useQuadKeyPayloadsToFeatures.d.ts +7 -0
- package/dist/esm/hooks/useQuadKeyPayloadsToFeatures.js +37 -0
- package/dist/esm/hooks/useQuadKeyPayloadsToFeatures.js.map +1 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/XyoMapBoxBaseProps.d.ts +17 -0
- package/dist/esm/lib/XyoMapBoxBaseProps.js +2 -0
- package/dist/esm/lib/XyoMapBoxBaseProps.js.map +1 -0
- package/dist/esm/lib/XyoMapStyle.d.ts +8 -0
- package/dist/esm/lib/XyoMapStyle.js +10 -0
- package/dist/esm/lib/XyoMapStyle.js.map +1 -0
- package/dist/esm/lib/index.d.ts +2 -0
- package/dist/esm/lib/index.js +3 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/types/NetworkLocationAnswerBase.d.ts +16 -0
- package/dist/esm/types/NetworkLocationAnswerBase.js +2 -0
- package/dist/esm/types/NetworkLocationAnswerBase.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/package.json +85 -0
- package/src/AnimatedHeatMapSettings.ts +10 -0
- package/src/Colors/XyoMapColorProps.ts +19 -0
- package/src/Colors/index.ts +1 -0
- package/src/Components/AnimatedHeatMap.tsx +56 -0
- package/src/Components/AnimatedHetaMapLoaded.tsx +40 -0
- package/src/Components/FeaturesToLayersMap.ts +8 -0
- package/src/Components/HeatMapSettings.ts +9 -0
- package/src/Components/LayerAnimator.tsx +119 -0
- package/src/Components/Legend.tsx +33 -0
- package/src/Components/Legends/ColorGradient.tsx +29 -0
- package/src/Components/Legends/index.ts +1 -0
- package/src/Components/MapBox.tsx +66 -0
- package/src/Components/MapBoxHeat.tsx +16 -0
- package/src/Components/MapBoxPoints.tsx +72 -0
- package/src/Components/MapSettingsComponents/Setting.tsx +27 -0
- package/src/Components/MapSettingsComponents/Settings.tsx +25 -0
- package/src/Components/MapSettingsComponents/index.tsx +2 -0
- package/src/Components/index.ts +11 -0
- package/src/Contexts/HeatMapInitializer/Context.ts +7 -0
- package/src/Contexts/HeatMapInitializer/Provider.tsx +85 -0
- package/src/Contexts/HeatMapInitializer/State.ts +7 -0
- package/src/Contexts/HeatMapInitializer/index.ts +2 -0
- package/src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx +13 -0
- package/src/Contexts/MapBoxInstance/Context.ts +7 -0
- package/src/Contexts/MapBoxInstance/Provider.tsx +23 -0
- package/src/Contexts/MapBoxInstance/State.ts +8 -0
- package/src/Contexts/MapBoxInstance/index.ts +2 -0
- package/src/Contexts/MapBoxInstance/useMapBoxInstance.tsx +13 -0
- package/src/Contexts/MapSettings/Context.ts +7 -0
- package/src/Contexts/MapSettings/Provider.tsx +33 -0
- package/src/Contexts/MapSettings/State.ts +8 -0
- package/src/Contexts/MapSettings/index.ts +2 -0
- package/src/Contexts/MapSettings/useMapSettings.tsx +13 -0
- package/src/Contexts/MapboxAccessToken/Context.ts +5 -0
- package/src/Contexts/MapboxAccessToken/Provider.tsx +14 -0
- package/src/Contexts/MapboxAccessToken/State.ts +7 -0
- package/src/Contexts/MapboxAccessToken/index.ts +4 -0
- package/src/Contexts/MapboxAccessToken/use.ts +7 -0
- package/src/Contexts/index.ts +4 -0
- package/src/Layers/Builders/LocationHeatMapLayerBuilder.ts +27 -0
- package/src/Layers/Builders/LocationHeatMapLayerBuilderAnimated.ts +21 -0
- package/src/Layers/Builders/LocationPointsMapLayerBuilder.ts +17 -0
- package/src/Layers/Builders/index.ts +3 -0
- package/src/Layers/CircleLayer.ts +29 -0
- package/src/Layers/Configs/HeatMapFillLayerConfig.ts +8 -0
- package/src/Layers/Configs/HeatMapLineLayerConfig.ts +13 -0
- package/src/Layers/Configs/HeatMapSymbolLayerConfig.ts +13 -0
- package/src/Layers/Configs/LocationPointLayerConfig.ts +11 -0
- package/src/Layers/Configs/index.ts +4 -0
- package/src/Layers/FillLayer.ts +23 -0
- package/src/Layers/LineLayer.ts +24 -0
- package/src/Layers/SymbolLayer.ts +23 -0
- package/src/Layers/XyoMapLayer.ts +7 -0
- package/src/Layers/index.ts +7 -0
- package/src/MapBoxClasses/XyoMapBase.ts +44 -0
- package/src/MapBoxClasses/XyoMapHeat.ts +164 -0
- package/src/MapBoxClasses/XyoMapPoints.ts +37 -0
- package/src/MapBoxClasses/XyoMapSettings.ts +130 -0
- package/src/MapBoxClasses/index.ts +4 -0
- package/src/Settings/DefaultMapSettings.ts +43 -0
- package/src/Settings/MapSetting.ts +11 -0
- package/src/Settings/index.ts +2 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/useDynamicPositioning.tsx +69 -0
- package/src/hooks/useFetchPayloads.tsx +57 -0
- package/src/hooks/useFindHashes.tsx +16 -0
- package/src/hooks/useHeatMapColors.tsx +28 -0
- package/src/hooks/useQuadKeyPayloadsToFeatures.tsx +48 -0
- package/src/index.ts +9 -0
- package/src/lib/XyoMapBoxBaseProps.ts +19 -0
- package/src/lib/XyoMapStyle.ts +8 -0
- package/src/lib/index.ts +2 -0
- package/src/types/NetworkLocationAnswerBase.ts +10 -0
- package/src/types/index.ts +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useNetwork } from '@xyo-network/react-network';
|
|
2
|
+
const parseStaticAnswerHash = () => {
|
|
3
|
+
return 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5';
|
|
4
|
+
};
|
|
5
|
+
const useFindHashes = () => {
|
|
6
|
+
const { network } = useNetwork();
|
|
7
|
+
const exploreMapHashes = network?.nodes?.find((node) => node.type === 'archivist')?.explorerMapHashes;
|
|
8
|
+
const animatedAnswerHashes = exploreMapHashes?.animatedAnswerHashes || [];
|
|
9
|
+
const staticAnswerHash = exploreMapHashes?.staticAnswerHash || parseStaticAnswerHash();
|
|
10
|
+
return [staticAnswerHash, ...animatedAnswerHashes];
|
|
11
|
+
};
|
|
12
|
+
export { useFindHashes };
|
|
13
|
+
//# sourceMappingURL=useFindHashes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFindHashes.js","sourceRoot":"","sources":["../../../src/hooks/useFindHashes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,4BAA4B,CAAA;AAE3E,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACjC,OAAO,kEAAkE,CAAA;AAC3E,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,gBAAgB,GAAI,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAwB,EAAE,iBAAiB,CAAA;IAC7H,MAAM,oBAAoB,GAAG,gBAAgB,EAAE,oBAAoB,IAAI,EAAE,CAAA;IACzE,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,CAAA;IAEtF,OAAO,CAAC,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useTheme } from '@mui/material';
|
|
2
|
+
const useHeatMapColors = () => {
|
|
3
|
+
const theme = useTheme();
|
|
4
|
+
const staticMapColor = '#FFFF75';
|
|
5
|
+
const highUsageColor = '#FF0000';
|
|
6
|
+
const heatMapColorProps = {
|
|
7
|
+
highUsageColor,
|
|
8
|
+
lowUsageColor: '#FFB3B3',
|
|
9
|
+
staticMapColor,
|
|
10
|
+
};
|
|
11
|
+
const legendProps = {
|
|
12
|
+
endColor: highUsageColor,
|
|
13
|
+
endLabel: 'High',
|
|
14
|
+
heading: 'Network Usage',
|
|
15
|
+
startColor: staticMapColor,
|
|
16
|
+
startLabel: 'Low',
|
|
17
|
+
textColor: theme.palette.common.white,
|
|
18
|
+
};
|
|
19
|
+
return { heatMapColorProps, legendProps };
|
|
20
|
+
};
|
|
21
|
+
export { useHeatMapColors };
|
|
22
|
+
//# sourceMappingURL=useHeatMapColors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHeatMapColors.js","sourceRoot":"","sources":["../../../src/hooks/useHeatMapColors.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIxC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,cAAc,GAAG,SAAS,CAAA;IAChC,MAAM,cAAc,GAAG,SAAS,CAAA;IAEhC,MAAM,iBAAiB,GAAiC;QACtD,cAAc;QACd,aAAa,EAAE,SAAS;QACxB,cAAc;KACf,CAAA;IAED,MAAM,WAAW,GAA6B;QAC5C,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,cAAc;QAC1B,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;KACtC,CAAA;IAED,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAA;AAC3C,CAAC,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Feature, Geometry } from 'geojson';
|
|
2
|
+
import { NetworkXyoLocationHeatmapQuadkeyAnswerPayload } from '../types';
|
|
3
|
+
declare const useQuadKeyPayloadsToFeatures: (payloads?: NetworkXyoLocationHeatmapQuadkeyAnswerPayload[] | NetworkXyoLocationHeatmapQuadkeyAnswerPayload) => {
|
|
4
|
+
features: Feature<Geometry, import("geojson").GeoJsonProperties>[];
|
|
5
|
+
multipleFeatureSets: Feature<Geometry, import("geojson").GeoJsonProperties>[][];
|
|
6
|
+
};
|
|
7
|
+
export { useQuadKeyPayloadsToFeatures };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { GeoJson } from '@xyo-network/sdk-geo';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
const quadKeyToFeature = ({ quadkey, density }) => {
|
|
4
|
+
const polygonFeature = new GeoJson(quadkey).polygonFeature();
|
|
5
|
+
polygonFeature.properties = {
|
|
6
|
+
count: density,
|
|
7
|
+
density,
|
|
8
|
+
};
|
|
9
|
+
return polygonFeature;
|
|
10
|
+
};
|
|
11
|
+
const setDensity = (feature) => {
|
|
12
|
+
if (feature.properties) {
|
|
13
|
+
feature.properties.value = feature.properties.density / 5;
|
|
14
|
+
}
|
|
15
|
+
return feature;
|
|
16
|
+
};
|
|
17
|
+
const useQuadKeyPayloadsToFeatures = (payloads) => {
|
|
18
|
+
const [multipleFeatureSets, setMultipleFeatureSets] = useState([[]]);
|
|
19
|
+
const [features, setFeatures] = useState([]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
// Convert Multiple Payloads from Quadkey to GeoJson
|
|
22
|
+
if (Array.isArray(payloads)) {
|
|
23
|
+
const payloadsArray = payloads;
|
|
24
|
+
const mappedFeatures = payloadsArray?.map((payload) => payload.result.map(quadKeyToFeature));
|
|
25
|
+
setMultipleFeatureSets(mappedFeatures.map((features) => features.map(setDensity)));
|
|
26
|
+
}
|
|
27
|
+
// Convert Single Payload from Quadkey to GeoJson
|
|
28
|
+
if (payloads && payloads.result) {
|
|
29
|
+
const singlePayload = payloads;
|
|
30
|
+
const mappedFeatures = singlePayload.result.map(quadKeyToFeature);
|
|
31
|
+
setFeatures(mappedFeatures.map(setDensity));
|
|
32
|
+
}
|
|
33
|
+
}, [payloads]);
|
|
34
|
+
return { features, multipleFeatureSets };
|
|
35
|
+
};
|
|
36
|
+
export { useQuadKeyPayloadsToFeatures };
|
|
37
|
+
//# sourceMappingURL=useQuadKeyPayloadsToFeatures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useQuadKeyPayloadsToFeatures.js","sourceRoot":"","sources":["../../../src/hooks/useQuadKeyPayloadsToFeatures.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAI3C,MAAM,gBAAgB,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAwC,EAAE,EAAE;IACtF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAA;IAC5D,cAAc,CAAC,UAAU,GAAG;QAC1B,KAAK,EAAE,OAAO;QACd,OAAO;KACR,CAAA;IACD,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;IACtC,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAA;KAC1D;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,4BAA4B,GAAG,CAAC,QAA0G,EAAE,EAAE;IAClJ,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAwB,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAA;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,oDAAoD;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,aAAa,GAAG,QAA2D,CAAA;YACjF,MAAM,cAAc,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;YAE5F,sBAAsB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACnF;QAED,iDAAiD;QACjD,IAAI,QAAQ,IAAK,QAA0D,CAAC,MAAM,EAAE;YAClF,MAAM,aAAa,GAAG,QAAyD,CAAA;YAC/E,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAEjE,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;SAC5C;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAA;AAC1C,CAAC,CAAA;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './AnimatedHeatMapSettings';
|
|
2
|
+
export * from './Colors';
|
|
3
|
+
export * from './Components';
|
|
4
|
+
export * from './Contexts';
|
|
5
|
+
export * from './hooks';
|
|
6
|
+
export * from './Layers';
|
|
7
|
+
export * from './MapBoxClasses';
|
|
8
|
+
export * from './Settings';
|
|
9
|
+
export * from './types';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './AnimatedHeatMapSettings';
|
|
2
|
+
export * from './Colors';
|
|
3
|
+
export * from './Components';
|
|
4
|
+
export * from './Contexts';
|
|
5
|
+
export * from './hooks';
|
|
6
|
+
export * from './Layers';
|
|
7
|
+
export * from './MapBoxClasses';
|
|
8
|
+
export * from './Settings';
|
|
9
|
+
export * from './types';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FlexBoxProps } from '@xylabs/react-flexbox';
|
|
2
|
+
import { Feature } from 'geojson';
|
|
3
|
+
import { MapboxOptions } from 'mapbox-gl';
|
|
4
|
+
import { ReactNode } from 'react';
|
|
5
|
+
import { XyoMapLayer } from '../Layers';
|
|
6
|
+
export interface XyoMapBoxBaseProps extends FlexBoxProps {
|
|
7
|
+
disableControls?: boolean;
|
|
8
|
+
disableFitToPoints?: boolean;
|
|
9
|
+
features?: Feature[];
|
|
10
|
+
layers?: XyoMapLayer[];
|
|
11
|
+
mapBoxOptions?: Partial<MapboxOptions>;
|
|
12
|
+
fitToPointsPadding?: number;
|
|
13
|
+
requestLocation?: boolean;
|
|
14
|
+
zoom?: number;
|
|
15
|
+
legend?: ReactNode;
|
|
16
|
+
accessToken: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XyoMapBoxBaseProps.js","sourceRoot":"","sources":["../../../src/lib/XyoMapBoxBaseProps.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var XyoMapStyle;
|
|
2
|
+
(function (XyoMapStyle) {
|
|
3
|
+
XyoMapStyle["Dark"] = "mapbox/dark-v10";
|
|
4
|
+
XyoMapStyle["Light"] = "mapbox/light-v10";
|
|
5
|
+
XyoMapStyle["Outdoors"] = "mapbox/outdoors-v11";
|
|
6
|
+
XyoMapStyle["Satellite"] = "mapbox/satellite-v9";
|
|
7
|
+
XyoMapStyle["SatelliteStreets"] = "mapbox/satellite-streets-v11";
|
|
8
|
+
XyoMapStyle["Streets"] = "mapbox/streets-v11";
|
|
9
|
+
})(XyoMapStyle || (XyoMapStyle = {}));
|
|
10
|
+
//# sourceMappingURL=XyoMapStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XyoMapStyle.js","sourceRoot":"","sources":["../../../src/lib/XyoMapStyle.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,uCAAwB,CAAA;IACxB,yCAA0B,CAAA;IAC1B,+CAAgC,CAAA;IAChC,gDAAiC,CAAA;IACjC,gEAAiD,CAAA;IACjD,6CAA8B,CAAA;AAChC,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
2
|
+
import { Feature, Point, Polygon } from 'geojson';
|
|
3
|
+
interface NetworkLocationAnswerBase<T> extends XyoPayload {
|
|
4
|
+
result: T;
|
|
5
|
+
}
|
|
6
|
+
export declare type NetworkXyoLocationAnswerPayload = NetworkLocationAnswerBase<{
|
|
7
|
+
features: Feature<Point>[];
|
|
8
|
+
}>;
|
|
9
|
+
export declare type NetworkXyoLocationHeatmapAnswerPayload = NetworkLocationAnswerBase<{
|
|
10
|
+
features: Feature<Polygon>[];
|
|
11
|
+
}>;
|
|
12
|
+
export declare type NetworkXyoLocationHeatmapQuadkeyAnswerPayload = NetworkLocationAnswerBase<{
|
|
13
|
+
quadkey: string;
|
|
14
|
+
density: number;
|
|
15
|
+
}[]>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkLocationAnswerBase.js","sourceRoot":"","sources":["../../../src/types/NetworkLocationAnswerBase.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './NetworkLocationAnswerBase';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/react-map",
|
|
3
|
+
"author": {
|
|
4
|
+
"email": "support@xyo.network",
|
|
5
|
+
"name": "XYO Development Team",
|
|
6
|
+
"url": "https://xyo.network"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@xyo.network",
|
|
10
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@emotion/react": "^11.9.3",
|
|
14
|
+
"@emotion/styled": "^11.9.3",
|
|
15
|
+
"@mui/icons-material": "^5.8.4",
|
|
16
|
+
"@mui/material": "^5.9.2",
|
|
17
|
+
"@xylabs/react-flexbox": "^2.14.10",
|
|
18
|
+
"@xylabs/react-link": "^2.14.10",
|
|
19
|
+
"@xylabs/sdk-js": "^2.6.2",
|
|
20
|
+
"@xyo-network/react-archive": "^2.26.44",
|
|
21
|
+
"@xyo-network/react-archivist-api": "^2.26.44",
|
|
22
|
+
"@xyo-network/sdk-geo": "^2.6.18",
|
|
23
|
+
"mapbox-gl": "^2.9.2",
|
|
24
|
+
"react": "^18.2.0",
|
|
25
|
+
"react-dom": "^18.2.0",
|
|
26
|
+
"react-icons": "^4.4.0"
|
|
27
|
+
},
|
|
28
|
+
"description": "Common React library for all XYO projects that use React",
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@storybook/react": "^6.5.9",
|
|
31
|
+
"@types/mapbox-gl": "^2.7.4",
|
|
32
|
+
"@xylabs/sdk-js": "^2.6.2",
|
|
33
|
+
"@xylabs/tsconfig-dom": "^2.5.5"
|
|
34
|
+
},
|
|
35
|
+
"browser": "dist/esm/index.js",
|
|
36
|
+
"docs": "dist/docs.json",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"node": {
|
|
40
|
+
"import": "./dist/esm/index.js",
|
|
41
|
+
"require": "./dist/cjs/index.js"
|
|
42
|
+
},
|
|
43
|
+
"browser": {
|
|
44
|
+
"import": "./dist/esm/index.js",
|
|
45
|
+
"require": "./dist/cjs/index.js"
|
|
46
|
+
},
|
|
47
|
+
"default": "./dist/esm/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./dist/docs.json": {
|
|
50
|
+
"default": "./dist/docs.json"
|
|
51
|
+
},
|
|
52
|
+
"./package.json": "./package.json"
|
|
53
|
+
},
|
|
54
|
+
"main": "dist/cjs/index.js",
|
|
55
|
+
"module": "dist/esm/index.js",
|
|
56
|
+
"homepage": "https://xyo.network",
|
|
57
|
+
"keywords": [
|
|
58
|
+
"xyo",
|
|
59
|
+
"utility",
|
|
60
|
+
"typescript",
|
|
61
|
+
"react"
|
|
62
|
+
],
|
|
63
|
+
"license": "LGPL-3.0",
|
|
64
|
+
"resolutions": {
|
|
65
|
+
"@storybook/react/webpack": "^5",
|
|
66
|
+
"bn.js": "^5.2.0",
|
|
67
|
+
"react": "^18.2.0",
|
|
68
|
+
"react-dom": "^18.2.0",
|
|
69
|
+
"webpack": "^5"
|
|
70
|
+
},
|
|
71
|
+
"publishConfig": {
|
|
72
|
+
"access": "public"
|
|
73
|
+
},
|
|
74
|
+
"repository": {
|
|
75
|
+
"type": "git",
|
|
76
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
|
|
77
|
+
},
|
|
78
|
+
"scripts": {
|
|
79
|
+
"lint-pkg": "npmPkgJsonLint .",
|
|
80
|
+
"license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
|
|
81
|
+
},
|
|
82
|
+
"sideEffects": false,
|
|
83
|
+
"types": "dist/esm/index.d.ts",
|
|
84
|
+
"version": "2.26.44"
|
|
85
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DefaultMapSettings } from './Settings'
|
|
2
|
+
|
|
3
|
+
const AnimatedHeatMapSettings = DefaultMapSettings()
|
|
4
|
+
const { debugLayer, scrollToZoom, fitToPoints, preferDark } = AnimatedHeatMapSettings
|
|
5
|
+
debugLayer.hidden = false
|
|
6
|
+
scrollToZoom.value = true
|
|
7
|
+
fitToPoints.value = false
|
|
8
|
+
preferDark.value = true
|
|
9
|
+
|
|
10
|
+
export { AnimatedHeatMapSettings }
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface XyoHeatMapColorProps {
|
|
2
|
+
staticMapColor: string
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export interface XyoAnimatedHeatMapColorProps extends XyoHeatMapColorProps {
|
|
6
|
+
lowUsageColor: string
|
|
7
|
+
highUsageColor: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface ColorGradientLegendProps {
|
|
11
|
+
startColor: string
|
|
12
|
+
endColor: string
|
|
13
|
+
heading: string
|
|
14
|
+
startLabel: string
|
|
15
|
+
endLabel: string
|
|
16
|
+
textColor: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type LegendProps = ColorGradientLegendProps
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './XyoMapColorProps'
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { darken, useTheme } from '@mui/material'
|
|
2
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
|
3
|
+
import { WithChildren } from '@xylabs/react-shared'
|
|
4
|
+
import { Feature, Polygon } from 'geojson'
|
|
5
|
+
import { useState } from 'react'
|
|
6
|
+
|
|
7
|
+
import { XyoAnimatedHeatMapColorProps } from '../Colors'
|
|
8
|
+
import { HeatMapInitializerProvider, MapBoxInstanceProvider, MapSettingsProvider } from '../Contexts'
|
|
9
|
+
import { LocationHeatMapLayerBuilderAnimated, MapHeatConstants, XyoMapLayer } from '../Layers'
|
|
10
|
+
import { MapSetting } from '../Settings'
|
|
11
|
+
import { MapBoxHeat } from './MapBoxHeat'
|
|
12
|
+
|
|
13
|
+
interface AnimatedHeatMapProps {
|
|
14
|
+
animatedFeatureSets: Feature<Polygon>[][]
|
|
15
|
+
staticFeatureSet: Feature<Polygon>[]
|
|
16
|
+
defaultMapSettings?: MapSetting
|
|
17
|
+
heatMapColorProps: XyoAnimatedHeatMapColorProps
|
|
18
|
+
accessToken: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const AnimatedHeatMap: React.FC<WithChildren<AnimatedHeatMapProps>> = ({
|
|
22
|
+
accessToken,
|
|
23
|
+
animatedFeatureSets,
|
|
24
|
+
defaultMapSettings,
|
|
25
|
+
staticFeatureSet,
|
|
26
|
+
heatMapColorProps,
|
|
27
|
+
...props
|
|
28
|
+
}) => {
|
|
29
|
+
const theme = useTheme()
|
|
30
|
+
const { staticMapColor, lowUsageColor, highUsageColor } = heatMapColorProps || {}
|
|
31
|
+
const localStaticMapColor = staticMapColor ?? theme.palette.primary.light
|
|
32
|
+
|
|
33
|
+
const [layers] = useState<XyoMapLayer[]>([
|
|
34
|
+
LocationHeatMapLayerBuilderAnimated(localStaticMapColor, 0, 'static'),
|
|
35
|
+
LocationHeatMapLayerBuilderAnimated(lowUsageColor || localStaticMapColor, 0, 'animated'),
|
|
36
|
+
LocationHeatMapLayerBuilderAnimated(highUsageColor || darken(localStaticMapColor, 0.9), 1, 'animated'),
|
|
37
|
+
])
|
|
38
|
+
|
|
39
|
+
return animatedFeatureSets?.length ? (
|
|
40
|
+
<MapBoxInstanceProvider>
|
|
41
|
+
<MapSettingsProvider defaultMapSettings={defaultMapSettings} debugLayerName={MapHeatConstants.LocationDebugLayerId}>
|
|
42
|
+
<HeatMapInitializerProvider
|
|
43
|
+
features={staticFeatureSet}
|
|
44
|
+
layers={[layers[0]]}
|
|
45
|
+
featureSets={animatedFeatureSets}
|
|
46
|
+
featureSetsLayers={layers.slice(1, 3)}
|
|
47
|
+
heatMapColorProps={heatMapColorProps}
|
|
48
|
+
>
|
|
49
|
+
<MapBoxHeat accessToken={accessToken} {...props}></MapBoxHeat>
|
|
50
|
+
</HeatMapInitializerProvider>
|
|
51
|
+
</MapSettingsProvider>
|
|
52
|
+
</MapBoxInstanceProvider>
|
|
53
|
+
) : (
|
|
54
|
+
<FlexCol flexGrow={1} busy />
|
|
55
|
+
)
|
|
56
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Alert } from '@mui/material'
|
|
2
|
+
import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
|
|
3
|
+
import { Feature, Polygon } from 'geojson'
|
|
4
|
+
|
|
5
|
+
import { AnimatedHeatMapSettings } from '../AnimatedHeatMapSettings'
|
|
6
|
+
import { useFetchPayloads, useFindHashes, useHeatMapColors } from '../hooks'
|
|
7
|
+
import { AnimatedHeatMap } from './AnimatedHeatMap'
|
|
8
|
+
import { AnimatedHeatMapLegend } from './Legend'
|
|
9
|
+
|
|
10
|
+
export interface AnimatedHeatMapLoadedProps extends FlexBoxProps {
|
|
11
|
+
accessToken: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const AnimatedHeatMapLoaded: React.FC<AnimatedHeatMapLoadedProps> = ({ accessToken, ...props }) => {
|
|
15
|
+
const hashes = useFindHashes()
|
|
16
|
+
const { multipleFeatureSets } = useFetchPayloads(hashes)
|
|
17
|
+
const { heatMapColorProps, legendProps } = useHeatMapColors()
|
|
18
|
+
|
|
19
|
+
const MapBoxHeatProps = {
|
|
20
|
+
flexGrow: 1,
|
|
21
|
+
legend: legendProps ? <AnimatedHeatMapLegend {...legendProps} /> : null,
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<FlexCol alignItems="stretch" {...props}>
|
|
26
|
+
{hashes !== undefined ? (
|
|
27
|
+
<AnimatedHeatMap
|
|
28
|
+
accessToken={accessToken}
|
|
29
|
+
defaultMapSettings={AnimatedHeatMapSettings}
|
|
30
|
+
animatedFeatureSets={multipleFeatureSets.slice(1, multipleFeatureSets.length) as Feature<Polygon>[][]}
|
|
31
|
+
staticFeatureSet={multipleFeatureSets[0] as Feature<Polygon>[]}
|
|
32
|
+
heatMapColorProps={heatMapColorProps}
|
|
33
|
+
{...MapBoxHeatProps}
|
|
34
|
+
/>
|
|
35
|
+
) : (
|
|
36
|
+
<Alert>Missing answer hash for heat map query</Alert>
|
|
37
|
+
)}
|
|
38
|
+
</FlexCol>
|
|
39
|
+
)
|
|
40
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DefaultMapSettings } from '../Settings'
|
|
2
|
+
|
|
3
|
+
const HeatMapSettings = DefaultMapSettings()
|
|
4
|
+
const { debugLayer, scrollToZoom, fitToPoints } = HeatMapSettings
|
|
5
|
+
debugLayer.hidden = false
|
|
6
|
+
scrollToZoom.value = true
|
|
7
|
+
fitToPoints.value = true
|
|
8
|
+
|
|
9
|
+
export { HeatMapSettings }
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { useInterval, WithChildren } from '@xylabs/react-shared'
|
|
2
|
+
import { Map } from 'mapbox-gl'
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from 'react'
|
|
4
|
+
|
|
5
|
+
import { XyoMapLayer } from '../Layers'
|
|
6
|
+
import { XyoMapBoxBaseProps } from '../lib'
|
|
7
|
+
|
|
8
|
+
interface LayerAnimatorProps {
|
|
9
|
+
map: Map | undefined
|
|
10
|
+
animateLayers?: boolean
|
|
11
|
+
layersInitialized: boolean
|
|
12
|
+
layers: XyoMapBoxBaseProps['layers']
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const timeIncrement = 2000
|
|
16
|
+
const animatedLayerCount = 3
|
|
17
|
+
|
|
18
|
+
const LayerAnimator: React.FC<WithChildren<LayerAnimatorProps>> = ({ children, animateLayers, layersInitialized, layers, map }) => {
|
|
19
|
+
const [fillLayers, setFillLayers] = useState<XyoMapLayer[]>([])
|
|
20
|
+
const layerIndexQueue = useRef<number[]>([])
|
|
21
|
+
|
|
22
|
+
const incrementQueue = useCallback(
|
|
23
|
+
(index: number) => {
|
|
24
|
+
if (fillLayers[index]) {
|
|
25
|
+
layerIndexQueue.current.push(index)
|
|
26
|
+
} else {
|
|
27
|
+
layerIndexQueue.current.push(0)
|
|
28
|
+
}
|
|
29
|
+
return layerIndexQueue.current.at(-1)
|
|
30
|
+
},
|
|
31
|
+
[fillLayers]
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
const lastQueuedIndex = useCallback(() => {
|
|
35
|
+
const last = layerIndexQueue.current.at(-1)
|
|
36
|
+
if (last === undefined) {
|
|
37
|
+
incrementQueue(0)
|
|
38
|
+
return 0
|
|
39
|
+
} else {
|
|
40
|
+
return last
|
|
41
|
+
}
|
|
42
|
+
}, [incrementQueue])
|
|
43
|
+
|
|
44
|
+
const unshiftQueue = useCallback(() => {
|
|
45
|
+
layerIndexQueue.current.shift()
|
|
46
|
+
}, [])
|
|
47
|
+
|
|
48
|
+
const getNextLayer = useCallback(() => {
|
|
49
|
+
const nextLayer = fillLayers[lastQueuedIndex()]
|
|
50
|
+
incrementQueue(lastQueuedIndex() + 1)
|
|
51
|
+
return nextLayer
|
|
52
|
+
}, [fillLayers, incrementQueue, lastQueuedIndex])
|
|
53
|
+
|
|
54
|
+
const layerAnimateWorker = useCallback(
|
|
55
|
+
(layer: XyoMapLayer) => {
|
|
56
|
+
if (layer) {
|
|
57
|
+
map?.setPaintProperty(layer.id, 'fill-opacity', 0.85)
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
map?.setPaintProperty(layer.id, 'fill-opacity', 0)
|
|
60
|
+
unshiftQueue()
|
|
61
|
+
}, timeIncrement * 2)
|
|
62
|
+
} else {
|
|
63
|
+
console.warn('tried to queue an empty layer')
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
[map, unshiftQueue]
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (layers?.length && map && layersInitialized) {
|
|
71
|
+
// Only animate fill layers for now
|
|
72
|
+
setFillLayers(
|
|
73
|
+
layers.filter((layer) => {
|
|
74
|
+
const fillLayer = layer.id.startsWith('location-fill')
|
|
75
|
+
if (fillLayer) {
|
|
76
|
+
map.setPaintProperty(layer.id, 'fill-opacity-transition', { delay: 0, duration: 4000 })
|
|
77
|
+
}
|
|
78
|
+
return fillLayer
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
}, [layers, layersInitialized, map])
|
|
83
|
+
|
|
84
|
+
//
|
|
85
|
+
const queueLayerAnimation = useCallback(() => {
|
|
86
|
+
const animatedLayers: XyoMapLayer[] = []
|
|
87
|
+
|
|
88
|
+
for (let i = 0; i < animatedLayerCount; i++) {
|
|
89
|
+
animatedLayers.push(getNextLayer())
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
animatedLayers.forEach((layer, index) => {
|
|
93
|
+
if (index === 0) {
|
|
94
|
+
layerAnimateWorker(layer)
|
|
95
|
+
} else {
|
|
96
|
+
setTimeout(() => {
|
|
97
|
+
layerAnimateWorker(layer)
|
|
98
|
+
}, timeIncrement * index)
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
}, [getNextLayer, layerAnimateWorker])
|
|
102
|
+
|
|
103
|
+
// Run a single layer animation before the interval kicks in
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (animateLayers && layersInitialized && map && fillLayers.length) {
|
|
106
|
+
queueLayerAnimation()
|
|
107
|
+
}
|
|
108
|
+
}, [animateLayers, fillLayers.length, layersInitialized, map, queueLayerAnimation])
|
|
109
|
+
|
|
110
|
+
useInterval(() => {
|
|
111
|
+
if (animateLayers && layersInitialized && map && fillLayers.length) {
|
|
112
|
+
queueLayerAnimation()
|
|
113
|
+
}
|
|
114
|
+
}, timeIncrement * animatedLayerCount)
|
|
115
|
+
|
|
116
|
+
return <>{children}</>
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export { LayerAnimator }
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useMediaQuery, useTheme } from '@mui/material'
|
|
2
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
|
3
|
+
|
|
4
|
+
import { ColorGradientLegendProps } from '../Colors'
|
|
5
|
+
import { ColorGradientLegend } from './Legends'
|
|
6
|
+
|
|
7
|
+
const AnimatedHeatMapLegend: React.FC<ColorGradientLegendProps> = ({ ...legendProps }) => {
|
|
8
|
+
const { startColor, endColor, startLabel, endLabel, heading, textColor } = legendProps
|
|
9
|
+
const theme = useTheme()
|
|
10
|
+
const isSmall = useMediaQuery(theme.breakpoints.down('sm'))
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<FlexCol position="absolute" bottom={0} right={0}>
|
|
14
|
+
<ColorGradientLegend
|
|
15
|
+
startColor={startColor}
|
|
16
|
+
endColor={endColor}
|
|
17
|
+
startLabel={startLabel}
|
|
18
|
+
endLabel={endLabel}
|
|
19
|
+
heading={heading}
|
|
20
|
+
textColor={textColor}
|
|
21
|
+
{...{
|
|
22
|
+
alignItems: 'stretch',
|
|
23
|
+
marginBottom: theme.spacing(4),
|
|
24
|
+
marginLeft: isSmall ? theme.spacing(3) : 0,
|
|
25
|
+
marginRight: isSmall ? theme.spacing(2) : theme.spacing(3),
|
|
26
|
+
width: isSmall ? '40vw' : theme.spacing(18),
|
|
27
|
+
}}
|
|
28
|
+
/>
|
|
29
|
+
</FlexCol>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { AnimatedHeatMapLegend }
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Typography, useTheme } from '@mui/material'
|
|
2
|
+
import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
|
|
3
|
+
|
|
4
|
+
import { ColorGradientLegendProps } from '../../Colors'
|
|
5
|
+
|
|
6
|
+
const ColorGradientLegend: React.FC<ColorGradientLegendProps> = ({ startColor, endColor, startLabel, endLabel, heading, textColor, ...props }) => {
|
|
7
|
+
const theme = useTheme()
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<FlexCol {...props}>
|
|
11
|
+
<Typography mb={theme.spacing(0.25)} color={textColor} variant="caption" textAlign="center">
|
|
12
|
+
{heading}
|
|
13
|
+
</Typography>
|
|
14
|
+
<FlexCol flexGrow={1} alignItems="stretch" paddingX={theme.spacing(1)} mb={theme.spacing(0.25)}>
|
|
15
|
+
<FlexCol height={theme.spacing(0.75)} border={`1px solid ${textColor}`} sx={{ backgroundImage: `linear-gradient(to right, ${startColor},${endColor})` }} />
|
|
16
|
+
</FlexCol>
|
|
17
|
+
<FlexRow flexGrow={1} justifyContent="space-between">
|
|
18
|
+
<Typography color={textColor} variant="caption">
|
|
19
|
+
{startLabel}
|
|
20
|
+
</Typography>
|
|
21
|
+
<Typography color={textColor} variant="caption">
|
|
22
|
+
{endLabel}
|
|
23
|
+
</Typography>
|
|
24
|
+
</FlexRow>
|
|
25
|
+
</FlexCol>
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { ColorGradientLegend }
|