@xyo-network/react-map 2.64.9 → 2.65.0

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 (586) hide show
  1. package/package.json +15 -15
  2. package/dist/browser/AnimatedHeatMapSettings.cjs +0 -87
  3. package/dist/browser/AnimatedHeatMapSettings.cjs.map +0 -1
  4. package/dist/browser/AnimatedHeatMapSettings.js +0 -64
  5. package/dist/browser/AnimatedHeatMapSettings.js.map +0 -1
  6. package/dist/browser/Colors/MapColorProps.cjs +0 -19
  7. package/dist/browser/Colors/MapColorProps.cjs.map +0 -1
  8. package/dist/browser/Colors/MapColorProps.js +0 -1
  9. package/dist/browser/Colors/MapColorProps.js.map +0 -1
  10. package/dist/browser/Colors/index.cjs +0 -19
  11. package/dist/browser/Colors/index.cjs.map +0 -1
  12. package/dist/browser/Colors/index.js +0 -1
  13. package/dist/browser/Colors/index.js.map +0 -1
  14. package/dist/browser/Components/AnimatedHeatMap.cjs +0 -673
  15. package/dist/browser/Components/AnimatedHeatMap.cjs.map +0 -1
  16. package/dist/browser/Components/AnimatedHeatMap.js +0 -652
  17. package/dist/browser/Components/AnimatedHeatMap.js.map +0 -1
  18. package/dist/browser/Components/AnimatedHeatMapLoaded.cjs +0 -913
  19. package/dist/browser/Components/AnimatedHeatMapLoaded.cjs.map +0 -1
  20. package/dist/browser/Components/AnimatedHeatMapLoaded.js +0 -892
  21. package/dist/browser/Components/AnimatedHeatMapLoaded.js.map +0 -1
  22. package/dist/browser/Components/FeaturesToLayersMap.cjs +0 -19
  23. package/dist/browser/Components/FeaturesToLayersMap.cjs.map +0 -1
  24. package/dist/browser/Components/FeaturesToLayersMap.js +0 -1
  25. package/dist/browser/Components/FeaturesToLayersMap.js.map +0 -1
  26. package/dist/browser/Components/HeatMapSettings.cjs +0 -86
  27. package/dist/browser/Components/HeatMapSettings.cjs.map +0 -1
  28. package/dist/browser/Components/HeatMapSettings.js +0 -63
  29. package/dist/browser/Components/HeatMapSettings.js.map +0 -1
  30. package/dist/browser/Components/LayerAnimator.cjs +0 -116
  31. package/dist/browser/Components/LayerAnimator.cjs.map +0 -1
  32. package/dist/browser/Components/LayerAnimator.js +0 -95
  33. package/dist/browser/Components/LayerAnimator.js.map +0 -1
  34. package/dist/browser/Components/Legend.cjs +0 -77
  35. package/dist/browser/Components/Legend.cjs.map +0 -1
  36. package/dist/browser/Components/Legend.js +0 -56
  37. package/dist/browser/Components/Legend.js.map +0 -1
  38. package/dist/browser/Components/Legends/ColorGradient.cjs +0 -47
  39. package/dist/browser/Components/Legends/ColorGradient.cjs.map +0 -1
  40. package/dist/browser/Components/Legends/ColorGradient.js +0 -26
  41. package/dist/browser/Components/Legends/ColorGradient.js.map +0 -1
  42. package/dist/browser/Components/Legends/index.cjs +0 -49
  43. package/dist/browser/Components/Legends/index.cjs.map +0 -1
  44. package/dist/browser/Components/Legends/index.js +0 -26
  45. package/dist/browser/Components/Legends/index.js.map +0 -1
  46. package/dist/browser/Components/MapBox.cjs +0 -134
  47. package/dist/browser/Components/MapBox.cjs.map +0 -1
  48. package/dist/browser/Components/MapBox.js +0 -113
  49. package/dist/browser/Components/MapBox.js.map +0 -1
  50. package/dist/browser/Components/MapBoxHeat.cjs +0 -182
  51. package/dist/browser/Components/MapBoxHeat.cjs.map +0 -1
  52. package/dist/browser/Components/MapBoxHeat.js +0 -161
  53. package/dist/browser/Components/MapBoxHeat.js.map +0 -1
  54. package/dist/browser/Components/MapBoxPoints.cjs +0 -280
  55. package/dist/browser/Components/MapBoxPoints.cjs.map +0 -1
  56. package/dist/browser/Components/MapBoxPoints.js +0 -259
  57. package/dist/browser/Components/MapBoxPoints.js.map +0 -1
  58. package/dist/browser/Components/MapSettingsComponents/Setting.cjs +0 -57
  59. package/dist/browser/Components/MapSettingsComponents/Setting.cjs.map +0 -1
  60. package/dist/browser/Components/MapSettingsComponents/Setting.js +0 -36
  61. package/dist/browser/Components/MapSettingsComponents/Setting.js.map +0 -1
  62. package/dist/browser/Components/MapSettingsComponents/SettingsBox.cjs +0 -71
  63. package/dist/browser/Components/MapSettingsComponents/SettingsBox.cjs.map +0 -1
  64. package/dist/browser/Components/MapSettingsComponents/SettingsBox.js +0 -50
  65. package/dist/browser/Components/MapSettingsComponents/SettingsBox.js.map +0 -1
  66. package/dist/browser/Components/MapSettingsComponents/index.cjs +0 -74
  67. package/dist/browser/Components/MapSettingsComponents/index.cjs.map +0 -1
  68. package/dist/browser/Components/MapSettingsComponents/index.js +0 -51
  69. package/dist/browser/Components/MapSettingsComponents/index.js.map +0 -1
  70. package/dist/browser/Components/index.cjs +0 -1108
  71. package/dist/browser/Components/index.cjs.map +0 -1
  72. package/dist/browser/Components/index.js +0 -1085
  73. package/dist/browser/Components/index.js.map +0 -1
  74. package/dist/browser/Contexts/HeatMapInitializer/Context.cjs +0 -28
  75. package/dist/browser/Contexts/HeatMapInitializer/Context.cjs.map +0 -1
  76. package/dist/browser/Contexts/HeatMapInitializer/Context.js +0 -7
  77. package/dist/browser/Contexts/HeatMapInitializer/Context.js.map +0 -1
  78. package/dist/browser/Contexts/HeatMapInitializer/Provider.cjs +0 -306
  79. package/dist/browser/Contexts/HeatMapInitializer/Provider.cjs.map +0 -1
  80. package/dist/browser/Contexts/HeatMapInitializer/Provider.js +0 -285
  81. package/dist/browser/Contexts/HeatMapInitializer/Provider.js.map +0 -1
  82. package/dist/browser/Contexts/HeatMapInitializer/State.cjs +0 -19
  83. package/dist/browser/Contexts/HeatMapInitializer/State.cjs.map +0 -1
  84. package/dist/browser/Contexts/HeatMapInitializer/State.js +0 -1
  85. package/dist/browser/Contexts/HeatMapInitializer/State.js.map +0 -1
  86. package/dist/browser/Contexts/HeatMapInitializer/index.cjs +0 -318
  87. package/dist/browser/Contexts/HeatMapInitializer/index.cjs.map +0 -1
  88. package/dist/browser/Contexts/HeatMapInitializer/index.js +0 -295
  89. package/dist/browser/Contexts/HeatMapInitializer/index.js.map +0 -1
  90. package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs +0 -39
  91. package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs.map +0 -1
  92. package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.js +0 -18
  93. package/dist/browser/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +0 -1
  94. package/dist/browser/Contexts/MapBoxInstance/Context.cjs +0 -28
  95. package/dist/browser/Contexts/MapBoxInstance/Context.cjs.map +0 -1
  96. package/dist/browser/Contexts/MapBoxInstance/Context.js +0 -7
  97. package/dist/browser/Contexts/MapBoxInstance/Context.js.map +0 -1
  98. package/dist/browser/Contexts/MapBoxInstance/Provider.cjs +0 -47
  99. package/dist/browser/Contexts/MapBoxInstance/Provider.cjs.map +0 -1
  100. package/dist/browser/Contexts/MapBoxInstance/Provider.js +0 -26
  101. package/dist/browser/Contexts/MapBoxInstance/Provider.js.map +0 -1
  102. package/dist/browser/Contexts/MapBoxInstance/State.cjs +0 -19
  103. package/dist/browser/Contexts/MapBoxInstance/State.cjs.map +0 -1
  104. package/dist/browser/Contexts/MapBoxInstance/State.js +0 -1
  105. package/dist/browser/Contexts/MapBoxInstance/State.js.map +0 -1
  106. package/dist/browser/Contexts/MapBoxInstance/index.cjs +0 -59
  107. package/dist/browser/Contexts/MapBoxInstance/index.cjs.map +0 -1
  108. package/dist/browser/Contexts/MapBoxInstance/index.js +0 -36
  109. package/dist/browser/Contexts/MapBoxInstance/index.js.map +0 -1
  110. package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.cjs +0 -39
  111. package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.cjs.map +0 -1
  112. package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.js +0 -18
  113. package/dist/browser/Contexts/MapBoxInstance/useMapBoxInstance.js.map +0 -1
  114. package/dist/browser/Contexts/MapSettings/Context.cjs +0 -28
  115. package/dist/browser/Contexts/MapSettings/Context.cjs.map +0 -1
  116. package/dist/browser/Contexts/MapSettings/Context.js +0 -7
  117. package/dist/browser/Contexts/MapSettings/Context.js.map +0 -1
  118. package/dist/browser/Contexts/MapSettings/Provider.cjs +0 -162
  119. package/dist/browser/Contexts/MapSettings/Provider.cjs.map +0 -1
  120. package/dist/browser/Contexts/MapSettings/Provider.js +0 -141
  121. package/dist/browser/Contexts/MapSettings/Provider.js.map +0 -1
  122. package/dist/browser/Contexts/MapSettings/State.cjs +0 -19
  123. package/dist/browser/Contexts/MapSettings/State.cjs.map +0 -1
  124. package/dist/browser/Contexts/MapSettings/State.js +0 -1
  125. package/dist/browser/Contexts/MapSettings/State.js.map +0 -1
  126. package/dist/browser/Contexts/MapSettings/index.cjs +0 -172
  127. package/dist/browser/Contexts/MapSettings/index.cjs.map +0 -1
  128. package/dist/browser/Contexts/MapSettings/index.js +0 -149
  129. package/dist/browser/Contexts/MapSettings/index.js.map +0 -1
  130. package/dist/browser/Contexts/MapSettings/useMapSettings.cjs +0 -37
  131. package/dist/browser/Contexts/MapSettings/useMapSettings.cjs.map +0 -1
  132. package/dist/browser/Contexts/MapSettings/useMapSettings.js +0 -16
  133. package/dist/browser/Contexts/MapSettings/useMapSettings.js.map +0 -1
  134. package/dist/browser/Contexts/MapboxAccessToken/Context.cjs +0 -28
  135. package/dist/browser/Contexts/MapboxAccessToken/Context.cjs.map +0 -1
  136. package/dist/browser/Contexts/MapboxAccessToken/Context.js +0 -7
  137. package/dist/browser/Contexts/MapboxAccessToken/Context.js.map +0 -1
  138. package/dist/browser/Contexts/MapboxAccessToken/Provider.cjs +0 -38
  139. package/dist/browser/Contexts/MapboxAccessToken/Provider.cjs.map +0 -1
  140. package/dist/browser/Contexts/MapboxAccessToken/Provider.js +0 -17
  141. package/dist/browser/Contexts/MapboxAccessToken/Provider.js.map +0 -1
  142. package/dist/browser/Contexts/MapboxAccessToken/State.cjs +0 -19
  143. package/dist/browser/Contexts/MapboxAccessToken/State.cjs.map +0 -1
  144. package/dist/browser/Contexts/MapboxAccessToken/State.js +0 -1
  145. package/dist/browser/Contexts/MapboxAccessToken/State.js.map +0 -1
  146. package/dist/browser/Contexts/MapboxAccessToken/index.cjs +0 -46
  147. package/dist/browser/Contexts/MapboxAccessToken/index.cjs.map +0 -1
  148. package/dist/browser/Contexts/MapboxAccessToken/index.js +0 -23
  149. package/dist/browser/Contexts/MapboxAccessToken/index.js.map +0 -1
  150. package/dist/browser/Contexts/MapboxAccessToken/use.cjs +0 -36
  151. package/dist/browser/Contexts/MapboxAccessToken/use.cjs.map +0 -1
  152. package/dist/browser/Contexts/MapboxAccessToken/use.js +0 -15
  153. package/dist/browser/Contexts/MapboxAccessToken/use.js.map +0 -1
  154. package/dist/browser/Contexts/index.cjs +0 -483
  155. package/dist/browser/Contexts/index.cjs.map +0 -1
  156. package/dist/browser/Contexts/index.js +0 -460
  157. package/dist/browser/Contexts/index.js.map +0 -1
  158. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.cjs +0 -161
  159. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.cjs.map +0 -1
  160. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.js +0 -138
  161. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilder.js.map +0 -1
  162. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs +0 -75
  163. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs.map +0 -1
  164. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +0 -52
  165. package/dist/browser/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +0 -1
  166. package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.cjs +0 -76
  167. package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.cjs.map +0 -1
  168. package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.js +0 -53
  169. package/dist/browser/Layers/Builders/LocationPointsMapLayerBuilder.js.map +0 -1
  170. package/dist/browser/Layers/Builders/index.cjs +0 -229
  171. package/dist/browser/Layers/Builders/index.cjs.map +0 -1
  172. package/dist/browser/Layers/Builders/index.js +0 -206
  173. package/dist/browser/Layers/Builders/index.js.map +0 -1
  174. package/dist/browser/Layers/CircleLayer.cjs +0 -50
  175. package/dist/browser/Layers/CircleLayer.cjs.map +0 -1
  176. package/dist/browser/Layers/CircleLayer.js +0 -29
  177. package/dist/browser/Layers/CircleLayer.js.map +0 -1
  178. package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.cjs +0 -37
  179. package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.cjs.map +0 -1
  180. package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.js +0 -16
  181. package/dist/browser/Layers/Configs/HeatMapFillLayerConfig.js.map +0 -1
  182. package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.cjs +0 -37
  183. package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.cjs.map +0 -1
  184. package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.js +0 -16
  185. package/dist/browser/Layers/Configs/HeatMapLineLayerConfig.js.map +0 -1
  186. package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.cjs +0 -44
  187. package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.cjs.map +0 -1
  188. package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.js +0 -23
  189. package/dist/browser/Layers/Configs/HeatMapSymbolLayerConfig.js.map +0 -1
  190. package/dist/browser/Layers/Configs/LocationPointLayerConfig.cjs +0 -35
  191. package/dist/browser/Layers/Configs/LocationPointLayerConfig.cjs.map +0 -1
  192. package/dist/browser/Layers/Configs/LocationPointLayerConfig.js +0 -14
  193. package/dist/browser/Layers/Configs/LocationPointLayerConfig.js.map +0 -1
  194. package/dist/browser/Layers/Configs/index.cjs +0 -86
  195. package/dist/browser/Layers/Configs/index.cjs.map +0 -1
  196. package/dist/browser/Layers/Configs/index.js +0 -63
  197. package/dist/browser/Layers/Configs/index.js.map +0 -1
  198. package/dist/browser/Layers/FillLayer.cjs +0 -44
  199. package/dist/browser/Layers/FillLayer.cjs.map +0 -1
  200. package/dist/browser/Layers/FillLayer.js +0 -23
  201. package/dist/browser/Layers/FillLayer.js.map +0 -1
  202. package/dist/browser/Layers/LineLayer.cjs +0 -45
  203. package/dist/browser/Layers/LineLayer.cjs.map +0 -1
  204. package/dist/browser/Layers/LineLayer.js +0 -24
  205. package/dist/browser/Layers/LineLayer.js.map +0 -1
  206. package/dist/browser/Layers/MapLayer.cjs +0 -19
  207. package/dist/browser/Layers/MapLayer.cjs.map +0 -1
  208. package/dist/browser/Layers/MapLayer.js +0 -1
  209. package/dist/browser/Layers/MapLayer.js.map +0 -1
  210. package/dist/browser/Layers/SymbolLayer.cjs +0 -44
  211. package/dist/browser/Layers/SymbolLayer.cjs.map +0 -1
  212. package/dist/browser/Layers/SymbolLayer.js +0 -23
  213. package/dist/browser/Layers/SymbolLayer.js.map +0 -1
  214. package/dist/browser/Layers/index.cjs +0 -237
  215. package/dist/browser/Layers/index.cjs.map +0 -1
  216. package/dist/browser/Layers/index.js +0 -214
  217. package/dist/browser/Layers/index.js.map +0 -1
  218. package/dist/browser/MapBoxClasses/MapBase.cjs +0 -52
  219. package/dist/browser/MapBoxClasses/MapBase.cjs.map +0 -1
  220. package/dist/browser/MapBoxClasses/MapBase.js +0 -31
  221. package/dist/browser/MapBoxClasses/MapBase.js.map +0 -1
  222. package/dist/browser/MapBoxClasses/MapHeat.cjs +0 -190
  223. package/dist/browser/MapBoxClasses/MapHeat.cjs.map +0 -1
  224. package/dist/browser/MapBoxClasses/MapHeat.js +0 -169
  225. package/dist/browser/MapBoxClasses/MapHeat.js.map +0 -1
  226. package/dist/browser/MapBoxClasses/MapPoints.cjs +0 -78
  227. package/dist/browser/MapBoxClasses/MapPoints.cjs.map +0 -1
  228. package/dist/browser/MapBoxClasses/MapPoints.js +0 -57
  229. package/dist/browser/MapBoxClasses/MapPoints.js.map +0 -1
  230. package/dist/browser/MapBoxClasses/MapSettings.cjs +0 -119
  231. package/dist/browser/MapBoxClasses/MapSettings.cjs.map +0 -1
  232. package/dist/browser/MapBoxClasses/MapSettings.js +0 -98
  233. package/dist/browser/MapBoxClasses/MapSettings.js.map +0 -1
  234. package/dist/browser/MapBoxClasses/index.cjs +0 -312
  235. package/dist/browser/MapBoxClasses/index.cjs.map +0 -1
  236. package/dist/browser/MapBoxClasses/index.js +0 -289
  237. package/dist/browser/MapBoxClasses/index.js.map +0 -1
  238. package/dist/browser/Settings/DefaultMapSettings.cjs +0 -77
  239. package/dist/browser/Settings/DefaultMapSettings.cjs.map +0 -1
  240. package/dist/browser/Settings/DefaultMapSettings.js +0 -56
  241. package/dist/browser/Settings/DefaultMapSettings.js.map +0 -1
  242. package/dist/browser/Settings/MapSetting.cjs +0 -19
  243. package/dist/browser/Settings/MapSetting.cjs.map +0 -1
  244. package/dist/browser/Settings/MapSetting.js +0 -1
  245. package/dist/browser/Settings/MapSetting.js.map +0 -1
  246. package/dist/browser/Settings/index.cjs +0 -79
  247. package/dist/browser/Settings/index.cjs.map +0 -1
  248. package/dist/browser/Settings/index.js +0 -56
  249. package/dist/browser/Settings/index.js.map +0 -1
  250. package/dist/browser/hooks/index.cjs +0 -180
  251. package/dist/browser/hooks/index.cjs.map +0 -1
  252. package/dist/browser/hooks/index.js +0 -157
  253. package/dist/browser/hooks/index.js.map +0 -1
  254. package/dist/browser/hooks/useDynamicMapResize.cjs +0 -54
  255. package/dist/browser/hooks/useDynamicMapResize.cjs.map +0 -1
  256. package/dist/browser/hooks/useDynamicMapResize.js +0 -33
  257. package/dist/browser/hooks/useDynamicMapResize.js.map +0 -1
  258. package/dist/browser/hooks/useDynamicPositioning.cjs +0 -55
  259. package/dist/browser/hooks/useDynamicPositioning.cjs.map +0 -1
  260. package/dist/browser/hooks/useDynamicPositioning.js +0 -34
  261. package/dist/browser/hooks/useDynamicPositioning.js.map +0 -1
  262. package/dist/browser/hooks/useFindHashes.cjs +0 -50
  263. package/dist/browser/hooks/useFindHashes.cjs.map +0 -1
  264. package/dist/browser/hooks/useFindHashes.js +0 -29
  265. package/dist/browser/hooks/useFindHashes.js.map +0 -1
  266. package/dist/browser/hooks/useHeatMapColors.cjs +0 -46
  267. package/dist/browser/hooks/useHeatMapColors.cjs.map +0 -1
  268. package/dist/browser/hooks/useHeatMapColors.js +0 -25
  269. package/dist/browser/hooks/useHeatMapColors.js.map +0 -1
  270. package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.cjs +0 -65
  271. package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.cjs.map +0 -1
  272. package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.js +0 -44
  273. package/dist/browser/hooks/useQuadKeyPayloadsToFeatures.js.map +0 -1
  274. package/dist/browser/lib/MapBoxBaseProps.cjs +0 -19
  275. package/dist/browser/lib/MapBoxBaseProps.cjs.map +0 -1
  276. package/dist/browser/lib/MapBoxBaseProps.js +0 -1
  277. package/dist/browser/lib/MapBoxBaseProps.js.map +0 -1
  278. package/dist/browser/lib/MapStyle.cjs +0 -35
  279. package/dist/browser/lib/MapStyle.cjs.map +0 -1
  280. package/dist/browser/lib/MapStyle.js +0 -14
  281. package/dist/browser/lib/MapStyle.js.map +0 -1
  282. package/dist/browser/lib/index.cjs +0 -37
  283. package/dist/browser/lib/index.cjs.map +0 -1
  284. package/dist/browser/lib/index.js +0 -14
  285. package/dist/browser/lib/index.js.map +0 -1
  286. package/dist/browser/types/NetworkLocationAnswerBase.cjs +0 -19
  287. package/dist/browser/types/NetworkLocationAnswerBase.cjs.map +0 -1
  288. package/dist/browser/types/NetworkLocationAnswerBase.js +0 -1
  289. package/dist/browser/types/NetworkLocationAnswerBase.js.map +0 -1
  290. package/dist/browser/types/index.cjs +0 -19
  291. package/dist/browser/types/index.cjs.map +0 -1
  292. package/dist/browser/types/index.js +0 -1
  293. package/dist/browser/types/index.js.map +0 -1
  294. package/dist/docs.json +0 -104385
  295. package/dist/node/AnimatedHeatMapSettings.cjs +0 -91
  296. package/dist/node/AnimatedHeatMapSettings.cjs.map +0 -1
  297. package/dist/node/AnimatedHeatMapSettings.js +0 -64
  298. package/dist/node/AnimatedHeatMapSettings.js.map +0 -1
  299. package/dist/node/Colors/MapColorProps.cjs +0 -19
  300. package/dist/node/Colors/MapColorProps.cjs.map +0 -1
  301. package/dist/node/Colors/MapColorProps.js +0 -1
  302. package/dist/node/Colors/MapColorProps.js.map +0 -1
  303. package/dist/node/Colors/index.cjs +0 -19
  304. package/dist/node/Colors/index.cjs.map +0 -1
  305. package/dist/node/Colors/index.js +0 -1
  306. package/dist/node/Colors/index.js.map +0 -1
  307. package/dist/node/Components/AnimatedHeatMap.cjs +0 -679
  308. package/dist/node/Components/AnimatedHeatMap.cjs.map +0 -1
  309. package/dist/node/Components/AnimatedHeatMap.js +0 -654
  310. package/dist/node/Components/AnimatedHeatMap.js.map +0 -1
  311. package/dist/node/Components/AnimatedHeatMapLoaded.cjs +0 -920
  312. package/dist/node/Components/AnimatedHeatMapLoaded.cjs.map +0 -1
  313. package/dist/node/Components/AnimatedHeatMapLoaded.js +0 -895
  314. package/dist/node/Components/AnimatedHeatMapLoaded.js.map +0 -1
  315. package/dist/node/Components/FeaturesToLayersMap.cjs +0 -19
  316. package/dist/node/Components/FeaturesToLayersMap.cjs.map +0 -1
  317. package/dist/node/Components/FeaturesToLayersMap.js +0 -1
  318. package/dist/node/Components/FeaturesToLayersMap.js.map +0 -1
  319. package/dist/node/Components/HeatMapSettings.cjs +0 -90
  320. package/dist/node/Components/HeatMapSettings.cjs.map +0 -1
  321. package/dist/node/Components/HeatMapSettings.js +0 -63
  322. package/dist/node/Components/HeatMapSettings.js.map +0 -1
  323. package/dist/node/Components/LayerAnimator.cjs +0 -120
  324. package/dist/node/Components/LayerAnimator.cjs.map +0 -1
  325. package/dist/node/Components/LayerAnimator.js +0 -95
  326. package/dist/node/Components/LayerAnimator.js.map +0 -1
  327. package/dist/node/Components/Legend.cjs +0 -81
  328. package/dist/node/Components/Legend.cjs.map +0 -1
  329. package/dist/node/Components/Legend.js +0 -56
  330. package/dist/node/Components/Legend.js.map +0 -1
  331. package/dist/node/Components/Legends/ColorGradient.cjs +0 -51
  332. package/dist/node/Components/Legends/ColorGradient.cjs.map +0 -1
  333. package/dist/node/Components/Legends/ColorGradient.js +0 -26
  334. package/dist/node/Components/Legends/ColorGradient.js.map +0 -1
  335. package/dist/node/Components/Legends/index.cjs +0 -53
  336. package/dist/node/Components/Legends/index.cjs.map +0 -1
  337. package/dist/node/Components/Legends/index.js +0 -26
  338. package/dist/node/Components/Legends/index.js.map +0 -1
  339. package/dist/node/Components/MapBox.cjs +0 -140
  340. package/dist/node/Components/MapBox.cjs.map +0 -1
  341. package/dist/node/Components/MapBox.js +0 -115
  342. package/dist/node/Components/MapBox.js.map +0 -1
  343. package/dist/node/Components/MapBoxHeat.cjs +0 -188
  344. package/dist/node/Components/MapBoxHeat.cjs.map +0 -1
  345. package/dist/node/Components/MapBoxHeat.js +0 -163
  346. package/dist/node/Components/MapBoxHeat.js.map +0 -1
  347. package/dist/node/Components/MapBoxPoints.cjs +0 -286
  348. package/dist/node/Components/MapBoxPoints.cjs.map +0 -1
  349. package/dist/node/Components/MapBoxPoints.js +0 -261
  350. package/dist/node/Components/MapBoxPoints.js.map +0 -1
  351. package/dist/node/Components/MapSettingsComponents/Setting.cjs +0 -61
  352. package/dist/node/Components/MapSettingsComponents/Setting.cjs.map +0 -1
  353. package/dist/node/Components/MapSettingsComponents/Setting.js +0 -36
  354. package/dist/node/Components/MapSettingsComponents/Setting.js.map +0 -1
  355. package/dist/node/Components/MapSettingsComponents/SettingsBox.cjs +0 -75
  356. package/dist/node/Components/MapSettingsComponents/SettingsBox.cjs.map +0 -1
  357. package/dist/node/Components/MapSettingsComponents/SettingsBox.js +0 -50
  358. package/dist/node/Components/MapSettingsComponents/SettingsBox.js.map +0 -1
  359. package/dist/node/Components/MapSettingsComponents/index.cjs +0 -79
  360. package/dist/node/Components/MapSettingsComponents/index.cjs.map +0 -1
  361. package/dist/node/Components/MapSettingsComponents/index.js +0 -51
  362. package/dist/node/Components/MapSettingsComponents/index.js.map +0 -1
  363. package/dist/node/Components/index.cjs +0 -1125
  364. package/dist/node/Components/index.cjs.map +0 -1
  365. package/dist/node/Components/index.js +0 -1088
  366. package/dist/node/Components/index.js.map +0 -1
  367. package/dist/node/Contexts/HeatMapInitializer/Context.cjs +0 -32
  368. package/dist/node/Contexts/HeatMapInitializer/Context.cjs.map +0 -1
  369. package/dist/node/Contexts/HeatMapInitializer/Context.js +0 -7
  370. package/dist/node/Contexts/HeatMapInitializer/Context.js.map +0 -1
  371. package/dist/node/Contexts/HeatMapInitializer/Provider.cjs +0 -310
  372. package/dist/node/Contexts/HeatMapInitializer/Provider.cjs.map +0 -1
  373. package/dist/node/Contexts/HeatMapInitializer/Provider.js +0 -285
  374. package/dist/node/Contexts/HeatMapInitializer/Provider.js.map +0 -1
  375. package/dist/node/Contexts/HeatMapInitializer/State.cjs +0 -19
  376. package/dist/node/Contexts/HeatMapInitializer/State.cjs.map +0 -1
  377. package/dist/node/Contexts/HeatMapInitializer/State.js +0 -1
  378. package/dist/node/Contexts/HeatMapInitializer/State.js.map +0 -1
  379. package/dist/node/Contexts/HeatMapInitializer/index.cjs +0 -323
  380. package/dist/node/Contexts/HeatMapInitializer/index.cjs.map +0 -1
  381. package/dist/node/Contexts/HeatMapInitializer/index.js +0 -295
  382. package/dist/node/Contexts/HeatMapInitializer/index.js.map +0 -1
  383. package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs +0 -43
  384. package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.cjs.map +0 -1
  385. package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.js +0 -18
  386. package/dist/node/Contexts/HeatMapInitializer/useHeatMapInitializer.js.map +0 -1
  387. package/dist/node/Contexts/MapBoxInstance/Context.cjs +0 -32
  388. package/dist/node/Contexts/MapBoxInstance/Context.cjs.map +0 -1
  389. package/dist/node/Contexts/MapBoxInstance/Context.js +0 -7
  390. package/dist/node/Contexts/MapBoxInstance/Context.js.map +0 -1
  391. package/dist/node/Contexts/MapBoxInstance/Provider.cjs +0 -51
  392. package/dist/node/Contexts/MapBoxInstance/Provider.cjs.map +0 -1
  393. package/dist/node/Contexts/MapBoxInstance/Provider.js +0 -26
  394. package/dist/node/Contexts/MapBoxInstance/Provider.js.map +0 -1
  395. package/dist/node/Contexts/MapBoxInstance/State.cjs +0 -19
  396. package/dist/node/Contexts/MapBoxInstance/State.cjs.map +0 -1
  397. package/dist/node/Contexts/MapBoxInstance/State.js +0 -1
  398. package/dist/node/Contexts/MapBoxInstance/State.js.map +0 -1
  399. package/dist/node/Contexts/MapBoxInstance/index.cjs +0 -64
  400. package/dist/node/Contexts/MapBoxInstance/index.cjs.map +0 -1
  401. package/dist/node/Contexts/MapBoxInstance/index.js +0 -36
  402. package/dist/node/Contexts/MapBoxInstance/index.js.map +0 -1
  403. package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.cjs +0 -43
  404. package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.cjs.map +0 -1
  405. package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.js +0 -18
  406. package/dist/node/Contexts/MapBoxInstance/useMapBoxInstance.js.map +0 -1
  407. package/dist/node/Contexts/MapSettings/Context.cjs +0 -32
  408. package/dist/node/Contexts/MapSettings/Context.cjs.map +0 -1
  409. package/dist/node/Contexts/MapSettings/Context.js +0 -7
  410. package/dist/node/Contexts/MapSettings/Context.js.map +0 -1
  411. package/dist/node/Contexts/MapSettings/Provider.cjs +0 -166
  412. package/dist/node/Contexts/MapSettings/Provider.cjs.map +0 -1
  413. package/dist/node/Contexts/MapSettings/Provider.js +0 -141
  414. package/dist/node/Contexts/MapSettings/Provider.js.map +0 -1
  415. package/dist/node/Contexts/MapSettings/State.cjs +0 -19
  416. package/dist/node/Contexts/MapSettings/State.cjs.map +0 -1
  417. package/dist/node/Contexts/MapSettings/State.js +0 -1
  418. package/dist/node/Contexts/MapSettings/State.js.map +0 -1
  419. package/dist/node/Contexts/MapSettings/index.cjs +0 -177
  420. package/dist/node/Contexts/MapSettings/index.cjs.map +0 -1
  421. package/dist/node/Contexts/MapSettings/index.js +0 -149
  422. package/dist/node/Contexts/MapSettings/index.js.map +0 -1
  423. package/dist/node/Contexts/MapSettings/useMapSettings.cjs +0 -41
  424. package/dist/node/Contexts/MapSettings/useMapSettings.cjs.map +0 -1
  425. package/dist/node/Contexts/MapSettings/useMapSettings.js +0 -16
  426. package/dist/node/Contexts/MapSettings/useMapSettings.js.map +0 -1
  427. package/dist/node/Contexts/MapboxAccessToken/Context.cjs +0 -32
  428. package/dist/node/Contexts/MapboxAccessToken/Context.cjs.map +0 -1
  429. package/dist/node/Contexts/MapboxAccessToken/Context.js +0 -7
  430. package/dist/node/Contexts/MapboxAccessToken/Context.js.map +0 -1
  431. package/dist/node/Contexts/MapboxAccessToken/Provider.cjs +0 -42
  432. package/dist/node/Contexts/MapboxAccessToken/Provider.cjs.map +0 -1
  433. package/dist/node/Contexts/MapboxAccessToken/Provider.js +0 -17
  434. package/dist/node/Contexts/MapboxAccessToken/Provider.js.map +0 -1
  435. package/dist/node/Contexts/MapboxAccessToken/State.cjs +0 -19
  436. package/dist/node/Contexts/MapboxAccessToken/State.cjs.map +0 -1
  437. package/dist/node/Contexts/MapboxAccessToken/State.js +0 -1
  438. package/dist/node/Contexts/MapboxAccessToken/State.js.map +0 -1
  439. package/dist/node/Contexts/MapboxAccessToken/index.cjs +0 -52
  440. package/dist/node/Contexts/MapboxAccessToken/index.cjs.map +0 -1
  441. package/dist/node/Contexts/MapboxAccessToken/index.js +0 -23
  442. package/dist/node/Contexts/MapboxAccessToken/index.js.map +0 -1
  443. package/dist/node/Contexts/MapboxAccessToken/use.cjs +0 -40
  444. package/dist/node/Contexts/MapboxAccessToken/use.cjs.map +0 -1
  445. package/dist/node/Contexts/MapboxAccessToken/use.js +0 -15
  446. package/dist/node/Contexts/MapboxAccessToken/use.js.map +0 -1
  447. package/dist/node/Contexts/index.cjs +0 -495
  448. package/dist/node/Contexts/index.cjs.map +0 -1
  449. package/dist/node/Contexts/index.js +0 -460
  450. package/dist/node/Contexts/index.js.map +0 -1
  451. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.cjs +0 -166
  452. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.cjs.map +0 -1
  453. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.js +0 -138
  454. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilder.js.map +0 -1
  455. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs +0 -79
  456. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.cjs.map +0 -1
  457. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js +0 -52
  458. package/dist/node/Layers/Builders/LocationHeatMapLayerBuilderAnimated.js.map +0 -1
  459. package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.cjs +0 -81
  460. package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.cjs.map +0 -1
  461. package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.js +0 -53
  462. package/dist/node/Layers/Builders/LocationPointsMapLayerBuilder.js.map +0 -1
  463. package/dist/node/Layers/Builders/index.cjs +0 -237
  464. package/dist/node/Layers/Builders/index.cjs.map +0 -1
  465. package/dist/node/Layers/Builders/index.js +0 -206
  466. package/dist/node/Layers/Builders/index.js.map +0 -1
  467. package/dist/node/Layers/CircleLayer.cjs +0 -54
  468. package/dist/node/Layers/CircleLayer.cjs.map +0 -1
  469. package/dist/node/Layers/CircleLayer.js +0 -29
  470. package/dist/node/Layers/CircleLayer.js.map +0 -1
  471. package/dist/node/Layers/Configs/HeatMapFillLayerConfig.cjs +0 -41
  472. package/dist/node/Layers/Configs/HeatMapFillLayerConfig.cjs.map +0 -1
  473. package/dist/node/Layers/Configs/HeatMapFillLayerConfig.js +0 -16
  474. package/dist/node/Layers/Configs/HeatMapFillLayerConfig.js.map +0 -1
  475. package/dist/node/Layers/Configs/HeatMapLineLayerConfig.cjs +0 -41
  476. package/dist/node/Layers/Configs/HeatMapLineLayerConfig.cjs.map +0 -1
  477. package/dist/node/Layers/Configs/HeatMapLineLayerConfig.js +0 -16
  478. package/dist/node/Layers/Configs/HeatMapLineLayerConfig.js.map +0 -1
  479. package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.cjs +0 -48
  480. package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.cjs.map +0 -1
  481. package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.js +0 -23
  482. package/dist/node/Layers/Configs/HeatMapSymbolLayerConfig.js.map +0 -1
  483. package/dist/node/Layers/Configs/LocationPointLayerConfig.cjs +0 -39
  484. package/dist/node/Layers/Configs/LocationPointLayerConfig.cjs.map +0 -1
  485. package/dist/node/Layers/Configs/LocationPointLayerConfig.js +0 -14
  486. package/dist/node/Layers/Configs/LocationPointLayerConfig.js.map +0 -1
  487. package/dist/node/Layers/Configs/index.cjs +0 -93
  488. package/dist/node/Layers/Configs/index.cjs.map +0 -1
  489. package/dist/node/Layers/Configs/index.js +0 -63
  490. package/dist/node/Layers/Configs/index.js.map +0 -1
  491. package/dist/node/Layers/FillLayer.cjs +0 -48
  492. package/dist/node/Layers/FillLayer.cjs.map +0 -1
  493. package/dist/node/Layers/FillLayer.js +0 -23
  494. package/dist/node/Layers/FillLayer.js.map +0 -1
  495. package/dist/node/Layers/LineLayer.cjs +0 -49
  496. package/dist/node/Layers/LineLayer.cjs.map +0 -1
  497. package/dist/node/Layers/LineLayer.js +0 -24
  498. package/dist/node/Layers/LineLayer.js.map +0 -1
  499. package/dist/node/Layers/MapLayer.cjs +0 -19
  500. package/dist/node/Layers/MapLayer.cjs.map +0 -1
  501. package/dist/node/Layers/MapLayer.js +0 -1
  502. package/dist/node/Layers/MapLayer.js.map +0 -1
  503. package/dist/node/Layers/SymbolLayer.cjs +0 -48
  504. package/dist/node/Layers/SymbolLayer.cjs.map +0 -1
  505. package/dist/node/Layers/SymbolLayer.js +0 -23
  506. package/dist/node/Layers/SymbolLayer.js.map +0 -1
  507. package/dist/node/Layers/index.cjs +0 -253
  508. package/dist/node/Layers/index.cjs.map +0 -1
  509. package/dist/node/Layers/index.js +0 -214
  510. package/dist/node/Layers/index.js.map +0 -1
  511. package/dist/node/MapBoxClasses/MapBase.cjs +0 -56
  512. package/dist/node/MapBoxClasses/MapBase.cjs.map +0 -1
  513. package/dist/node/MapBoxClasses/MapBase.js +0 -31
  514. package/dist/node/MapBoxClasses/MapBase.js.map +0 -1
  515. package/dist/node/MapBoxClasses/MapHeat.cjs +0 -194
  516. package/dist/node/MapBoxClasses/MapHeat.cjs.map +0 -1
  517. package/dist/node/MapBoxClasses/MapHeat.js +0 -169
  518. package/dist/node/MapBoxClasses/MapHeat.js.map +0 -1
  519. package/dist/node/MapBoxClasses/MapPoints.cjs +0 -82
  520. package/dist/node/MapBoxClasses/MapPoints.cjs.map +0 -1
  521. package/dist/node/MapBoxClasses/MapPoints.js +0 -57
  522. package/dist/node/MapBoxClasses/MapPoints.js.map +0 -1
  523. package/dist/node/MapBoxClasses/MapSettings.cjs +0 -123
  524. package/dist/node/MapBoxClasses/MapSettings.cjs.map +0 -1
  525. package/dist/node/MapBoxClasses/MapSettings.js +0 -98
  526. package/dist/node/MapBoxClasses/MapSettings.js.map +0 -1
  527. package/dist/node/MapBoxClasses/index.cjs +0 -319
  528. package/dist/node/MapBoxClasses/index.cjs.map +0 -1
  529. package/dist/node/MapBoxClasses/index.js +0 -289
  530. package/dist/node/MapBoxClasses/index.js.map +0 -1
  531. package/dist/node/Settings/DefaultMapSettings.cjs +0 -81
  532. package/dist/node/Settings/DefaultMapSettings.cjs.map +0 -1
  533. package/dist/node/Settings/DefaultMapSettings.js +0 -56
  534. package/dist/node/Settings/DefaultMapSettings.js.map +0 -1
  535. package/dist/node/Settings/MapSetting.cjs +0 -19
  536. package/dist/node/Settings/MapSetting.cjs.map +0 -1
  537. package/dist/node/Settings/MapSetting.js +0 -1
  538. package/dist/node/Settings/MapSetting.js.map +0 -1
  539. package/dist/node/Settings/index.cjs +0 -83
  540. package/dist/node/Settings/index.cjs.map +0 -1
  541. package/dist/node/Settings/index.js +0 -56
  542. package/dist/node/Settings/index.js.map +0 -1
  543. package/dist/node/hooks/index.cjs +0 -190
  544. package/dist/node/hooks/index.cjs.map +0 -1
  545. package/dist/node/hooks/index.js +0 -159
  546. package/dist/node/hooks/index.js.map +0 -1
  547. package/dist/node/hooks/useDynamicMapResize.cjs +0 -59
  548. package/dist/node/hooks/useDynamicMapResize.cjs.map +0 -1
  549. package/dist/node/hooks/useDynamicMapResize.js +0 -34
  550. package/dist/node/hooks/useDynamicMapResize.js.map +0 -1
  551. package/dist/node/hooks/useDynamicPositioning.cjs +0 -59
  552. package/dist/node/hooks/useDynamicPositioning.cjs.map +0 -1
  553. package/dist/node/hooks/useDynamicPositioning.js +0 -34
  554. package/dist/node/hooks/useDynamicPositioning.js.map +0 -1
  555. package/dist/node/hooks/useFindHashes.cjs +0 -55
  556. package/dist/node/hooks/useFindHashes.cjs.map +0 -1
  557. package/dist/node/hooks/useFindHashes.js +0 -30
  558. package/dist/node/hooks/useFindHashes.js.map +0 -1
  559. package/dist/node/hooks/useHeatMapColors.cjs +0 -50
  560. package/dist/node/hooks/useHeatMapColors.cjs.map +0 -1
  561. package/dist/node/hooks/useHeatMapColors.js +0 -25
  562. package/dist/node/hooks/useHeatMapColors.js.map +0 -1
  563. package/dist/node/hooks/useQuadKeyPayloadsToFeatures.cjs +0 -69
  564. package/dist/node/hooks/useQuadKeyPayloadsToFeatures.cjs.map +0 -1
  565. package/dist/node/hooks/useQuadKeyPayloadsToFeatures.js +0 -44
  566. package/dist/node/hooks/useQuadKeyPayloadsToFeatures.js.map +0 -1
  567. package/dist/node/lib/MapBoxBaseProps.cjs +0 -19
  568. package/dist/node/lib/MapBoxBaseProps.cjs.map +0 -1
  569. package/dist/node/lib/MapBoxBaseProps.js +0 -1
  570. package/dist/node/lib/MapBoxBaseProps.js.map +0 -1
  571. package/dist/node/lib/MapStyle.cjs +0 -39
  572. package/dist/node/lib/MapStyle.cjs.map +0 -1
  573. package/dist/node/lib/MapStyle.js +0 -14
  574. package/dist/node/lib/MapStyle.js.map +0 -1
  575. package/dist/node/lib/index.cjs +0 -41
  576. package/dist/node/lib/index.cjs.map +0 -1
  577. package/dist/node/lib/index.js +0 -14
  578. package/dist/node/lib/index.js.map +0 -1
  579. package/dist/node/types/NetworkLocationAnswerBase.cjs +0 -19
  580. package/dist/node/types/NetworkLocationAnswerBase.cjs.map +0 -1
  581. package/dist/node/types/NetworkLocationAnswerBase.js +0 -1
  582. package/dist/node/types/NetworkLocationAnswerBase.js.map +0 -1
  583. package/dist/node/types/index.cjs +0 -19
  584. package/dist/node/types/index.cjs.map +0 -1
  585. package/dist/node/types/index.js +0 -1
  586. package/dist/node/types/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/Components/AnimatedHeatMap.tsx","../../../src/Contexts/HeatMapInitializer/Provider.tsx","../../../src/hooks/useDynamicMapResize.tsx","../../../src/hooks/useDynamicPositioning.tsx","../../../src/hooks/useFindHashes.tsx","../../../src/hooks/useHeatMapColors.tsx","../../../src/hooks/useQuadKeyPayloadsToFeatures.tsx","../../../src/MapBoxClasses/MapBase.ts","../../../src/MapBoxClasses/MapHeat.ts","../../../src/MapBoxClasses/MapPoints.ts","../../../src/MapBoxClasses/MapSettings.ts","../../../src/Contexts/MapBoxInstance/Provider.tsx","../../../src/Contexts/MapBoxInstance/Context.ts","../../../src/Contexts/MapBoxInstance/useMapBoxInstance.tsx","../../../src/Contexts/MapSettings/Provider.tsx","../../../src/Contexts/MapSettings/Context.ts","../../../src/Contexts/MapSettings/useMapSettings.tsx","../../../src/Contexts/HeatMapInitializer/Context.ts","../../../src/Layers/Configs/HeatMapFillLayerConfig.ts","../../../src/Layers/FillLayer.ts","../../../src/Layers/Builders/LocationHeatMapLayerBuilder.ts","../../../src/Layers/Builders/LocationHeatMapLayerBuilderAnimated.ts","../../../src/Components/MapBoxHeat.tsx","../../../src/Components/MapBox.tsx","../../../src/Components/MapSettingsComponents/Setting.tsx","../../../src/Components/MapSettingsComponents/SettingsBox.tsx","../../../src/Components/AnimatedHeatMapLoaded.tsx","../../../src/Settings/DefaultMapSettings.ts","../../../src/AnimatedHeatMapSettings.ts","../../../src/Components/Legend.tsx","../../../src/Components/Legends/ColorGradient.tsx","../../../src/Components/HeatMapSettings.ts","../../../src/Components/LayerAnimator.tsx","../../../src/Components/MapBoxPoints.tsx"],"sourcesContent":["import { darken, useTheme } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Feature, Polygon } from 'geojson'\nimport { useState } from 'react'\n\nimport { AnimatedHeatMapColorProps } from '../Colors'\nimport { HeatMapInitializerProvider, MapBoxInstanceProvider, MapSettingsProvider } from '../Contexts'\nimport { LocationHeatMapLayerBuilderAnimated, MapHeatConstants, MapLayer } from '../Layers'\nimport { MapSetting } from '../Settings'\nimport { MapboxHeatFlexBox } from './MapBoxHeat'\n\nexport interface AnimatedHeatMapProps {\n accessToken: string\n animatedFeatureSets: Feature<Polygon>[][]\n defaultMapSettings?: MapSetting\n heatMapColorProps: AnimatedHeatMapColorProps\n staticFeatureSet: Feature<Polygon>[]\n}\n\nexport const AnimatedHeatMap: React.FC<WithChildren<AnimatedHeatMapProps>> = ({\n accessToken,\n animatedFeatureSets,\n defaultMapSettings,\n heatMapColorProps,\n staticFeatureSet,\n ...props\n}) => {\n const theme = useTheme()\n const { staticMapColor, lowUsageColor, highUsageColor } = heatMapColorProps || {}\n const localStaticMapColor = staticMapColor ?? theme.palette.primary.light\n\n const [layers] = useState<MapLayer[]>([\n LocationHeatMapLayerBuilderAnimated(localStaticMapColor, 0, 'static'),\n LocationHeatMapLayerBuilderAnimated(lowUsageColor || localStaticMapColor, 0, 'animated'),\n LocationHeatMapLayerBuilderAnimated(highUsageColor || darken(localStaticMapColor, 0.9), 1, 'animated'),\n ])\n\n return animatedFeatureSets?.length ? (\n <MapBoxInstanceProvider>\n <MapSettingsProvider defaultMapSettings={defaultMapSettings} debugLayerName={MapHeatConstants.LocationDebugLayerId}>\n <HeatMapInitializerProvider\n features={staticFeatureSet}\n layers={[layers[0]]}\n featureSets={animatedFeatureSets}\n featureSetsLayers={layers.slice(1, 3)}\n heatMapColorProps={heatMapColorProps}\n >\n <MapboxHeatFlexBox accessToken={accessToken} {...props}></MapboxHeatFlexBox>\n </HeatMapInitializerProvider>\n </MapSettingsProvider>\n </MapBoxInstanceProvider>\n ) : (\n <FlexCol minHeight={160} minWidth={160} busy />\n )\n}\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 { Map } from 'mapbox-gl'\nimport { MutableRefObject, useEffect, useMemo, useState } from 'react'\n\n/**\n * Inspired by - https://bl.ocks.org/danswick/fc56f37c10d40be62e4feac5984250d2\n */\nexport const useDynamicMapResize = (\n mapContainerRef: MutableRefObject<HTMLDivElement | null>,\n mapCanvasRef: MutableRefObject<HTMLCanvasElement | null>,\n mapInstance?: Map,\n active = true,\n) => {\n const [dependenciesReady, setDependenciesReady] = useState(false)\n\n const resizer = useMemo(\n () =>\n new ResizeObserver(() => {\n const width = mapContainerRef.current?.getBoundingClientRect().width\n if (width && mapCanvasRef.current) {\n mapCanvasRef.current.style.width = `${width}px`\n // setTimeout allows for the smoothest animation (vs requestAnimationFrame, debouce, etc)\n // likely because it lets mapbox resize once when the event loop is ready?\n setTimeout(() => mapInstance?.resize())\n }\n }),\n [mapCanvasRef, mapContainerRef, mapInstance],\n )\n\n useEffect(() => {\n const dependenciesReady = !!(active && mapInstance && mapContainerRef?.current && mapCanvasRef.current)\n setDependenciesReady(dependenciesReady)\n }, [active, mapCanvasRef, mapContainerRef, mapInstance])\n\n useEffect(() => {\n if (dependenciesReady) {\n if (mapContainerRef.current) {\n resizer.observe(mapContainerRef.current)\n }\n\n return () => {\n resizer.disconnect()\n }\n }\n }, [active, dependenciesReady, mapCanvasRef, mapContainerRef, mapInstance, resizer])\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 { ArchivistPreset, useNetwork } from '@xyo-network/react-network'\nimport { useMemo } from 'react'\n\nconst animatedAnswerHashesConst = [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e,',\n]\n\nconst staticAnswerHashConst = 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5'\n\nexport const useFindHashes = () => {\n const { network } = useNetwork()\n const exploreMapHashes = (network?.nodes?.find((node) => node.type === 'archivist') as ArchivistPreset)?.explorerMapHashes\n const animatedAnswerHashes = exploreMapHashes?.animatedAnswerHashes || animatedAnswerHashesConst\n const staticAnswerHash = exploreMapHashes?.staticAnswerHash || staticAnswerHashConst\n const foundHashes = useMemo(() => [staticAnswerHash, ...animatedAnswerHashes], [animatedAnswerHashes, staticAnswerHash])\n return foundHashes\n}\n","import { useTheme } from '@mui/material'\n\nimport { AnimatedHeatMapColorProps, ColorGradientLegendProps } from '../Colors'\n\nconst useHeatMapColors = () => {\n const theme = useTheme()\n const staticMapColor = '#FFFF75'\n const highUsageColor = '#FF0000'\n\n const heatMapColorProps: AnimatedHeatMapColorProps = {\n highUsageColor,\n lowUsageColor: '#FFB3B3',\n staticMapColor,\n }\n\n const legendProps: ColorGradientLegendProps = {\n endColor: highUsageColor,\n endLabel: 'High',\n heading: 'Network Usage',\n startColor: staticMapColor,\n startLabel: 'Low',\n textColor: theme.palette.common.white,\n }\n\n return { heatMapColorProps, legendProps }\n}\n\nexport { useHeatMapColors }\n","import { compact } from '@xylabs/lodash'\nimport { GeoJson } from '@xyo-network/sdk-geo'\nimport { Feature, Geometry } from 'geojson'\nimport { useEffect, useState } from 'react'\n\nimport { NetworkLocationHeatmapQuadkeyAnswerPayload } from '../types'\n\nconst quadKeyToFeature = ({ density, quadkey }: { density: number; quadkey: string }) => {\n const polygonFeature = new GeoJson(quadkey).polygonFeature()\n polygonFeature.properties = {\n count: density,\n density,\n }\n return polygonFeature\n}\n\nconst setDensity = (feature: Feature) => {\n if (feature.properties) {\n feature.properties.value = feature.properties.density / 5\n }\n return feature\n}\n\nconst useQuadKeyPayloadsToFeatures = (payloads?: NetworkLocationHeatmapQuadkeyAnswerPayload[] | NetworkLocationHeatmapQuadkeyAnswerPayload) => {\n const [multipleFeatureSets, setMultipleFeatureSets] = useState<Feature<Geometry>[][]>([[]])\n const [features, setFeatures] = useState<Feature<Geometry>[]>([])\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n // Convert Multiple Payloads from Quadkey to GeoJson\n if (Array.isArray(payloads)) {\n if (compact(payloads).length !== 0) {\n const payloadsArray = payloads as (NetworkLocationHeatmapQuadkeyAnswerPayload | null)[]\n const mappedFeatures = payloadsArray?.map((payload) => payload?.result.map(quadKeyToFeature))\n\n setMultipleFeatureSets(mappedFeatures.map((features) => features?.map(setDensity) ?? []))\n } else {\n setError(new Error('Cannot find payloads for provided hashes'))\n }\n }\n\n // Convert Single Payload from Quadkey to GeoJson\n if (payloads && (payloads as NetworkLocationHeatmapQuadkeyAnswerPayload).result) {\n const singlePayload = payloads as NetworkLocationHeatmapQuadkeyAnswerPayload\n const mappedFeatures = singlePayload.result.map(quadKeyToFeature)\n\n setFeatures(mappedFeatures.map(setDensity))\n }\n }, [payloads])\n\n return { error, features, multipleFeatureSets }\n}\n\nexport { useQuadKeyPayloadsToFeatures }\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 { Feature, Point } from 'geojson'\n// eslint-disable-next-line no-restricted-imports\nimport { FitBoundsOptions, LngLatBounds } from 'mapbox-gl'\n\nimport { MapBase, MapBaseConfig } from './MapBase'\n\nexport interface MapPointsConfig extends MapBaseConfig<Point> {\n features: Feature<Point>[]\n}\n\nexport class MapPoints extends MapBase<Point> {\n private config: MapPointsConfig\n\n constructor(config: MapPointsConfig) {\n super(config)\n this.config = config\n }\n\n initialMapPositioning(options: FitBoundsOptions, initialBounds?: LngLatBounds) {\n let bounds: LngLatBounds\n\n if (initialBounds) {\n bounds = initialBounds\n } else {\n bounds = new LngLatBounds()\n\n this.config.features.forEach((feature: Feature<Point>) => {\n bounds.extend(feature.geometry.coordinates as [number, number])\n })\n }\n\n this.config.map.setCenter(bounds.getCenter())\n this.config.map.fitBounds(bounds, options)\n\n return this.config.map\n }\n}\n","import { EventData, GeolocateControl, Map, MapLayerMouseEvent, MapLayerTouchEvent, NavigationControl } from 'mapbox-gl'\n\nimport { MapSetting } from '../Settings'\n\nexport interface MapSettingsConfig {\n debugLayerName?: string\n map: Map\n requestLocation?: boolean\n settings: MapSetting\n zoom?: number\n}\n\n/**\n * Utility class to handle changes in settings\n *\n * Methods are pure functions dedicated to map manipulation\n */\nexport class MapSettings {\n static geoLocateControl: GeolocateControl | undefined\n static mapListeners = {\n logData: (ev?: MapLayerMouseEvent | (MapLayerTouchEvent & EventData), map?: Map) => {\n const target = map || ev?.target\n if (target) {\n console.log('zoom', target.getZoom())\n console.log('center', target.getCenter())\n }\n },\n }\n static navControl: NavigationControl | undefined\n static requestLocation: boolean | undefined\n\n static toggleControls(value: boolean | undefined, map: Map, zoom?: number, requestLocation?: boolean) {\n if (value) {\n MapSettings.addControls(map, zoom, requestLocation)\n } else {\n MapSettings.removeControls(map)\n }\n\n return this\n }\n\n static toggleDebugLayer(value: boolean | undefined, map: Map, layerName: string) {\n const debugLayer = map.getLayer(layerName)\n if (debugLayer) {\n if (value) {\n map.setLayoutProperty(layerName, 'visibility', 'visible')\n } else {\n map.setLayoutProperty(layerName, 'visibility', 'none')\n }\n }\n\n return this\n }\n\n static toggleDebugLogging(value: boolean | undefined, map: Map) {\n const debugEvents = ['resize', 'zoomend', 'dragend']\n if (value) {\n // initial values\n this.mapListeners.logData(undefined, map)\n debugEvents.forEach((event) => map.on(event, this.mapListeners.logData))\n } else {\n debugEvents.forEach((event) => map.off(event, this.mapListeners.logData))\n }\n }\n\n static toggleScrollToZoom(value: boolean | undefined, map: Map) {\n if (value) {\n map.scrollZoom.enable()\n } else {\n map.scrollZoom.disable()\n }\n\n return this\n }\n\n static updateSettings(config: MapSettingsConfig) {\n const { settings, map, zoom, requestLocation, debugLayerName = '' } = config\n const { scrollToZoom, enableControls, debugLayer, debugLogging } = settings\n\n MapSettings.toggleControls(enableControls?.value, map, zoom, requestLocation)\n .toggleScrollToZoom(scrollToZoom?.value, map)\n .toggleDebugLayer(debugLayer?.value, map, debugLayerName)\n .toggleDebugLogging(debugLogging.value, map)\n }\n\n // Needs to be static so we ensure controls are only instantiated once\n private static addControls(map: Map, zoom?: number, requestLocation?: boolean) {\n const geolocateControl = new GeolocateControl({\n fitBoundsOptions: {\n zoom: zoom || 2,\n },\n positionOptions: {\n enableHighAccuracy: true,\n },\n trackUserLocation: true,\n })\n\n const navControl = new NavigationControl({\n showCompass: false,\n })\n\n this.geoLocateControl = this.geoLocateControl || geolocateControl\n this.navControl = this.navControl || navControl\n\n if (!map.hasControl(this.geoLocateControl)) {\n if (requestLocation) {\n map.addControl(this.geoLocateControl)\n }\n }\n\n if (!map.hasControl(this.navControl)) {\n map.addControl(this.navControl, 'top-left')\n }\n\n return this\n }\n\n private static removeControls(map: Map) {\n if (this.geoLocateControl && map.hasControl(this.geoLocateControl)) {\n if (this.requestLocation) {\n map.removeControl(this.geoLocateControl)\n }\n }\n\n if (this.navControl && map.hasControl(this.navControl)) {\n map.removeControl(this.navControl)\n }\n\n return this\n }\n}\n","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","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 { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\n\nimport { MapSettings } from '../../MapBoxClasses'\nimport { MapSetting } from '../../Settings'\nimport { useMapBoxInstance } from '../MapBoxInstance'\nimport { MapSettingsContext } from './Context'\nimport { MapSettingsState } from './State'\n\nexport interface MapSettingsProviderProps {\n debugLayerName?: string\n defaultMapSettings?: MapSetting\n requestLocation?: boolean\n zoom?: number\n}\n\nexport const MapSettingsProvider: React.FC<WithChildren<MapSettingsProviderProps>> = ({\n children,\n debugLayerName,\n defaultMapSettings,\n requestLocation,\n zoom = 1,\n}) => {\n const [mapSettings, setMapSettings] = useState<MapSetting>(defaultMapSettings || {})\n const { map, mapInitialized } = useMapBoxInstance()\n\n const value: MapSettingsState = {\n mapSettings,\n setMapSettings,\n }\n\n useEffect(() => {\n if (mapSettings && map && mapInitialized) {\n MapSettings.updateSettings({ debugLayerName, map, requestLocation, settings: mapSettings, zoom })\n }\n }, [debugLayerName, map, mapInitialized, mapSettings, requestLocation, zoom])\n\n return <MapSettingsContext.Provider value={value}>{children}</MapSettingsContext.Provider>\n}\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 { FillLayer } from 'mapbox-gl'\n\nexport const HeatMapFillLayerConfig: (color: string) => Partial<FillLayer> = (color) => ({\n paint: {\n 'fill-color': color,\n 'fill-opacity': [\n 'let',\n 'density',\n ['+', ['/', ['number', ['get', 'value']], 4], 0.125],\n ['interpolate', ['linear'], ['var', 'density'], 0.8, ['var', 'density'], 1, 0.85],\n ],\n },\n})\n","import { LayerBase } from '@xyo-network/sdk-geo'\n// eslint-disable-next-line no-restricted-imports\nimport { FillLayer } from 'mapbox-gl'\n\nexport class FillLayerBuilder extends LayerBase<FillLayer> {\n FillLayerOptions: Partial<FillLayer>\n\n // ensures this class passes for `AnyLayer` type in MapBox\n type: 'fill' = 'fill' as const\n\n constructor(id: string, source: string, FillLayerOptions?: Partial<FillLayer>) {\n super(id, source)\n this.FillLayerOptions = FillLayerOptions || { id: this.id, source: this.source }\n }\n buildLayer(): FillLayer {\n return {\n ...this.FillLayerOptions,\n id: this.id,\n source: this.source,\n type: this.type,\n }\n }\n}\n","import { HeatMapFillLayerConfig, HeatMapLineLayerConfig, HeatMapSymbolLayerConfig } from '../Configs'\nimport { FillLayerBuilder } from '../FillLayer'\nimport { LineLayerBuilder } from '../LineLayer'\nimport { SymbolLayerBuilder } from '../SymbolLayer'\n\nexport const MapHeatConstants = {\n LocationDebugLayerId: 'location-debug-id',\n LocationDebugLayerSource: 'location-debug-source',\n LocationFillLayerId: 'location-fill-id',\n LocationFillLayerSource: 'location-fill-source',\n LocationLineLayerId: 'location-line-id',\n LocationLineLayerSource: 'location-line-source',\n}\n\nexport const LocationHeatMapLayerBuilder = (color: string, alternateColor = '#000') => {\n const {\n LocationFillLayerId,\n LocationFillLayerSource,\n LocationLineLayerId,\n LocationLineLayerSource,\n LocationDebugLayerId,\n LocationDebugLayerSource,\n } = MapHeatConstants\n\n const fillLayerConfig = HeatMapFillLayerConfig(color)\n const lineLayerConfig = HeatMapLineLayerConfig(color)\n const debugLayerConfig = HeatMapSymbolLayerConfig(alternateColor)\n\n const fillLayer = new FillLayerBuilder(LocationFillLayerId, LocationFillLayerSource, fillLayerConfig)\n const lineLayer = new LineLayerBuilder(LocationLineLayerId, LocationLineLayerSource, lineLayerConfig)\n const debugLayer = new SymbolLayerBuilder(LocationDebugLayerId, LocationDebugLayerSource, debugLayerConfig)\n\n return [fillLayer, lineLayer, debugLayer]\n}\n","import { HeatMapFillLayerConfig } from '../Configs'\nimport { FillLayerBuilder } from '../FillLayer'\n\nconst MapHeatConstants = (index: number, type: string) => ({\n LocationDebugLayerId: `location-${type}-debug-id-${index}`,\n LocationDebugLayerSource: `location-${type}-debug-source-${index}`,\n LocationFillLayerId: `location-${type}-fill-id-${index}`,\n LocationFillLayerSource: `location-${type}-fill-source-${index}`,\n LocationLineLayerId: `location-${type}-line-id-${index}`,\n LocationLineLayerSource: `location-${type}-line-source-${index}`,\n})\n\nexport const LocationHeatMapLayerBuilderAnimated = (color: string, index: number, type = '') => {\n const { LocationFillLayerId, LocationFillLayerSource } = MapHeatConstants(index, type)\n\n const fillLayerConfig = HeatMapFillLayerConfig(color)\n\n const fillLayer = new FillLayerBuilder(LocationFillLayerId, LocationFillLayerSource, fillLayerConfig)\n\n return fillLayer\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\n\nimport { MapboxFlexBoxProps } from '../lib'\nimport { MapBox } from './MapBox'\nimport { MapSettingsBox } from './MapSettingsComponents'\n\nexport const MapboxHeatFlexBox: React.FC<MapboxFlexBoxProps> = ({ accessToken, children, mapBoxOptions, zoom, legend, developerMode, ...props }) => {\n return (\n <FlexCol {...props}>\n <MapBox accessToken={accessToken} options={mapBoxOptions} zoom={zoom} />\n <MapSettingsBox developerMode={developerMode} />\n {legend}\n {children}\n </FlexCol>\n )\n}\n","// eslint-disable-next-line import/no-internal-modules\nimport 'mapbox-gl/dist/mapbox-gl.css'\n\nimport { Map, MapboxOptions } from 'mapbox-gl'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useMapBoxInstance, useMapSettings } from '../Contexts'\nimport { useDynamicMapResize } from '../hooks'\nimport { MapStyle } from '../lib'\n\nexport interface MapBoxProps {\n accessToken: string\n darkMode?: boolean\n options?: Partial<MapboxOptions>\n zoom?: number\n}\n\nexport const MapBox: React.FC<MapBoxProps> = ({ accessToken, darkMode = false, options, zoom = 2, ...props }) => {\n const [map, setMap] = useState<Map>()\n const mapContainerRef = useRef<HTMLDivElement | null>(null)\n const mapCanvasRef = useRef<HTMLCanvasElement | null>(null)\n const { setMapBoxInstance, map: mapInstance } = useMapBoxInstance()\n const { mapSettings } = useMapSettings()\n\n const activeResize = mapSettings?.dynamicMapResize.value\n useDynamicMapResize(mapContainerRef, mapCanvasRef, mapInstance, activeResize)\n\n useEffect(() => {\n if (mapSettings?.preferDark?.value === true) {\n map?.setStyle(`mapbox://styles/${MapStyle.Dark}`)\n } else {\n map?.setStyle(`mapbox://styles/${darkMode ? MapStyle.Dark : MapStyle.Light}`)\n }\n }, [map, darkMode, mapSettings])\n\n useEffect(() => {\n const map = new Map({\n accessToken,\n center: [0, 0],\n container: mapContainerRef.current ?? '',\n style: `mapbox://styles/${MapStyle.Light}`,\n zoom,\n ...options,\n })\n\n // Allow external components to control the map\n setMapBoxInstance?.(map)\n setMap(map)\n\n // save the map canvas ref to help with resizing\n mapCanvasRef.current = document.querySelector('.mapboxgl-canvas')\n\n console.log('Created Map')\n\n return () => {\n console.log('Removing Map')\n map.remove()\n }\n }, [mapContainerRef, setMap, options, zoom, setMapBoxInstance, accessToken])\n\n return (\n <div\n ref={(el) => (mapContainerRef.current = el)}\n style={{\n bottom: 0,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n ...props,\n }}\n />\n )\n}\n","import { FormControlLabel, Switch, SwitchProps } from '@mui/material'\n\nimport { useMapSettings } from '../../Contexts'\n\nexport interface MapSettingSwitchProps extends SwitchProps {\n developerMode?: boolean\n field: string\n}\n\nexport const MapSettingSwitch: React.FC<MapSettingSwitchProps> = ({ developerMode, field, ...props }) => {\n const { mapSettings, setMapSettings } = useMapSettings()\n const setting = mapSettings?.[field]\n\n const onLocalChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (setting) {\n setMapSettings?.((previous) => {\n previous[setting.field].value = event.target.checked\n return { ...previous }\n })\n }\n }\n\n if (setting?.devMode && developerMode === false) {\n return null\n }\n\n return setting?.hidden ? null : (\n <FormControlLabel label={setting?.label} control={<Switch checked={setting?.value} onChange={onLocalChange} {...props} />} />\n )\n}\n","import { Paper, Stack } from '@mui/material'\nimport { FlexBoxProps, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'\nimport { useAppSettings } from '@xyo-network/react-app-settings'\n\nimport { useMapSettings } from '../../Contexts'\nimport { MapSettingSwitch } from './Setting'\n\nexport interface MapSettingsBoxProps extends FlexBoxProps {\n developerMode?: boolean\n}\n\nexport const MapSettingsBox: React.FC<MapSettingsBoxProps> = ({ developerMode, ...props }) => {\n const { mapSettings } = useMapSettings()\n const { developerMode: devModeFromContext } = useAppSettings()\n const resolveDeveloperMode = developerMode ?? devModeFromContext\n\n return mapSettings && resolveDeveloperMode ? (\n <FlexGrowRow bottom={36} left={10} position=\"absolute\" {...props}>\n <FlexRow paddingX={2}>\n <Paper>\n <Stack direction=\"row\" spacing={1} marginX={1}>\n {Object.keys(mapSettings).map((key, index) => {\n return <MapSettingSwitch key={index} field={mapSettings[key].field} developerMode={developerMode} />\n })}\n </Stack>\n </Paper>\n </FlexRow>\n </FlexGrowRow>\n ) : null\n}\n","import { Alert, AlertTitle } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { useArchivistFromNode, useArchivistGet } from '@xyo-network/react-archivist'\nimport { Feature, Polygon } from 'geojson'\n\nimport { AnimatedHeatMapSettings } from '../AnimatedHeatMapSettings'\nimport { useFindHashes, useHeatMapColors, useQuadKeyPayloadsToFeatures } from '../hooks'\nimport { NetworkLocationHeatmapQuadkeyAnswerPayload } from '../types'\nimport { AnimatedHeatMap } from './AnimatedHeatMap'\nimport { AnimatedHeatMapLegend } from './Legend'\n\nexport interface AnimatedHeatMapLoadedProps extends FlexBoxProps {\n accessToken: string\n archivistNameOrAddress: string\n}\n\nexport const AnimatedHeatMapLoaded: React.FC<AnimatedHeatMapLoadedProps> = ({ accessToken, archivistNameOrAddress, ...props }) => {\n const hashes = useFindHashes()\n const [archivist] = useArchivistFromNode(archivistNameOrAddress)\n const [payloads, xyoError] = useArchivistGet<NetworkLocationHeatmapQuadkeyAnswerPayload>(archivist, hashes)\n const { multipleFeatureSets } = useQuadKeyPayloadsToFeatures(payloads)\n const { heatMapColorProps, legendProps } = useHeatMapColors()\n\n const MapBoxHeatProps = {\n flexGrow: 1,\n legend: legendProps ? <AnimatedHeatMapLegend {...legendProps} /> : null,\n }\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {xyoError ? (\n <Alert sx={{ mt: 2 }}>\n <AlertTitle>Error Loading Map</AlertTitle>\n {xyoError.message ? `Error: ${xyoError.message}` : null}\n You might try authenticating again.\n </Alert>\n ) : null}\n {hashes !== undefined ? (\n <AnimatedHeatMap\n accessToken={accessToken}\n defaultMapSettings={AnimatedHeatMapSettings}\n animatedFeatureSets={multipleFeatureSets.slice(1, multipleFeatureSets.length) as Feature<Polygon>[][]}\n staticFeatureSet={multipleFeatureSets[0] as Feature<Polygon>[]}\n heatMapColorProps={heatMapColorProps}\n {...MapBoxHeatProps}\n />\n ) : (\n <Alert>Missing answer hash for heat map query</Alert>\n )}\n </FlexCol>\n )\n}\n","import { MapSetting } from './MapSetting'\n\nexport const DefaultMapSettings: () => MapSetting = () => ({\n debugLayer: {\n devMode: true,\n field: 'debugLayer',\n hidden: true,\n label: 'Debug Layer',\n value: false,\n },\n debugLogging: {\n devMode: true,\n field: 'debugLogging',\n hidden: true,\n label: 'Debug Logging',\n value: false,\n },\n dynamicMapResize: {\n devMode: true,\n field: 'dynamicMapResize',\n hidden: true,\n label: 'Auto Map Resize',\n value: true,\n },\n enableControls: {\n devMode: true,\n field: 'enableControls',\n hidden: true,\n label: 'Map Controls',\n value: false,\n },\n fitToPoints: {\n devMode: true,\n field: 'fitToPoints',\n hidden: true,\n label: 'Fit To Points',\n value: false,\n },\n preferDark: {\n devMode: false,\n field: 'preferDark',\n hidden: true,\n label: 'Prefer dark',\n value: false,\n },\n scrollToZoom: {\n devMode: true,\n field: 'scrollToZoom',\n hidden: true,\n label: 'Scroll To Zoom',\n value: false,\n },\n})\n","import { DefaultMapSettings } from './Settings'\n\nexport const AnimatedHeatMapSettings = DefaultMapSettings()\nconst { debugLayer, scrollToZoom, fitToPoints, preferDark } = AnimatedHeatMapSettings\ndebugLayer.hidden = false\nscrollToZoom.value = true\nfitToPoints.value = false\npreferDark.value = true\n","import { useMediaQuery, useTheme } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\n\nimport { ColorGradientLegendProps } from '../Colors'\nimport { ColorGradientLegend } from './Legends'\n\nconst AnimatedHeatMapLegend: React.FC<ColorGradientLegendProps> = ({ ...legendProps }) => {\n const { startColor, endColor, startLabel, endLabel, heading, textColor } = legendProps\n const theme = useTheme()\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'))\n\n return (\n <FlexCol position=\"absolute\" bottom={0} right={0}>\n <ColorGradientLegend\n startColor={startColor}\n endColor={endColor}\n startLabel={startLabel}\n endLabel={endLabel}\n heading={heading}\n textColor={textColor}\n {...{\n alignItems: 'stretch',\n marginBottom: theme.spacing(4),\n marginLeft: isSmall ? theme.spacing(3) : 0,\n marginRight: isSmall ? theme.spacing(2) : theme.spacing(3),\n width: isSmall ? '40vw' : theme.spacing(18),\n }}\n />\n </FlexCol>\n )\n}\n\nexport { AnimatedHeatMapLegend }\n","import { Typography, useTheme } from '@mui/material'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\n\nimport { ColorGradientLegendProps } from '../../Colors'\n\nconst ColorGradientLegend: React.FC<ColorGradientLegendProps> = ({ startColor, endColor, startLabel, endLabel, heading, textColor, ...props }) => {\n const theme = useTheme()\n\n return (\n <FlexCol {...props}>\n <Typography mb={theme.spacing(0.25)} color={textColor} variant=\"caption\" textAlign=\"center\">\n {heading}\n </Typography>\n <FlexCol flexGrow={1} alignItems=\"stretch\" paddingX={theme.spacing(1)} mb={theme.spacing(0.25)}>\n <FlexCol\n height={theme.spacing(0.75)}\n border={`1px solid ${textColor}`}\n sx={{ backgroundImage: `linear-gradient(to right, ${startColor},${endColor})` }}\n />\n </FlexCol>\n <FlexRow flexGrow={1} justifyContent=\"space-between\">\n <Typography color={textColor} variant=\"caption\">\n {startLabel}\n </Typography>\n <Typography color={textColor} variant=\"caption\">\n {endLabel}\n </Typography>\n </FlexRow>\n </FlexCol>\n )\n}\n\nexport { ColorGradientLegend }\n","import { DefaultMapSettings } from '../Settings'\n\nconst HeatMapSettings = DefaultMapSettings()\nconst { debugLayer, scrollToZoom, fitToPoints } = HeatMapSettings\ndebugLayer.hidden = false\nscrollToZoom.value = true\nfitToPoints.value = true\n\nexport { HeatMapSettings }\n","import { useInterval, WithChildren } from '@xylabs/react-shared'\nimport { Map } from 'mapbox-gl'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { MapLayer } from '../Layers'\nimport { MapboxFlexBoxProps } from '../lib'\n\nexport interface LayerAnimatorProps {\n animateLayers?: boolean\n layers: MapboxFlexBoxProps['layers']\n layersInitialized: boolean\n map: Map | undefined\n}\n\nconst timeIncrement = 2000\nconst animatedLayerCount = 3\n\nexport const LayerAnimator: React.FC<WithChildren<LayerAnimatorProps>> = ({ animateLayers, children, layers, layersInitialized, map }) => {\n const [fillLayers, setFillLayers] = useState<MapLayer[]>([])\n const layerIndexQueue = useRef<number[]>([])\n\n const incrementQueue = useCallback(\n (index: number) => {\n if (fillLayers[index]) {\n layerIndexQueue.current.push(index)\n } else {\n layerIndexQueue.current.push(0)\n }\n return layerIndexQueue.current.at(-1)\n },\n [fillLayers],\n )\n\n const lastQueuedIndex = useCallback(() => {\n const last = layerIndexQueue.current.at(-1)\n if (last === undefined) {\n incrementQueue(0)\n return 0\n } else {\n return last\n }\n }, [incrementQueue])\n\n const unshiftQueue = useCallback(() => {\n layerIndexQueue.current.shift()\n }, [])\n\n const getNextLayer = useCallback(() => {\n const nextLayer = fillLayers[lastQueuedIndex()]\n incrementQueue(lastQueuedIndex() + 1)\n return nextLayer\n }, [fillLayers, incrementQueue, lastQueuedIndex])\n\n const layerAnimateWorker = useCallback(\n (layer: MapLayer) => {\n if (layer) {\n map?.setPaintProperty(layer.id, 'fill-opacity', 0.85)\n setTimeout(() => {\n map?.setPaintProperty(layer.id, 'fill-opacity', 0)\n unshiftQueue()\n }, timeIncrement * 2)\n } else {\n console.warn('tried to queue an empty layer')\n }\n },\n [map, unshiftQueue],\n )\n\n useEffect(() => {\n if (layers?.length && map && layersInitialized) {\n // Only animate fill layers for now\n setFillLayers(\n layers.filter((layer) => {\n const fillLayer = layer.id.startsWith('location-fill')\n if (fillLayer) {\n map.setPaintProperty(layer.id, 'fill-opacity-transition', { delay: 0, duration: 4000 })\n }\n return fillLayer\n }),\n )\n }\n }, [layers, layersInitialized, map])\n\n //\n const queueLayerAnimation = useCallback(() => {\n const animatedLayers: MapLayer[] = []\n\n for (let i = 0; i < animatedLayerCount; i++) {\n animatedLayers.push(getNextLayer())\n }\n\n animatedLayers.forEach((layer, index) => {\n if (index === 0) {\n layerAnimateWorker(layer)\n } else {\n setTimeout(() => {\n layerAnimateWorker(layer)\n }, timeIncrement * index)\n }\n })\n }, [getNextLayer, layerAnimateWorker])\n\n // Run a single layer animation before the interval kicks in\n useEffect(() => {\n if (animateLayers && layersInitialized && map && fillLayers.length) {\n queueLayerAnimation()\n }\n }, [animateLayers, fillLayers.length, layersInitialized, map, queueLayerAnimation])\n\n useInterval(() => {\n if (animateLayers && layersInitialized && map && fillLayers.length) {\n queueLayerAnimation()\n }\n }, timeIncrement * animatedLayerCount)\n\n return <>{children}</>\n}\n","import { Alert } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { Feature, Point } from 'geojson'\nimport { FitBoundsOptions } from 'mapbox-gl'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { useMapBoxInstance, useMapSettings } from '../Contexts'\nimport { MapboxFlexBoxProps } from '../lib'\nimport { MapPoints } from '../MapBoxClasses'\nimport { MapBox } from './MapBox'\nimport { MapSettingsBox } from './MapSettingsComponents'\n\nexport interface MapboxPointsFlexBoxProps extends MapboxFlexBoxProps {\n accessToken: string\n features?: Feature<Point>[]\n}\n\nexport const MapboxPointsFlexBox: React.FC<MapboxPointsFlexBoxProps> = ({\n accessToken,\n features,\n fitToPointsPadding = 20,\n layers,\n zoom,\n ...props\n}) => {\n const [mapPoints, setMapPoints] = useState<MapPoints>()\n const { mapSettings } = useMapSettings()\n const { map, mapInitialized } = useMapBoxInstance()\n\n /**\n * Needed because of a bug in mapbox taking undefined values for the config options of fitToBounds\n * see - https://github.com/mapbox/mapbox-gl-js/issues/10013\n */\n const customFitToBoundsOptions = (zoom?: number): FitBoundsOptions => {\n if (zoom !== undefined) {\n return {\n maxZoom: zoom,\n }\n }\n return {}\n }\n\n const updateFeatures = useCallback(() => {\n if (mapPoints?.isMapReady && features?.length) {\n layers?.forEach((layer) => {\n mapPoints.initializeMapSource(layer)\n })\n }\n }, [mapPoints, features, layers])\n\n const updateMapSetup = useCallback(() => {\n const { fitToPoints } = mapSettings || {}\n\n if (mapPoints && map) {\n if (fitToPoints?.value === true) {\n mapPoints.initialMapPositioning({ padding: fitToPointsPadding, ...customFitToBoundsOptions(zoom) })\n }\n }\n }, [mapSettings, mapPoints, map, fitToPointsPadding, zoom])\n\n const reInitializeMap = useCallback(() => {\n mapPoints?.initialMapPositioning({ padding: fitToPointsPadding, ...customFitToBoundsOptions(zoom) })\n updateFeatures()\n }, [mapPoints, fitToPointsPadding, updateFeatures, zoom])\n\n useEffect(() => {\n if (map && features?.length) {\n setMapPoints(new MapPoints({ features, map, zoom }))\n }\n }, [map, features, zoom])\n\n useEffect(() => {\n if (mapInitialized) {\n updateMapSetup()\n reInitializeMap()\n }\n }, [mapInitialized, reInitializeMap, updateMapSetup])\n\n return (\n <FlexCol alignItems=\"stretch\" id=\"xyo-mapbox-wrap\" {...props}>\n {features ? (\n <>\n <MapBox accessToken={accessToken} zoom={zoom} />\n <MapSettingsBox />\n </>\n ) : (\n <Alert severity=\"error\">No data to show</Alert>\n )}\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["useTheme","FlexCol","useState","forget","useEffect","useState","dependenciesReady","useEffect","useState","useMemo","useEffect","useState","features","GeoJson","assertEx","GeoJson","GeoJson","factor","initialPad","assertEx","LngLatBounds","LngLatBounds","debugLayer","scrollToZoom","useEffect","useState","useState","useEffect","assertEx","assertEx","useEffect","useState","createContext","jsx","useState","useEffect","useContext","useContext","createContext","jsx","useState","useEffect","forget","fitToPoints","MapHeatConstants","Map","useEffect","useState","jsx","useState","useEffect","map","Map","jsx","jsx","jsx","jsx","useTheme","useState","FlexCol","FlexCol","useTheme","FlexCol","useTheme","FlexCol","FlexRow","jsx","jsxs","jsx","useTheme","FlexCol","jsx","jsxs","FlexCol","debugLayer","scrollToZoom","fitToPoints","useEffect","useRef","useState","jsx","Alert","FlexCol","useCallback","useEffect","useState","Fragment","jsx","jsxs","useState","zoom","useCallback","fitToPoints","useEffect","FlexCol","Alert"]}
@@ -1,32 +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/Context.ts
21
- var Context_exports = {};
22
- __export(Context_exports, {
23
- HeatMapInitializerContext: () => HeatMapInitializerContext
24
- });
25
- module.exports = __toCommonJS(Context_exports);
26
- var import_react = require("react");
27
- var HeatMapInitializerContext = (0, import_react.createContext)({});
28
- // Annotate the CommonJS export names for ESM import in node:
29
- 0 && (module.exports = {
30
- HeatMapInitializerContext
31
- });
32
- //# sourceMappingURL=Context.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/Contexts/HeatMapInitializer/Context.ts"],"sourcesContent":["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,mBAA8B;AAI9B,IAAM,gCAA4B,4BAAuC,CAAC,CAAC;","names":[]}
@@ -1,7 +0,0 @@
1
- // src/Contexts/HeatMapInitializer/Context.ts
2
- import { createContext } from "react";
3
- var HeatMapInitializerContext = createContext({});
4
- export {
5
- HeatMapInitializerContext
6
- };
7
- //# sourceMappingURL=Context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/Contexts/HeatMapInitializer/Context.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport { HeatMapInitializerState } from './State'\n\nconst HeatMapInitializerContext = createContext<HeatMapInitializerState>({})\n\nexport { HeatMapInitializerContext }\n"],"mappings":";AAAA,SAAS,qBAAqB;AAI9B,IAAM,4BAA4B,cAAuC,CAAC,CAAC;","names":[]}
@@ -1,310 +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/Provider.tsx
21
- var Provider_exports = {};
22
- __export(Provider_exports, {
23
- HeatMapInitializerProvider: () => HeatMapInitializerProvider
24
- });
25
- module.exports = __toCommonJS(Provider_exports);
26
- var import_forget2 = require("@xylabs/forget");
27
- var import_react7 = require("react");
28
-
29
- // src/hooks/useDynamicPositioning.tsx
30
- var import_react_shared = require("@xylabs/react-shared");
31
- var import_react = require("react");
32
- var defaultZoom = 1.6;
33
- var defaultAspectRatioRange = [0.5, 2];
34
- var latRange = [0.9121644205263664, 1.71785031559439];
35
- var lngRange = [-81.4742014851959, 12.788958675506933];
36
- var linearInterpolate = (aspectRatio, degreeRange, aspectRatioRange) => {
37
- const [degreeMin, degreeMax] = degreeRange;
38
- const [aspectRatioMin, aspectRatioMax] = aspectRatioRange || defaultAspectRatioRange;
39
- const aspectRatioRangeSpan = aspectRatioMax - aspectRatioMin;
40
- const degreeRangeSpan = degreeMax - degreeMin;
41
- const percent = (aspectRatio - aspectRatioMin) / aspectRatioRangeSpan;
42
- const scaledDegree = percent * degreeRangeSpan + degreeMin;
43
- return scaledDegree;
44
- };
45
- var useDynamicPositioning = () => {
46
- const [options, setOptions] = (0, import_react.useState)({});
47
- const { width, height } = (0, import_react_shared.useWindowSize)();
48
- (0, import_react.useEffect)(() => {
49
- if (width && height) {
50
- const aspectRatio = width / height;
51
- setOptions({
52
- center: [linearInterpolate(aspectRatio, lngRange), linearInterpolate(aspectRatio, latRange)],
53
- zoom: defaultZoom
54
- });
55
- }
56
- }, [height, width]);
57
- return { options };
58
- };
59
-
60
- // src/MapBoxClasses/MapBase.ts
61
- var import_assert = require("@xylabs/assert");
62
- var import_sdk_geo = require("@xyo-network/sdk-geo");
63
- var MapBase = class {
64
- _config;
65
- constructor(config) {
66
- this._config = { requestLocation: true, zoom: 2, ...config };
67
- }
68
- get isMapReady() {
69
- return !!this._config.map;
70
- }
71
- initializeMapSource(layer) {
72
- const getSource = () => {
73
- const featuresCollection = import_sdk_geo.GeoJson.featureCollection(this._config.features);
74
- return import_sdk_geo.GeoJson.featuresSource(featuresCollection);
75
- };
76
- const existingSource = this._config.map.getSource(layer.source);
77
- const source = getSource();
78
- if (existingSource) {
79
- existingSource.setData((0, import_assert.assertEx)(source.data));
80
- } else {
81
- this._config.map.addSource(layer.source, source);
82
- }
83
- layer.update(this._config.map, true);
84
- return this;
85
- }
86
- };
87
-
88
- // src/MapBoxClasses/MapHeat.ts
89
- var import_assert2 = require("@xylabs/assert");
90
- var import_delay = require("@xylabs/delay");
91
- var import_forget = require("@xylabs/forget");
92
- var import_sdk_geo2 = require("@xyo-network/sdk-geo");
93
- var import_mapbox_gl = require("mapbox-gl");
94
- var MapHeat = class extends MapBase {
95
- static animationStarted = false;
96
- config;
97
- constructor(config) {
98
- super(config);
99
- this.config = config;
100
- }
101
- static initialMapPositioning(options, map, features, initialBounds) {
102
- if (!features) {
103
- return;
104
- }
105
- let bounds;
106
- if (initialBounds) {
107
- bounds = initialBounds;
108
- } else {
109
- bounds = new import_mapbox_gl.LngLatBounds();
110
- features.forEach((feature) => {
111
- feature.geometry.coordinates.forEach((coordinates) => {
112
- coordinates.forEach((position) => {
113
- bounds.extend(position);
114
- });
115
- });
116
- });
117
- }
118
- map.setCenter(bounds.getCenter());
119
- map.fitBounds(bounds, options);
120
- return this;
121
- }
122
- static async initializeAnimatedHeatMapSource(layers, featureSet, map, startColor, endColor) {
123
- this.animationStarted = true;
124
- let layerTick = 0;
125
- let sourceTick = 0;
126
- const sources = featureSet.map((feature) => {
127
- const featuresCollection = import_sdk_geo2.GeoJson.featureCollection(feature);
128
- return import_sdk_geo2.GeoJson.featuresSource(featuresCollection);
129
- });
130
- this.updateLayer(map, layers[0], sources[0]);
131
- this.updateLayer(map, layers[1], sources[1]);
132
- layers.forEach((layer) => {
133
- map.setPaintProperty(layer.id, "fill-opacity", 0);
134
- });
135
- const frameLength = 3e3;
136
- const initialPad = 0.5;
137
- const factor = 10;
138
- const steps = 30;
139
- const stepLength = frameLength / steps;
140
- const lowUsageColor = startColor ?? "#FFB3B3";
141
- const highUsageColor = endColor ?? "#FF0000";
142
- const dynamicFillColor = (factor2, initialPad2, i) => {
143
- const sinFade = Math.sin(i / steps * Math.PI / 2);
144
- const cosFade = Math.cos(i / steps * Math.PI / 2);
145
- const divisor = factor2 + factor2 * sinFade;
146
- const offset = initialPad2 * cosFade;
147
- return [
148
- "let",
149
- "density",
150
- ["+", ["/", ["number", ["get", "value"]], divisor], offset],
151
- ["interpolate", ["linear"], ["var", "density"], 0, lowUsageColor, 0.5, highUsageColor]
152
- ];
153
- };
154
- const fadedIn = layers.map((_) => false);
155
- const fadeIn = async (id, index) => {
156
- for (let i = steps; i >= 1; i--) {
157
- map.setPaintProperty(id, "fill-color", dynamicFillColor(factor, initialPad, i * (180 / stepLength)));
158
- await (0, import_delay.delay)(stepLength);
159
- }
160
- fadedIn[index] = true;
161
- };
162
- const fadeOut = async (id, index) => {
163
- for (let i = 1; i <= steps; i++) {
164
- map.setPaintProperty(id, "fill-color", dynamicFillColor(factor, initialPad, i * (180 / stepLength)));
165
- await (0, import_delay.delay)(stepLength);
166
- }
167
- fadedIn[index] = false;
168
- };
169
- let started = false;
170
- const startAnimation = async () => {
171
- (0, import_assert2.assertEx)(!started, "Animation Already Started");
172
- started = true;
173
- while (this.animationStarted) {
174
- const upLayer = layerTick % layers.length;
175
- const downLayer = (layerTick + 1) % layers.length;
176
- const incomingSource = sourceTick % featureSet.length;
177
- const outgoingSource = (sourceTick + 1) % featureSet.length;
178
- if (fadedIn[upLayer]) {
179
- this.updateLayer(map, layers[upLayer], sources[incomingSource]);
180
- (0, import_forget.forget)(fadeOut(layers[upLayer].id, upLayer));
181
- }
182
- if (!fadedIn[downLayer]) {
183
- this.updateLayer(map, layers[downLayer], sources[outgoingSource]);
184
- (0, import_forget.forget)(fadeIn(layers[downLayer].id, downLayer));
185
- }
186
- while ((fadedIn[upLayer] || !fadedIn[downLayer]) && this.animationStarted) {
187
- await (0, import_delay.delay)(1e3);
188
- }
189
- layerTick++;
190
- sourceTick++;
191
- }
192
- };
193
- await startAnimation();
194
- }
195
- static updateLayer(map, layer, source) {
196
- const existingSource = map.getSource(layer.source);
197
- if (existingSource && source.data) {
198
- existingSource.setData(source.data);
199
- } else if (source) {
200
- map.addSource(layer.source, source);
201
- }
202
- layer.update(map, true);
203
- }
204
- // Build layers each with the same features
205
- initializeHeatMapSource(layers) {
206
- const getSource = (_) => {
207
- const featuresCollection = import_sdk_geo2.GeoJson.featureCollection(this.config.features);
208
- return import_sdk_geo2.GeoJson.featuresSource(featuresCollection);
209
- };
210
- layers.forEach((layer, index) => {
211
- const existingSource = this.config.map.getSource(layer.source);
212
- const source = getSource(index);
213
- if (existingSource) {
214
- existingSource.setData((0, import_assert2.assertEx)(source.data));
215
- } else {
216
- this.config.map.addSource(layer.source, source);
217
- }
218
- layer.update(this.config.map, true);
219
- });
220
- return this;
221
- }
222
- };
223
-
224
- // src/Contexts/MapBoxInstance/Context.ts
225
- var import_react2 = require("react");
226
- var MapBoxInstanceContext = (0, import_react2.createContext)({});
227
-
228
- // src/Contexts/MapBoxInstance/useMapBoxInstance.tsx
229
- var import_assert3 = require("@xylabs/assert");
230
- var import_react3 = require("react");
231
- var useMapBoxInstance = () => {
232
- const context = (0, import_react3.useContext)(MapBoxInstanceContext);
233
- (0, import_assert3.assertEx)("map" in context, "useMapBoxInstance must be used within a MapBoxInstanceContext");
234
- return context;
235
- };
236
-
237
- // src/Contexts/MapSettings/Context.ts
238
- var import_react4 = require("react");
239
- var MapSettingsContext = (0, import_react4.createContext)({});
240
-
241
- // src/Contexts/MapSettings/useMapSettings.tsx
242
- var import_react5 = require("react");
243
- var useMapSettings = () => {
244
- const context = (0, import_react5.useContext)(MapSettingsContext);
245
- return context;
246
- };
247
-
248
- // src/Contexts/HeatMapInitializer/Context.ts
249
- var import_react6 = require("react");
250
- var HeatMapInitializerContext = (0, import_react6.createContext)({});
251
-
252
- // src/Contexts/HeatMapInitializer/Provider.tsx
253
- var import_jsx_runtime = require("react/jsx-runtime");
254
- var HeatMapInitializerProvider = ({
255
- children,
256
- featureSets,
257
- featureSetsLayers,
258
- features,
259
- fitToPadding,
260
- heatMapColorProps,
261
- layers,
262
- zoom
263
- }) => {
264
- const [mapHeat, setMapHeat] = (0, import_react7.useState)();
265
- const { options } = useDynamicPositioning();
266
- const { mapSettings } = useMapSettings();
267
- const { map, mapInitialized } = useMapBoxInstance();
268
- const value = {
269
- MapHeat: mapHeat,
270
- heatMapColorProps
271
- };
272
- (0, import_react7.useEffect)(() => {
273
- if (mapInitialized && (featureSets == null ? void 0 : featureSets.length) && featureSets[0].length && map && (featureSetsLayers == null ? void 0 : featureSetsLayers.length)) {
274
- const { lowUsageColor, highUsageColor } = heatMapColorProps;
275
- (0, import_forget2.forget)(MapHeat.initializeAnimatedHeatMapSource(featureSetsLayers, featureSets, map, lowUsageColor, highUsageColor));
276
- }
277
- return () => {
278
- MapHeat.animationStarted = false;
279
- };
280
- }, [featureSets, featureSetsLayers, mapInitialized, map, heatMapColorProps]);
281
- (0, import_react7.useEffect)(() => {
282
- if (mapHeat && mapInitialized && (features == null ? void 0 : features.length) && (layers == null ? void 0 : layers.length)) {
283
- mapHeat.initializeHeatMapSource(layers);
284
- }
285
- }, [mapHeat, features == null ? void 0 : features.length, layers, mapInitialized]);
286
- (0, import_react7.useEffect)(() => {
287
- if (mapInitialized) {
288
- const { fitToPoints } = mapSettings || {};
289
- if (map) {
290
- if ((fitToPoints == null ? void 0 : fitToPoints.value) === true) {
291
- MapHeat.initialMapPositioning({ padding: fitToPadding }, map, features);
292
- } else if (options.zoom && options.center) {
293
- map.setZoom(options.zoom);
294
- map.setCenter(options.center);
295
- }
296
- }
297
- }
298
- }, [mapHeat, map, mapSettings, fitToPadding, options, mapInitialized, features]);
299
- (0, import_react7.useEffect)(() => {
300
- if (map && (features == null ? void 0 : features.length)) {
301
- setMapHeat(new MapHeat({ features, map, zoom }));
302
- }
303
- }, [map, features, zoom]);
304
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HeatMapInitializerContext.Provider, { value, children });
305
- };
306
- // Annotate the CommonJS export names for ESM import in node:
307
- 0 && (module.exports = {
308
- HeatMapInitializerProvider
309
- });
310
- //# sourceMappingURL=Provider.cjs.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"],"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"],"mappings":"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","names":["import_forget","import_react","import_assert","import_sdk_geo","factor","initialPad","import_react","import_assert","import_react","import_react","import_react","import_react"]}