@xyo-network/react-map 2.26.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +70 -0
  3. package/dist/cjs/AnimatedHeatMapSettings.d.ts +2 -0
  4. package/dist/cjs/AnimatedHeatMapSettings.js +12 -0
  5. package/dist/cjs/AnimatedHeatMapSettings.js.map +1 -0
  6. package/dist/cjs/Colors/XyoMapColorProps.d.ts +16 -0
  7. package/dist/cjs/Colors/XyoMapColorProps.js +3 -0
  8. package/dist/cjs/Colors/XyoMapColorProps.js.map +1 -0
  9. package/dist/cjs/Colors/index.d.ts +1 -0
  10. package/dist/cjs/Colors/index.js +5 -0
  11. package/dist/cjs/Colors/index.js.map +1 -0
  12. package/dist/cjs/Components/AnimatedHeatMap.d.ts +14 -0
  13. package/dist/cjs/Components/AnimatedHeatMap.js +25 -0
  14. package/dist/cjs/Components/AnimatedHeatMap.js.map +1 -0
  15. package/dist/cjs/Components/AnimatedHetaMapLoaded.d.ts +6 -0
  16. package/dist/cjs/Components/AnimatedHetaMapLoaded.js +24 -0
  17. package/dist/cjs/Components/AnimatedHetaMapLoaded.js.map +1 -0
  18. package/dist/cjs/Components/FeaturesToLayersMap.d.ts +6 -0
  19. package/dist/cjs/Components/FeaturesToLayersMap.js +3 -0
  20. package/dist/cjs/Components/FeaturesToLayersMap.js.map +1 -0
  21. package/dist/cjs/Components/HeatMapSettings.d.ts +2 -0
  22. package/dist/cjs/Components/HeatMapSettings.js +11 -0
  23. package/dist/cjs/Components/HeatMapSettings.js.map +1 -0
  24. package/dist/cjs/Components/LayerAnimator.d.ts +12 -0
  25. package/dist/cjs/Components/LayerAnimator.js +94 -0
  26. package/dist/cjs/Components/LayerAnimator.js.map +1 -0
  27. package/dist/cjs/Components/Legend.d.ts +4 -0
  28. package/dist/cjs/Components/Legend.js +23 -0
  29. package/dist/cjs/Components/Legend.js.map +1 -0
  30. package/dist/cjs/Components/Legends/ColorGradient.d.ts +4 -0
  31. package/dist/cjs/Components/Legends/ColorGradient.js +14 -0
  32. package/dist/cjs/Components/Legends/ColorGradient.js.map +1 -0
  33. package/dist/cjs/Components/Legends/index.d.ts +1 -0
  34. package/dist/cjs/Components/Legends/index.js +5 -0
  35. package/dist/cjs/Components/Legends/index.js.map +1 -0
  36. package/dist/cjs/Components/MapBox.d.ts +10 -0
  37. package/dist/cjs/Components/MapBox.js +42 -0
  38. package/dist/cjs/Components/MapBox.js.map +1 -0
  39. package/dist/cjs/Components/MapBoxHeat.d.ts +3 -0
  40. package/dist/cjs/Components/MapBoxHeat.js +14 -0
  41. package/dist/cjs/Components/MapBoxHeat.js.map +1 -0
  42. package/dist/cjs/Components/MapBoxPoints.d.ts +9 -0
  43. package/dist/cjs/Components/MapBoxPoints.js +51 -0
  44. package/dist/cjs/Components/MapBoxPoints.js.map +1 -0
  45. package/dist/cjs/Components/MapSettingsComponents/Setting.d.ts +6 -0
  46. package/dist/cjs/Components/MapSettingsComponents/Setting.js +26 -0
  47. package/dist/cjs/Components/MapSettingsComponents/Setting.js.map +1 -0
  48. package/dist/cjs/Components/MapSettingsComponents/Settings.d.ts +3 -0
  49. package/dist/cjs/Components/MapSettingsComponents/Settings.js +18 -0
  50. package/dist/cjs/Components/MapSettingsComponents/Settings.js.map +1 -0
  51. package/dist/cjs/Components/MapSettingsComponents/index.d.ts +2 -0
  52. package/dist/cjs/Components/MapSettingsComponents/index.js +6 -0
  53. package/dist/cjs/Components/MapSettingsComponents/index.js.map +1 -0
  54. package/dist/cjs/Components/index.d.ts +11 -0
  55. package/dist/cjs/Components/index.js +15 -0
  56. package/dist/cjs/Components/index.js.map +1 -0
  57. package/dist/cjs/Contexts/HeatMapInitializer/Context.d.ts +4 -0
  58. package/dist/cjs/Contexts/HeatMapInitializer/Context.js +7 -0
  59. package/dist/cjs/Contexts/HeatMapInitializer/Context.js.map +1 -0
  60. package/dist/cjs/Contexts/HeatMapInitializer/Provider.d.ts +16 -0
  61. package/dist/cjs/Contexts/HeatMapInitializer/Provider.js +58 -0
  62. package/dist/cjs/Contexts/HeatMapInitializer/Provider.js.map +1 -0
  63. package/dist/cjs/Contexts/HeatMapInitializer/State.d.ts +6 -0
  64. package/dist/cjs/Contexts/HeatMapInitializer/State.js +3 -0
  65. package/dist/cjs/Contexts/HeatMapInitializer/State.js.map +1 -0
  66. package/dist/cjs/Contexts/HeatMapInitializer/index.d.ts +2 -0
  67. package/dist/cjs/Contexts/HeatMapInitializer/index.js +6 -0
  68. package/dist/cjs/Contexts/HeatMapInitializer/index.js.map +1 -0
  69. package/dist/cjs/Contexts/HeatMapInitializer/useHeatMapInitializer.d.ts +2 -0
  70. package/dist/cjs/Contexts/HeatMapInitializer/useHeatMapInitializer.js +13 -0
  71. package/dist/cjs/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +1 -0
  72. package/dist/cjs/Contexts/MapBoxInstance/Context.d.ts +4 -0
  73. package/dist/cjs/Contexts/MapBoxInstance/Context.js +7 -0
  74. package/dist/cjs/Contexts/MapBoxInstance/Context.js.map +1 -0
  75. package/dist/cjs/Contexts/MapBoxInstance/Provider.d.ts +3 -0
  76. package/dist/cjs/Contexts/MapBoxInstance/Provider.js +21 -0
  77. package/dist/cjs/Contexts/MapBoxInstance/Provider.js.map +1 -0
  78. package/dist/cjs/Contexts/MapBoxInstance/State.d.ts +7 -0
  79. package/dist/cjs/Contexts/MapBoxInstance/State.js +3 -0
  80. package/dist/cjs/Contexts/MapBoxInstance/State.js.map +1 -0
  81. package/dist/cjs/Contexts/MapBoxInstance/index.d.ts +2 -0
  82. package/dist/cjs/Contexts/MapBoxInstance/index.js +6 -0
  83. package/dist/cjs/Contexts/MapBoxInstance/index.js.map +1 -0
  84. package/dist/cjs/Contexts/MapBoxInstance/useMapBoxInstance.d.ts +2 -0
  85. package/dist/cjs/Contexts/MapBoxInstance/useMapBoxInstance.js +13 -0
  86. package/dist/cjs/Contexts/MapBoxInstance/useMapBoxInstance.js.map +1 -0
  87. package/dist/cjs/Contexts/MapSettings/Context.d.ts +4 -0
  88. package/dist/cjs/Contexts/MapSettings/Context.js +7 -0
  89. package/dist/cjs/Contexts/MapSettings/Context.js.map +1 -0
  90. package/dist/cjs/Contexts/MapSettings/Provider.d.ts +11 -0
  91. package/dist/cjs/Contexts/MapSettings/Provider.js +24 -0
  92. package/dist/cjs/Contexts/MapSettings/Provider.js.map +1 -0
  93. package/dist/cjs/Contexts/MapSettings/State.d.ts +6 -0
  94. package/dist/cjs/Contexts/MapSettings/State.js +3 -0
  95. package/dist/cjs/Contexts/MapSettings/State.js.map +1 -0
  96. package/dist/cjs/Contexts/MapSettings/index.d.ts +2 -0
  97. package/dist/cjs/Contexts/MapSettings/index.js +6 -0
  98. package/dist/cjs/Contexts/MapSettings/index.js.map +1 -0
  99. package/dist/cjs/Contexts/MapSettings/useMapSettings.d.ts +2 -0
  100. package/dist/cjs/Contexts/MapSettings/useMapSettings.js +13 -0
  101. package/dist/cjs/Contexts/MapSettings/useMapSettings.js.map +1 -0
  102. package/dist/cjs/Contexts/MapboxAccessToken/Context.d.ts +3 -0
  103. package/dist/cjs/Contexts/MapboxAccessToken/Context.js +6 -0
  104. package/dist/cjs/Contexts/MapboxAccessToken/Context.js.map +1 -0
  105. package/dist/cjs/Contexts/MapboxAccessToken/Provider.d.ts +6 -0
  106. package/dist/cjs/Contexts/MapboxAccessToken/Provider.js +14 -0
  107. package/dist/cjs/Contexts/MapboxAccessToken/Provider.js.map +1 -0
  108. package/dist/cjs/Contexts/MapboxAccessToken/State.d.ts +6 -0
  109. package/dist/cjs/Contexts/MapboxAccessToken/State.js +3 -0
  110. package/dist/cjs/Contexts/MapboxAccessToken/State.js.map +1 -0
  111. package/dist/cjs/Contexts/MapboxAccessToken/index.d.ts +4 -0
  112. package/dist/cjs/Contexts/MapboxAccessToken/index.js +8 -0
  113. package/dist/cjs/Contexts/MapboxAccessToken/index.js.map +1 -0
  114. package/dist/cjs/Contexts/MapboxAccessToken/use.d.ts +1 -0
  115. package/dist/cjs/Contexts/MapboxAccessToken/use.js +10 -0
  116. package/dist/cjs/Contexts/MapboxAccessToken/use.js.map +1 -0
  117. package/dist/cjs/Contexts/index.d.ts +4 -0
  118. package/dist/cjs/Contexts/index.js +8 -0
  119. package/dist/cjs/Contexts/index.js.map +1 -0
  120. package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilder.d.ts +12 -0
  121. package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilder.js +27 -0
  122. package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilder.js.map +1 -0
  123. package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilderAnimated.d.ts +2 -0
  124. package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +21 -0
  125. package/dist/cjs/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +1 -0
  126. package/dist/cjs/Layers/Builders/LocationPointsMapLayerBuilder.d.ts +6 -0
  127. package/dist/cjs/Layers/Builders/LocationPointsMapLayerBuilder.js +17 -0
  128. package/dist/cjs/Layers/Builders/LocationPointsMapLayerBuilder.js.map +1 -0
  129. package/dist/cjs/Layers/Builders/index.d.ts +3 -0
  130. package/dist/cjs/Layers/Builders/index.js +7 -0
  131. package/dist/cjs/Layers/Builders/index.js.map +1 -0
  132. package/dist/cjs/Layers/CircleLayer.d.ts +8 -0
  133. package/dist/cjs/Layers/CircleLayer.js +20 -0
  134. package/dist/cjs/Layers/CircleLayer.js.map +1 -0
  135. package/dist/cjs/Layers/Configs/HeatMapFillLayerConfig.d.ts +2 -0
  136. package/dist/cjs/Layers/Configs/HeatMapFillLayerConfig.js +11 -0
  137. package/dist/cjs/Layers/Configs/HeatMapFillLayerConfig.js.map +1 -0
  138. package/dist/cjs/Layers/Configs/HeatMapLineLayerConfig.d.ts +2 -0
  139. package/dist/cjs/Layers/Configs/HeatMapLineLayerConfig.js +16 -0
  140. package/dist/cjs/Layers/Configs/HeatMapLineLayerConfig.js.map +1 -0
  141. package/dist/cjs/Layers/Configs/HeatMapSymbolLayerConfig.d.ts +2 -0
  142. package/dist/cjs/Layers/Configs/HeatMapSymbolLayerConfig.js +16 -0
  143. package/dist/cjs/Layers/Configs/HeatMapSymbolLayerConfig.js.map +1 -0
  144. package/dist/cjs/Layers/Configs/LocationPointLayerConfig.d.ts +2 -0
  145. package/dist/cjs/Layers/Configs/LocationPointLayerConfig.js +14 -0
  146. package/dist/cjs/Layers/Configs/LocationPointLayerConfig.js.map +1 -0
  147. package/dist/cjs/Layers/Configs/index.d.ts +4 -0
  148. package/dist/cjs/Layers/Configs/index.js +8 -0
  149. package/dist/cjs/Layers/Configs/index.js.map +1 -0
  150. package/dist/cjs/Layers/FillLayer.d.ts +8 -0
  151. package/dist/cjs/Layers/FillLayer.js +17 -0
  152. package/dist/cjs/Layers/FillLayer.js.map +1 -0
  153. package/dist/cjs/Layers/LineLayer.d.ts +8 -0
  154. package/dist/cjs/Layers/LineLayer.js +17 -0
  155. package/dist/cjs/Layers/LineLayer.js.map +1 -0
  156. package/dist/cjs/Layers/SymbolLayer.d.ts +8 -0
  157. package/dist/cjs/Layers/SymbolLayer.js +17 -0
  158. package/dist/cjs/Layers/SymbolLayer.js.map +1 -0
  159. package/dist/cjs/Layers/XyoMapLayer.d.ts +5 -0
  160. package/dist/cjs/Layers/XyoMapLayer.js +3 -0
  161. package/dist/cjs/Layers/XyoMapLayer.js.map +1 -0
  162. package/dist/cjs/Layers/index.d.ts +7 -0
  163. package/dist/cjs/Layers/index.js +11 -0
  164. package/dist/cjs/Layers/index.js.map +1 -0
  165. package/dist/cjs/MapBoxClasses/XyoMapBase.d.ts +15 -0
  166. package/dist/cjs/MapBoxClasses/XyoMapBase.js +31 -0
  167. package/dist/cjs/MapBoxClasses/XyoMapBase.js.map +1 -0
  168. package/dist/cjs/MapBoxClasses/XyoMapHeat.d.ts +13 -0
  169. package/dist/cjs/MapBoxClasses/XyoMapHeat.js +146 -0
  170. package/dist/cjs/MapBoxClasses/XyoMapHeat.js.map +1 -0
  171. package/dist/cjs/MapBoxClasses/XyoMapPoints.d.ts +11 -0
  172. package/dist/cjs/MapBoxClasses/XyoMapPoints.js +29 -0
  173. package/dist/cjs/MapBoxClasses/XyoMapPoints.js.map +1 -0
  174. package/dist/cjs/MapBoxClasses/XyoMapSettings.d.ts +29 -0
  175. package/dist/cjs/MapBoxClasses/XyoMapSettings.js +107 -0
  176. package/dist/cjs/MapBoxClasses/XyoMapSettings.js.map +1 -0
  177. package/dist/cjs/MapBoxClasses/index.d.ts +4 -0
  178. package/dist/cjs/MapBoxClasses/index.js +8 -0
  179. package/dist/cjs/MapBoxClasses/index.js.map +1 -0
  180. package/dist/cjs/Settings/DefaultMapSettings.d.ts +2 -0
  181. package/dist/cjs/Settings/DefaultMapSettings.js +46 -0
  182. package/dist/cjs/Settings/DefaultMapSettings.js.map +1 -0
  183. package/dist/cjs/Settings/MapSetting.d.ts +11 -0
  184. package/dist/cjs/Settings/MapSetting.js +3 -0
  185. package/dist/cjs/Settings/MapSetting.js.map +1 -0
  186. package/dist/cjs/Settings/index.d.ts +2 -0
  187. package/dist/cjs/Settings/index.js +6 -0
  188. package/dist/cjs/Settings/index.js.map +1 -0
  189. package/dist/cjs/hooks/index.d.ts +5 -0
  190. package/dist/cjs/hooks/index.js +9 -0
  191. package/dist/cjs/hooks/index.js.map +1 -0
  192. package/dist/cjs/hooks/useDynamicPositioning.d.ts +5 -0
  193. package/dist/cjs/hooks/useDynamicPositioning.js +60 -0
  194. package/dist/cjs/hooks/useDynamicPositioning.js.map +1 -0
  195. package/dist/cjs/hooks/useFetchPayloads.d.ts +8 -0
  196. package/dist/cjs/hooks/useFetchPayloads.js +53 -0
  197. package/dist/cjs/hooks/useFetchPayloads.js.map +1 -0
  198. package/dist/cjs/hooks/useFindHashes.d.ts +2 -0
  199. package/dist/cjs/hooks/useFindHashes.js +17 -0
  200. package/dist/cjs/hooks/useFindHashes.js.map +1 -0
  201. package/dist/cjs/hooks/useHeatMapColors.d.ts +6 -0
  202. package/dist/cjs/hooks/useHeatMapColors.js +25 -0
  203. package/dist/cjs/hooks/useHeatMapColors.js.map +1 -0
  204. package/dist/cjs/hooks/useQuadKeyPayloadsToFeatures.d.ts +7 -0
  205. package/dist/cjs/hooks/useQuadKeyPayloadsToFeatures.js +40 -0
  206. package/dist/cjs/hooks/useQuadKeyPayloadsToFeatures.js.map +1 -0
  207. package/dist/cjs/index.d.ts +9 -0
  208. package/dist/cjs/index.js +13 -0
  209. package/dist/cjs/index.js.map +1 -0
  210. package/dist/cjs/lib/XyoMapBoxBaseProps.d.ts +17 -0
  211. package/dist/cjs/lib/XyoMapBoxBaseProps.js +3 -0
  212. package/dist/cjs/lib/XyoMapBoxBaseProps.js.map +1 -0
  213. package/dist/cjs/lib/XyoMapStyle.d.ts +8 -0
  214. package/dist/cjs/lib/XyoMapStyle.js +13 -0
  215. package/dist/cjs/lib/XyoMapStyle.js.map +1 -0
  216. package/dist/cjs/lib/index.d.ts +2 -0
  217. package/dist/cjs/lib/index.js +6 -0
  218. package/dist/cjs/lib/index.js.map +1 -0
  219. package/dist/cjs/types/NetworkLocationAnswerBase.d.ts +16 -0
  220. package/dist/cjs/types/NetworkLocationAnswerBase.js +3 -0
  221. package/dist/cjs/types/NetworkLocationAnswerBase.js.map +1 -0
  222. package/dist/cjs/types/index.d.ts +1 -0
  223. package/dist/cjs/types/index.js +5 -0
  224. package/dist/cjs/types/index.js.map +1 -0
  225. package/dist/docs.json +16 -0
  226. package/dist/esm/AnimatedHeatMapSettings.d.ts +2 -0
  227. package/dist/esm/AnimatedHeatMapSettings.js +9 -0
  228. package/dist/esm/AnimatedHeatMapSettings.js.map +1 -0
  229. package/dist/esm/Colors/XyoMapColorProps.d.ts +16 -0
  230. package/dist/esm/Colors/XyoMapColorProps.js +2 -0
  231. package/dist/esm/Colors/XyoMapColorProps.js.map +1 -0
  232. package/dist/esm/Colors/index.d.ts +1 -0
  233. package/dist/esm/Colors/index.js +2 -0
  234. package/dist/esm/Colors/index.js.map +1 -0
  235. package/dist/esm/Components/AnimatedHeatMap.d.ts +14 -0
  236. package/dist/esm/Components/AnimatedHeatMap.js +19 -0
  237. package/dist/esm/Components/AnimatedHeatMap.js.map +1 -0
  238. package/dist/esm/Components/AnimatedHetaMapLoaded.d.ts +6 -0
  239. package/dist/esm/Components/AnimatedHetaMapLoaded.js +18 -0
  240. package/dist/esm/Components/AnimatedHetaMapLoaded.js.map +1 -0
  241. package/dist/esm/Components/FeaturesToLayersMap.d.ts +6 -0
  242. package/dist/esm/Components/FeaturesToLayersMap.js +2 -0
  243. package/dist/esm/Components/FeaturesToLayersMap.js.map +1 -0
  244. package/dist/esm/Components/HeatMapSettings.d.ts +2 -0
  245. package/dist/esm/Components/HeatMapSettings.js +8 -0
  246. package/dist/esm/Components/HeatMapSettings.js.map +1 -0
  247. package/dist/esm/Components/LayerAnimator.d.ts +12 -0
  248. package/dist/esm/Components/LayerAnimator.js +91 -0
  249. package/dist/esm/Components/LayerAnimator.js.map +1 -0
  250. package/dist/esm/Components/Legend.d.ts +4 -0
  251. package/dist/esm/Components/Legend.js +18 -0
  252. package/dist/esm/Components/Legend.js.map +1 -0
  253. package/dist/esm/Components/Legends/ColorGradient.d.ts +4 -0
  254. package/dist/esm/Components/Legends/ColorGradient.js +9 -0
  255. package/dist/esm/Components/Legends/ColorGradient.js.map +1 -0
  256. package/dist/esm/Components/Legends/index.d.ts +1 -0
  257. package/dist/esm/Components/Legends/index.js +2 -0
  258. package/dist/esm/Components/Legends/index.js.map +1 -0
  259. package/dist/esm/Components/MapBox.d.ts +10 -0
  260. package/dist/esm/Components/MapBox.js +48 -0
  261. package/dist/esm/Components/MapBox.js.map +1 -0
  262. package/dist/esm/Components/MapBoxHeat.d.ts +3 -0
  263. package/dist/esm/Components/MapBoxHeat.js +8 -0
  264. package/dist/esm/Components/MapBoxHeat.js.map +1 -0
  265. package/dist/esm/Components/MapBoxPoints.d.ts +9 -0
  266. package/dist/esm/Components/MapBoxPoints.js +46 -0
  267. package/dist/esm/Components/MapBoxPoints.js.map +1 -0
  268. package/dist/esm/Components/MapSettingsComponents/Setting.d.ts +6 -0
  269. package/dist/esm/Components/MapSettingsComponents/Setting.js +20 -0
  270. package/dist/esm/Components/MapSettingsComponents/Setting.js.map +1 -0
  271. package/dist/esm/Components/MapSettingsComponents/Settings.d.ts +3 -0
  272. package/dist/esm/Components/MapSettingsComponents/Settings.js +14 -0
  273. package/dist/esm/Components/MapSettingsComponents/Settings.js.map +1 -0
  274. package/dist/esm/Components/MapSettingsComponents/index.d.ts +2 -0
  275. package/dist/esm/Components/MapSettingsComponents/index.js +3 -0
  276. package/dist/esm/Components/MapSettingsComponents/index.js.map +1 -0
  277. package/dist/esm/Components/index.d.ts +11 -0
  278. package/dist/esm/Components/index.js +12 -0
  279. package/dist/esm/Components/index.js.map +1 -0
  280. package/dist/esm/Contexts/HeatMapInitializer/Context.d.ts +4 -0
  281. package/dist/esm/Contexts/HeatMapInitializer/Context.js +4 -0
  282. package/dist/esm/Contexts/HeatMapInitializer/Context.js.map +1 -0
  283. package/dist/esm/Contexts/HeatMapInitializer/Provider.d.ts +16 -0
  284. package/dist/esm/Contexts/HeatMapInitializer/Provider.js +54 -0
  285. package/dist/esm/Contexts/HeatMapInitializer/Provider.js.map +1 -0
  286. package/dist/esm/Contexts/HeatMapInitializer/State.d.ts +6 -0
  287. package/dist/esm/Contexts/HeatMapInitializer/State.js +2 -0
  288. package/dist/esm/Contexts/HeatMapInitializer/State.js.map +1 -0
  289. package/dist/esm/Contexts/HeatMapInitializer/index.d.ts +2 -0
  290. package/dist/esm/Contexts/HeatMapInitializer/index.js +3 -0
  291. package/dist/esm/Contexts/HeatMapInitializer/index.js.map +1 -0
  292. package/dist/esm/Contexts/HeatMapInitializer/useHeatMapInitializer.d.ts +2 -0
  293. package/dist/esm/Contexts/HeatMapInitializer/useHeatMapInitializer.js +10 -0
  294. package/dist/esm/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +1 -0
  295. package/dist/esm/Contexts/MapBoxInstance/Context.d.ts +4 -0
  296. package/dist/esm/Contexts/MapBoxInstance/Context.js +4 -0
  297. package/dist/esm/Contexts/MapBoxInstance/Context.js.map +1 -0
  298. package/dist/esm/Contexts/MapBoxInstance/Provider.d.ts +3 -0
  299. package/dist/esm/Contexts/MapBoxInstance/Provider.js +17 -0
  300. package/dist/esm/Contexts/MapBoxInstance/Provider.js.map +1 -0
  301. package/dist/esm/Contexts/MapBoxInstance/State.d.ts +7 -0
  302. package/dist/esm/Contexts/MapBoxInstance/State.js +2 -0
  303. package/dist/esm/Contexts/MapBoxInstance/State.js.map +1 -0
  304. package/dist/esm/Contexts/MapBoxInstance/index.d.ts +2 -0
  305. package/dist/esm/Contexts/MapBoxInstance/index.js +3 -0
  306. package/dist/esm/Contexts/MapBoxInstance/index.js.map +1 -0
  307. package/dist/esm/Contexts/MapBoxInstance/useMapBoxInstance.d.ts +2 -0
  308. package/dist/esm/Contexts/MapBoxInstance/useMapBoxInstance.js +10 -0
  309. package/dist/esm/Contexts/MapBoxInstance/useMapBoxInstance.js.map +1 -0
  310. package/dist/esm/Contexts/MapSettings/Context.d.ts +4 -0
  311. package/dist/esm/Contexts/MapSettings/Context.js +4 -0
  312. package/dist/esm/Contexts/MapSettings/Context.js.map +1 -0
  313. package/dist/esm/Contexts/MapSettings/Provider.d.ts +11 -0
  314. package/dist/esm/Contexts/MapSettings/Provider.js +20 -0
  315. package/dist/esm/Contexts/MapSettings/Provider.js.map +1 -0
  316. package/dist/esm/Contexts/MapSettings/State.d.ts +6 -0
  317. package/dist/esm/Contexts/MapSettings/State.js +2 -0
  318. package/dist/esm/Contexts/MapSettings/State.js.map +1 -0
  319. package/dist/esm/Contexts/MapSettings/index.d.ts +2 -0
  320. package/dist/esm/Contexts/MapSettings/index.js +3 -0
  321. package/dist/esm/Contexts/MapSettings/index.js.map +1 -0
  322. package/dist/esm/Contexts/MapSettings/useMapSettings.d.ts +2 -0
  323. package/dist/esm/Contexts/MapSettings/useMapSettings.js +10 -0
  324. package/dist/esm/Contexts/MapSettings/useMapSettings.js.map +1 -0
  325. package/dist/esm/Contexts/MapboxAccessToken/Context.d.ts +3 -0
  326. package/dist/esm/Contexts/MapboxAccessToken/Context.js +3 -0
  327. package/dist/esm/Contexts/MapboxAccessToken/Context.js.map +1 -0
  328. package/dist/esm/Contexts/MapboxAccessToken/Provider.d.ts +6 -0
  329. package/dist/esm/Contexts/MapboxAccessToken/Provider.js +8 -0
  330. package/dist/esm/Contexts/MapboxAccessToken/Provider.js.map +1 -0
  331. package/dist/esm/Contexts/MapboxAccessToken/State.d.ts +6 -0
  332. package/dist/esm/Contexts/MapboxAccessToken/State.js +2 -0
  333. package/dist/esm/Contexts/MapboxAccessToken/State.js.map +1 -0
  334. package/dist/esm/Contexts/MapboxAccessToken/index.d.ts +4 -0
  335. package/dist/esm/Contexts/MapboxAccessToken/index.js +5 -0
  336. package/dist/esm/Contexts/MapboxAccessToken/index.js.map +1 -0
  337. package/dist/esm/Contexts/MapboxAccessToken/use.d.ts +1 -0
  338. package/dist/esm/Contexts/MapboxAccessToken/use.js +6 -0
  339. package/dist/esm/Contexts/MapboxAccessToken/use.js.map +1 -0
  340. package/dist/esm/Contexts/index.d.ts +4 -0
  341. package/dist/esm/Contexts/index.js +5 -0
  342. package/dist/esm/Contexts/index.js.map +1 -0
  343. package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilder.d.ts +12 -0
  344. package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilder.js +23 -0
  345. package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilder.js.map +1 -0
  346. package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilderAnimated.d.ts +2 -0
  347. package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +17 -0
  348. package/dist/esm/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +1 -0
  349. package/dist/esm/Layers/Builders/LocationPointsMapLayerBuilder.d.ts +6 -0
  350. package/dist/esm/Layers/Builders/LocationPointsMapLayerBuilder.js +13 -0
  351. package/dist/esm/Layers/Builders/LocationPointsMapLayerBuilder.js.map +1 -0
  352. package/dist/esm/Layers/Builders/index.d.ts +3 -0
  353. package/dist/esm/Layers/Builders/index.js +4 -0
  354. package/dist/esm/Layers/Builders/index.js.map +1 -0
  355. package/dist/esm/Layers/CircleLayer.d.ts +8 -0
  356. package/dist/esm/Layers/CircleLayer.js +24 -0
  357. package/dist/esm/Layers/CircleLayer.js.map +1 -0
  358. package/dist/esm/Layers/Configs/HeatMapFillLayerConfig.d.ts +2 -0
  359. package/dist/esm/Layers/Configs/HeatMapFillLayerConfig.js +7 -0
  360. package/dist/esm/Layers/Configs/HeatMapFillLayerConfig.js.map +1 -0
  361. package/dist/esm/Layers/Configs/HeatMapLineLayerConfig.d.ts +2 -0
  362. package/dist/esm/Layers/Configs/HeatMapLineLayerConfig.js +12 -0
  363. package/dist/esm/Layers/Configs/HeatMapLineLayerConfig.js.map +1 -0
  364. package/dist/esm/Layers/Configs/HeatMapSymbolLayerConfig.d.ts +2 -0
  365. package/dist/esm/Layers/Configs/HeatMapSymbolLayerConfig.js +12 -0
  366. package/dist/esm/Layers/Configs/HeatMapSymbolLayerConfig.js.map +1 -0
  367. package/dist/esm/Layers/Configs/LocationPointLayerConfig.d.ts +2 -0
  368. package/dist/esm/Layers/Configs/LocationPointLayerConfig.js +10 -0
  369. package/dist/esm/Layers/Configs/LocationPointLayerConfig.js.map +1 -0
  370. package/dist/esm/Layers/Configs/index.d.ts +4 -0
  371. package/dist/esm/Layers/Configs/index.js +5 -0
  372. package/dist/esm/Layers/Configs/index.js.map +1 -0
  373. package/dist/esm/Layers/FillLayer.d.ts +8 -0
  374. package/dist/esm/Layers/FillLayer.js +18 -0
  375. package/dist/esm/Layers/FillLayer.js.map +1 -0
  376. package/dist/esm/Layers/LineLayer.d.ts +8 -0
  377. package/dist/esm/Layers/LineLayer.js +19 -0
  378. package/dist/esm/Layers/LineLayer.js.map +1 -0
  379. package/dist/esm/Layers/SymbolLayer.d.ts +8 -0
  380. package/dist/esm/Layers/SymbolLayer.js +18 -0
  381. package/dist/esm/Layers/SymbolLayer.js.map +1 -0
  382. package/dist/esm/Layers/XyoMapLayer.d.ts +5 -0
  383. package/dist/esm/Layers/XyoMapLayer.js +2 -0
  384. package/dist/esm/Layers/XyoMapLayer.js.map +1 -0
  385. package/dist/esm/Layers/index.d.ts +7 -0
  386. package/dist/esm/Layers/index.js +8 -0
  387. package/dist/esm/Layers/index.js.map +1 -0
  388. package/dist/esm/MapBoxClasses/XyoMapBase.d.ts +15 -0
  389. package/dist/esm/MapBoxClasses/XyoMapBase.js +27 -0
  390. package/dist/esm/MapBoxClasses/XyoMapBase.js.map +1 -0
  391. package/dist/esm/MapBoxClasses/XyoMapHeat.d.ts +13 -0
  392. package/dist/esm/MapBoxClasses/XyoMapHeat.js +139 -0
  393. package/dist/esm/MapBoxClasses/XyoMapHeat.js.map +1 -0
  394. package/dist/esm/MapBoxClasses/XyoMapPoints.d.ts +11 -0
  395. package/dist/esm/MapBoxClasses/XyoMapPoints.js +25 -0
  396. package/dist/esm/MapBoxClasses/XyoMapPoints.js.map +1 -0
  397. package/dist/esm/MapBoxClasses/XyoMapSettings.d.ts +29 -0
  398. package/dist/esm/MapBoxClasses/XyoMapSettings.js +103 -0
  399. package/dist/esm/MapBoxClasses/XyoMapSettings.js.map +1 -0
  400. package/dist/esm/MapBoxClasses/index.d.ts +4 -0
  401. package/dist/esm/MapBoxClasses/index.js +5 -0
  402. package/dist/esm/MapBoxClasses/index.js.map +1 -0
  403. package/dist/esm/Settings/DefaultMapSettings.d.ts +2 -0
  404. package/dist/esm/Settings/DefaultMapSettings.js +42 -0
  405. package/dist/esm/Settings/DefaultMapSettings.js.map +1 -0
  406. package/dist/esm/Settings/MapSetting.d.ts +11 -0
  407. package/dist/esm/Settings/MapSetting.js +2 -0
  408. package/dist/esm/Settings/MapSetting.js.map +1 -0
  409. package/dist/esm/Settings/index.d.ts +2 -0
  410. package/dist/esm/Settings/index.js +3 -0
  411. package/dist/esm/Settings/index.js.map +1 -0
  412. package/dist/esm/hooks/index.d.ts +5 -0
  413. package/dist/esm/hooks/index.js +6 -0
  414. package/dist/esm/hooks/index.js.map +1 -0
  415. package/dist/esm/hooks/useDynamicPositioning.d.ts +5 -0
  416. package/dist/esm/hooks/useDynamicPositioning.js +57 -0
  417. package/dist/esm/hooks/useDynamicPositioning.js.map +1 -0
  418. package/dist/esm/hooks/useFetchPayloads.d.ts +8 -0
  419. package/dist/esm/hooks/useFetchPayloads.js +49 -0
  420. package/dist/esm/hooks/useFetchPayloads.js.map +1 -0
  421. package/dist/esm/hooks/useFindHashes.d.ts +2 -0
  422. package/dist/esm/hooks/useFindHashes.js +13 -0
  423. package/dist/esm/hooks/useFindHashes.js.map +1 -0
  424. package/dist/esm/hooks/useHeatMapColors.d.ts +6 -0
  425. package/dist/esm/hooks/useHeatMapColors.js +22 -0
  426. package/dist/esm/hooks/useHeatMapColors.js.map +1 -0
  427. package/dist/esm/hooks/useQuadKeyPayloadsToFeatures.d.ts +7 -0
  428. package/dist/esm/hooks/useQuadKeyPayloadsToFeatures.js +37 -0
  429. package/dist/esm/hooks/useQuadKeyPayloadsToFeatures.js.map +1 -0
  430. package/dist/esm/index.d.ts +9 -0
  431. package/dist/esm/index.js +10 -0
  432. package/dist/esm/index.js.map +1 -0
  433. package/dist/esm/lib/XyoMapBoxBaseProps.d.ts +17 -0
  434. package/dist/esm/lib/XyoMapBoxBaseProps.js +2 -0
  435. package/dist/esm/lib/XyoMapBoxBaseProps.js.map +1 -0
  436. package/dist/esm/lib/XyoMapStyle.d.ts +8 -0
  437. package/dist/esm/lib/XyoMapStyle.js +10 -0
  438. package/dist/esm/lib/XyoMapStyle.js.map +1 -0
  439. package/dist/esm/lib/index.d.ts +2 -0
  440. package/dist/esm/lib/index.js +3 -0
  441. package/dist/esm/lib/index.js.map +1 -0
  442. package/dist/esm/types/NetworkLocationAnswerBase.d.ts +16 -0
  443. package/dist/esm/types/NetworkLocationAnswerBase.js +2 -0
  444. package/dist/esm/types/NetworkLocationAnswerBase.js.map +1 -0
  445. package/dist/esm/types/index.d.ts +1 -0
  446. package/dist/esm/types/index.js +2 -0
  447. package/dist/esm/types/index.js.map +1 -0
  448. package/package.json +85 -0
  449. package/src/AnimatedHeatMapSettings.ts +10 -0
  450. package/src/Colors/XyoMapColorProps.ts +19 -0
  451. package/src/Colors/index.ts +1 -0
  452. package/src/Components/AnimatedHeatMap.tsx +56 -0
  453. package/src/Components/AnimatedHetaMapLoaded.tsx +40 -0
  454. package/src/Components/FeaturesToLayersMap.ts +8 -0
  455. package/src/Components/HeatMapSettings.ts +9 -0
  456. package/src/Components/LayerAnimator.tsx +119 -0
  457. package/src/Components/Legend.tsx +33 -0
  458. package/src/Components/Legends/ColorGradient.tsx +29 -0
  459. package/src/Components/Legends/index.ts +1 -0
  460. package/src/Components/MapBox.tsx +66 -0
  461. package/src/Components/MapBoxHeat.tsx +16 -0
  462. package/src/Components/MapBoxPoints.tsx +72 -0
  463. package/src/Components/MapSettingsComponents/Setting.tsx +27 -0
  464. package/src/Components/MapSettingsComponents/Settings.tsx +25 -0
  465. package/src/Components/MapSettingsComponents/index.tsx +2 -0
  466. package/src/Components/index.ts +11 -0
  467. package/src/Contexts/HeatMapInitializer/Context.ts +7 -0
  468. package/src/Contexts/HeatMapInitializer/Provider.tsx +85 -0
  469. package/src/Contexts/HeatMapInitializer/State.ts +7 -0
  470. package/src/Contexts/HeatMapInitializer/index.ts +2 -0
  471. package/src/Contexts/HeatMapInitializer/useHeatMapInitializer.tsx +13 -0
  472. package/src/Contexts/MapBoxInstance/Context.ts +7 -0
  473. package/src/Contexts/MapBoxInstance/Provider.tsx +23 -0
  474. package/src/Contexts/MapBoxInstance/State.ts +8 -0
  475. package/src/Contexts/MapBoxInstance/index.ts +2 -0
  476. package/src/Contexts/MapBoxInstance/useMapBoxInstance.tsx +13 -0
  477. package/src/Contexts/MapSettings/Context.ts +7 -0
  478. package/src/Contexts/MapSettings/Provider.tsx +33 -0
  479. package/src/Contexts/MapSettings/State.ts +8 -0
  480. package/src/Contexts/MapSettings/index.ts +2 -0
  481. package/src/Contexts/MapSettings/useMapSettings.tsx +13 -0
  482. package/src/Contexts/MapboxAccessToken/Context.ts +5 -0
  483. package/src/Contexts/MapboxAccessToken/Provider.tsx +14 -0
  484. package/src/Contexts/MapboxAccessToken/State.ts +7 -0
  485. package/src/Contexts/MapboxAccessToken/index.ts +4 -0
  486. package/src/Contexts/MapboxAccessToken/use.ts +7 -0
  487. package/src/Contexts/index.ts +4 -0
  488. package/src/Layers/Builders/LocationHeatMapLayerBuilder.ts +27 -0
  489. package/src/Layers/Builders/LocationHeatMapLayerBuilderAnimated.ts +21 -0
  490. package/src/Layers/Builders/LocationPointsMapLayerBuilder.ts +17 -0
  491. package/src/Layers/Builders/index.ts +3 -0
  492. package/src/Layers/CircleLayer.ts +29 -0
  493. package/src/Layers/Configs/HeatMapFillLayerConfig.ts +8 -0
  494. package/src/Layers/Configs/HeatMapLineLayerConfig.ts +13 -0
  495. package/src/Layers/Configs/HeatMapSymbolLayerConfig.ts +13 -0
  496. package/src/Layers/Configs/LocationPointLayerConfig.ts +11 -0
  497. package/src/Layers/Configs/index.ts +4 -0
  498. package/src/Layers/FillLayer.ts +23 -0
  499. package/src/Layers/LineLayer.ts +24 -0
  500. package/src/Layers/SymbolLayer.ts +23 -0
  501. package/src/Layers/XyoMapLayer.ts +7 -0
  502. package/src/Layers/index.ts +7 -0
  503. package/src/MapBoxClasses/XyoMapBase.ts +44 -0
  504. package/src/MapBoxClasses/XyoMapHeat.ts +164 -0
  505. package/src/MapBoxClasses/XyoMapPoints.ts +37 -0
  506. package/src/MapBoxClasses/XyoMapSettings.ts +130 -0
  507. package/src/MapBoxClasses/index.ts +4 -0
  508. package/src/Settings/DefaultMapSettings.ts +43 -0
  509. package/src/Settings/MapSetting.ts +11 -0
  510. package/src/Settings/index.ts +2 -0
  511. package/src/hooks/index.ts +5 -0
  512. package/src/hooks/useDynamicPositioning.tsx +69 -0
  513. package/src/hooks/useFetchPayloads.tsx +57 -0
  514. package/src/hooks/useFindHashes.tsx +16 -0
  515. package/src/hooks/useHeatMapColors.tsx +28 -0
  516. package/src/hooks/useQuadKeyPayloadsToFeatures.tsx +48 -0
  517. package/src/index.ts +9 -0
  518. package/src/lib/XyoMapBoxBaseProps.ts +19 -0
  519. package/src/lib/XyoMapStyle.ts +8 -0
  520. package/src/lib/index.ts +2 -0
  521. package/src/types/NetworkLocationAnswerBase.ts +10 -0
  522. package/src/types/index.ts +1 -0
