@xyo-network/react-map 2.64.9 → 2.64.10
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/docs.json +51982 -38974
- package/package.json +15 -15
- package/dist/browser/AnimatedHeatMapSettings.cjs +0 -87
- package/dist/browser/AnimatedHeatMapSettings.cjs.map +0 -1
- package/dist/browser/AnimatedHeatMapSettings.js +0 -64
- package/dist/browser/AnimatedHeatMapSettings.js.map +0 -1
- package/dist/browser/Colors/MapColorProps.cjs +0 -19
- package/dist/browser/Colors/MapColorProps.cjs.map +0 -1
- package/dist/browser/Colors/MapColorProps.js +0 -1
- package/dist/browser/Colors/MapColorProps.js.map +0 -1
- package/dist/browser/Colors/index.cjs +0 -19
- package/dist/browser/Colors/index.cjs.map +0 -1
- package/dist/browser/Colors/index.js +0 -1
- package/dist/browser/Colors/index.js.map +0 -1
- package/dist/browser/Components/AnimatedHeatMap.cjs +0 -673
- package/dist/browser/Components/AnimatedHeatMap.cjs.map +0 -1
- package/dist/browser/Components/AnimatedHeatMap.js +0 -652
- package/dist/browser/Components/AnimatedHeatMap.js.map +0 -1
- package/dist/browser/Components/AnimatedHeatMapLoaded.cjs +0 -913
- package/dist/browser/Components/AnimatedHeatMapLoaded.cjs.map +0 -1
- package/dist/browser/Components/AnimatedHeatMapLoaded.js +0 -892
- package/dist/browser/Components/AnimatedHeatMapLoaded.js.map +0 -1
- package/dist/browser/Components/FeaturesToLayersMap.cjs +0 -19
- package/dist/browser/Components/FeaturesToLayersMap.cjs.map +0 -1
- package/dist/browser/Components/FeaturesToLayersMap.js +0 -1
- package/dist/browser/Components/FeaturesToLayersMap.js.map +0 -1
- package/dist/browser/Components/HeatMapSettings.cjs +0 -86
- package/dist/browser/Components/HeatMapSettings.cjs.map +0 -1
- package/dist/browser/Components/HeatMapSettings.js +0 -63
- package/dist/browser/Components/HeatMapSettings.js.map +0 -1
- package/dist/browser/Components/LayerAnimator.cjs +0 -116
- package/dist/browser/Components/LayerAnimator.cjs.map +0 -1
- package/dist/browser/Components/LayerAnimator.js +0 -95
- package/dist/browser/Components/LayerAnimator.js.map +0 -1
- package/dist/browser/Components/Legend.cjs +0 -77
- package/dist/browser/Components/Legend.cjs.map +0 -1
- package/dist/browser/Components/Legend.js +0 -56
- package/dist/browser/Components/Legend.js.map +0 -1
- package/dist/browser/Components/Legends/ColorGradient.cjs +0 -47
- package/dist/browser/Components/Legends/ColorGradient.cjs.map +0 -1
- package/dist/browser/Components/Legends/ColorGradient.js +0 -26
- package/dist/browser/Components/Legends/ColorGradient.js.map +0 -1
- package/dist/browser/Components/Legends/index.cjs +0 -49
- package/dist/browser/Components/Legends/index.cjs.map +0 -1
- package/dist/browser/Components/Legends/index.js +0 -26
- package/dist/browser/Components/Legends/index.js.map +0 -1
- package/dist/browser/Components/MapBox.cjs +0 -134
- package/dist/browser/Components/MapBox.cjs.map +0 -1
- package/dist/browser/Components/MapBox.js +0 -113
- package/dist/browser/Components/MapBox.js.map +0 -1
- package/dist/browser/Components/MapBoxHeat.cjs +0 -182
- package/dist/browser/Components/MapBoxHeat.cjs.map +0 -1
- package/dist/browser/Components/MapBoxHeat.js +0 -161
- package/dist/browser/Components/MapBoxHeat.js.map +0 -1
- package/dist/browser/Components/MapBoxPoints.cjs +0 -280
- package/dist/browser/Components/MapBoxPoints.cjs.map +0 -1
- package/dist/browser/Components/MapBoxPoints.js +0 -259
- package/dist/browser/Components/MapBoxPoints.js.map +0 -1
- package/dist/browser/Components/MapSettingsComponents/Setting.cjs +0 -57
- package/dist/browser/Components/MapSettingsComponents/Setting.cjs.map +0 -1
- package/dist/browser/Components/MapSettingsComponents/Setting.js +0 -36
- package/dist/browser/Components/MapSettingsComponents/Setting.js.map +0 -1
- package/dist/browser/Components/MapSettingsComponents/SettingsBox.cjs +0 -71
- package/dist/browser/Components/MapSettingsComponents/SettingsBox.cjs.map +0 -1
- package/dist/browser/Components/MapSettingsComponents/SettingsBox.js +0 -50
- package/dist/browser/Components/MapSettingsComponents/SettingsBox.js.map +0 -1
- package/dist/browser/Components/MapSettingsComponents/index.cjs +0 -74
- package/dist/browser/Components/MapSettingsComponents/index.cjs.map +0 -1
- package/dist/browser/Components/MapSettingsComponents/index.js +0 -51
- package/dist/browser/Components/MapSettingsComponents/index.js.map +0 -1
- package/dist/browser/Components/index.cjs +0 -1108
- package/dist/browser/Components/index.cjs.map +0 -1
- package/dist/browser/Components/index.js +0 -1085
- package/dist/browser/Components/index.js.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/Context.cjs +0 -28
- package/dist/browser/Contexts/HeatMapInitializer/Context.cjs.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/Context.js +0 -7
- package/dist/browser/Contexts/HeatMapInitializer/Context.js.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/Provider.cjs +0 -306
- package/dist/browser/Contexts/HeatMapInitializer/Provider.cjs.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/Provider.js +0 -285
- package/dist/browser/Contexts/HeatMapInitializer/Provider.js.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/State.cjs +0 -19
- package/dist/browser/Contexts/HeatMapInitializer/State.cjs.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/State.js +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/State.js.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/index.cjs +0 -318
- package/dist/browser/Contexts/HeatMapInitializer/index.cjs.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/index.js +0 -295
- package/dist/browser/Contexts/HeatMapInitializer/index.js.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs +0 -39
- package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs.map +0 -1
- package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.js +0 -18
- package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/Context.cjs +0 -28
- package/dist/browser/Contexts/MapBoxInstance/Context.cjs.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/Context.js +0 -7
- package/dist/browser/Contexts/MapBoxInstance/Context.js.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/Provider.cjs +0 -47
- package/dist/browser/Contexts/MapBoxInstance/Provider.cjs.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/Provider.js +0 -26
- package/dist/browser/Contexts/MapBoxInstance/Provider.js.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/State.cjs +0 -19
- package/dist/browser/Contexts/MapBoxInstance/State.cjs.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/State.js +0 -1
- package/dist/browser/Contexts/MapBoxInstance/State.js.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/index.cjs +0 -59
- package/dist/browser/Contexts/MapBoxInstance/index.cjs.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/index.js +0 -36
- package/dist/browser/Contexts/MapBoxInstance/index.js.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.cjs +0 -39
- package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.cjs.map +0 -1
- package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.js +0 -18
- package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.js.map +0 -1
- package/dist/browser/Contexts/MapSettings/Context.cjs +0 -28
- package/dist/browser/Contexts/MapSettings/Context.cjs.map +0 -1
- package/dist/browser/Contexts/MapSettings/Context.js +0 -7
- package/dist/browser/Contexts/MapSettings/Context.js.map +0 -1
- package/dist/browser/Contexts/MapSettings/Provider.cjs +0 -162
- package/dist/browser/Contexts/MapSettings/Provider.cjs.map +0 -1
- package/dist/browser/Contexts/MapSettings/Provider.js +0 -141
- package/dist/browser/Contexts/MapSettings/Provider.js.map +0 -1
- package/dist/browser/Contexts/MapSettings/State.cjs +0 -19
- package/dist/browser/Contexts/MapSettings/State.cjs.map +0 -1
- package/dist/browser/Contexts/MapSettings/State.js +0 -1
- package/dist/browser/Contexts/MapSettings/State.js.map +0 -1
- package/dist/browser/Contexts/MapSettings/index.cjs +0 -172
- package/dist/browser/Contexts/MapSettings/index.cjs.map +0 -1
- package/dist/browser/Contexts/MapSettings/index.js +0 -149
- package/dist/browser/Contexts/MapSettings/index.js.map +0 -1
- package/dist/browser/Contexts/MapSettings/useMapSettings.cjs +0 -37
- package/dist/browser/Contexts/MapSettings/useMapSettings.cjs.map +0 -1
- package/dist/browser/Contexts/MapSettings/useMapSettings.js +0 -16
- package/dist/browser/Contexts/MapSettings/useMapSettings.js.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/Context.cjs +0 -28
- package/dist/browser/Contexts/MapboxAccessToken/Context.cjs.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/Context.js +0 -7
- package/dist/browser/Contexts/MapboxAccessToken/Context.js.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/Provider.cjs +0 -38
- package/dist/browser/Contexts/MapboxAccessToken/Provider.cjs.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/Provider.js +0 -17
- package/dist/browser/Contexts/MapboxAccessToken/Provider.js.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/State.cjs +0 -19
- package/dist/browser/Contexts/MapboxAccessToken/State.cjs.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/State.js +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/State.js.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/index.cjs +0 -46
- package/dist/browser/Contexts/MapboxAccessToken/index.cjs.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/index.js +0 -23
- package/dist/browser/Contexts/MapboxAccessToken/index.js.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/use.cjs +0 -36
- package/dist/browser/Contexts/MapboxAccessToken/use.cjs.map +0 -1
- package/dist/browser/Contexts/MapboxAccessToken/use.js +0 -15
- package/dist/browser/Contexts/MapboxAccessToken/use.js.map +0 -1
- package/dist/browser/Contexts/index.cjs +0 -483
- package/dist/browser/Contexts/index.cjs.map +0 -1
- package/dist/browser/Contexts/index.js +0 -460
- package/dist/browser/Contexts/index.js.map +0 -1
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.cjs +0 -161
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.cjs.map +0 -1
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.js +0 -138
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.js.map +0 -1
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs +0 -75
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs.map +0 -1
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +0 -52
- package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +0 -1
- package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.cjs +0 -76
- package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.cjs.map +0 -1
- package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.js +0 -53
- package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.js.map +0 -1
- package/dist/browser/Layers/Builders/index.cjs +0 -229
- package/dist/browser/Layers/Builders/index.cjs.map +0 -1
- package/dist/browser/Layers/Builders/index.js +0 -206
- package/dist/browser/Layers/Builders/index.js.map +0 -1
- package/dist/browser/Layers/CircleLayer.cjs +0 -50
- package/dist/browser/Layers/CircleLayer.cjs.map +0 -1
- package/dist/browser/Layers/CircleLayer.js +0 -29
- package/dist/browser/Layers/CircleLayer.js.map +0 -1
- package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.cjs +0 -37
- package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.cjs.map +0 -1
- package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.js +0 -16
- package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.js.map +0 -1
- package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.cjs +0 -37
- package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.cjs.map +0 -1
- package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.js +0 -16
- package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.js.map +0 -1
- package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.cjs +0 -44
- package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.cjs.map +0 -1
- package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.js +0 -23
- package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.js.map +0 -1
- package/dist/browser/Layers/Configs/LocationPointLayerConfig.cjs +0 -35
- package/dist/browser/Layers/Configs/LocationPointLayerConfig.cjs.map +0 -1
- package/dist/browser/Layers/Configs/LocationPointLayerConfig.js +0 -14
- package/dist/browser/Layers/Configs/LocationPointLayerConfig.js.map +0 -1
- package/dist/browser/Layers/Configs/index.cjs +0 -86
- package/dist/browser/Layers/Configs/index.cjs.map +0 -1
- package/dist/browser/Layers/Configs/index.js +0 -63
- package/dist/browser/Layers/Configs/index.js.map +0 -1
- package/dist/browser/Layers/FillLayer.cjs +0 -44
- package/dist/browser/Layers/FillLayer.cjs.map +0 -1
- package/dist/browser/Layers/FillLayer.js +0 -23
- package/dist/browser/Layers/FillLayer.js.map +0 -1
- package/dist/browser/Layers/LineLayer.cjs +0 -45
- package/dist/browser/Layers/LineLayer.cjs.map +0 -1
- package/dist/browser/Layers/LineLayer.js +0 -24
- package/dist/browser/Layers/LineLayer.js.map +0 -1
- package/dist/browser/Layers/MapLayer.cjs +0 -19
- package/dist/browser/Layers/MapLayer.cjs.map +0 -1
- package/dist/browser/Layers/MapLayer.js +0 -1
- package/dist/browser/Layers/MapLayer.js.map +0 -1
- package/dist/browser/Layers/SymbolLayer.cjs +0 -44
- package/dist/browser/Layers/SymbolLayer.cjs.map +0 -1
- package/dist/browser/Layers/SymbolLayer.js +0 -23
- package/dist/browser/Layers/SymbolLayer.js.map +0 -1
- package/dist/browser/Layers/index.cjs +0 -237
- package/dist/browser/Layers/index.cjs.map +0 -1
- package/dist/browser/Layers/index.js +0 -214
- package/dist/browser/Layers/index.js.map +0 -1
- package/dist/browser/MapBoxClasses/MapBase.cjs +0 -52
- package/dist/browser/MapBoxClasses/MapBase.cjs.map +0 -1
- package/dist/browser/MapBoxClasses/MapBase.js +0 -31
- package/dist/browser/MapBoxClasses/MapBase.js.map +0 -1
- package/dist/browser/MapBoxClasses/MapHeat.cjs +0 -190
- package/dist/browser/MapBoxClasses/MapHeat.cjs.map +0 -1
- package/dist/browser/MapBoxClasses/MapHeat.js +0 -169
- package/dist/browser/MapBoxClasses/MapHeat.js.map +0 -1
- package/dist/browser/MapBoxClasses/MapPoints.cjs +0 -78
- package/dist/browser/MapBoxClasses/MapPoints.cjs.map +0 -1
- package/dist/browser/MapBoxClasses/MapPoints.js +0 -57
- package/dist/browser/MapBoxClasses/MapPoints.js.map +0 -1
- package/dist/browser/MapBoxClasses/MapSettings.cjs +0 -119
- package/dist/browser/MapBoxClasses/MapSettings.cjs.map +0 -1
- package/dist/browser/MapBoxClasses/MapSettings.js +0 -98
- package/dist/browser/MapBoxClasses/MapSettings.js.map +0 -1
- package/dist/browser/MapBoxClasses/index.cjs +0 -312
- package/dist/browser/MapBoxClasses/index.cjs.map +0 -1
- package/dist/browser/MapBoxClasses/index.js +0 -289
- package/dist/browser/MapBoxClasses/index.js.map +0 -1
- package/dist/browser/Settings/DefaultMapSettings.cjs +0 -77
- package/dist/browser/Settings/DefaultMapSettings.cjs.map +0 -1
- package/dist/browser/Settings/DefaultMapSettings.js +0 -56
- package/dist/browser/Settings/DefaultMapSettings.js.map +0 -1
- package/dist/browser/Settings/MapSetting.cjs +0 -19
- package/dist/browser/Settings/MapSetting.cjs.map +0 -1
- package/dist/browser/Settings/MapSetting.js +0 -1
- package/dist/browser/Settings/MapSetting.js.map +0 -1
- package/dist/browser/Settings/index.cjs +0 -79
- package/dist/browser/Settings/index.cjs.map +0 -1
- package/dist/browser/Settings/index.js +0 -56
- package/dist/browser/Settings/index.js.map +0 -1
- package/dist/browser/hooks/index.cjs +0 -180
- package/dist/browser/hooks/index.cjs.map +0 -1
- package/dist/browser/hooks/index.js +0 -157
- package/dist/browser/hooks/index.js.map +0 -1
- package/dist/browser/hooks/useDynamicMapResize.cjs +0 -54
- package/dist/browser/hooks/useDynamicMapResize.cjs.map +0 -1
- package/dist/browser/hooks/useDynamicMapResize.js +0 -33
- package/dist/browser/hooks/useDynamicMapResize.js.map +0 -1
- package/dist/browser/hooks/useDynamicPositioning.cjs +0 -55
- package/dist/browser/hooks/useDynamicPositioning.cjs.map +0 -1
- package/dist/browser/hooks/useDynamicPositioning.js +0 -34
- package/dist/browser/hooks/useDynamicPositioning.js.map +0 -1
- package/dist/browser/hooks/useFindHashes.cjs +0 -50
- package/dist/browser/hooks/useFindHashes.cjs.map +0 -1
- package/dist/browser/hooks/useFindHashes.js +0 -29
- package/dist/browser/hooks/useFindHashes.js.map +0 -1
- package/dist/browser/hooks/useHeatMapColors.cjs +0 -46
- package/dist/browser/hooks/useHeatMapColors.cjs.map +0 -1
- package/dist/browser/hooks/useHeatMapColors.js +0 -25
- package/dist/browser/hooks/useHeatMapColors.js.map +0 -1
- package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.cjs +0 -65
- package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.cjs.map +0 -1
- package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.js +0 -44
- package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.js.map +0 -1
- package/dist/browser/lib/MapBoxBaseProps.cjs +0 -19
- package/dist/browser/lib/MapBoxBaseProps.cjs.map +0 -1
- package/dist/browser/lib/MapBoxBaseProps.js +0 -1
- package/dist/browser/lib/MapBoxBaseProps.js.map +0 -1
- package/dist/browser/lib/MapStyle.cjs +0 -35
- package/dist/browser/lib/MapStyle.cjs.map +0 -1
- package/dist/browser/lib/MapStyle.js +0 -14
- package/dist/browser/lib/MapStyle.js.map +0 -1
- package/dist/browser/lib/index.cjs +0 -37
- package/dist/browser/lib/index.cjs.map +0 -1
- package/dist/browser/lib/index.js +0 -14
- package/dist/browser/lib/index.js.map +0 -1
- package/dist/browser/types/NetworkLocationAnswerBase.cjs +0 -19
- package/dist/browser/types/NetworkLocationAnswerBase.cjs.map +0 -1
- package/dist/browser/types/NetworkLocationAnswerBase.js +0 -1
- package/dist/browser/types/NetworkLocationAnswerBase.js.map +0 -1
- package/dist/browser/types/index.cjs +0 -19
- package/dist/browser/types/index.cjs.map +0 -1
- package/dist/browser/types/index.js +0 -1
- package/dist/browser/types/index.js.map +0 -1
- package/dist/node/AnimatedHeatMapSettings.cjs +0 -91
- package/dist/node/AnimatedHeatMapSettings.cjs.map +0 -1
- package/dist/node/AnimatedHeatMapSettings.js +0 -64
- package/dist/node/AnimatedHeatMapSettings.js.map +0 -1
- package/dist/node/Colors/MapColorProps.cjs +0 -19
- package/dist/node/Colors/MapColorProps.cjs.map +0 -1
- package/dist/node/Colors/MapColorProps.js +0 -1
- package/dist/node/Colors/MapColorProps.js.map +0 -1
- package/dist/node/Colors/index.cjs +0 -19
- package/dist/node/Colors/index.cjs.map +0 -1
- package/dist/node/Colors/index.js +0 -1
- package/dist/node/Colors/index.js.map +0 -1
- package/dist/node/Components/AnimatedHeatMap.cjs +0 -679
- package/dist/node/Components/AnimatedHeatMap.cjs.map +0 -1
- package/dist/node/Components/AnimatedHeatMap.js +0 -654
- package/dist/node/Components/AnimatedHeatMap.js.map +0 -1
- package/dist/node/Components/AnimatedHeatMapLoaded.cjs +0 -920
- package/dist/node/Components/AnimatedHeatMapLoaded.cjs.map +0 -1
- package/dist/node/Components/AnimatedHeatMapLoaded.js +0 -895
- package/dist/node/Components/AnimatedHeatMapLoaded.js.map +0 -1
- package/dist/node/Components/FeaturesToLayersMap.cjs +0 -19
- package/dist/node/Components/FeaturesToLayersMap.cjs.map +0 -1
- package/dist/node/Components/FeaturesToLayersMap.js +0 -1
- package/dist/node/Components/FeaturesToLayersMap.js.map +0 -1
- package/dist/node/Components/HeatMapSettings.cjs +0 -90
- package/dist/node/Components/HeatMapSettings.cjs.map +0 -1
- package/dist/node/Components/HeatMapSettings.js +0 -63
- package/dist/node/Components/HeatMapSettings.js.map +0 -1
- package/dist/node/Components/LayerAnimator.cjs +0 -120
- package/dist/node/Components/LayerAnimator.cjs.map +0 -1
- package/dist/node/Components/LayerAnimator.js +0 -95
- package/dist/node/Components/LayerAnimator.js.map +0 -1
- package/dist/node/Components/Legend.cjs +0 -81
- package/dist/node/Components/Legend.cjs.map +0 -1
- package/dist/node/Components/Legend.js +0 -56
- package/dist/node/Components/Legend.js.map +0 -1
- package/dist/node/Components/Legends/ColorGradient.cjs +0 -51
- package/dist/node/Components/Legends/ColorGradient.cjs.map +0 -1
- package/dist/node/Components/Legends/ColorGradient.js +0 -26
- package/dist/node/Components/Legends/ColorGradient.js.map +0 -1
- package/dist/node/Components/Legends/index.cjs +0 -53
- package/dist/node/Components/Legends/index.cjs.map +0 -1
- package/dist/node/Components/Legends/index.js +0 -26
- package/dist/node/Components/Legends/index.js.map +0 -1
- package/dist/node/Components/MapBox.cjs +0 -140
- package/dist/node/Components/MapBox.cjs.map +0 -1
- package/dist/node/Components/MapBox.js +0 -115
- package/dist/node/Components/MapBox.js.map +0 -1
- package/dist/node/Components/MapBoxHeat.cjs +0 -188
- package/dist/node/Components/MapBoxHeat.cjs.map +0 -1
- package/dist/node/Components/MapBoxHeat.js +0 -163
- package/dist/node/Components/MapBoxHeat.js.map +0 -1
- package/dist/node/Components/MapBoxPoints.cjs +0 -286
- package/dist/node/Components/MapBoxPoints.cjs.map +0 -1
- package/dist/node/Components/MapBoxPoints.js +0 -261
- package/dist/node/Components/MapBoxPoints.js.map +0 -1
- package/dist/node/Components/MapSettingsComponents/Setting.cjs +0 -61
- package/dist/node/Components/MapSettingsComponents/Setting.cjs.map +0 -1
- package/dist/node/Components/MapSettingsComponents/Setting.js +0 -36
- package/dist/node/Components/MapSettingsComponents/Setting.js.map +0 -1
- package/dist/node/Components/MapSettingsComponents/SettingsBox.cjs +0 -75
- package/dist/node/Components/MapSettingsComponents/SettingsBox.cjs.map +0 -1
- package/dist/node/Components/MapSettingsComponents/SettingsBox.js +0 -50
- package/dist/node/Components/MapSettingsComponents/SettingsBox.js.map +0 -1
- package/dist/node/Components/MapSettingsComponents/index.cjs +0 -79
- package/dist/node/Components/MapSettingsComponents/index.cjs.map +0 -1
- package/dist/node/Components/MapSettingsComponents/index.js +0 -51
- package/dist/node/Components/MapSettingsComponents/index.js.map +0 -1
- package/dist/node/Components/index.cjs +0 -1125
- package/dist/node/Components/index.cjs.map +0 -1
- package/dist/node/Components/index.js +0 -1088
- package/dist/node/Components/index.js.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/Context.cjs +0 -32
- package/dist/node/Contexts/HeatMapInitializer/Context.cjs.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/Context.js +0 -7
- package/dist/node/Contexts/HeatMapInitializer/Context.js.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/Provider.cjs +0 -310
- package/dist/node/Contexts/HeatMapInitializer/Provider.cjs.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/Provider.js +0 -285
- package/dist/node/Contexts/HeatMapInitializer/Provider.js.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/State.cjs +0 -19
- package/dist/node/Contexts/HeatMapInitializer/State.cjs.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/State.js +0 -1
- package/dist/node/Contexts/HeatMapInitializer/State.js.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/index.cjs +0 -323
- package/dist/node/Contexts/HeatMapInitializer/index.cjs.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/index.js +0 -295
- package/dist/node/Contexts/HeatMapInitializer/index.js.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs +0 -43
- package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs.map +0 -1
- package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.js +0 -18
- package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/Context.cjs +0 -32
- package/dist/node/Contexts/MapBoxInstance/Context.cjs.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/Context.js +0 -7
- package/dist/node/Contexts/MapBoxInstance/Context.js.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/Provider.cjs +0 -51
- package/dist/node/Contexts/MapBoxInstance/Provider.cjs.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/Provider.js +0 -26
- package/dist/node/Contexts/MapBoxInstance/Provider.js.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/State.cjs +0 -19
- package/dist/node/Contexts/MapBoxInstance/State.cjs.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/State.js +0 -1
- package/dist/node/Contexts/MapBoxInstance/State.js.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/index.cjs +0 -64
- package/dist/node/Contexts/MapBoxInstance/index.cjs.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/index.js +0 -36
- package/dist/node/Contexts/MapBoxInstance/index.js.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.cjs +0 -43
- package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.cjs.map +0 -1
- package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.js +0 -18
- package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.js.map +0 -1
- package/dist/node/Contexts/MapSettings/Context.cjs +0 -32
- package/dist/node/Contexts/MapSettings/Context.cjs.map +0 -1
- package/dist/node/Contexts/MapSettings/Context.js +0 -7
- package/dist/node/Contexts/MapSettings/Context.js.map +0 -1
- package/dist/node/Contexts/MapSettings/Provider.cjs +0 -166
- package/dist/node/Contexts/MapSettings/Provider.cjs.map +0 -1
- package/dist/node/Contexts/MapSettings/Provider.js +0 -141
- package/dist/node/Contexts/MapSettings/Provider.js.map +0 -1
- package/dist/node/Contexts/MapSettings/State.cjs +0 -19
- package/dist/node/Contexts/MapSettings/State.cjs.map +0 -1
- package/dist/node/Contexts/MapSettings/State.js +0 -1
- package/dist/node/Contexts/MapSettings/State.js.map +0 -1
- package/dist/node/Contexts/MapSettings/index.cjs +0 -177
- package/dist/node/Contexts/MapSettings/index.cjs.map +0 -1
- package/dist/node/Contexts/MapSettings/index.js +0 -149
- package/dist/node/Contexts/MapSettings/index.js.map +0 -1
- package/dist/node/Contexts/MapSettings/useMapSettings.cjs +0 -41
- package/dist/node/Contexts/MapSettings/useMapSettings.cjs.map +0 -1
- package/dist/node/Contexts/MapSettings/useMapSettings.js +0 -16
- package/dist/node/Contexts/MapSettings/useMapSettings.js.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/Context.cjs +0 -32
- package/dist/node/Contexts/MapboxAccessToken/Context.cjs.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/Context.js +0 -7
- package/dist/node/Contexts/MapboxAccessToken/Context.js.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/Provider.cjs +0 -42
- package/dist/node/Contexts/MapboxAccessToken/Provider.cjs.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/Provider.js +0 -17
- package/dist/node/Contexts/MapboxAccessToken/Provider.js.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/State.cjs +0 -19
- package/dist/node/Contexts/MapboxAccessToken/State.cjs.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/State.js +0 -1
- package/dist/node/Contexts/MapboxAccessToken/State.js.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/index.cjs +0 -52
- package/dist/node/Contexts/MapboxAccessToken/index.cjs.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/index.js +0 -23
- package/dist/node/Contexts/MapboxAccessToken/index.js.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/use.cjs +0 -40
- package/dist/node/Contexts/MapboxAccessToken/use.cjs.map +0 -1
- package/dist/node/Contexts/MapboxAccessToken/use.js +0 -15
- package/dist/node/Contexts/MapboxAccessToken/use.js.map +0 -1
- package/dist/node/Contexts/index.cjs +0 -495
- package/dist/node/Contexts/index.cjs.map +0 -1
- package/dist/node/Contexts/index.js +0 -460
- package/dist/node/Contexts/index.js.map +0 -1
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.cjs +0 -166
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.cjs.map +0 -1
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.js +0 -138
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.js.map +0 -1
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs +0 -79
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs.map +0 -1
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +0 -52
- package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +0 -1
- package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.cjs +0 -81
- package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.cjs.map +0 -1
- package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.js +0 -53
- package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.js.map +0 -1
- package/dist/node/Layers/Builders/index.cjs +0 -237
- package/dist/node/Layers/Builders/index.cjs.map +0 -1
- package/dist/node/Layers/Builders/index.js +0 -206
- package/dist/node/Layers/Builders/index.js.map +0 -1
- package/dist/node/Layers/CircleLayer.cjs +0 -54
- package/dist/node/Layers/CircleLayer.cjs.map +0 -1
- package/dist/node/Layers/CircleLayer.js +0 -29
- package/dist/node/Layers/CircleLayer.js.map +0 -1
- package/dist/node/Layers/Configs/HeatMapFillLayerConfig.cjs +0 -41
- package/dist/node/Layers/Configs/HeatMapFillLayerConfig.cjs.map +0 -1
- package/dist/node/Layers/Configs/HeatMapFillLayerConfig.js +0 -16
- package/dist/node/Layers/Configs/HeatMapFillLayerConfig.js.map +0 -1
- package/dist/node/Layers/Configs/HeatMapLineLayerConfig.cjs +0 -41
- package/dist/node/Layers/Configs/HeatMapLineLayerConfig.cjs.map +0 -1
- package/dist/node/Layers/Configs/HeatMapLineLayerConfig.js +0 -16
- package/dist/node/Layers/Configs/HeatMapLineLayerConfig.js.map +0 -1
- package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.cjs +0 -48
- package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.cjs.map +0 -1
- package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.js +0 -23
- package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.js.map +0 -1
- package/dist/node/Layers/Configs/LocationPointLayerConfig.cjs +0 -39
- package/dist/node/Layers/Configs/LocationPointLayerConfig.cjs.map +0 -1
- package/dist/node/Layers/Configs/LocationPointLayerConfig.js +0 -14
- package/dist/node/Layers/Configs/LocationPointLayerConfig.js.map +0 -1
- package/dist/node/Layers/Configs/index.cjs +0 -93
- package/dist/node/Layers/Configs/index.cjs.map +0 -1
- package/dist/node/Layers/Configs/index.js +0 -63
- package/dist/node/Layers/Configs/index.js.map +0 -1
- package/dist/node/Layers/FillLayer.cjs +0 -48
- package/dist/node/Layers/FillLayer.cjs.map +0 -1
- package/dist/node/Layers/FillLayer.js +0 -23
- package/dist/node/Layers/FillLayer.js.map +0 -1
- package/dist/node/Layers/LineLayer.cjs +0 -49
- package/dist/node/Layers/LineLayer.cjs.map +0 -1
- package/dist/node/Layers/LineLayer.js +0 -24
- package/dist/node/Layers/LineLayer.js.map +0 -1
- package/dist/node/Layers/MapLayer.cjs +0 -19
- package/dist/node/Layers/MapLayer.cjs.map +0 -1
- package/dist/node/Layers/MapLayer.js +0 -1
- package/dist/node/Layers/MapLayer.js.map +0 -1
- package/dist/node/Layers/SymbolLayer.cjs +0 -48
- package/dist/node/Layers/SymbolLayer.cjs.map +0 -1
- package/dist/node/Layers/SymbolLayer.js +0 -23
- package/dist/node/Layers/SymbolLayer.js.map +0 -1
- package/dist/node/Layers/index.cjs +0 -253
- package/dist/node/Layers/index.cjs.map +0 -1
- package/dist/node/Layers/index.js +0 -214
- package/dist/node/Layers/index.js.map +0 -1
- package/dist/node/MapBoxClasses/MapBase.cjs +0 -56
- package/dist/node/MapBoxClasses/MapBase.cjs.map +0 -1
- package/dist/node/MapBoxClasses/MapBase.js +0 -31
- package/dist/node/MapBoxClasses/MapBase.js.map +0 -1
- package/dist/node/MapBoxClasses/MapHeat.cjs +0 -194
- package/dist/node/MapBoxClasses/MapHeat.cjs.map +0 -1
- package/dist/node/MapBoxClasses/MapHeat.js +0 -169
- package/dist/node/MapBoxClasses/MapHeat.js.map +0 -1
- package/dist/node/MapBoxClasses/MapPoints.cjs +0 -82
- package/dist/node/MapBoxClasses/MapPoints.cjs.map +0 -1
- package/dist/node/MapBoxClasses/MapPoints.js +0 -57
- package/dist/node/MapBoxClasses/MapPoints.js.map +0 -1
- package/dist/node/MapBoxClasses/MapSettings.cjs +0 -123
- package/dist/node/MapBoxClasses/MapSettings.cjs.map +0 -1
- package/dist/node/MapBoxClasses/MapSettings.js +0 -98
- package/dist/node/MapBoxClasses/MapSettings.js.map +0 -1
- package/dist/node/MapBoxClasses/index.cjs +0 -319
- package/dist/node/MapBoxClasses/index.cjs.map +0 -1
- package/dist/node/MapBoxClasses/index.js +0 -289
- package/dist/node/MapBoxClasses/index.js.map +0 -1
- package/dist/node/Settings/DefaultMapSettings.cjs +0 -81
- package/dist/node/Settings/DefaultMapSettings.cjs.map +0 -1
- package/dist/node/Settings/DefaultMapSettings.js +0 -56
- package/dist/node/Settings/DefaultMapSettings.js.map +0 -1
- package/dist/node/Settings/MapSetting.cjs +0 -19
- package/dist/node/Settings/MapSetting.cjs.map +0 -1
- package/dist/node/Settings/MapSetting.js +0 -1
- package/dist/node/Settings/MapSetting.js.map +0 -1
- package/dist/node/Settings/index.cjs +0 -83
- package/dist/node/Settings/index.cjs.map +0 -1
- package/dist/node/Settings/index.js +0 -56
- package/dist/node/Settings/index.js.map +0 -1
- package/dist/node/hooks/index.cjs +0 -190
- package/dist/node/hooks/index.cjs.map +0 -1
- package/dist/node/hooks/index.js +0 -159
- package/dist/node/hooks/index.js.map +0 -1
- package/dist/node/hooks/useDynamicMapResize.cjs +0 -59
- package/dist/node/hooks/useDynamicMapResize.cjs.map +0 -1
- package/dist/node/hooks/useDynamicMapResize.js +0 -34
- package/dist/node/hooks/useDynamicMapResize.js.map +0 -1
- package/dist/node/hooks/useDynamicPositioning.cjs +0 -59
- package/dist/node/hooks/useDynamicPositioning.cjs.map +0 -1
- package/dist/node/hooks/useDynamicPositioning.js +0 -34
- package/dist/node/hooks/useDynamicPositioning.js.map +0 -1
- package/dist/node/hooks/useFindHashes.cjs +0 -55
- package/dist/node/hooks/useFindHashes.cjs.map +0 -1
- package/dist/node/hooks/useFindHashes.js +0 -30
- package/dist/node/hooks/useFindHashes.js.map +0 -1
- package/dist/node/hooks/useHeatMapColors.cjs +0 -50
- package/dist/node/hooks/useHeatMapColors.cjs.map +0 -1
- package/dist/node/hooks/useHeatMapColors.js +0 -25
- package/dist/node/hooks/useHeatMapColors.js.map +0 -1
- package/dist/node/hooks/useQuadKeyPayloadsToFeatures.cjs +0 -69
- package/dist/node/hooks/useQuadKeyPayloadsToFeatures.cjs.map +0 -1
- package/dist/node/hooks/useQuadKeyPayloadsToFeatures.js +0 -44
- package/dist/node/hooks/useQuadKeyPayloadsToFeatures.js.map +0 -1
- package/dist/node/lib/MapBoxBaseProps.cjs +0 -19
- package/dist/node/lib/MapBoxBaseProps.cjs.map +0 -1
- package/dist/node/lib/MapBoxBaseProps.js +0 -1
- package/dist/node/lib/MapBoxBaseProps.js.map +0 -1
- package/dist/node/lib/MapStyle.cjs +0 -39
- package/dist/node/lib/MapStyle.cjs.map +0 -1
- package/dist/node/lib/MapStyle.js +0 -14
- package/dist/node/lib/MapStyle.js.map +0 -1
- package/dist/node/lib/index.cjs +0 -41
- package/dist/node/lib/index.cjs.map +0 -1
- package/dist/node/lib/index.js +0 -14
- package/dist/node/lib/index.js.map +0 -1
- package/dist/node/types/NetworkLocationAnswerBase.cjs +0 -19
- package/dist/node/types/NetworkLocationAnswerBase.cjs.map +0 -1
- package/dist/node/types/NetworkLocationAnswerBase.js +0 -1
- package/dist/node/types/NetworkLocationAnswerBase.js.map +0 -1
- package/dist/node/types/index.cjs +0 -19
- package/dist/node/types/index.cjs.map +0 -1
- package/dist/node/types/index.js +0 -1
- package/dist/node/types/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/HeatMapInitializer/index.ts","../../../../src/Contexts/HeatMapInitializer/Provider.tsx","../../../../src/hooks/useDynamicPositioning.tsx","../../../../src/MapBoxClasses/MapBase.ts","../../../../src/MapBoxClasses/MapHeat.ts","../../../../src/Contexts/MapBoxInstance/Context.ts","../../../../src/Contexts/MapBoxInstance/useMapBoxInstance.tsx","../../../../src/Contexts/MapSettings/Context.ts","../../../../src/Contexts/MapSettings/useMapSettings.tsx","../../../../src/Contexts/HeatMapInitializer/Context.ts","../../../../src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx"],"sourcesContent":["export * from './Provider'\nexport * from './State'\nexport * from './useHeatMapInitializer'\n","import { forget } from '@xylabs/forget'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Feature, Polygon } from 'geojson'\nimport { useEffect, useState } from 'react'\n\nimport { AnimatedHeatMapColorProps, HeatMapColorProps } from '../../Colors'\nimport { useDynamicPositioning } from '../../hooks'\nimport { MapLayer } from '../../Layers'\nimport { MapHeat } from '../../MapBoxClasses'\nimport { useMapBoxInstance } from '../MapBoxInstance'\nimport { useMapSettings } from '../MapSettings'\nimport { HeatMapInitializerContext } from './Context'\nimport { HeatMapInitializerState } from './State'\n\nexport interface MapInitializerProviderProps {\n featureSets?: Feature<Polygon>[][]\n featureSetsLayers?: MapLayer[]\n features?: Feature<Polygon>[]\n fitToPadding?: number\n heatMapColorProps: HeatMapColorProps | AnimatedHeatMapColorProps\n layers?: MapLayer[]\n zoom?: number\n}\n\nexport const HeatMapInitializerProvider: React.FC<WithChildren<MapInitializerProviderProps>> = ({\n children,\n featureSets,\n featureSetsLayers,\n features,\n fitToPadding,\n heatMapColorProps,\n layers,\n zoom,\n}) => {\n const [mapHeat, setMapHeat] = useState<MapHeat>()\n const { options } = useDynamicPositioning()\n const { mapSettings } = useMapSettings()\n const { map, mapInitialized } = useMapBoxInstance()\n\n const value: HeatMapInitializerState = {\n MapHeat: mapHeat,\n heatMapColorProps,\n }\n\n useEffect(() => {\n if (mapInitialized && featureSets?.length && featureSets[0].length && map && featureSetsLayers?.length) {\n const { lowUsageColor, highUsageColor } = heatMapColorProps as AnimatedHeatMapColorProps\n forget(MapHeat.initializeAnimatedHeatMapSource(featureSetsLayers, featureSets, map, lowUsageColor, highUsageColor))\n }\n\n return () => {\n MapHeat.animationStarted = false\n }\n }, [featureSets, featureSetsLayers, mapInitialized, map, heatMapColorProps])\n\n useEffect(() => {\n if (mapHeat && mapInitialized && features?.length && layers?.length) {\n mapHeat.initializeHeatMapSource(layers)\n }\n }, [mapHeat, features?.length, layers, mapInitialized])\n\n useEffect(() => {\n if (mapInitialized) {\n const { fitToPoints } = mapSettings || {}\n\n if (map) {\n if (fitToPoints?.value === true) {\n MapHeat.initialMapPositioning({ padding: fitToPadding }, map, features)\n } else if (options.zoom && options.center) {\n map.setZoom(options.zoom)\n map.setCenter(options.center)\n }\n }\n }\n }, [mapHeat, map, mapSettings, fitToPadding, options, mapInitialized, features])\n\n useEffect(() => {\n if (map && features?.length) {\n // Every time we get a new map or features, we make a new class\n setMapHeat(new MapHeat({ features, map, zoom }))\n }\n }, [map, features, zoom])\n\n return <HeatMapInitializerContext.Provider value={value}>{children}</HeatMapInitializerContext.Provider>\n}\n","import { useWindowSize } from '@xylabs/react-shared'\nimport { MapboxOptions } from 'mapbox-gl'\nimport { useEffect, useState } from 'react'\n\n/**\n * Zoom level for the map\n *\n * Note: Changing zoom will require changes to Lat/Lng Ranges\n */\nconst defaultZoom = 1.6\n\n/**\n * Range of aspect ratio values (width / height = aspect ratio) to scale against degrees\n * On lower aspect ratios, the width is larger than the height and vice-versa for higher\n */\nconst defaultAspectRatioRange = [0.5, 2]\n\n/**\n * Lat/Lng ranges, the first index is the minimum and the second is the maximum\n * Index 0 is for portrait screens and centers on the Eastern Hemisphere\n * Index 1 is for wider screens near the Prime Meridian and north of the Equator\n *\n * Note: Values are based off the zoom level\n */\nconst latRange = [0.9121644205263664, 1.71785031559439]\nconst lngRange = [-81.4742014851959, 12.788958675506933]\n\n/**\n * Function to interpolate an aspect ratio value across a range of degrees and aspect ratios\n *\n * Inspired by - https://stackoverflow.com/questions/14224535/scaling-between-two-number-ranges\n *\n * @param aspectRatio aspect ratio to scale\n * @param degreeRange A latitude or longitude range (i.e. [minLat, maxLat])\n * @param aspectRatioRange A range of aspect ratios to scale against degreeRange parameter\n * @returns number\n */\nconst linearInterpolate = (aspectRatio: number, degreeRange: number[], aspectRatioRange?: number[]): number => {\n const [degreeMin, degreeMax] = degreeRange\n const [aspectRatioMin, aspectRatioMax] = aspectRatioRange || defaultAspectRatioRange\n\n const aspectRatioRangeSpan = aspectRatioMax - aspectRatioMin\n const degreeRangeSpan = degreeMax - degreeMin\n\n const percent = (aspectRatio - aspectRatioMin) / aspectRatioRangeSpan\n const scaledDegree = percent * degreeRangeSpan + degreeMin\n\n return scaledDegree\n}\n\nconst useDynamicPositioning = () => {\n const [options, setOptions] = useState<Partial<MapboxOptions>>({})\n const { width, height } = useWindowSize()\n\n useEffect(() => {\n if (width && height) {\n const aspectRatio = width / height\n\n setOptions({\n center: [linearInterpolate(aspectRatio, lngRange), linearInterpolate(aspectRatio, latRange)],\n zoom: defaultZoom,\n })\n }\n }, [height, width])\n\n return { options }\n}\n\nexport { useDynamicPositioning }\n","import { assertEx } from '@xylabs/assert'\nimport { GeoJson } from '@xyo-network/sdk-geo'\nimport { Feature, Geometry } from 'geojson'\n// eslint-disable-next-line no-restricted-imports\nimport { GeoJSONSource, Map } from 'mapbox-gl'\n\nimport { MapLayer } from '../Layers'\n\nexport interface MapBaseConfig<T extends Geometry> {\n features: Feature<T>[]\n map: Map\n requestLocation?: boolean\n zoom?: number\n}\n\nexport abstract class MapBase<T extends Geometry> {\n private _config: MapBaseConfig<T>\n\n constructor(config: MapBaseConfig<T>) {\n this._config = { requestLocation: true, zoom: 2, ...config }\n }\n\n get isMapReady() {\n return !!this._config.map\n }\n\n initializeMapSource(layer: MapLayer) {\n const getSource = () => {\n const featuresCollection = GeoJson.featureCollection(this._config.features)\n return GeoJson.featuresSource(featuresCollection)\n }\n\n const existingSource = this._config.map.getSource(layer.source as string) as GeoJSONSource\n const source = getSource()\n if (existingSource) {\n existingSource.setData(assertEx(source.data as GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry>))\n } else {\n this._config.map.addSource(layer.source as string, source)\n }\n layer.update(this._config.map, true)\n\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { forget } from '@xylabs/forget'\nimport { GeoJson } from '@xyo-network/sdk-geo'\nimport { Feature, Polygon } from 'geojson'\nimport { FitBoundsOptions, GeoJSONSource, GeoJSONSourceRaw, LngLatBounds, Map } from 'mapbox-gl'\n\nimport { MapLayer } from '../Layers'\nimport { MapBase, MapBaseConfig } from './MapBase'\n\nexport class MapHeat extends MapBase<Polygon> {\n static animationStarted = false\n\n config: MapBaseConfig<Polygon>\n constructor(config: MapBaseConfig<Polygon>) {\n super(config)\n this.config = config\n }\n\n static initialMapPositioning(options: FitBoundsOptions, map: Map, features?: Feature<Polygon>[], initialBounds?: LngLatBounds) {\n if (!features) {\n return\n }\n\n let bounds: LngLatBounds\n\n if (initialBounds) {\n bounds = initialBounds\n } else {\n bounds = new LngLatBounds()\n\n features.forEach((feature: Feature<Polygon>) => {\n feature.geometry.coordinates.forEach((coordinates) => {\n coordinates.forEach((position) => {\n bounds.extend(position as [number, number])\n })\n })\n })\n }\n\n map.setCenter(bounds.getCenter())\n map.fitBounds(bounds, options)\n return this\n }\n\n static async initializeAnimatedHeatMapSource(\n layers: MapLayer[],\n featureSet: Feature<Polygon>[][],\n map: Map,\n startColor?: string,\n endColor?: string,\n ) {\n this.animationStarted = true\n let layerTick = 0\n let sourceTick = 0\n\n const sources = featureSet.map((feature) => {\n const featuresCollection = GeoJson.featureCollection(feature)\n return GeoJson.featuresSource(featuresCollection)\n })\n this.updateLayer(map, layers[0], sources[0])\n this.updateLayer(map, layers[1], sources[1])\n\n layers.forEach((layer) => {\n map.setPaintProperty(layer.id, 'fill-opacity', 0)\n })\n\n const frameLength = 3000\n const initialPad = 0.5\n const factor = 10\n const steps = 30\n const stepLength = frameLength / steps\n const lowUsageColor = startColor ?? '#FFB3B3'\n const highUsageColor = endColor ?? '#FF0000'\n\n // Max density at i=0, min density at i=steps\n const dynamicFillColor = (factor: number, initialPad: number, i: number) => {\n const sinFade = Math.sin(((i / steps) * Math.PI) / 2)\n const cosFade = Math.cos(((i / steps) * Math.PI) / 2)\n // we want the divisor to always be at least 1x the desired factor but will go up to\n // 2x factor to account for combinative effect of the overlay of two layers at once\n const divisor = factor + factor * sinFade\n const offset = initialPad * cosFade\n return [\n 'let',\n 'density',\n ['+', ['/', ['number', ['get', 'value']], divisor], offset],\n ['interpolate', ['linear'], ['var', 'density'], 0, lowUsageColor, 0.5, highUsageColor],\n ]\n }\n\n const fadedIn: boolean[] = layers.map((_) => false)\n\n const fadeIn = async (id: string, index: number) => {\n for (let i = steps; i >= 1; i--) {\n map.setPaintProperty(id, 'fill-color', dynamicFillColor(factor, initialPad, i * (180 / stepLength)))\n await delay(stepLength)\n }\n fadedIn[index] = true\n }\n\n const fadeOut = async (id: string, index: number) => {\n for (let i = 1; i <= steps; i++) {\n map.setPaintProperty(id, 'fill-color', dynamicFillColor(factor, initialPad, i * (180 / stepLength)))\n await delay(stepLength)\n }\n fadedIn[index] = false\n }\n\n let started = false\n const startAnimation = async () => {\n assertEx(!started, 'Animation Already Started')\n started = true\n while (this.animationStarted) {\n const upLayer = layerTick % layers.length\n const downLayer = (layerTick + 1) % layers.length\n\n const incomingSource = sourceTick % featureSet.length\n const outgoingSource = (sourceTick + 1) % featureSet.length\n\n // console.log('incoming / outgoing source', incomingSource, outgoingSource)\n\n // console.log(`animate: [${upLayer}, ${downLayer}]`)\n if (fadedIn[upLayer]) {\n this.updateLayer(map, layers[upLayer], sources[incomingSource])\n forget(fadeOut(layers[upLayer].id, upLayer))\n }\n if (!fadedIn[downLayer]) {\n this.updateLayer(map, layers[downLayer], sources[outgoingSource])\n forget(fadeIn(layers[downLayer].id, downLayer))\n }\n while ((fadedIn[upLayer] || !fadedIn[downLayer]) && this.animationStarted) {\n // console.log(`checking: [${fadedIn[upLayer]}, ${!fadedIn[downLayer]}]`)\n await delay(1000)\n }\n layerTick++\n sourceTick++\n\n // console.log(`this.layerTick: ${layerTick}`)\n // console.log(`this.sourceTick: ${sourceTick}`)\n }\n }\n\n await startAnimation()\n }\n\n private static updateLayer(map: Map, layer: MapLayer, source: GeoJSONSourceRaw) {\n const existingSource = map.getSource(layer.source as string) as GeoJSONSource\n if (existingSource && source.data) {\n existingSource.setData(source.data as GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry>)\n } else if (source) {\n map.addSource(layer.source as string, source)\n }\n layer.update(map, true)\n }\n\n // Build layers each with the same features\n initializeHeatMapSource(layers: MapLayer[]) {\n const getSource = (_: number) => {\n const featuresCollection = GeoJson.featureCollection(this.config.features)\n return GeoJson.featuresSource(featuresCollection)\n }\n\n layers.forEach((layer, index) => {\n const existingSource = this.config.map.getSource(layer.source as string) as GeoJSONSource\n const source = getSource(index)\n if (existingSource) {\n existingSource.setData(assertEx(source.data) as GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry>)\n } else {\n this.config.map.addSource(layer.source as string, source)\n }\n layer.update(this.config.map, true)\n })\n\n return this\n }\n}\n","import { createContext } from 'react'\n\nimport { MapBoxInstanceState } from './State'\n\nconst MapBoxInstanceContext = createContext<MapBoxInstanceState>({})\n\nexport { MapBoxInstanceContext }\n","import { assertEx } from '@xylabs/assert'\nimport { useContext } from 'react'\n\nimport { MapBoxInstanceContext } from './Context'\n\nconst useMapBoxInstance = () => {\n const context = useContext(MapBoxInstanceContext)\n assertEx('map' in context, 'useMapBoxInstance must be used within a MapBoxInstanceContext')\n\n return context\n}\n\nexport { useMapBoxInstance }\n","import { createContext } from 'react'\n\nimport { MapSettingsState } from './State'\n\nconst MapSettingsContext = createContext<MapSettingsState>({})\n\nexport { MapSettingsContext }\n","import { useContext } from 'react'\n\nimport { MapSettingsContext } from './Context'\n\nconst useMapSettings = () => {\n const context = useContext(MapSettingsContext)\n\n return context\n}\n\nexport { useMapSettings }\n","import { createContext } from 'react'\n\nimport { HeatMapInitializerState } from './State'\n\nconst HeatMapInitializerContext = createContext<HeatMapInitializerState>({})\n\nexport { HeatMapInitializerContext }\n","import { assertEx } from '@xylabs/assert'\nimport { useContext } from 'react'\n\nimport { HeatMapInitializerContext } from './Context'\n\nconst useHeatMapInitializer = () => {\n const context = useContext(HeatMapInitializerContext)\n assertEx('heatMapInitialized' in context, 'useHeatMapInitializer must be used within a HeatMapInitializerContext')\n\n return context\n}\n\nexport { useHeatMapInitializer }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,iBAAuB;AAGvB,IAAAC,gBAAoC;;;ACHpC,0BAA8B;AAE9B,mBAAoC;AAOpC,IAAM,cAAc;AAMpB,IAAM,0BAA0B,CAAC,KAAK,CAAC;AASvC,IAAM,WAAW,CAAC,oBAAoB,gBAAgB;AACtD,IAAM,WAAW,CAAC,mBAAmB,kBAAkB;AAYvD,IAAM,oBAAoB,CAAC,aAAqB,aAAuB,qBAAwC;AAC7G,QAAM,CAAC,WAAW,SAAS,IAAI;AAC/B,QAAM,CAAC,gBAAgB,cAAc,IAAI,oBAAoB;AAE7D,QAAM,uBAAuB,iBAAiB;AAC9C,QAAM,kBAAkB,YAAY;AAEpC,QAAM,WAAW,cAAc,kBAAkB;AACjD,QAAM,eAAe,UAAU,kBAAkB;AAEjD,SAAO;AACT;AAEA,IAAM,wBAAwB,MAAM;AAClC,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAiC,CAAC,CAAC;AACjE,QAAM,EAAE,OAAO,OAAO,QAAI,mCAAc;AAExC,8BAAU,MAAM;AACd,QAAI,SAAS,QAAQ;AACnB,YAAM,cAAc,QAAQ;AAE5B,iBAAW;AAAA,QACT,QAAQ,CAAC,kBAAkB,aAAa,QAAQ,GAAG,kBAAkB,aAAa,QAAQ,CAAC;AAAA,QAC3F,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,QAAQ,KAAK,CAAC;AAElB,SAAO,EAAE,QAAQ;AACnB;;;AClEA,oBAAyB;AACzB,qBAAwB;AAcjB,IAAe,UAAf,MAA2C;AAAA,EACxC;AAAA,EAER,YAAY,QAA0B;AACpC,SAAK,UAAU,EAAE,iBAAiB,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,EAC7D;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,CAAC,CAAC,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,oBAAoB,OAAiB;AACnC,UAAM,YAAY,MAAM;AACtB,YAAM,qBAAqB,uBAAQ,kBAAkB,KAAK,QAAQ,QAAQ;AAC1E,aAAO,uBAAQ,eAAe,kBAAkB;AAAA,IAClD;AAEA,UAAM,iBAAiB,KAAK,QAAQ,IAAI,UAAU,MAAM,MAAgB;AACxE,UAAM,SAAS,UAAU;AACzB,QAAI,gBAAgB;AAClB,qBAAe,YAAQ,wBAAS,OAAO,IAAuF,CAAC;AAAA,IACjI,OAAO;AACL,WAAK,QAAQ,IAAI,UAAU,MAAM,QAAkB,MAAM;AAAA,IAC3D;AACA,UAAM,OAAO,KAAK,QAAQ,KAAK,IAAI;AAEnC,WAAO;AAAA,EACT;AACF;;;AC3CA,IAAAC,iBAAyB;AACzB,mBAAsB;AACtB,oBAAuB;AACvB,IAAAC,kBAAwB;AAExB,uBAAqF;AAK9E,IAAM,UAAN,cAAsB,QAAiB;AAAA,EAC5C,OAAO,mBAAmB;AAAA,EAE1B;AAAA,EACA,YAAY,QAAgC;AAC1C,UAAM,MAAM;AACZ,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,OAAO,sBAAsB,SAA2B,KAAU,UAA+B,eAA8B;AAC7H,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,QAAI;AAEJ,QAAI,eAAe;AACjB,eAAS;AAAA,IACX,OAAO;AACL,eAAS,IAAI,8BAAa;AAE1B,eAAS,QAAQ,CAAC,YAA8B;AAC9C,gBAAQ,SAAS,YAAY,QAAQ,CAAC,gBAAgB;AACpD,sBAAY,QAAQ,CAAC,aAAa;AAChC,mBAAO,OAAO,QAA4B;AAAA,UAC5C,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,QAAI,UAAU,OAAO,UAAU,CAAC;AAChC,QAAI,UAAU,QAAQ,OAAO;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,gCACX,QACA,YACA,KACA,YACA,UACA;AACA,SAAK,mBAAmB;AACxB,QAAI,YAAY;AAChB,QAAI,aAAa;AAEjB,UAAM,UAAU,WAAW,IAAI,CAAC,YAAY;AAC1C,YAAM,qBAAqB,wBAAQ,kBAAkB,OAAO;AAC5D,aAAO,wBAAQ,eAAe,kBAAkB;AAAA,IAClD,CAAC;AACD,SAAK,YAAY,KAAK,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC3C,SAAK,YAAY,KAAK,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AAE3C,WAAO,QAAQ,CAAC,UAAU;AACxB,UAAI,iBAAiB,MAAM,IAAI,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAED,UAAM,cAAc;AACpB,UAAM,aAAa;AACnB,UAAM,SAAS;AACf,UAAM,QAAQ;AACd,UAAM,aAAa,cAAc;AACjC,UAAM,gBAAgB,cAAc;AACpC,UAAM,iBAAiB,YAAY;AAGnC,UAAM,mBAAmB,CAACC,SAAgBC,aAAoB,MAAc;AAC1E,YAAM,UAAU,KAAK,IAAM,IAAI,QAAS,KAAK,KAAM,CAAC;AACpD,YAAM,UAAU,KAAK,IAAM,IAAI,QAAS,KAAK,KAAM,CAAC;AAGpD,YAAM,UAAUD,UAASA,UAAS;AAClC,YAAM,SAASC,cAAa;AAC5B,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM;AAAA,QAC1D,CAAC,eAAe,CAAC,QAAQ,GAAG,CAAC,OAAO,SAAS,GAAG,GAAG,eAAe,KAAK,cAAc;AAAA,MACvF;AAAA,IACF;AAEA,UAAM,UAAqB,OAAO,IAAI,CAAC,MAAM,KAAK;AAElD,UAAM,SAAS,OAAO,IAAY,UAAkB;AAClD,eAAS,IAAI,OAAO,KAAK,GAAG,KAAK;AAC/B,YAAI,iBAAiB,IAAI,cAAc,iBAAiB,QAAQ,YAAY,KAAK,MAAM,WAAW,CAAC;AACnG,kBAAM,oBAAM,UAAU;AAAA,MACxB;AACA,cAAQ,KAAK,IAAI;AAAA,IACnB;AAEA,UAAM,UAAU,OAAO,IAAY,UAAkB;AACnD,eAAS,IAAI,GAAG,KAAK,OAAO,KAAK;AAC/B,YAAI,iBAAiB,IAAI,cAAc,iBAAiB,QAAQ,YAAY,KAAK,MAAM,WAAW,CAAC;AACnG,kBAAM,oBAAM,UAAU;AAAA,MACxB;AACA,cAAQ,KAAK,IAAI;AAAA,IACnB;AAEA,QAAI,UAAU;AACd,UAAM,iBAAiB,YAAY;AACjC,mCAAS,CAAC,SAAS,2BAA2B;AAC9C,gBAAU;AACV,aAAO,KAAK,kBAAkB;AAC5B,cAAM,UAAU,YAAY,OAAO;AACnC,cAAM,aAAa,YAAY,KAAK,OAAO;AAE3C,cAAM,iBAAiB,aAAa,WAAW;AAC/C,cAAM,kBAAkB,aAAa,KAAK,WAAW;AAKrD,YAAI,QAAQ,OAAO,GAAG;AACpB,eAAK,YAAY,KAAK,OAAO,OAAO,GAAG,QAAQ,cAAc,CAAC;AAC9D,oCAAO,QAAQ,OAAO,OAAO,EAAE,IAAI,OAAO,CAAC;AAAA,QAC7C;AACA,YAAI,CAAC,QAAQ,SAAS,GAAG;AACvB,eAAK,YAAY,KAAK,OAAO,SAAS,GAAG,QAAQ,cAAc,CAAC;AAChE,oCAAO,OAAO,OAAO,SAAS,EAAE,IAAI,SAAS,CAAC;AAAA,QAChD;AACA,gBAAQ,QAAQ,OAAO,KAAK,CAAC,QAAQ,SAAS,MAAM,KAAK,kBAAkB;AAEzE,oBAAM,oBAAM,GAAI;AAAA,QAClB;AACA;AACA;AAAA,MAIF;AAAA,IACF;AAEA,UAAM,eAAe;AAAA,EACvB;AAAA,EAEA,OAAe,YAAY,KAAU,OAAiB,QAA0B;AAC9E,UAAM,iBAAiB,IAAI,UAAU,MAAM,MAAgB;AAC3D,QAAI,kBAAkB,OAAO,MAAM;AACjC,qBAAe,QAAQ,OAAO,IAAuF;AAAA,IACvH,WAAW,QAAQ;AACjB,UAAI,UAAU,MAAM,QAAkB,MAAM;AAAA,IAC9C;AACA,UAAM,OAAO,KAAK,IAAI;AAAA,EACxB;AAAA;AAAA,EAGA,wBAAwB,QAAoB;AAC1C,UAAM,YAAY,CAAC,MAAc;AAC/B,YAAM,qBAAqB,wBAAQ,kBAAkB,KAAK,OAAO,QAAQ;AACzE,aAAO,wBAAQ,eAAe,kBAAkB;AAAA,IAClD;AAEA,WAAO,QAAQ,CAAC,OAAO,UAAU;AAC/B,YAAM,iBAAiB,KAAK,OAAO,IAAI,UAAU,MAAM,MAAgB;AACvE,YAAM,SAAS,UAAU,KAAK;AAC9B,UAAI,gBAAgB;AAClB,uBAAe,YAAQ,yBAAS,OAAO,IAAI,CAAoF;AAAA,MACjI,OAAO;AACL,aAAK,OAAO,IAAI,UAAU,MAAM,QAAkB,MAAM;AAAA,MAC1D;AACA,YAAM,OAAO,KAAK,OAAO,KAAK,IAAI;AAAA,IACpC,CAAC;AAED,WAAO;AAAA,EACT;AACF;;;AChLA,IAAAC,gBAA8B;AAI9B,IAAM,4BAAwB,6BAAmC,CAAC,CAAC;;;ACJnE,IAAAC,iBAAyB;AACzB,IAAAC,gBAA2B;AAI3B,IAAM,oBAAoB,MAAM;AAC9B,QAAM,cAAU,0BAAW,qBAAqB;AAChD,+BAAS,SAAS,SAAS,+DAA+D;AAE1F,SAAO;AACT;;;ACVA,IAAAC,gBAA8B;AAI9B,IAAM,yBAAqB,6BAAgC,CAAC,CAAC;;;ACJ7D,IAAAC,gBAA2B;AAI3B,IAAM,iBAAiB,MAAM;AAC3B,QAAM,cAAU,0BAAW,kBAAkB;AAE7C,SAAO;AACT;;;ACRA,IAAAC,gBAA8B;AAI9B,IAAM,gCAA4B,6BAAuC,CAAC,CAAC;;;AR+ElE;AA3DF,IAAM,6BAAkF,CAAC;AAAA,EAC9F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,SAAS,UAAU,QAAI,wBAAkB;AAChD,QAAM,EAAE,QAAQ,IAAI,sBAAsB;AAC1C,QAAM,EAAE,YAAY,IAAI,eAAe;AACvC,QAAM,EAAE,KAAK,eAAe,IAAI,kBAAkB;AAElD,QAAM,QAAiC;AAAA,IACrC,SAAS;AAAA,IACT;AAAA,EACF;AAEA,+BAAU,MAAM;AACd,QAAI,kBAAkB,aAAa,UAAU,YAAY,CAAC,EAAE,UAAU,OAAO,mBAAmB,QAAQ;AACtG,YAAM,EAAE,eAAe,eAAe,IAAI;AAC1C,iCAAO,QAAQ,gCAAgC,mBAAmB,aAAa,KAAK,eAAe,cAAc,CAAC;AAAA,IACpH;AAEA,WAAO,MAAM;AACX,cAAQ,mBAAmB;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,aAAa,mBAAmB,gBAAgB,KAAK,iBAAiB,CAAC;AAE3E,+BAAU,MAAM;AACd,QAAI,WAAW,kBAAkB,UAAU,UAAU,QAAQ,QAAQ;AACnE,cAAQ,wBAAwB,MAAM;AAAA,IACxC;AAAA,EACF,GAAG,CAAC,SAAS,UAAU,QAAQ,QAAQ,cAAc,CAAC;AAEtD,+BAAU,MAAM;AACd,QAAI,gBAAgB;AAClB,YAAM,EAAE,YAAY,IAAI,eAAe,CAAC;AAExC,UAAI,KAAK;AACP,YAAI,aAAa,UAAU,MAAM;AAC/B,kBAAQ,sBAAsB,EAAE,SAAS,aAAa,GAAG,KAAK,QAAQ;AAAA,QACxE,WAAW,QAAQ,QAAQ,QAAQ,QAAQ;AACzC,cAAI,QAAQ,QAAQ,IAAI;AACxB,cAAI,UAAU,QAAQ,MAAM;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,KAAK,aAAa,cAAc,SAAS,gBAAgB,QAAQ,CAAC;AAE/E,+BAAU,MAAM;AACd,QAAI,OAAO,UAAU,QAAQ;AAE3B,iBAAW,IAAI,QAAQ,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC;AAAA,IACjD;AAAA,EACF,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC;AAExB,SAAO,4CAAC,0BAA0B,UAA1B,EAAmC,OAAe,UAAS;AACrE;;;ASpFA,IAAAC,iBAAyB;AACzB,IAAAC,gBAA2B;AAI3B,IAAM,wBAAwB,MAAM;AAClC,QAAM,cAAU,0BAAW,yBAAyB;AACpD,+BAAS,wBAAwB,SAAS,uEAAuE;AAEjH,SAAO;AACT;","names":["import_forget","import_react","import_assert","import_sdk_geo","factor","initialPad","import_react","import_assert","import_react","import_react","import_react","import_react","import_assert","import_react"]}
|
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
// src/Contexts/HeatMapInitializer/Provider.tsx
|
|
2
|
-
import { forget as forget2 } from "@xylabs/forget";
|
|
3
|
-
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
4
|
-
|
|
5
|
-
// src/hooks/useDynamicPositioning.tsx
|
|
6
|
-
import { useWindowSize } from "@xylabs/react-shared";
|
|
7
|
-
import { useEffect, useState } from "react";
|
|
8
|
-
var defaultZoom = 1.6;
|
|
9
|
-
var defaultAspectRatioRange = [0.5, 2];
|
|
10
|
-
var latRange = [0.9121644205263664, 1.71785031559439];
|
|
11
|
-
var lngRange = [-81.4742014851959, 12.788958675506933];
|
|
12
|
-
var linearInterpolate = (aspectRatio, degreeRange, aspectRatioRange) => {
|
|
13
|
-
const [degreeMin, degreeMax] = degreeRange;
|
|
14
|
-
const [aspectRatioMin, aspectRatioMax] = aspectRatioRange || defaultAspectRatioRange;
|
|
15
|
-
const aspectRatioRangeSpan = aspectRatioMax - aspectRatioMin;
|
|
16
|
-
const degreeRangeSpan = degreeMax - degreeMin;
|
|
17
|
-
const percent = (aspectRatio - aspectRatioMin) / aspectRatioRangeSpan;
|
|
18
|
-
const scaledDegree = percent * degreeRangeSpan + degreeMin;
|
|
19
|
-
return scaledDegree;
|
|
20
|
-
};
|
|
21
|
-
var useDynamicPositioning = () => {
|
|
22
|
-
const [options, setOptions] = useState({});
|
|
23
|
-
const { width, height } = useWindowSize();
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (width && height) {
|
|
26
|
-
const aspectRatio = width / height;
|
|
27
|
-
setOptions({
|
|
28
|
-
center: [linearInterpolate(aspectRatio, lngRange), linearInterpolate(aspectRatio, latRange)],
|
|
29
|
-
zoom: defaultZoom
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}, [height, width]);
|
|
33
|
-
return { options };
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// src/MapBoxClasses/MapBase.ts
|
|
37
|
-
import { assertEx } from "@xylabs/assert";
|
|
38
|
-
import { GeoJson } from "@xyo-network/sdk-geo";
|
|
39
|
-
var MapBase = class {
|
|
40
|
-
_config;
|
|
41
|
-
constructor(config) {
|
|
42
|
-
this._config = { requestLocation: true, zoom: 2, ...config };
|
|
43
|
-
}
|
|
44
|
-
get isMapReady() {
|
|
45
|
-
return !!this._config.map;
|
|
46
|
-
}
|
|
47
|
-
initializeMapSource(layer) {
|
|
48
|
-
const getSource = () => {
|
|
49
|
-
const featuresCollection = GeoJson.featureCollection(this._config.features);
|
|
50
|
-
return GeoJson.featuresSource(featuresCollection);
|
|
51
|
-
};
|
|
52
|
-
const existingSource = this._config.map.getSource(layer.source);
|
|
53
|
-
const source = getSource();
|
|
54
|
-
if (existingSource) {
|
|
55
|
-
existingSource.setData(assertEx(source.data));
|
|
56
|
-
} else {
|
|
57
|
-
this._config.map.addSource(layer.source, source);
|
|
58
|
-
}
|
|
59
|
-
layer.update(this._config.map, true);
|
|
60
|
-
return this;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// src/MapBoxClasses/MapHeat.ts
|
|
65
|
-
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
66
|
-
import { delay } from "@xylabs/delay";
|
|
67
|
-
import { forget } from "@xylabs/forget";
|
|
68
|
-
import { GeoJson as GeoJson2 } from "@xyo-network/sdk-geo";
|
|
69
|
-
import { LngLatBounds } from "mapbox-gl";
|
|
70
|
-
var MapHeat = class extends MapBase {
|
|
71
|
-
static animationStarted = false;
|
|
72
|
-
config;
|
|
73
|
-
constructor(config) {
|
|
74
|
-
super(config);
|
|
75
|
-
this.config = config;
|
|
76
|
-
}
|
|
77
|
-
static initialMapPositioning(options, map, features, initialBounds) {
|
|
78
|
-
if (!features) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
let bounds;
|
|
82
|
-
if (initialBounds) {
|
|
83
|
-
bounds = initialBounds;
|
|
84
|
-
} else {
|
|
85
|
-
bounds = new LngLatBounds();
|
|
86
|
-
features.forEach((feature) => {
|
|
87
|
-
feature.geometry.coordinates.forEach((coordinates) => {
|
|
88
|
-
coordinates.forEach((position) => {
|
|
89
|
-
bounds.extend(position);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
map.setCenter(bounds.getCenter());
|
|
95
|
-
map.fitBounds(bounds, options);
|
|
96
|
-
return this;
|
|
97
|
-
}
|
|
98
|
-
static async initializeAnimatedHeatMapSource(layers, featureSet, map, startColor, endColor) {
|
|
99
|
-
this.animationStarted = true;
|
|
100
|
-
let layerTick = 0;
|
|
101
|
-
let sourceTick = 0;
|
|
102
|
-
const sources = featureSet.map((feature) => {
|
|
103
|
-
const featuresCollection = GeoJson2.featureCollection(feature);
|
|
104
|
-
return GeoJson2.featuresSource(featuresCollection);
|
|
105
|
-
});
|
|
106
|
-
this.updateLayer(map, layers[0], sources[0]);
|
|
107
|
-
this.updateLayer(map, layers[1], sources[1]);
|
|
108
|
-
layers.forEach((layer) => {
|
|
109
|
-
map.setPaintProperty(layer.id, "fill-opacity", 0);
|
|
110
|
-
});
|
|
111
|
-
const frameLength = 3e3;
|
|
112
|
-
const initialPad = 0.5;
|
|
113
|
-
const factor = 10;
|
|
114
|
-
const steps = 30;
|
|
115
|
-
const stepLength = frameLength / steps;
|
|
116
|
-
const lowUsageColor = startColor ?? "#FFB3B3";
|
|
117
|
-
const highUsageColor = endColor ?? "#FF0000";
|
|
118
|
-
const dynamicFillColor = (factor2, initialPad2, i) => {
|
|
119
|
-
const sinFade = Math.sin(i / steps * Math.PI / 2);
|
|
120
|
-
const cosFade = Math.cos(i / steps * Math.PI / 2);
|
|
121
|
-
const divisor = factor2 + factor2 * sinFade;
|
|
122
|
-
const offset = initialPad2 * cosFade;
|
|
123
|
-
return [
|
|
124
|
-
"let",
|
|
125
|
-
"density",
|
|
126
|
-
["+", ["/", ["number", ["get", "value"]], divisor], offset],
|
|
127
|
-
["interpolate", ["linear"], ["var", "density"], 0, lowUsageColor, 0.5, highUsageColor]
|
|
128
|
-
];
|
|
129
|
-
};
|
|
130
|
-
const fadedIn = layers.map((_) => false);
|
|
131
|
-
const fadeIn = async (id, index) => {
|
|
132
|
-
for (let i = steps; i >= 1; i--) {
|
|
133
|
-
map.setPaintProperty(id, "fill-color", dynamicFillColor(factor, initialPad, i * (180 / stepLength)));
|
|
134
|
-
await delay(stepLength);
|
|
135
|
-
}
|
|
136
|
-
fadedIn[index] = true;
|
|
137
|
-
};
|
|
138
|
-
const fadeOut = async (id, index) => {
|
|
139
|
-
for (let i = 1; i <= steps; i++) {
|
|
140
|
-
map.setPaintProperty(id, "fill-color", dynamicFillColor(factor, initialPad, i * (180 / stepLength)));
|
|
141
|
-
await delay(stepLength);
|
|
142
|
-
}
|
|
143
|
-
fadedIn[index] = false;
|
|
144
|
-
};
|
|
145
|
-
let started = false;
|
|
146
|
-
const startAnimation = async () => {
|
|
147
|
-
assertEx2(!started, "Animation Already Started");
|
|
148
|
-
started = true;
|
|
149
|
-
while (this.animationStarted) {
|
|
150
|
-
const upLayer = layerTick % layers.length;
|
|
151
|
-
const downLayer = (layerTick + 1) % layers.length;
|
|
152
|
-
const incomingSource = sourceTick % featureSet.length;
|
|
153
|
-
const outgoingSource = (sourceTick + 1) % featureSet.length;
|
|
154
|
-
if (fadedIn[upLayer]) {
|
|
155
|
-
this.updateLayer(map, layers[upLayer], sources[incomingSource]);
|
|
156
|
-
forget(fadeOut(layers[upLayer].id, upLayer));
|
|
157
|
-
}
|
|
158
|
-
if (!fadedIn[downLayer]) {
|
|
159
|
-
this.updateLayer(map, layers[downLayer], sources[outgoingSource]);
|
|
160
|
-
forget(fadeIn(layers[downLayer].id, downLayer));
|
|
161
|
-
}
|
|
162
|
-
while ((fadedIn[upLayer] || !fadedIn[downLayer]) && this.animationStarted) {
|
|
163
|
-
await delay(1e3);
|
|
164
|
-
}
|
|
165
|
-
layerTick++;
|
|
166
|
-
sourceTick++;
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
await startAnimation();
|
|
170
|
-
}
|
|
171
|
-
static updateLayer(map, layer, source) {
|
|
172
|
-
const existingSource = map.getSource(layer.source);
|
|
173
|
-
if (existingSource && source.data) {
|
|
174
|
-
existingSource.setData(source.data);
|
|
175
|
-
} else if (source) {
|
|
176
|
-
map.addSource(layer.source, source);
|
|
177
|
-
}
|
|
178
|
-
layer.update(map, true);
|
|
179
|
-
}
|
|
180
|
-
// Build layers each with the same features
|
|
181
|
-
initializeHeatMapSource(layers) {
|
|
182
|
-
const getSource = (_) => {
|
|
183
|
-
const featuresCollection = GeoJson2.featureCollection(this.config.features);
|
|
184
|
-
return GeoJson2.featuresSource(featuresCollection);
|
|
185
|
-
};
|
|
186
|
-
layers.forEach((layer, index) => {
|
|
187
|
-
const existingSource = this.config.map.getSource(layer.source);
|
|
188
|
-
const source = getSource(index);
|
|
189
|
-
if (existingSource) {
|
|
190
|
-
existingSource.setData(assertEx2(source.data));
|
|
191
|
-
} else {
|
|
192
|
-
this.config.map.addSource(layer.source, source);
|
|
193
|
-
}
|
|
194
|
-
layer.update(this.config.map, true);
|
|
195
|
-
});
|
|
196
|
-
return this;
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
// src/Contexts/MapBoxInstance/Context.ts
|
|
201
|
-
import { createContext } from "react";
|
|
202
|
-
var MapBoxInstanceContext = createContext({});
|
|
203
|
-
|
|
204
|
-
// src/Contexts/MapBoxInstance/useMapBoxInstance.tsx
|
|
205
|
-
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
206
|
-
import { useContext } from "react";
|
|
207
|
-
var useMapBoxInstance = () => {
|
|
208
|
-
const context = useContext(MapBoxInstanceContext);
|
|
209
|
-
assertEx3("map" in context, "useMapBoxInstance must be used within a MapBoxInstanceContext");
|
|
210
|
-
return context;
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
// src/Contexts/MapSettings/Context.ts
|
|
214
|
-
import { createContext as createContext2 } from "react";
|
|
215
|
-
var MapSettingsContext = createContext2({});
|
|
216
|
-
|
|
217
|
-
// src/Contexts/MapSettings/useMapSettings.tsx
|
|
218
|
-
import { useContext as useContext2 } from "react";
|
|
219
|
-
var useMapSettings = () => {
|
|
220
|
-
const context = useContext2(MapSettingsContext);
|
|
221
|
-
return context;
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
// src/Contexts/HeatMapInitializer/Context.ts
|
|
225
|
-
import { createContext as createContext3 } from "react";
|
|
226
|
-
var HeatMapInitializerContext = createContext3({});
|
|
227
|
-
|
|
228
|
-
// src/Contexts/HeatMapInitializer/Provider.tsx
|
|
229
|
-
import { jsx } from "react/jsx-runtime";
|
|
230
|
-
var HeatMapInitializerProvider = ({
|
|
231
|
-
children,
|
|
232
|
-
featureSets,
|
|
233
|
-
featureSetsLayers,
|
|
234
|
-
features,
|
|
235
|
-
fitToPadding,
|
|
236
|
-
heatMapColorProps,
|
|
237
|
-
layers,
|
|
238
|
-
zoom
|
|
239
|
-
}) => {
|
|
240
|
-
const [mapHeat, setMapHeat] = useState2();
|
|
241
|
-
const { options } = useDynamicPositioning();
|
|
242
|
-
const { mapSettings } = useMapSettings();
|
|
243
|
-
const { map, mapInitialized } = useMapBoxInstance();
|
|
244
|
-
const value = {
|
|
245
|
-
MapHeat: mapHeat,
|
|
246
|
-
heatMapColorProps
|
|
247
|
-
};
|
|
248
|
-
useEffect2(() => {
|
|
249
|
-
if (mapInitialized && featureSets?.length && featureSets[0].length && map && featureSetsLayers?.length) {
|
|
250
|
-
const { lowUsageColor, highUsageColor } = heatMapColorProps;
|
|
251
|
-
forget2(MapHeat.initializeAnimatedHeatMapSource(featureSetsLayers, featureSets, map, lowUsageColor, highUsageColor));
|
|
252
|
-
}
|
|
253
|
-
return () => {
|
|
254
|
-
MapHeat.animationStarted = false;
|
|
255
|
-
};
|
|
256
|
-
}, [featureSets, featureSetsLayers, mapInitialized, map, heatMapColorProps]);
|
|
257
|
-
useEffect2(() => {
|
|
258
|
-
if (mapHeat && mapInitialized && features?.length && layers?.length) {
|
|
259
|
-
mapHeat.initializeHeatMapSource(layers);
|
|
260
|
-
}
|
|
261
|
-
}, [mapHeat, features?.length, layers, mapInitialized]);
|
|
262
|
-
useEffect2(() => {
|
|
263
|
-
if (mapInitialized) {
|
|
264
|
-
const { fitToPoints } = mapSettings || {};
|
|
265
|
-
if (map) {
|
|
266
|
-
if (fitToPoints?.value === true) {
|
|
267
|
-
MapHeat.initialMapPositioning({ padding: fitToPadding }, map, features);
|
|
268
|
-
} else if (options.zoom && options.center) {
|
|
269
|
-
map.setZoom(options.zoom);
|
|
270
|
-
map.setCenter(options.center);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}, [mapHeat, map, mapSettings, fitToPadding, options, mapInitialized, features]);
|
|
275
|
-
useEffect2(() => {
|
|
276
|
-
if (map && features?.length) {
|
|
277
|
-
setMapHeat(new MapHeat({ features, map, zoom }));
|
|
278
|
-
}
|
|
279
|
-
}, [map, features, zoom]);
|
|
280
|
-
return /* @__PURE__ */ jsx(HeatMapInitializerContext.Provider, { value, children });
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
// src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx
|
|
284
|
-
import { assertEx as assertEx4 } from "@xylabs/assert";
|
|
285
|
-
import { useContext as useContext3 } from "react";
|
|
286
|
-
var useHeatMapInitializer = () => {
|
|
287
|
-
const context = useContext3(HeatMapInitializerContext);
|
|
288
|
-
assertEx4("heatMapInitialized" in context, "useHeatMapInitializer must be used within a HeatMapInitializerContext");
|
|
289
|
-
return context;
|
|
290
|
-
};
|
|
291
|
-
export {
|
|
292
|
-
HeatMapInitializerProvider,
|
|
293
|
-
useHeatMapInitializer
|
|
294
|
-
};
|
|
295
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/HeatMapInitializer/Provider.tsx","../../../../src/hooks/useDynamicPositioning.tsx","../../../../src/MapBoxClasses/MapBase.ts","../../../../src/MapBoxClasses/MapHeat.ts","../../../../src/Contexts/MapBoxInstance/Context.ts","../../../../src/Contexts/MapBoxInstance/useMapBoxInstance.tsx","../../../../src/Contexts/MapSettings/Context.ts","../../../../src/Contexts/MapSettings/useMapSettings.tsx","../../../../src/Contexts/HeatMapInitializer/Context.ts","../../../../src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx"],"sourcesContent":["import { forget } from '@xylabs/forget'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Feature, Polygon } from 'geojson'\nimport { useEffect, useState } from 'react'\n\nimport { AnimatedHeatMapColorProps, HeatMapColorProps } from '../../Colors'\nimport { useDynamicPositioning } from '../../hooks'\nimport { MapLayer } from '../../Layers'\nimport { MapHeat } from '../../MapBoxClasses'\nimport { useMapBoxInstance } from '../MapBoxInstance'\nimport { useMapSettings } from '../MapSettings'\nimport { HeatMapInitializerContext } from './Context'\nimport { HeatMapInitializerState } from './State'\n\nexport interface MapInitializerProviderProps {\n featureSets?: Feature<Polygon>[][]\n featureSetsLayers?: MapLayer[]\n features?: Feature<Polygon>[]\n fitToPadding?: number\n heatMapColorProps: HeatMapColorProps | AnimatedHeatMapColorProps\n layers?: MapLayer[]\n zoom?: number\n}\n\nexport const HeatMapInitializerProvider: React.FC<WithChildren<MapInitializerProviderProps>> = ({\n children,\n featureSets,\n featureSetsLayers,\n features,\n fitToPadding,\n heatMapColorProps,\n layers,\n zoom,\n}) => {\n const [mapHeat, setMapHeat] = useState<MapHeat>()\n const { options } = useDynamicPositioning()\n const { mapSettings } = useMapSettings()\n const { map, mapInitialized } = useMapBoxInstance()\n\n const value: HeatMapInitializerState = {\n MapHeat: mapHeat,\n heatMapColorProps,\n }\n\n useEffect(() => {\n if (mapInitialized && featureSets?.length && featureSets[0].length && map && featureSetsLayers?.length) {\n const { lowUsageColor, highUsageColor } = heatMapColorProps as AnimatedHeatMapColorProps\n forget(MapHeat.initializeAnimatedHeatMapSource(featureSetsLayers, featureSets, map, lowUsageColor, highUsageColor))\n }\n\n return () => {\n MapHeat.animationStarted = false\n }\n }, [featureSets, featureSetsLayers, mapInitialized, map, heatMapColorProps])\n\n useEffect(() => {\n if (mapHeat && mapInitialized && features?.length && layers?.length) {\n mapHeat.initializeHeatMapSource(layers)\n }\n }, [mapHeat, features?.length, layers, mapInitialized])\n\n useEffect(() => {\n if (mapInitialized) {\n const { fitToPoints } = mapSettings || {}\n\n if (map) {\n if (fitToPoints?.value === true) {\n MapHeat.initialMapPositioning({ padding: fitToPadding }, map, features)\n } else if (options.zoom && options.center) {\n map.setZoom(options.zoom)\n map.setCenter(options.center)\n }\n }\n }\n }, [mapHeat, map, mapSettings, fitToPadding, options, mapInitialized, features])\n\n useEffect(() => {\n if (map && features?.length) {\n // Every time we get a new map or features, we make a new class\n setMapHeat(new MapHeat({ features, map, zoom }))\n }\n }, [map, features, zoom])\n\n return <HeatMapInitializerContext.Provider value={value}>{children}</HeatMapInitializerContext.Provider>\n}\n","import { useWindowSize } from '@xylabs/react-shared'\nimport { MapboxOptions } from 'mapbox-gl'\nimport { useEffect, useState } from 'react'\n\n/**\n * Zoom level for the map\n *\n * Note: Changing zoom will require changes to Lat/Lng Ranges\n */\nconst defaultZoom = 1.6\n\n/**\n * Range of aspect ratio values (width / height = aspect ratio) to scale against degrees\n * On lower aspect ratios, the width is larger than the height and vice-versa for higher\n */\nconst defaultAspectRatioRange = [0.5, 2]\n\n/**\n * Lat/Lng ranges, the first index is the minimum and the second is the maximum\n * Index 0 is for portrait screens and centers on the Eastern Hemisphere\n * Index 1 is for wider screens near the Prime Meridian and north of the Equator\n *\n * Note: Values are based off the zoom level\n */\nconst latRange = [0.9121644205263664, 1.71785031559439]\nconst lngRange = [-81.4742014851959, 12.788958675506933]\n\n/**\n * Function to interpolate an aspect ratio value across a range of degrees and aspect ratios\n *\n * Inspired by - https://stackoverflow.com/questions/14224535/scaling-between-two-number-ranges\n *\n * @param aspectRatio aspect ratio to scale\n * @param degreeRange A latitude or longitude range (i.e. [minLat, maxLat])\n * @param aspectRatioRange A range of aspect ratios to scale against degreeRange parameter\n * @returns number\n */\nconst linearInterpolate = (aspectRatio: number, degreeRange: number[], aspectRatioRange?: number[]): number => {\n const [degreeMin, degreeMax] = degreeRange\n const [aspectRatioMin, aspectRatioMax] = aspectRatioRange || defaultAspectRatioRange\n\n const aspectRatioRangeSpan = aspectRatioMax - aspectRatioMin\n const degreeRangeSpan = degreeMax - degreeMin\n\n const percent = (aspectRatio - aspectRatioMin) / aspectRatioRangeSpan\n const scaledDegree = percent * degreeRangeSpan + degreeMin\n\n return scaledDegree\n}\n\nconst useDynamicPositioning = () => {\n const [options, setOptions] = useState<Partial<MapboxOptions>>({})\n const { width, height } = useWindowSize()\n\n useEffect(() => {\n if (width && height) {\n const aspectRatio = width / height\n\n setOptions({\n center: [linearInterpolate(aspectRatio, lngRange), linearInterpolate(aspectRatio, latRange)],\n zoom: defaultZoom,\n })\n }\n }, [height, width])\n\n return { options }\n}\n\nexport { useDynamicPositioning }\n","import { assertEx } from '@xylabs/assert'\nimport { GeoJson } from '@xyo-network/sdk-geo'\nimport { Feature, Geometry } from 'geojson'\n// eslint-disable-next-line no-restricted-imports\nimport { GeoJSONSource, Map } from 'mapbox-gl'\n\nimport { MapLayer } from '../Layers'\n\nexport interface MapBaseConfig<T extends Geometry> {\n features: Feature<T>[]\n map: Map\n requestLocation?: boolean\n zoom?: number\n}\n\nexport abstract class MapBase<T extends Geometry> {\n private _config: MapBaseConfig<T>\n\n constructor(config: MapBaseConfig<T>) {\n this._config = { requestLocation: true, zoom: 2, ...config }\n }\n\n get isMapReady() {\n return !!this._config.map\n }\n\n initializeMapSource(layer: MapLayer) {\n const getSource = () => {\n const featuresCollection = GeoJson.featureCollection(this._config.features)\n return GeoJson.featuresSource(featuresCollection)\n }\n\n const existingSource = this._config.map.getSource(layer.source as string) as GeoJSONSource\n const source = getSource()\n if (existingSource) {\n existingSource.setData(assertEx(source.data as GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry>))\n } else {\n this._config.map.addSource(layer.source as string, source)\n }\n layer.update(this._config.map, true)\n\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { forget } from '@xylabs/forget'\nimport { GeoJson } from '@xyo-network/sdk-geo'\nimport { Feature, Polygon } from 'geojson'\nimport { FitBoundsOptions, GeoJSONSource, GeoJSONSourceRaw, LngLatBounds, Map } from 'mapbox-gl'\n\nimport { MapLayer } from '../Layers'\nimport { MapBase, MapBaseConfig } from './MapBase'\n\nexport class MapHeat extends MapBase<Polygon> {\n static animationStarted = false\n\n config: MapBaseConfig<Polygon>\n constructor(config: MapBaseConfig<Polygon>) {\n super(config)\n this.config = config\n }\n\n static initialMapPositioning(options: FitBoundsOptions, map: Map, features?: Feature<Polygon>[], initialBounds?: LngLatBounds) {\n if (!features) {\n return\n }\n\n let bounds: LngLatBounds\n\n if (initialBounds) {\n bounds = initialBounds\n } else {\n bounds = new LngLatBounds()\n\n features.forEach((feature: Feature<Polygon>) => {\n feature.geometry.coordinates.forEach((coordinates) => {\n coordinates.forEach((position) => {\n bounds.extend(position as [number, number])\n })\n })\n })\n }\n\n map.setCenter(bounds.getCenter())\n map.fitBounds(bounds, options)\n return this\n }\n\n static async initializeAnimatedHeatMapSource(\n layers: MapLayer[],\n featureSet: Feature<Polygon>[][],\n map: Map,\n startColor?: string,\n endColor?: string,\n ) {\n this.animationStarted = true\n let layerTick = 0\n let sourceTick = 0\n\n const sources = featureSet.map((feature) => {\n const featuresCollection = GeoJson.featureCollection(feature)\n return GeoJson.featuresSource(featuresCollection)\n })\n this.updateLayer(map, layers[0], sources[0])\n this.updateLayer(map, layers[1], sources[1])\n\n layers.forEach((layer) => {\n map.setPaintProperty(layer.id, 'fill-opacity', 0)\n })\n\n const frameLength = 3000\n const initialPad = 0.5\n const factor = 10\n const steps = 30\n const stepLength = frameLength / steps\n const lowUsageColor = startColor ?? '#FFB3B3'\n const highUsageColor = endColor ?? '#FF0000'\n\n // Max density at i=0, min density at i=steps\n const dynamicFillColor = (factor: number, initialPad: number, i: number) => {\n const sinFade = Math.sin(((i / steps) * Math.PI) / 2)\n const cosFade = Math.cos(((i / steps) * Math.PI) / 2)\n // we want the divisor to always be at least 1x the desired factor but will go up to\n // 2x factor to account for combinative effect of the overlay of two layers at once\n const divisor = factor + factor * sinFade\n const offset = initialPad * cosFade\n return [\n 'let',\n 'density',\n ['+', ['/', ['number', ['get', 'value']], divisor], offset],\n ['interpolate', ['linear'], ['var', 'density'], 0, lowUsageColor, 0.5, highUsageColor],\n ]\n }\n\n const fadedIn: boolean[] = layers.map((_) => false)\n\n const fadeIn = async (id: string, index: number) => {\n for (let i = steps; i >= 1; i--) {\n map.setPaintProperty(id, 'fill-color', dynamicFillColor(factor, initialPad, i * (180 / stepLength)))\n await delay(stepLength)\n }\n fadedIn[index] = true\n }\n\n const fadeOut = async (id: string, index: number) => {\n for (let i = 1; i <= steps; i++) {\n map.setPaintProperty(id, 'fill-color', dynamicFillColor(factor, initialPad, i * (180 / stepLength)))\n await delay(stepLength)\n }\n fadedIn[index] = false\n }\n\n let started = false\n const startAnimation = async () => {\n assertEx(!started, 'Animation Already Started')\n started = true\n while (this.animationStarted) {\n const upLayer = layerTick % layers.length\n const downLayer = (layerTick + 1) % layers.length\n\n const incomingSource = sourceTick % featureSet.length\n const outgoingSource = (sourceTick + 1) % featureSet.length\n\n // console.log('incoming / outgoing source', incomingSource, outgoingSource)\n\n // console.log(`animate: [${upLayer}, ${downLayer}]`)\n if (fadedIn[upLayer]) {\n this.updateLayer(map, layers[upLayer], sources[incomingSource])\n forget(fadeOut(layers[upLayer].id, upLayer))\n }\n if (!fadedIn[downLayer]) {\n this.updateLayer(map, layers[downLayer], sources[outgoingSource])\n forget(fadeIn(layers[downLayer].id, downLayer))\n }\n while ((fadedIn[upLayer] || !fadedIn[downLayer]) && this.animationStarted) {\n // console.log(`checking: [${fadedIn[upLayer]}, ${!fadedIn[downLayer]}]`)\n await delay(1000)\n }\n layerTick++\n sourceTick++\n\n // console.log(`this.layerTick: ${layerTick}`)\n // console.log(`this.sourceTick: ${sourceTick}`)\n }\n }\n\n await startAnimation()\n }\n\n private static updateLayer(map: Map, layer: MapLayer, source: GeoJSONSourceRaw) {\n const existingSource = map.getSource(layer.source as string) as GeoJSONSource\n if (existingSource && source.data) {\n existingSource.setData(source.data as GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry>)\n } else if (source) {\n map.addSource(layer.source as string, source)\n }\n layer.update(map, true)\n }\n\n // Build layers each with the same features\n initializeHeatMapSource(layers: MapLayer[]) {\n const getSource = (_: number) => {\n const featuresCollection = GeoJson.featureCollection(this.config.features)\n return GeoJson.featuresSource(featuresCollection)\n }\n\n layers.forEach((layer, index) => {\n const existingSource = this.config.map.getSource(layer.source as string) as GeoJSONSource\n const source = getSource(index)\n if (existingSource) {\n existingSource.setData(assertEx(source.data) as GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry>)\n } else {\n this.config.map.addSource(layer.source as string, source)\n }\n layer.update(this.config.map, true)\n })\n\n return this\n }\n}\n","import { createContext } from 'react'\n\nimport { MapBoxInstanceState } from './State'\n\nconst MapBoxInstanceContext = createContext<MapBoxInstanceState>({})\n\nexport { MapBoxInstanceContext }\n","import { assertEx } from '@xylabs/assert'\nimport { useContext } from 'react'\n\nimport { MapBoxInstanceContext } from './Context'\n\nconst useMapBoxInstance = () => {\n const context = useContext(MapBoxInstanceContext)\n assertEx('map' in context, 'useMapBoxInstance must be used within a MapBoxInstanceContext')\n\n return context\n}\n\nexport { useMapBoxInstance }\n","import { createContext } from 'react'\n\nimport { MapSettingsState } from './State'\n\nconst MapSettingsContext = createContext<MapSettingsState>({})\n\nexport { MapSettingsContext }\n","import { useContext } from 'react'\n\nimport { MapSettingsContext } from './Context'\n\nconst useMapSettings = () => {\n const context = useContext(MapSettingsContext)\n\n return context\n}\n\nexport { useMapSettings }\n","import { createContext } from 'react'\n\nimport { HeatMapInitializerState } from './State'\n\nconst HeatMapInitializerContext = createContext<HeatMapInitializerState>({})\n\nexport { HeatMapInitializerContext }\n","import { assertEx } from '@xylabs/assert'\nimport { useContext } from 'react'\n\nimport { HeatMapInitializerContext } from './Context'\n\nconst useHeatMapInitializer = () => {\n const context = useContext(HeatMapInitializerContext)\n assertEx('heatMapInitialized' in context, 'useHeatMapInitializer must be used within a HeatMapInitializerContext')\n\n return context\n}\n\nexport { useHeatMapInitializer }\n"],"mappings":"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","names":["forget","useEffect","useState","assertEx","GeoJson","GeoJson","factor","initialPad","assertEx","assertEx","assertEx","createContext","useContext","useContext","createContext","useState","useEffect","forget","assertEx","useContext","useContext","assertEx"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx
|
|
21
|
-
var useHeatMapInitializer_exports = {};
|
|
22
|
-
__export(useHeatMapInitializer_exports, {
|
|
23
|
-
useHeatMapInitializer: () => useHeatMapInitializer
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(useHeatMapInitializer_exports);
|
|
26
|
-
var import_assert = require("@xylabs/assert");
|
|
27
|
-
var import_react2 = require("react");
|
|
28
|
-
|
|
29
|
-
// src/Contexts/HeatMapInitializer/Context.ts
|
|
30
|
-
var import_react = require("react");
|
|
31
|
-
var HeatMapInitializerContext = (0, import_react.createContext)({});
|
|
32
|
-
|
|
33
|
-
// src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx
|
|
34
|
-
var useHeatMapInitializer = () => {
|
|
35
|
-
const context = (0, import_react2.useContext)(HeatMapInitializerContext);
|
|
36
|
-
(0, import_assert.assertEx)("heatMapInitialized" in context, "useHeatMapInitializer must be used within a HeatMapInitializerContext");
|
|
37
|
-
return context;
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=useHeatMapInitializer.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx","../../../../src/Contexts/HeatMapInitializer/Context.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { useContext } from 'react'\n\nimport { HeatMapInitializerContext } from './Context'\n\nconst useHeatMapInitializer = () => {\n const context = useContext(HeatMapInitializerContext)\n assertEx('heatMapInitialized' in context, 'useHeatMapInitializer must be used within a HeatMapInitializerContext')\n\n return context\n}\n\nexport { useHeatMapInitializer }\n","import { createContext } from 'react'\n\nimport { HeatMapInitializerState } from './State'\n\nconst HeatMapInitializerContext = createContext<HeatMapInitializerState>({})\n\nexport { HeatMapInitializerContext }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AACzB,IAAAA,gBAA2B;;;ACD3B,mBAA8B;AAI9B,IAAM,gCAA4B,4BAAuC,CAAC,CAAC;;;ADC3E,IAAM,wBAAwB,MAAM;AAClC,QAAM,cAAU,0BAAW,yBAAyB;AACpD,8BAAS,wBAAwB,SAAS,uEAAuE;AAEjH,SAAO;AACT;","names":["import_react"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx
|
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
|
3
|
-
import { useContext } from "react";
|
|
4
|
-
|
|
5
|
-
// src/Contexts/HeatMapInitializer/Context.ts
|
|
6
|
-
import { createContext } from "react";
|
|
7
|
-
var HeatMapInitializerContext = createContext({});
|
|
8
|
-
|
|
9
|
-
// src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx
|
|
10
|
-
var useHeatMapInitializer = () => {
|
|
11
|
-
const context = useContext(HeatMapInitializerContext);
|
|
12
|
-
assertEx("heatMapInitialized" in context, "useHeatMapInitializer must be used within a HeatMapInitializerContext");
|
|
13
|
-
return context;
|
|
14
|
-
};
|
|
15
|
-
export {
|
|
16
|
-
useHeatMapInitializer
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=useHeatMapInitializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx","../../../../src/Contexts/HeatMapInitializer/Context.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { useContext } from 'react'\n\nimport { HeatMapInitializerContext } from './Context'\n\nconst useHeatMapInitializer = () => {\n const context = useContext(HeatMapInitializerContext)\n assertEx('heatMapInitialized' in context, 'useHeatMapInitializer must be used within a HeatMapInitializerContext')\n\n return context\n}\n\nexport { useHeatMapInitializer }\n","import { createContext } from 'react'\n\nimport { HeatMapInitializerState } from './State'\n\nconst HeatMapInitializerContext = createContext<HeatMapInitializerState>({})\n\nexport { HeatMapInitializerContext }\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;;;ACD3B,SAAS,qBAAqB;AAI9B,IAAM,4BAA4B,cAAuC,CAAC,CAAC;;;ADC3E,IAAM,wBAAwB,MAAM;AAClC,QAAM,UAAU,WAAW,yBAAyB;AACpD,WAAS,wBAAwB,SAAS,uEAAuE;AAEjH,SAAO;AACT;","names":[]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/Contexts/MapBoxInstance/Context.ts
|
|
21
|
-
var Context_exports = {};
|
|
22
|
-
__export(Context_exports, {
|
|
23
|
-
MapBoxInstanceContext: () => MapBoxInstanceContext
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(Context_exports);
|
|
26
|
-
var import_react = require("react");
|
|
27
|
-
var MapBoxInstanceContext = (0, import_react.createContext)({});
|
|
28
|
-
//# sourceMappingURL=Context.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/MapBoxInstance/Context.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport { MapBoxInstanceState } from './State'\n\nconst MapBoxInstanceContext = createContext<MapBoxInstanceState>({})\n\nexport { MapBoxInstanceContext }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAI9B,IAAM,4BAAwB,4BAAmC,CAAC,CAAC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/MapBoxInstance/Context.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport { MapBoxInstanceState } from './State'\n\nconst MapBoxInstanceContext = createContext<MapBoxInstanceState>({})\n\nexport { MapBoxInstanceContext }\n"],"mappings":";AAAA,SAAS,qBAAqB;AAI9B,IAAM,wBAAwB,cAAmC,CAAC,CAAC;","names":[]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/Contexts/MapBoxInstance/Provider.tsx
|
|
21
|
-
var Provider_exports = {};
|
|
22
|
-
__export(Provider_exports, {
|
|
23
|
-
MapBoxInstanceProvider: () => MapBoxInstanceProvider
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(Provider_exports);
|
|
26
|
-
var import_react2 = require("react");
|
|
27
|
-
|
|
28
|
-
// src/Contexts/MapBoxInstance/Context.ts
|
|
29
|
-
var import_react = require("react");
|
|
30
|
-
var MapBoxInstanceContext = (0, import_react.createContext)({});
|
|
31
|
-
|
|
32
|
-
// src/Contexts/MapBoxInstance/Provider.tsx
|
|
33
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
-
var MapBoxInstanceProvider = ({ children }) => {
|
|
35
|
-
const [map, setMapBoxInstance] = (0, import_react2.useState)();
|
|
36
|
-
const [mapInitialized, setMapInitialized] = (0, import_react2.useState)(false);
|
|
37
|
-
const value = { map, mapInitialized, setMapBoxInstance };
|
|
38
|
-
(0, import_react2.useEffect)(() => {
|
|
39
|
-
if (!mapInitialized && map) {
|
|
40
|
-
map?.on("load", () => {
|
|
41
|
-
setMapInitialized(true);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}, [map, mapInitialized, setMapInitialized]);
|
|
45
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapBoxInstanceContext.Provider, { value, children });
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=Provider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/MapBoxInstance/Provider.tsx","../../../../src/Contexts/MapBoxInstance/Context.ts"],"sourcesContent":["import { WithChildren } from '@xylabs/react-shared'\nimport { Map } from 'mapbox-gl'\nimport { useEffect, useState } from 'react'\n\nimport { MapBoxInstanceContext } from './Context'\nimport { MapBoxInstanceState } from './State'\n\nexport const MapBoxInstanceProvider: React.FC<WithChildren> = ({ children }) => {\n const [map, setMapBoxInstance] = useState<Map>()\n const [mapInitialized, setMapInitialized] = useState(false)\n\n const value: MapBoxInstanceState = { map, mapInitialized, setMapBoxInstance }\n\n useEffect(() => {\n if (!mapInitialized && map) {\n map?.on('load', () => {\n setMapInitialized(true)\n })\n }\n }, [map, mapInitialized, setMapInitialized])\n\n return <MapBoxInstanceContext.Provider value={value}>{children}</MapBoxInstanceContext.Provider>\n}\n","import { createContext } from 'react'\n\nimport { MapBoxInstanceState } from './State'\n\nconst MapBoxInstanceContext = createContext<MapBoxInstanceState>({})\n\nexport { MapBoxInstanceContext }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAAA,gBAAoC;;;ACFpC,mBAA8B;AAI9B,IAAM,4BAAwB,4BAAmC,CAAC,CAAC;;;ADiB1D;AAdF,IAAM,yBAAiD,CAAC,EAAE,SAAS,MAAM;AAC9E,QAAM,CAAC,KAAK,iBAAiB,QAAI,wBAAc;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,wBAAS,KAAK;AAE1D,QAAM,QAA6B,EAAE,KAAK,gBAAgB,kBAAkB;AAE5E,+BAAU,MAAM;AACd,QAAI,CAAC,kBAAkB,KAAK;AAC1B,WAAK,GAAG,QAAQ,MAAM;AACpB,0BAAkB,IAAI;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,gBAAgB,iBAAiB,CAAC;AAE3C,SAAO,4CAAC,sBAAsB,UAAtB,EAA+B,OAAe,UAAS;AACjE;","names":["import_react"]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// src/Contexts/MapBoxInstance/Provider.tsx
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
3
|
-
|
|
4
|
-
// src/Contexts/MapBoxInstance/Context.ts
|
|
5
|
-
import { createContext } from "react";
|
|
6
|
-
var MapBoxInstanceContext = createContext({});
|
|
7
|
-
|
|
8
|
-
// src/Contexts/MapBoxInstance/Provider.tsx
|
|
9
|
-
import { jsx } from "react/jsx-runtime";
|
|
10
|
-
var MapBoxInstanceProvider = ({ children }) => {
|
|
11
|
-
const [map, setMapBoxInstance] = useState();
|
|
12
|
-
const [mapInitialized, setMapInitialized] = useState(false);
|
|
13
|
-
const value = { map, mapInitialized, setMapBoxInstance };
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (!mapInitialized && map) {
|
|
16
|
-
map?.on("load", () => {
|
|
17
|
-
setMapInitialized(true);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}, [map, mapInitialized, setMapInitialized]);
|
|
21
|
-
return /* @__PURE__ */ jsx(MapBoxInstanceContext.Provider, { value, children });
|
|
22
|
-
};
|
|
23
|
-
export {
|
|
24
|
-
MapBoxInstanceProvider
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=Provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/MapBoxInstance/Provider.tsx","../../../../src/Contexts/MapBoxInstance/Context.ts"],"sourcesContent":["import { WithChildren } from '@xylabs/react-shared'\nimport { Map } from 'mapbox-gl'\nimport { useEffect, useState } from 'react'\n\nimport { MapBoxInstanceContext } from './Context'\nimport { MapBoxInstanceState } from './State'\n\nexport const MapBoxInstanceProvider: React.FC<WithChildren> = ({ children }) => {\n const [map, setMapBoxInstance] = useState<Map>()\n const [mapInitialized, setMapInitialized] = useState(false)\n\n const value: MapBoxInstanceState = { map, mapInitialized, setMapBoxInstance }\n\n useEffect(() => {\n if (!mapInitialized && map) {\n map?.on('load', () => {\n setMapInitialized(true)\n })\n }\n }, [map, mapInitialized, setMapInitialized])\n\n return <MapBoxInstanceContext.Provider value={value}>{children}</MapBoxInstanceContext.Provider>\n}\n","import { createContext } from 'react'\n\nimport { MapBoxInstanceState } from './State'\n\nconst MapBoxInstanceContext = createContext<MapBoxInstanceState>({})\n\nexport { MapBoxInstanceContext }\n"],"mappings":";AAEA,SAAS,WAAW,gBAAgB;;;ACFpC,SAAS,qBAAqB;AAI9B,IAAM,wBAAwB,cAAmC,CAAC,CAAC;;;ADiB1D;AAdF,IAAM,yBAAiD,CAAC,EAAE,SAAS,MAAM;AAC9E,QAAM,CAAC,KAAK,iBAAiB,IAAI,SAAc;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D,QAAM,QAA6B,EAAE,KAAK,gBAAgB,kBAAkB;AAE5E,YAAU,MAAM;AACd,QAAI,CAAC,kBAAkB,KAAK;AAC1B,WAAK,GAAG,QAAQ,MAAM;AACpB,0BAAkB,IAAI;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,gBAAgB,iBAAiB,CAAC;AAE3C,SAAO,oBAAC,sBAAsB,UAAtB,EAA+B,OAAe,UAAS;AACjE;","names":[]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
|
|
16
|
-
// src/Contexts/MapBoxInstance/State.ts
|
|
17
|
-
var State_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(State_exports);
|
|
19
|
-
//# sourceMappingURL=State.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Contexts/MapBoxInstance/State.ts"],"sourcesContent":["import { Map } from 'mapbox-gl'\nimport { Dispatch, SetStateAction } from 'react'\n\nexport interface MapBoxInstanceState {\n map?: Map\n mapInitialized?: boolean\n setMapBoxInstance?: Dispatch<SetStateAction<Map | undefined>>\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=State.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|