@@ -0,0 +1 @@
1
+ export * from './ColorGradient'
@@ -0,0 +1,66 @@
1
+ // eslint-disable-next-line import/no-internal-modules
2
+ import 'mapbox-gl/dist/mapbox-gl.css'
3
+
4
+ import { Map, MapboxOptions } from 'mapbox-gl'
5
+ import { useEffect, useRef, useState } from 'react'
6
+
7
+ import { useMapBoxInstance, useMapSettings } from '../Contexts'
8
+ import { XyoMapStyle } from '../lib'
9
+
10
+ export interface MapBoxProps {
11
+ options?: Partial<MapboxOptions>
12
+ zoom?: number
13
+ darkMode?: boolean
14
+ accessToken: string
15
+ }
16
+
17
+ export const MapBox: React.FC<MapBoxProps> = ({ accessToken, darkMode = false, zoom = 2, options, ...props }) => {
18
+ const [map, setMap] = useState<Map>()
19
+ const mapContainerRef = useRef<HTMLDivElement | null>(null)
20
+ const { setMapBoxInstance } = useMapBoxInstance()
21
+ const { mapSettings } = useMapSettings()
22
+
23
+ useEffect(() => {
24
+ if (mapSettings?.preferDark?.value === true) {
25
+ map?.setStyle(`mapbox://styles/${XyoMapStyle.Dark}`)
26
+ } else {
27
+ map?.setStyle(`mapbox://styles/${darkMode ? XyoMapStyle.Dark : XyoMapStyle.Light}`)
28
+ }
29
+ }, [map, darkMode, mapSettings])
30
+
31
+ useEffect(() => {
32
+ const map = new Map({
33
+ accessToken,
34
+ center: [0, 0],
35
+ container: mapContainerRef.current ?? '',
36
+ style: `mapbox://styles/${XyoMapStyle.Light}`,
37
+ zoom,
38
+ ...options,
39
+ })
40
+
41
+ // Allow external components to control the map
42
+ setMapBoxInstance?.(map)
43
+ setMap(map)
44
+
45
+ console.log('Created Map')
46
+
47
+ return () => {
48
+ console.log('Removing Map')
49
+ map.remove()
50
+ }
51
+ }, [mapContainerRef, setMap, options, zoom, setMapBoxInstance, accessToken])
52
+
53
+ return (
54
+ <div
55
+ ref={(el) => (mapContainerRef.current = el)}
56
+ style={{
57
+ bottom: 0,
58
+ left: 0,
59
+ position: 'absolute',
60
+ right: 0,
61
+ top: 0,
62
+ ...props,
63
+ }}
64
+ />
65
+ )
66
+ }
@@ -0,0 +1,16 @@
1
+ import { FlexCol } from '@xylabs/react-flexbox'
2
+
3
+ import { XyoMapBoxBaseProps } from '../lib'
4
+ import { MapBox } from './MapBox'
5
+ import { MapSettings } from './MapSettingsComponents'
6
+
7
+ export const MapBoxHeat: React.FC<XyoMapBoxBaseProps> = ({ accessToken, children, mapBoxOptions, zoom, legend, ...props }) => {
8
+ return (
9
+ <FlexCol {...props}>
10
+ <MapBox accessToken={accessToken} options={mapBoxOptions} zoom={zoom} />
11
+ <MapSettings />
12
+ {legend}
13
+ {children}
14
+ </FlexCol>
15
+ )
16
+ }
@@ -0,0 +1,72 @@
1
+ import { Alert } from '@mui/material'
2
+ import { FlexCol } from '@xylabs/react-flexbox'
3
+ import { Feature, Point } from 'geojson'
4
+ import { useCallback, useEffect, useState } from 'react'
5
+
6
+ import { useMapBoxInstance, useMapSettings } from '../Contexts'
7
+ import { XyoMapBoxBaseProps } from '../lib'
8
+ import { XyoMapPoints } from '../MapBoxClasses'
9
+ import { MapBox } from './MapBox'
10
+ import { MapSettings } from './MapSettingsComponents'
11
+
12
+ interface MapBoxPointsProps extends XyoMapBoxBaseProps {
13
+ features?: Feature<Point>[]
14
+ accessToken: string
15
+ }
16
+
17
+ const MapBoxPoints: React.FC<MapBoxPointsProps> = ({ accessToken, features, layers, fitToPointsPadding = 20, zoom, ...props }) => {
18
+ const [MapPoints, setMapPoints] = useState<XyoMapPoints>()
19
+ const { mapSettings } = useMapSettings()
20
+ const { map, mapInitialized } = useMapBoxInstance()
21
+
22
+ const updateFeatures = useCallback(() => {
23
+ if (MapPoints?.isMapReady && features?.length) {
24
+ layers?.forEach((layer) => {
25
+ MapPoints.initializeMapSource(layer)
26
+ })
27
+ }
28
+ }, [MapPoints, features, layers])
29
+
30
+ const updateMapSetup = useCallback(() => {
31
+ const { fitToPoints } = mapSettings || {}
32
+
33
+ if (MapPoints && map) {
34
+ if (fitToPoints?.value === true) {
35
+ MapPoints.initialMapPositioning({ padding: fitToPointsPadding })
36
+ }
37
+ }
38
+ }, [MapPoints, map, mapSettings, fitToPointsPadding])
39
+
40
+ const reInitializeMap = useCallback(() => {
41
+ MapPoints?.initialMapPositioning({ padding: fitToPointsPadding })
42
+ updateFeatures()
43
+ }, [MapPoints, fitToPointsPadding, updateFeatures])
44
+
45
+ useEffect(() => {
46
+ if (map && features?.length) {
47
+ setMapPoints(new XyoMapPoints({ features, map, zoom }))
48
+ }
49
+ }, [map, features, zoom])
50
+
51
+ useEffect(() => {
52
+ if (mapInitialized) {
53
+ updateMapSetup()
54
+ reInitializeMap()
55
+ }
56
+ }, [mapInitialized, reInitializeMap, updateMapSetup])
57
+
58
+ return (
59
+ <FlexCol alignItems="stretch" {...props}>
60
+ {features ? (
61
+ <>
62
+ <MapBox accessToken={accessToken} zoom={zoom} />
63
+ <MapSettings />
64
+ </>
65
+ ) : (
66
+ <Alert severity="error">No data to show</Alert>
67
+ )}
68
+ </FlexCol>
69
+ )
70
+ }
71
+
72
+ export { MapBoxPoints }
@@ -0,0 +1,27 @@
1
+ import { FormControlLabel, Switch, SwitchProps } from '@mui/material'
2
+
3
+ import { useMapSettings } from '../../Contexts'
4
+
5
+ export interface MapSettingSwitchProps extends SwitchProps {
6
+ field: string
7
+ }
8
+
9
+ export const MapSettingSwitch: React.FC<MapSettingSwitchProps> = ({ field, ...props }) => {
10
+ const { mapSettings, setMapSettings } = useMapSettings()
11
+ const setting = mapSettings?.[field]
12
+
13
+ const onLocalChange = (event: React.ChangeEvent<HTMLInputElement>) => {
14
+ if (setting) {
15
+ setMapSettings?.((previous) => {
16
+ previous[setting.field].value = event.target.checked
17
+ return { ...previous }
18
+ })
19
+ }
20
+ }
21
+
22
+ if (setting?.devMode) {
23
+ return null
24
+ }
25
+
26
+ return setting?.hidden ? null : <FormControlLabel label={setting?.label} control={<Switch checked={setting?.value} onChange={onLocalChange} {...props} />} />
27
+ }
@@ -0,0 +1,25 @@
1
+ import { Paper, Stack } from '@mui/material'
2
+ import { FlexBoxProps, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'
3
+ import { useAppSettings } from '@xyo-network/react-app-settings'
4
+
5
+ import { useMapSettings } from '../../Contexts'
6
+ import { MapSettingSwitch } from './Setting'
7
+
8
+ export const MapSettings: React.FC<FlexBoxProps> = (props) => {
9
+ const { mapSettings } = useMapSettings()
10
+ const { developerMode } = useAppSettings()
11
+
12
+ return mapSettings && developerMode ? (
13
+ <FlexGrowRow bottom={36} left={10} position="absolute" {...props}>
14
+ <FlexRow paddingX={2}>
15
+ <Paper>
16
+ <Stack direction="row" spacing={1} marginX={1}>
17
+ {Object.keys(mapSettings).map((key, index) => {
18
+ return <MapSettingSwitch key={index} field={mapSettings[key].field} />
19
+ })}
20
+ </Stack>
21
+ </Paper>
22
+ </FlexRow>
23
+ </FlexGrowRow>
24
+ ) : null
25
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Setting'
2
+ export * from './Settings'
@@ -0,0 +1,11 @@
1
+ export * from './AnimatedHeatMap'
2
+ export * from './AnimatedHetaMapLoaded'
3
+ export * from './FeaturesToLayersMap'
4
+ export * from './HeatMapSettings'
5
+ export * from './LayerAnimator'
6
+ export * from './Legend'
7
+ export * from './Legends'
8
+ export * from './MapBox'
9
+ export * from './MapBoxHeat'
10
+ export * from './MapBoxPoints'
11
+ export * from './MapSettingsComponents'
@@ -0,0 +1,7 @@
1
+ import { createContext } from 'react'
2
+
3
+ import { HeatMapInitializerState } from './State'
4
+
5
+ const HeatMapInitializerContext = createContext<HeatMapInitializerState>({})
6
+
7
+ export { HeatMapInitializerContext }
@@ -0,0 +1,85 @@
1
+ import { WithChildren } from '@xylabs/react-shared'
2
+ import { forget } from '@xylabs/sdk-js'
3
+ import { Feature, Polygon } from 'geojson'
4
+ import { useEffect, useState } from 'react'
5
+
6
+ import { XyoAnimatedHeatMapColorProps, XyoHeatMapColorProps } from '../../Colors'
7
+ import { useDynamicPositioning } from '../../hooks'
8
+ import { XyoMapLayer } from '../../Layers'
9
+ import { XyoMapHeat } from '../../MapBoxClasses'
10
+ import { useMapBoxInstance } from '../MapBoxInstance'
11
+ import { useMapSettings } from '../MapSettings'
12
+ import { HeatMapInitializerContext } from './Context'
13
+ import { HeatMapInitializerState } from './State'
14
+
15
+ interface MapInitializerProviderProps {
16
+ features?: Feature<Polygon>[]
17
+ featureSets?: Feature<Polygon>[][]
18
+ featureSetsLayers?: XyoMapLayer[]
19
+ layers?: XyoMapLayer[]
20
+ zoom?: number
21
+ fitToPadding?: number
22
+ heatMapColorProps: XyoHeatMapColorProps | XyoAnimatedHeatMapColorProps
23
+ }
24
+
25
+ export const HeatMapInitializerProvider: React.FC<WithChildren<MapInitializerProviderProps>> = ({
26
+ children,
27
+ features,
28
+ featureSets,
29
+ featureSetsLayers,
30
+ zoom,
31
+ fitToPadding,
32
+ layers,
33
+ heatMapColorProps,
34
+ }) => {
35
+ const [MapHeat, setMapHeat] = useState<XyoMapHeat>()
36
+ const { options } = useDynamicPositioning()
37
+ const { mapSettings } = useMapSettings()
38
+ const { map, mapInitialized } = useMapBoxInstance()
39
+
40
+ const value: HeatMapInitializerState = {
41
+ MapHeat,
42
+ heatMapColorProps,
43
+ }
44
+
45
+ useEffect(() => {
46
+ if (mapInitialized && featureSets?.length && featureSets[0].length && map && featureSetsLayers?.length) {
47
+ const { lowUsageColor, highUsageColor } = heatMapColorProps as XyoAnimatedHeatMapColorProps
48
+ forget(XyoMapHeat.initializeAnimatedHeatMapSource(featureSetsLayers, featureSets, map, lowUsageColor, highUsageColor))
49
+ }
50
+
51
+ return () => {
52
+ XyoMapHeat.animationStarted = false
53
+ }
54
+ }, [featureSets, featureSetsLayers, mapInitialized, map, heatMapColorProps])
55
+
56
+ useEffect(() => {
57
+ if (MapHeat && mapInitialized && features?.length && layers?.length) {
58
+ MapHeat.initializeHeatMapSource(layers)
59
+ }
60
+ }, [MapHeat, features?.length, layers, mapInitialized])
61
+
62
+ useEffect(() => {
63
+ if (mapInitialized) {
64
+ const { fitToPoints } = mapSettings || {}
65
+
66
+ if (map) {
67
+ if (fitToPoints?.value === true) {
68
+ XyoMapHeat.initialMapPositioning({ padding: fitToPadding }, map, features)
69
+ } else if (options.zoom && options.center) {
70
+ map.setZoom(options.zoom)
71
+ map.setCenter(options.center)
72
+ }
73
+ }
74
+ }
75
+ }, [MapHeat, map, mapSettings, fitToPadding, options, mapInitialized, features])
76
+
77
+ useEffect(() => {
78
+ if (map && features?.length) {
79
+ // Every time we get a new map or features, we make a new class
80
+ setMapHeat(new XyoMapHeat({ features, map, zoom }))
81
+ }
82
+ }, [map, features, zoom])
83
+
84
+ return <HeatMapInitializerContext.Provider value={value}>{children}</HeatMapInitializerContext.Provider>
85
+ }
@@ -0,0 +1,7 @@
1
+ import { XyoHeatMapColorProps } from '../../Colors'
2
+ import { XyoMapHeat } from '../../MapBoxClasses'
3
+
4
+ export interface HeatMapInitializerState {
5
+ MapHeat?: XyoMapHeat
6
+ heatMapColorProps?: XyoHeatMapColorProps
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Provider'
2
+ export * from './useHeatMapInitializer'
@@ -0,0 +1,13 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import { useContext } from 'react'
3
+
4
+ import { HeatMapInitializerContext } from './Context'
5
+
6
+ const useHeatMapInitializer = () => {
7
+ const context = useContext(HeatMapInitializerContext)
8
+ assertEx('heatMapInitialized' in context, 'useHeatMapInitializer must be used within a HeatMapInitializerContext')
9
+
10
+ return context
11
+ }
12
+
13
+ export { useHeatMapInitializer }
@@ -0,0 +1,7 @@
1
+ import { createContext } from 'react'
2
+
3
+ import { MapBoxInstanceState } from './State'
4
+
5
+ const MapBoxInstanceContext = createContext<MapBoxInstanceState>({})
6
+
7
+ export { MapBoxInstanceContext }
@@ -0,0 +1,23 @@
1
+ import { WithChildren } from '@xylabs/react-shared'
2
+ import { Map } from 'mapbox-gl'
3
+ import { useEffect, useState } from 'react'
4
+
5
+ import { MapBoxInstanceContext } from './Context'
6
+ import { MapBoxInstanceState } from './State'
7
+
8
+ export const MapBoxInstanceProvider: React.FC<WithChildren> = ({ children }) => {
9
+ const [map, setMapBoxInstance] = useState<Map>()
10
+ const [mapInitialized, setMapInitialized] = useState(false)
11
+
12
+ const value: MapBoxInstanceState = { map, mapInitialized, setMapBoxInstance }
13
+
14
+ useEffect(() => {
15
+ if (!mapInitialized && map) {
16
+ map?.on('load', () => {
17
+ setMapInitialized(true)
18
+ })
19
+ }
20
+ }, [map, mapInitialized, setMapInitialized])
21
+
22
+ return <MapBoxInstanceContext.Provider value={value}>{children}</MapBoxInstanceContext.Provider>
23
+ }
@@ -0,0 +1,8 @@
1
+ import { Map } from 'mapbox-gl'
2
+ import { Dispatch, SetStateAction } from 'react'
3
+
4
+ export interface MapBoxInstanceState {
5
+ map?: Map
6
+ mapInitialized?: boolean
7
+ setMapBoxInstance?: Dispatch<SetStateAction<Map | undefined>>
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Provider'
2
+ export * from './useMapBoxInstance'
@@ -0,0 +1,13 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import { useContext } from 'react'
3
+
4
+ import { MapBoxInstanceContext } from './Context'
5
+
6
+ const useMapBoxInstance = () => {
7
+ const context = useContext(MapBoxInstanceContext)
8
+ assertEx('map' in context, 'useMapBoxInstance must be used within a MapBoxInstanceContext')
9
+
10
+ return context
11
+ }
12
+
13
+ export { useMapBoxInstance }
@@ -0,0 +1,7 @@
1
+ import { createContext } from 'react'
2
+
3
+ import { MapSettingsState } from './State'
4
+
5
+ const MapSettingsContext = createContext<MapSettingsState>({})
6
+
7
+ export { MapSettingsContext }
@@ -0,0 +1,33 @@
1
+ import { WithChildren } from '@xylabs/react-shared'
2
+ import { useEffect, useState } from 'react'
3
+
4
+ import { XyoMapSettings } from '../../MapBoxClasses'
5
+ import { MapSetting } from '../../Settings'
6
+ import { useMapBoxInstance } from '../MapBoxInstance'
7
+ import { MapSettingsContext } from './Context'
8
+ import { MapSettingsState } from './State'
9
+
10
+ interface MapSettingsProviderProps {
11
+ defaultMapSettings?: MapSetting
12
+ requestLocation?: boolean
13
+ zoom?: number
14
+ debugLayerName?: string
15
+ }
16
+
17
+ export const MapSettingsProvider: React.FC<WithChildren<MapSettingsProviderProps>> = ({ children, debugLayerName, defaultMapSettings, requestLocation, zoom = 1 }) => {
18
+ const [mapSettings, setMapSettings] = useState<MapSetting>(defaultMapSettings || {})
19
+ const { map, mapInitialized } = useMapBoxInstance()
20
+
21
+ const value: MapSettingsState = {
22
+ mapSettings,
23
+ setMapSettings,
24
+ }
25
+
26
+ useEffect(() => {
27
+ if (mapSettings && map && mapInitialized) {
28
+ XyoMapSettings.updateSettings({ debugLayerName, map, requestLocation, settings: mapSettings, zoom })
29
+ }
30
+ }, [debugLayerName, map, mapInitialized, mapSettings, requestLocation, zoom])
31
+
32
+ return <MapSettingsContext.Provider value={value}>{children}</MapSettingsContext.Provider>
33
+ }
@@ -0,0 +1,8 @@
1
+ import { Dispatch } from 'react'
2
+
3
+ import { MapSetting } from '../../Settings'
4
+
5
+ export interface MapSettingsState {
6
+ setMapSettings?: Dispatch<React.SetStateAction<MapSetting>>
7
+ mapSettings?: MapSetting
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Provider'
2
+ export * from './useMapSettings'
@@ -0,0 +1,13 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import { useContext } from 'react'
3
+
4
+ import { MapSettingsContext } from './Context'
5
+
6
+ const useMapSettings = () => {
7
+ const context = useContext(MapSettingsContext)
8
+ assertEx('mapSettings' in context, 'useMapSettings must be used within a MapSettingsContext')
9
+
10
+ return context
11
+ }
12
+
13
+ export { useMapSettings }
@@ -0,0 +1,5 @@
1
+ import { createContextEx } from '@xyo-network/react-shared'
2
+
3
+ import { MapboxAccessTokenContextState } from './State'
4
+
5
+ export const MapboxAccessTokenContext = createContextEx<MapboxAccessTokenContextState>()
@@ -0,0 +1,14 @@
1
+ import { WithChildren } from '@xylabs/react-shared'
2
+ import { useState } from 'react'
3
+
4
+ import { MapboxAccessTokenContext } from './Context'
5
+
6
+ export interface MapboxAccessTokenProviderProps {
7
+ defaultAccessToken?: string
8
+ }
9
+
10
+ export const MapboxAccessTokenProvider: React.FC<WithChildren<MapboxAccessTokenProviderProps>> = ({ defaultAccessToken, ...props }) => {
11
+ const [accessToken, setAccessToken] = useState<string>()
12
+
13
+ return <MapboxAccessTokenContext.Provider value={{ accessToken: accessToken ?? defaultAccessToken, provided: true, setAccessToken }} {...props} />
14
+ }
@@ -0,0 +1,7 @@
1
+ import { ContextExState } from '@xyo-network/react-shared'
2
+ import { Dispatch } from 'react'
3
+
4
+ export interface MapboxAccessTokenContextState extends ContextExState {
5
+ accessToken?: string
6
+ setAccessToken?: Dispatch<string>
7
+ }
@@ -0,0 +1,4 @@
1
+ export * from './Context'
2
+ export * from './Provider'
3
+ export * from './State'
4
+ export * from './use'
@@ -0,0 +1,7 @@
1
+ import { useContextEx } from '@xyo-network/react-shared'
2
+
3
+ import { MapboxAccessTokenContext } from './Context'
4
+
5
+ export const useMapboxAccessToken = (required = false) => {
6
+ return useContextEx(MapboxAccessTokenContext, 'MapboxAccessToken', required)
7
+ }
@@ -0,0 +1,4 @@
1
+ export * from './HeatMapInitializer'
2
+ export * from './MapboxAccessToken'
3
+ export * from './MapBoxInstance'
4
+ export * from './MapSettings'
@@ -0,0 +1,27 @@
1
+ import { HeatMapFillLayerConfig, HeatMapLineLayerConfig, HeatMapSymbolLayerConfig } from '../Configs'
2
+ import { FillLayerBuilder } from '../FillLayer'
3
+ import { LineLayerBuilder } from '../LineLayer'
4
+ import { SymbolLayerBuilder } from '../SymbolLayer'
5
+
6
+ export const MapHeatConstants = {
7
+ LocationDebugLayerId: 'location-debug-id',
8
+ LocationDebugLayerSource: 'location-debug-source',
9
+ LocationFillLayerId: 'location-fill-id',
10
+ LocationFillLayerSource: 'location-fill-source',
11
+ LocationLineLayerId: 'location-line-id',
12
+ LocationLineLayerSource: 'location-line-source',
13
+ }
14
+
15
+ export const LocationHeatMapLayerBuilder = (color: string, alternateColor = '#000') => {
16
+ const { LocationFillLayerId, LocationFillLayerSource, LocationLineLayerId, LocationLineLayerSource, LocationDebugLayerId, LocationDebugLayerSource } = MapHeatConstants
17
+
18
+ const fillLayerConfig = HeatMapFillLayerConfig(color)
19
+ const lineLayerConfig = HeatMapLineLayerConfig(color)
20
+ const debugLayerConfig = HeatMapSymbolLayerConfig(alternateColor)
21
+
22
+ const fillLayer = new FillLayerBuilder(LocationFillLayerId, LocationFillLayerSource, fillLayerConfig)
23
+ const lineLayer = new LineLayerBuilder(LocationLineLayerId, LocationLineLayerSource, lineLayerConfig)
24
+ const debugLayer = new SymbolLayerBuilder(LocationDebugLayerId, LocationDebugLayerSource, debugLayerConfig)
25
+
26
+ return [fillLayer, lineLayer, debugLayer]
27
+ }
@@ -0,0 +1,21 @@
1
+ import { HeatMapFillLayerConfig } from '../Configs'
2
+ import { FillLayerBuilder } from '../FillLayer'
3
+
4
+ const MapHeatConstants = (index: number, type: string) => ({
5
+ LocationDebugLayerId: `location-${type}-debug-id-${index}`,
6
+ LocationDebugLayerSource: `location-${type}-debug-source-${index}`,
7
+ LocationFillLayerId: `location-${type}-fill-id-${index}`,
8
+ LocationFillLayerSource: `location-${type}-fill-source-${index}`,
9
+ LocationLineLayerId: `location-${type}-line-id-${index}`,
10
+ LocationLineLayerSource: `location-${type}-line-source-${index}`,
11
+ })
12
+
13
+ export const LocationHeatMapLayerBuilderAnimated = (color: string, index: number, type = '') => {
14
+ const { LocationFillLayerId, LocationFillLayerSource } = MapHeatConstants(index, type)
15
+
16
+ const fillLayerConfig = HeatMapFillLayerConfig(color)
17
+
18
+ const fillLayer = new FillLayerBuilder(LocationFillLayerId, LocationFillLayerSource, fillLayerConfig)
19
+
20
+ return fillLayer
21
+ }
@@ -0,0 +1,17 @@
1
+ import { CircleLayerBuilder } from '../CircleLayer'
2
+ import { LocationPointLayerConfig } from '../Configs'
3
+
4
+ export const MapPointsConstants = {
5
+ LocationDotsLayerId: 'location-dots',
6
+ LocationDotsLayerSource: 'location-dots-source',
7
+ }
8
+
9
+ export const LocationPointsMapLayerBuilder = (color: string, circleRadius = 6, circleOpacity = 0.8) => {
10
+ const { LocationDotsLayerId, LocationDotsLayerSource } = MapPointsConstants
11
+
12
+ const dotLayerConfig = LocationPointLayerConfig(color, circleRadius, circleOpacity)
13
+
14
+ const dotLayer = new CircleLayerBuilder(LocationDotsLayerId, LocationDotsLayerSource, dotLayerConfig)
15
+
16
+ return [dotLayer]
17
+ }
@@ -0,0 +1,3 @@
1
+ export * from './LocationHeatMapLayerBuilder'
2
+ export * from './LocationHeatMapLayerBuilderAnimated'
3
+ export * from './LocationPointsMapLayerBuilder'
@@ -0,0 +1,29 @@
1
+ import { LayerBase } from '@xyo-network/sdk-geo'
2
+ // eslint-disable-next-line no-restricted-imports
3
+ import { CircleLayer } from 'mapbox-gl'
4
+
5
+ export class CircleLayerBuilder extends LayerBase<CircleLayer> {
6
+ CircleLayerOptions: Partial<CircleLayer>
7
+
8
+ // ensures this class passes for `AnyLayer` type in MapBox
9
+ type: 'circle' = 'circle'
10
+
11
+ constructor(id: string, source: string, CircleLayerOptions?: Partial<CircleLayer>) {
12
+ super(id, source)
13
+ this.CircleLayerOptions = CircleLayerOptions || { id: this.id, source: this.source, type: 'circle' }
14
+ }
15
+ buildLayer(): CircleLayer {
16
+ return {
17
+ filter: ['==', '$type', 'Point'],
18
+ layout: {},
19
+ paint: {
20
+ 'circle-color': '#ff0000',
21
+ 'circle-radius': 6,
22
+ },
23
+ type: this.type,
24
+ ...this.CircleLayerOptions,
25
+ id: this.id,
26
+ source: this.source,
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,8 @@
1
+ import { FillLayer } from 'mapbox-gl'
2
+
3
+ export const HeatMapFillLayerConfig: (color: string) => Partial<FillLayer> = (color) => ({
4
+ paint: {
5
+ 'fill-color': color,
6
+ 'fill-opacity': ['let', 'density', ['+', ['/', ['number', ['get', 'value']], 4], 0.125], ['interpolate', ['linear'], ['var', 'density'], 0.8, ['var', 'density'], 1, 0.85]],
7
+ },
8
+ })