@macrostrat/map-interface 1.6.0 → 2.0.1

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 (450) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/container.cjs +134 -0
  3. package/dist/container.cjs.map +1 -0
  4. package/dist/container.d.ts +17 -0
  5. package/dist/container.js +131 -0
  6. package/dist/container.js.map +1 -0
  7. package/dist/context-panel/index.cjs +81 -0
  8. package/dist/context-panel/index.cjs.map +1 -0
  9. package/dist/context-panel/index.d.ts +36 -0
  10. package/dist/context-panel/index.js +79 -0
  11. package/dist/context-panel/index.js.map +1 -0
  12. package/dist/context-panel/main.module.sass.cjs +16 -0
  13. package/dist/context-panel/main.module.sass.cjs.map +1 -0
  14. package/dist/context-panel/main.module.sass.js +16 -0
  15. package/dist/context-panel/main.module.sass.js.map +1 -0
  16. package/dist/controls.cjs +56 -0
  17. package/dist/controls.cjs.map +1 -0
  18. package/dist/controls.d.ts +3 -0
  19. package/dist/controls.js +54 -0
  20. package/dist/controls.js.map +1 -0
  21. package/dist/dev/index.d.ts +4 -0
  22. package/dist/dev/main.module.sass.cjs +30 -0
  23. package/dist/dev/main.module.sass.cjs.map +1 -0
  24. package/dist/dev/main.module.sass.js +30 -0
  25. package/dist/dev/main.module.sass.js.map +1 -0
  26. package/dist/dev/map-page.cjs +158 -0
  27. package/dist/dev/map-page.cjs.map +1 -0
  28. package/dist/dev/map-page.d.ts +26 -0
  29. package/dist/dev/map-page.js +155 -0
  30. package/dist/dev/map-page.js.map +1 -0
  31. package/dist/dev/tile-extent.cjs +39 -0
  32. package/dist/dev/tile-extent.cjs.map +1 -0
  33. package/dist/dev/tile-extent.d.ts +10 -0
  34. package/dist/dev/tile-extent.js +39 -0
  35. package/dist/dev/tile-extent.js.map +1 -0
  36. package/dist/dev/vector-tile-features.cjs +214 -0
  37. package/dist/dev/vector-tile-features.cjs.map +1 -0
  38. package/dist/dev/vector-tile-features.d.ts +29 -0
  39. package/dist/dev/vector-tile-features.js +212 -0
  40. package/dist/dev/vector-tile-features.js.map +1 -0
  41. package/dist/dev/xray.cjs +93 -0
  42. package/dist/dev/xray.cjs.map +1 -0
  43. package/dist/dev/xray.d.ts +41 -0
  44. package/dist/dev/xray.js +93 -0
  45. package/dist/dev/xray.js.map +1 -0
  46. package/dist/expansion-panel/headers.cjs +22 -0
  47. package/dist/expansion-panel/headers.cjs.map +1 -0
  48. package/dist/expansion-panel/headers.d.ts +1 -0
  49. package/dist/expansion-panel/headers.js +20 -0
  50. package/dist/expansion-panel/headers.js.map +1 -0
  51. package/dist/expansion-panel/index.cjs +128 -0
  52. package/dist/expansion-panel/index.cjs.map +1 -0
  53. package/dist/expansion-panel/index.d.ts +18 -0
  54. package/dist/expansion-panel/index.js +125 -0
  55. package/dist/expansion-panel/index.js.map +1 -0
  56. package/dist/expansion-panel/main.module.sass.cjs +27 -0
  57. package/dist/expansion-panel/main.module.sass.cjs.map +1 -0
  58. package/dist/expansion-panel/main.module.sass.js +27 -0
  59. package/dist/expansion-panel/main.module.sass.js.map +1 -0
  60. package/dist/hash-string.cjs +81 -0
  61. package/dist/hash-string.cjs.map +1 -0
  62. package/dist/hash-string.d.ts +12 -0
  63. package/dist/hash-string.js +81 -0
  64. package/dist/hash-string.js.map +1 -0
  65. package/dist/helpers.cjs +164 -0
  66. package/dist/helpers.cjs.map +1 -0
  67. package/dist/helpers.d.ts +34 -0
  68. package/dist/helpers.js +162 -0
  69. package/dist/helpers.js.map +1 -0
  70. package/dist/index.cjs +73 -0
  71. package/dist/index.cjs.map +1 -0
  72. package/dist/index.d.ts +11 -0
  73. package/dist/index.js +73 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/location-details/fetch.d.ts +4 -0
  76. package/dist/location-details/fossil-collections/collections.cjs +70 -0
  77. package/dist/location-details/fossil-collections/collections.cjs.map +1 -0
  78. package/dist/location-details/fossil-collections/collections.d.ts +3 -0
  79. package/dist/location-details/fossil-collections/collections.js +68 -0
  80. package/dist/location-details/fossil-collections/collections.js.map +1 -0
  81. package/dist/location-details/fossil-collections/index.cjs +15 -0
  82. package/dist/location-details/fossil-collections/index.cjs.map +1 -0
  83. package/dist/location-details/fossil-collections/index.d.ts +3 -0
  84. package/dist/location-details/fossil-collections/index.js +13 -0
  85. package/dist/location-details/fossil-collections/index.js.map +1 -0
  86. package/dist/location-details/fossil-collections/main.module.sass.cjs +7 -0
  87. package/dist/location-details/fossil-collections/main.module.sass.cjs.map +1 -0
  88. package/dist/location-details/fossil-collections/main.module.sass.js +8 -0
  89. package/dist/location-details/fossil-collections/main.module.sass.js.map +1 -0
  90. package/dist/location-details/index.d.ts +5 -0
  91. package/dist/location-details/info-blocks.cjs +84 -0
  92. package/dist/location-details/info-blocks.cjs.map +1 -0
  93. package/dist/location-details/info-blocks.d.ts +9 -0
  94. package/dist/location-details/info-blocks.js +81 -0
  95. package/dist/location-details/info-blocks.js.map +1 -0
  96. package/dist/location-details/info-blocks.module.sass.cjs +18 -0
  97. package/dist/location-details/info-blocks.module.sass.cjs.map +1 -0
  98. package/dist/location-details/info-blocks.module.sass.js +18 -0
  99. package/dist/location-details/info-blocks.module.sass.js.map +1 -0
  100. package/dist/location-details/macrostrat-linked.cjs +358 -0
  101. package/dist/location-details/macrostrat-linked.cjs.map +1 -0
  102. package/dist/location-details/macrostrat-linked.d.ts +1 -0
  103. package/dist/location-details/macrostrat-linked.js +355 -0
  104. package/dist/location-details/macrostrat-linked.js.map +1 -0
  105. package/dist/location-details/main.module.sass.cjs +20 -0
  106. package/dist/location-details/main.module.sass.cjs.map +1 -0
  107. package/dist/location-details/main.module.sass.js +20 -0
  108. package/dist/location-details/main.module.sass.js.map +1 -0
  109. package/dist/location-details/physiography.cjs +32 -0
  110. package/dist/location-details/physiography.cjs.map +1 -0
  111. package/dist/location-details/physiography.d.ts +1 -0
  112. package/dist/location-details/physiography.js +30 -0
  113. package/dist/location-details/physiography.js.map +1 -0
  114. package/dist/location-details/reg-strat.cjs +92 -0
  115. package/dist/location-details/reg-strat.cjs.map +1 -0
  116. package/dist/location-details/reg-strat.d.ts +6 -0
  117. package/dist/location-details/reg-strat.js +90 -0
  118. package/dist/location-details/reg-strat.js.map +1 -0
  119. package/dist/location-details/utils/formatting.cjs +16 -0
  120. package/dist/location-details/utils/formatting.cjs.map +1 -0
  121. package/dist/location-details/utils/formatting.d.ts +16 -0
  122. package/dist/location-details/utils/formatting.js +16 -0
  123. package/dist/location-details/utils/formatting.js.map +1 -0
  124. package/dist/location-details/utils/fossils.cjs +149 -0
  125. package/dist/location-details/utils/fossils.cjs.map +1 -0
  126. package/dist/location-details/utils/fossils.d.ts +3 -0
  127. package/dist/location-details/utils/fossils.js +149 -0
  128. package/dist/location-details/utils/fossils.js.map +1 -0
  129. package/dist/location-details/utils/index.cjs +15 -0
  130. package/dist/location-details/utils/index.cjs.map +1 -0
  131. package/dist/location-details/utils/index.d.ts +12 -0
  132. package/dist/location-details/utils/index.js +15 -0
  133. package/dist/location-details/utils/index.js.map +1 -0
  134. package/dist/location-details/xdd-panel/article.cjs +64 -0
  135. package/dist/location-details/xdd-panel/article.cjs.map +1 -0
  136. package/dist/location-details/xdd-panel/article.d.ts +1 -0
  137. package/dist/location-details/xdd-panel/article.js +62 -0
  138. package/dist/location-details/xdd-panel/article.js.map +1 -0
  139. package/dist/location-details/xdd-panel/index.cjs +71 -0
  140. package/dist/location-details/xdd-panel/index.cjs.map +1 -0
  141. package/dist/location-details/xdd-panel/index.d.ts +18 -0
  142. package/dist/location-details/xdd-panel/index.js +69 -0
  143. package/dist/location-details/xdd-panel/index.js.map +1 -0
  144. package/dist/location-details/xdd-panel/journal.cjs +27 -0
  145. package/dist/{cjs/map-interface.3ca778c5.js.map → location-details/xdd-panel/journal.cjs.map} +1 -1
  146. package/dist/location-details/xdd-panel/journal.d.ts +20 -0
  147. package/dist/location-details/xdd-panel/journal.js +25 -0
  148. package/dist/location-details/xdd-panel/journal.js.map +1 -0
  149. package/dist/location-panel/header.cjs +112 -0
  150. package/dist/location-panel/header.cjs.map +1 -0
  151. package/dist/location-panel/header.d.ts +16 -0
  152. package/dist/location-panel/header.js +109 -0
  153. package/dist/location-panel/header.js.map +1 -0
  154. package/dist/location-panel/index.cjs +45 -0
  155. package/dist/location-panel/index.cjs.map +1 -0
  156. package/dist/location-panel/index.d.ts +15 -0
  157. package/dist/location-panel/index.js +42 -0
  158. package/dist/location-panel/index.js.map +1 -0
  159. package/dist/location-panel/main.module.sass.cjs +23 -0
  160. package/dist/location-panel/main.module.sass.cjs.map +1 -0
  161. package/dist/location-panel/main.module.sass.js +23 -0
  162. package/dist/location-panel/main.module.sass.js.map +1 -0
  163. package/dist/main.module.sass.cjs +70 -0
  164. package/dist/main.module.sass.cjs.map +1 -0
  165. package/dist/main.module.sass.js +70 -0
  166. package/dist/main.module.sass.js.map +1 -0
  167. package/dist/map-interface.css +1060 -0
  168. package/dist/map-view.cjs +204 -0
  169. package/dist/map-view.cjs.map +1 -0
  170. package/dist/map-view.d.ts +41 -0
  171. package/dist/map-view.js +200 -0
  172. package/dist/map-view.js.map +1 -0
  173. package/dist/utils.cjs +35 -0
  174. package/dist/utils.cjs.map +1 -0
  175. package/dist/utils.d.ts +7 -0
  176. package/dist/utils.js +35 -0
  177. package/dist/utils.js.map +1 -0
  178. package/package.json +56 -49
  179. package/src/context-panel/main.module.sass +3 -3
  180. package/src/dev/main.module.sass +1 -1
  181. package/src/expansion-panel/main.module.sass +4 -4
  182. package/src/location-details/fossil-collections/main.module.sass +1 -1
  183. package/src/location-details/info-blocks.module.sass +35 -0
  184. package/src/location-details/info-blocks.ts +1 -1
  185. package/src/location-details/macrostrat-linked.ts +1 -1
  186. package/src/location-details/{main.module.styl → main.module.sass} +21 -21
  187. package/src/location-panel/main.module.sass +3 -3
  188. package/src/main.module.sass +15 -15
  189. package/dist/cjs/index.js +0 -54
  190. package/dist/cjs/index.js.map +0 -1
  191. package/dist/cjs/map-interface.0e252a74.js +0 -88
  192. package/dist/cjs/map-interface.0e252a74.js.map +0 -1
  193. package/dist/cjs/map-interface.11056b04.js +0 -390
  194. package/dist/cjs/map-interface.11056b04.js.map +0 -1
  195. package/dist/cjs/map-interface.12e5d744.js +0 -123
  196. package/dist/cjs/map-interface.12e5d744.js.map +0 -1
  197. package/dist/cjs/map-interface.1b386e07.css +0 -111
  198. package/dist/cjs/map-interface.1b386e07.css.map +0 -1
  199. package/dist/cjs/map-interface.1faa2839.js +0 -14
  200. package/dist/cjs/map-interface.1faa2839.js.map +0 -1
  201. package/dist/cjs/map-interface.225c9340.js +0 -71
  202. package/dist/cjs/map-interface.225c9340.js.map +0 -1
  203. package/dist/cjs/map-interface.23d5c62c.js +0 -135
  204. package/dist/cjs/map-interface.23d5c62c.js.map +0 -1
  205. package/dist/cjs/map-interface.24a1c14e.js +0 -46
  206. package/dist/cjs/map-interface.24a1c14e.js.map +0 -1
  207. package/dist/cjs/map-interface.26497065.css +0 -92
  208. package/dist/cjs/map-interface.26497065.css.map +0 -1
  209. package/dist/cjs/map-interface.31742bd3.js +0 -65
  210. package/dist/cjs/map-interface.31742bd3.js.map +0 -1
  211. package/dist/cjs/map-interface.354aaa39.js +0 -135
  212. package/dist/cjs/map-interface.354aaa39.js.map +0 -1
  213. package/dist/cjs/map-interface.368b346c.css +0 -45
  214. package/dist/cjs/map-interface.368b346c.css.map +0 -1
  215. package/dist/cjs/map-interface.3ca778c5.js +0 -57
  216. package/dist/cjs/map-interface.4267aa3a.js +0 -68
  217. package/dist/cjs/map-interface.4267aa3a.js.map +0 -1
  218. package/dist/cjs/map-interface.441d3b83.css +0 -69
  219. package/dist/cjs/map-interface.441d3b83.css.map +0 -1
  220. package/dist/cjs/map-interface.46d1c77b.js +0 -189
  221. package/dist/cjs/map-interface.46d1c77b.js.map +0 -1
  222. package/dist/cjs/map-interface.4a3d9662.js +0 -112
  223. package/dist/cjs/map-interface.4a3d9662.js.map +0 -1
  224. package/dist/cjs/map-interface.4a401c1f.css +0 -584
  225. package/dist/cjs/map-interface.4a401c1f.css.map +0 -1
  226. package/dist/cjs/map-interface.4c5addca.js +0 -89
  227. package/dist/cjs/map-interface.4c5addca.js.map +0 -1
  228. package/dist/cjs/map-interface.5a4f4529.js +0 -38
  229. package/dist/cjs/map-interface.5a4f4529.js.map +0 -1
  230. package/dist/cjs/map-interface.633d24e6.css +0 -22
  231. package/dist/cjs/map-interface.633d24e6.css.map +0 -1
  232. package/dist/cjs/map-interface.67001b26.js +0 -66
  233. package/dist/cjs/map-interface.67001b26.js.map +0 -1
  234. package/dist/cjs/map-interface.69b2e2a9.js +0 -25
  235. package/dist/cjs/map-interface.69b2e2a9.js.map +0 -1
  236. package/dist/cjs/map-interface.70458f75.js +0 -26
  237. package/dist/cjs/map-interface.70458f75.js.map +0 -1
  238. package/dist/cjs/map-interface.7170f35e.js +0 -65
  239. package/dist/cjs/map-interface.7170f35e.js.map +0 -1
  240. package/dist/cjs/map-interface.7509f2c1.js +0 -29
  241. package/dist/cjs/map-interface.7509f2c1.js.map +0 -1
  242. package/dist/cjs/map-interface.7bdbe4b6.js +0 -220
  243. package/dist/cjs/map-interface.7bdbe4b6.js.map +0 -1
  244. package/dist/cjs/map-interface.8d67cc21.js +0 -100
  245. package/dist/cjs/map-interface.8d67cc21.js.map +0 -1
  246. package/dist/cjs/map-interface.99a048dc.js +0 -79
  247. package/dist/cjs/map-interface.99a048dc.js.map +0 -1
  248. package/dist/cjs/map-interface.a3c2552f.js +0 -33
  249. package/dist/cjs/map-interface.a3c2552f.js.map +0 -1
  250. package/dist/cjs/map-interface.a960d638.js +0 -185
  251. package/dist/cjs/map-interface.a960d638.js.map +0 -1
  252. package/dist/cjs/map-interface.a9fe0f5d.js +0 -170
  253. package/dist/cjs/map-interface.a9fe0f5d.js.map +0 -1
  254. package/dist/cjs/map-interface.abe5fe65.js +0 -50
  255. package/dist/cjs/map-interface.abe5fe65.js.map +0 -1
  256. package/dist/cjs/map-interface.adb45df9.css +0 -191
  257. package/dist/cjs/map-interface.adb45df9.css.map +0 -1
  258. package/dist/cjs/map-interface.ae4c52a6.css +0 -52
  259. package/dist/cjs/map-interface.ae4c52a6.css.map +0 -1
  260. package/dist/cjs/map-interface.bda26b27.js +0 -134
  261. package/dist/cjs/map-interface.bda26b27.js.map +0 -1
  262. package/dist/cjs/map-interface.c5061c96.js +0 -36
  263. package/dist/cjs/map-interface.c5061c96.js.map +0 -1
  264. package/dist/cjs/map-interface.cd485bb4.js +0 -41
  265. package/dist/cjs/map-interface.cd485bb4.js.map +0 -1
  266. package/dist/cjs/map-interface.cf6c9a68.js +0 -208
  267. package/dist/cjs/map-interface.cf6c9a68.js.map +0 -1
  268. package/dist/cjs/map-interface.e74ded77.js +0 -135
  269. package/dist/cjs/map-interface.e74ded77.js.map +0 -1
  270. package/dist/cjs/map-interface.e975d65c.js +0 -23
  271. package/dist/cjs/map-interface.e975d65c.js.map +0 -1
  272. package/dist/cjs/map-interface.e9bcd5c0.js +0 -268
  273. package/dist/cjs/map-interface.e9bcd5c0.js.map +0 -1
  274. package/dist/cjs/map-interface.f8826069.js +0 -46
  275. package/dist/cjs/map-interface.f8826069.js.map +0 -1
  276. package/dist/cjs/map-interface.f9611285.js +0 -32
  277. package/dist/cjs/map-interface.f9611285.js.map +0 -1
  278. package/dist/cjs/map-interface.ffb109ef.js +0 -46
  279. package/dist/cjs/map-interface.ffb109ef.js.map +0 -1
  280. package/dist/esm/index.d.ts +0 -334
  281. package/dist/esm/index.d.ts.map +0 -1
  282. package/dist/esm/index.js +0 -27
  283. package/dist/esm/index.js.map +0 -1
  284. package/dist/esm/map-interface.01826888.js +0 -67
  285. package/dist/esm/map-interface.01826888.js.map +0 -1
  286. package/dist/esm/map-interface.021cf79b.js +0 -18
  287. package/dist/esm/map-interface.021cf79b.js.map +0 -1
  288. package/dist/esm/map-interface.065737fe.js +0 -172
  289. package/dist/esm/map-interface.065737fe.js.map +0 -1
  290. package/dist/esm/map-interface.0b1aa8f2.js +0 -81
  291. package/dist/esm/map-interface.0b1aa8f2.js.map +0 -1
  292. package/dist/esm/map-interface.1843c708.js +0 -83
  293. package/dist/esm/map-interface.1843c708.js.map +0 -1
  294. package/dist/esm/map-interface.1d38872e.js +0 -385
  295. package/dist/esm/map-interface.1d38872e.js.map +0 -1
  296. package/dist/esm/map-interface.1db44824.js +0 -24
  297. package/dist/esm/map-interface.1db44824.js.map +0 -1
  298. package/dist/esm/map-interface.22ea3934.js +0 -41
  299. package/dist/esm/map-interface.22ea3934.js.map +0 -1
  300. package/dist/esm/map-interface.2350f590.js +0 -48
  301. package/dist/esm/map-interface.2350f590.js.map +0 -1
  302. package/dist/esm/map-interface.27587c50.js +0 -126
  303. package/dist/esm/map-interface.27587c50.js.map +0 -1
  304. package/dist/esm/map-interface.2892a5fb.js +0 -178
  305. package/dist/esm/map-interface.2892a5fb.js.map +0 -1
  306. package/dist/esm/map-interface.3033c825.js +0 -40
  307. package/dist/esm/map-interface.3033c825.js.map +0 -1
  308. package/dist/esm/map-interface.3f07937e.js +0 -124
  309. package/dist/esm/map-interface.3f07937e.js.map +0 -1
  310. package/dist/esm/map-interface.473f1f2b.js +0 -28
  311. package/dist/esm/map-interface.473f1f2b.js.map +0 -1
  312. package/dist/esm/map-interface.50edfdfd.js +0 -74
  313. package/dist/esm/map-interface.50edfdfd.js.map +0 -1
  314. package/dist/esm/map-interface.557de808.js +0 -13
  315. package/dist/esm/map-interface.557de808.js.map +0 -1
  316. package/dist/esm/map-interface.578a7505.js +0 -130
  317. package/dist/esm/map-interface.578a7505.js.map +0 -1
  318. package/dist/esm/map-interface.59896194.js +0 -37
  319. package/dist/esm/map-interface.59896194.js.map +0 -1
  320. package/dist/esm/map-interface.64c62ba1.js +0 -62
  321. package/dist/esm/map-interface.64c62ba1.js.map +0 -1
  322. package/dist/esm/map-interface.672c2e0b.js +0 -182
  323. package/dist/esm/map-interface.672c2e0b.js.map +0 -1
  324. package/dist/esm/map-interface.6e65dcaf.js +0 -58
  325. package/dist/esm/map-interface.6e65dcaf.js.map +0 -1
  326. package/dist/esm/map-interface.70d6a7ff.js +0 -16
  327. package/dist/esm/map-interface.70d6a7ff.js.map +0 -1
  328. package/dist/esm/map-interface.72b1bfba.js +0 -94
  329. package/dist/esm/map-interface.72b1bfba.js.map +0 -1
  330. package/dist/esm/map-interface.786d6e58.js +0 -258
  331. package/dist/esm/map-interface.786d6e58.js.map +0 -1
  332. package/dist/esm/map-interface.7ea8a1e0.js +0 -40
  333. package/dist/esm/map-interface.7ea8a1e0.js.map +0 -1
  334. package/dist/esm/map-interface.9152234b.js +0 -114
  335. package/dist/esm/map-interface.9152234b.js.map +0 -1
  336. package/dist/esm/map-interface.957e414c.js +0 -52
  337. package/dist/esm/map-interface.957e414c.js.map +0 -1
  338. package/dist/esm/map-interface.a03a7a23.js +0 -16
  339. package/dist/esm/map-interface.a03a7a23.js.map +0 -1
  340. package/dist/esm/map-interface.a8c94450.js +0 -55
  341. package/dist/esm/map-interface.a8c94450.js.map +0 -1
  342. package/dist/esm/map-interface.bdef07d2.js +0 -34
  343. package/dist/esm/map-interface.bdef07d2.js.map +0 -1
  344. package/dist/esm/map-interface.c2a61cbf.js +0 -62
  345. package/dist/esm/map-interface.c2a61cbf.js.map +0 -1
  346. package/dist/esm/map-interface.c52c2fec.js +0 -130
  347. package/dist/esm/map-interface.c52c2fec.js.map +0 -1
  348. package/dist/esm/map-interface.c99b53b6.js +0 -43
  349. package/dist/esm/map-interface.c99b53b6.js.map +0 -1
  350. package/dist/esm/map-interface.ca1ee406.js +0 -214
  351. package/dist/esm/map-interface.ca1ee406.js.map +0 -1
  352. package/dist/esm/map-interface.e418553b.js +0 -107
  353. package/dist/esm/map-interface.e418553b.js.map +0 -1
  354. package/dist/esm/map-interface.e63d862d.js +0 -15
  355. package/dist/esm/map-interface.e63d862d.js.map +0 -1
  356. package/dist/esm/map-interface.f7b8bdb7.js +0 -192
  357. package/dist/esm/map-interface.f7b8bdb7.js.map +0 -1
  358. package/dist/node/index.js +0 -2
  359. package/dist/node/index.js.map +0 -1
  360. package/dist/node/map-interface.07882229.css +0 -2
  361. package/dist/node/map-interface.07882229.css.map +0 -1
  362. package/dist/node/map-interface.0e71fd95.js +0 -2
  363. package/dist/node/map-interface.0e71fd95.js.map +0 -1
  364. package/dist/node/map-interface.10f5ef81.js +0 -2
  365. package/dist/node/map-interface.10f5ef81.js.map +0 -1
  366. package/dist/node/map-interface.1a5eecac.js +0 -2
  367. package/dist/node/map-interface.1a5eecac.js.map +0 -1
  368. package/dist/node/map-interface.1be49df8.css +0 -2
  369. package/dist/node/map-interface.1be49df8.css.map +0 -1
  370. package/dist/node/map-interface.254e457a.js +0 -2
  371. package/dist/node/map-interface.254e457a.js.map +0 -1
  372. package/dist/node/map-interface.2d12b35c.js +0 -2
  373. package/dist/node/map-interface.2d12b35c.js.map +0 -1
  374. package/dist/node/map-interface.33b7734a.js +0 -2
  375. package/dist/node/map-interface.33b7734a.js.map +0 -1
  376. package/dist/node/map-interface.3ea55e0c.js +0 -2
  377. package/dist/node/map-interface.3ea55e0c.js.map +0 -1
  378. package/dist/node/map-interface.41e916d1.js +0 -2
  379. package/dist/node/map-interface.41e916d1.js.map +0 -1
  380. package/dist/node/map-interface.42ef081d.css +0 -2
  381. package/dist/node/map-interface.42ef081d.css.map +0 -1
  382. package/dist/node/map-interface.47b81f95.js +0 -2
  383. package/dist/node/map-interface.47b81f95.js.map +0 -1
  384. package/dist/node/map-interface.4b4f8fdf.js +0 -2
  385. package/dist/node/map-interface.4b4f8fdf.js.map +0 -1
  386. package/dist/node/map-interface.4df6e2c7.js +0 -2
  387. package/dist/node/map-interface.4df6e2c7.js.map +0 -1
  388. package/dist/node/map-interface.5736d6f8.js +0 -2
  389. package/dist/node/map-interface.5736d6f8.js.map +0 -1
  390. package/dist/node/map-interface.593e09ed.js +0 -2
  391. package/dist/node/map-interface.593e09ed.js.map +0 -1
  392. package/dist/node/map-interface.62b147ce.js +0 -2
  393. package/dist/node/map-interface.62b147ce.js.map +0 -1
  394. package/dist/node/map-interface.6314eef1.js +0 -2
  395. package/dist/node/map-interface.6314eef1.js.map +0 -1
  396. package/dist/node/map-interface.713361a4.js +0 -2
  397. package/dist/node/map-interface.713361a4.js.map +0 -1
  398. package/dist/node/map-interface.722387fb.js +0 -2
  399. package/dist/node/map-interface.722387fb.js.map +0 -1
  400. package/dist/node/map-interface.78e05655.js +0 -2
  401. package/dist/node/map-interface.78e05655.js.map +0 -1
  402. package/dist/node/map-interface.7aaa58c9.js +0 -2
  403. package/dist/node/map-interface.7aaa58c9.js.map +0 -1
  404. package/dist/node/map-interface.83fa8028.js +0 -2
  405. package/dist/node/map-interface.83fa8028.js.map +0 -1
  406. package/dist/node/map-interface.9317d050.js +0 -2
  407. package/dist/node/map-interface.9317d050.js.map +0 -1
  408. package/dist/node/map-interface.971af4bc.js +0 -2
  409. package/dist/node/map-interface.971af4bc.js.map +0 -1
  410. package/dist/node/map-interface.9824c03a.js +0 -2
  411. package/dist/node/map-interface.9824c03a.js.map +0 -1
  412. package/dist/node/map-interface.992dea73.js +0 -2
  413. package/dist/node/map-interface.992dea73.js.map +0 -1
  414. package/dist/node/map-interface.a1252092.css +0 -2
  415. package/dist/node/map-interface.a1252092.css.map +0 -1
  416. package/dist/node/map-interface.a8a16138.js +0 -2
  417. package/dist/node/map-interface.a8a16138.js.map +0 -1
  418. package/dist/node/map-interface.ae3d2d83.js +0 -2
  419. package/dist/node/map-interface.ae3d2d83.js.map +0 -1
  420. package/dist/node/map-interface.b0e1ad1b.js +0 -2
  421. package/dist/node/map-interface.b0e1ad1b.js.map +0 -1
  422. package/dist/node/map-interface.b14f08e8.js +0 -2
  423. package/dist/node/map-interface.b14f08e8.js.map +0 -1
  424. package/dist/node/map-interface.b33fab5e.js +0 -2
  425. package/dist/node/map-interface.b33fab5e.js.map +0 -1
  426. package/dist/node/map-interface.bd78832e.css +0 -2
  427. package/dist/node/map-interface.bd78832e.css.map +0 -1
  428. package/dist/node/map-interface.bf86da7c.js +0 -2
  429. package/dist/node/map-interface.bf86da7c.js.map +0 -1
  430. package/dist/node/map-interface.c5c0ad06.js +0 -2
  431. package/dist/node/map-interface.c5c0ad06.js.map +0 -1
  432. package/dist/node/map-interface.d22d91e9.css +0 -2
  433. package/dist/node/map-interface.d22d91e9.css.map +0 -1
  434. package/dist/node/map-interface.d2fce135.css +0 -2
  435. package/dist/node/map-interface.d2fce135.css.map +0 -1
  436. package/dist/node/map-interface.d5eba479.css +0 -2
  437. package/dist/node/map-interface.d5eba479.css.map +0 -1
  438. package/dist/node/map-interface.e7598785.js +0 -2
  439. package/dist/node/map-interface.e7598785.js.map +0 -1
  440. package/dist/node/map-interface.ed6b5586.js +0 -2
  441. package/dist/node/map-interface.ed6b5586.js.map +0 -1
  442. package/dist/node/map-interface.f13f7aeb.js +0 -2
  443. package/dist/node/map-interface.f13f7aeb.js.map +0 -1
  444. package/dist/node/map-interface.f413c362.js +0 -2
  445. package/dist/node/map-interface.f413c362.js.map +0 -1
  446. package/dist/node/map-interface.f4d2a5eb.js +0 -2
  447. package/dist/node/map-interface.f4d2a5eb.js.map +0 -1
  448. package/dist/node/map-interface.fdd35e74.js +0 -2
  449. package/dist/node/map-interface.fdd35e74.js.map +0 -1
  450. package/src/location-details/info-blocks.module.styl +0 -39
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const h$1 = require("@macrostrat/hyper");
4
+ const mapboxReact = require("@macrostrat/mapbox-react");
5
+ const mapboxUtils = require("@macrostrat/mapbox-utils");
6
+ const classNames = require("classnames");
7
+ const mapboxgl = require("mapbox-gl");
8
+ const React = require("react");
9
+ const main_module = require("./main.module.sass.cjs");
10
+ const helpers = require("./helpers.cjs");
11
+ ;/* empty css */
12
+ const utils = require("./utils.cjs");
13
+ const uiComponents = require("@macrostrat/ui-components");
14
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
15
+ const h__default = /* @__PURE__ */ _interopDefault(h$1);
16
+ const classNames__default = /* @__PURE__ */ _interopDefault(classNames);
17
+ const mapboxgl__default = /* @__PURE__ */ _interopDefault(mapboxgl);
18
+ const h = h__default.default.styled(main_module.default);
19
+ function defaultInitializeMap(container, args = {}) {
20
+ const { mapPosition, ...rest } = args;
21
+ const map = new mapboxgl__default.default.Map({
22
+ container,
23
+ maxZoom: 18,
24
+ logoPosition: "bottom-left",
25
+ trackResize: false,
26
+ antialias: true,
27
+ // This is a legacy option for Mapbox GL v2
28
+ // @ts-ignore
29
+ optimizeForTerrain: true,
30
+ ...rest
31
+ });
32
+ let _mapPosition = mapPosition;
33
+ if (_mapPosition == null && rest.center == null && rest.bounds == null) {
34
+ _mapPosition = defaultMapPosition;
35
+ }
36
+ if (_mapPosition != null) {
37
+ mapboxUtils.setMapPosition(map, _mapPosition);
38
+ }
39
+ return map;
40
+ }
41
+ const defaultMapPosition = {
42
+ camera: {
43
+ lat: 34,
44
+ lng: -120,
45
+ altitude: 3e5
46
+ }
47
+ };
48
+ function MapView(props) {
49
+ let { terrainSourceID } = props;
50
+ const {
51
+ enableTerrain = true,
52
+ style,
53
+ mapPosition,
54
+ initializeMap = defaultInitializeMap,
55
+ children,
56
+ mapboxToken,
57
+ // Deprecated
58
+ accessToken,
59
+ infoMarkerPosition,
60
+ transformRequest,
61
+ projection,
62
+ onMapLoaded = null,
63
+ onStyleLoaded = null,
64
+ onMapMoved = null,
65
+ standalone = false,
66
+ overlayStyles,
67
+ transformStyle,
68
+ trackResize = true,
69
+ loadingIgnoredSources = ["elevationMarker", "crossSectionEndpoints"],
70
+ id = "map",
71
+ className,
72
+ ...rest
73
+ } = props;
74
+ if (enableTerrain) {
75
+ terrainSourceID ??= "mapbox-3d-dem";
76
+ }
77
+ React.useEffect(() => {
78
+ if (id != null) {
79
+ console.warn(
80
+ "Setting a specific element ID for the map is deprecated. Please use className instead."
81
+ );
82
+ }
83
+ }, [id]);
84
+ const _mapboxToken = mapboxToken ?? accessToken;
85
+ if (_mapboxToken != null) {
86
+ mapboxgl__default.default.accessToken = _mapboxToken;
87
+ }
88
+ const dispatch = mapboxReact.useMapDispatch();
89
+ let mapRef = mapboxReact.useMapRef();
90
+ const ref = React.useRef();
91
+ const parentRef = React.useRef();
92
+ const [baseStyle, setBaseStyle] = React.useState(null);
93
+ const estMapPosition = mapRef.current == null ? mapPosition : mapboxUtils.getMapPosition(mapRef.current);
94
+ const { mapUse3D, mapIsRotated } = mapboxUtils.mapViewInfo(estMapPosition);
95
+ const is3DAvailable = (mapUse3D ?? false) && enableTerrain;
96
+ React.useEffect(() => {
97
+ if (baseStyle == null) return;
98
+ let map = mapRef.current;
99
+ let newStyle = baseStyle;
100
+ const overlayStyles2 = props.overlayStyles ?? [];
101
+ if (overlayStyles2.length > 0) {
102
+ newStyle = mapboxUtils.mergeStyles(newStyle, ...overlayStyles2);
103
+ }
104
+ if (is3DAvailable) {
105
+ const terrainStyle = mapboxReact.getTerrainLayerForStyle(newStyle, terrainSourceID);
106
+ newStyle = mapboxUtils.mergeStyles(newStyle, terrainStyle);
107
+ }
108
+ if (transformStyle != null) {
109
+ newStyle = transformStyle(newStyle);
110
+ }
111
+ if (map != null) {
112
+ dispatch({ type: "set-style-loaded", payload: false });
113
+ map.setStyle(newStyle);
114
+ } else {
115
+ const map2 = initializeMap(ref.current, {
116
+ style: newStyle,
117
+ projection,
118
+ mapPosition,
119
+ transformRequest,
120
+ ...rest
121
+ });
122
+ dispatch({ type: "set-map", payload: map2 });
123
+ map2.setPadding(utils.getMapPadding(ref, parentRef), { animate: false });
124
+ onMapLoaded?.(map2);
125
+ }
126
+ }, [baseStyle, overlayStyles, transformStyle]);
127
+ uiComponents.useAsyncEffect(async () => {
128
+ let newStyle;
129
+ if (typeof style === "string") {
130
+ newStyle = await mapboxUtils.getMapboxStyle(style, {
131
+ access_token: mapboxgl__default.default.accessToken
132
+ });
133
+ } else {
134
+ newStyle = style;
135
+ }
136
+ setBaseStyle(newStyle);
137
+ }, [style]);
138
+ const _projection = mapRef.current?.getProjection()?.name ?? "mercator";
139
+ const mapClassName = classNames__default.default(
140
+ {
141
+ "is-rotated": mapIsRotated ?? false,
142
+ "is-3d-available": is3DAvailable
143
+ },
144
+ `${_projection}-projection`
145
+ );
146
+ const parentClassName = classNames__default.default(
147
+ {
148
+ standalone
149
+ },
150
+ className
151
+ );
152
+ return h(
153
+ "div.map-view-container.main-view",
154
+ { ref: parentRef, className: parentClassName },
155
+ [
156
+ h("div.mapbox-map.map-view", { ref, className: mapClassName, id }),
157
+ h(helpers.MapLoadingReporter, {
158
+ ignoredSources: loadingIgnoredSources
159
+ }),
160
+ h(StyleLoadedReporter, { onStyleLoaded }),
161
+ h(helpers.MapMovedReporter, { onMapMoved }),
162
+ // Subsitute for trackResize: true that allows map resizing to
163
+ // be tied to a specific ref component
164
+ h.if(trackResize)(helpers.MapResizeManager, { containerRef: ref }),
165
+ h(helpers.MapPaddingManager, {
166
+ containerRef: ref,
167
+ parentRef,
168
+ infoMarkerPosition
169
+ }),
170
+ h(MapTerrainManager, { mapUse3D: is3DAvailable, terrainSourceID, style }),
171
+ children
172
+ ]
173
+ );
174
+ }
175
+ function StyleLoadedReporter({ onStyleLoaded = null }) {
176
+ const isStyleLoaded = mapboxReact.useMapStatus((state) => state.isStyleLoaded);
177
+ const mapRef = mapboxReact.useMapRef();
178
+ const dispatch = mapboxReact.useMapDispatch();
179
+ React.useEffect(() => {
180
+ if (isStyleLoaded) return;
181
+ const interval = setInterval(() => {
182
+ const map = mapRef.current;
183
+ if (map == null) return;
184
+ if (map.isStyleLoaded()) {
185
+ dispatch({ type: "set-style-loaded", payload: true });
186
+ onStyleLoaded?.(map);
187
+ clearInterval(interval);
188
+ }
189
+ }, 50);
190
+ return () => clearInterval(interval);
191
+ }, [isStyleLoaded]);
192
+ return null;
193
+ }
194
+ function MapTerrainManager({
195
+ mapUse3D,
196
+ terrainSourceID,
197
+ style
198
+ }) {
199
+ mapboxReact.use3DTerrain(mapUse3D, terrainSourceID);
200
+ return null;
201
+ }
202
+ exports.MapTerrainManager = MapTerrainManager;
203
+ exports.MapView = MapView;
204
+ //# sourceMappingURL=map-view.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-view.cjs","sources":["../src/map-view.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n use3DTerrain,\n getTerrainLayerForStyle,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport React from \"react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n getMapPosition,\n getMapboxStyle,\n mergeStyles,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef, useState } from \"react\";\nimport styles from \"./main.module.sass\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"./helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { getMapPadding } from \"./utils\";\nimport { useAsyncEffect } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n mapboxToken?: string;\n // Deprecated\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n mapPosition?: MapPosition;\n initializeMap?: (\n container: HTMLElement,\n args: MapboxOptionsExt,\n ) => mapboxgl.Map;\n onMapLoaded?: (map: mapboxgl.Map) => void;\n onStyleLoaded?: (map: mapboxgl.Map) => void;\n onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;\n /** This map sets its own viewport, rather than being positioned by a parent.\n * This is a hack to ensure that the map can overflow its \"safe area\" when false */\n standalone?: boolean;\n /** Overlay styles to apply to the map: a list of mapbox style objects or fragments to\n * overlay on top of the main map style at runtime */\n overlayStyles?: Partial<mapboxgl.StyleSpecification>[];\n /** A function to transform the map style before it is loaded */\n transformStyle?: (\n style: mapboxgl.StyleSpecification,\n ) => mapboxgl.StyleSpecification;\n loadingIgnoredSources?: string[];\n id?: string;\n className?: string;\n}\n\nexport interface MapboxOptionsExt extends MapboxCoreOptions {\n mapPosition?: MapPosition;\n}\n\nfunction defaultInitializeMap(container, args: MapboxOptionsExt = {}) {\n const { mapPosition, ...rest } = args;\n\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n logoPosition: \"bottom-left\",\n trackResize: false,\n antialias: true,\n // This is a legacy option for Mapbox GL v2\n // @ts-ignore\n optimizeForTerrain: true,\n ...rest,\n });\n\n let _mapPosition = mapPosition;\n if (_mapPosition == null && rest.center == null && rest.bounds == null) {\n // If no map positioning information is provided, we use the default\n _mapPosition = defaultMapPosition;\n }\n\n // set initial map position\n if (_mapPosition != null) {\n setMapPosition(map, _mapPosition);\n }\n\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n mapPosition,\n initializeMap = defaultInitializeMap,\n children,\n mapboxToken,\n // Deprecated\n accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n onMapMoved = null,\n standalone = false,\n overlayStyles,\n transformStyle,\n trackResize = true,\n loadingIgnoredSources = [\"elevationMarker\", \"crossSectionEndpoints\"],\n id = \"map\",\n className,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n useEffect(() => {\n if (id != null) {\n console.warn(\n \"Setting a specific element ID for the map is deprecated. Please use className instead.\",\n );\n }\n }, [id]);\n\n const _mapboxToken = mapboxToken ?? accessToken;\n\n if (_mapboxToken != null) {\n mapboxgl.accessToken = _mapboxToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n const [baseStyle, setBaseStyle] = useState<mapboxgl.Style>(null);\n\n const estMapPosition: MapPosition | null =\n mapRef.current == null ? mapPosition : getMapPosition(mapRef.current);\n const { mapUse3D, mapIsRotated } = mapViewInfo(estMapPosition);\n const is3DAvailable = (mapUse3D ?? false) && enableTerrain;\n\n useEffect(() => {\n /** Manager to update map style */\n if (baseStyle == null) return;\n let map = mapRef.current;\n\n let newStyle: mapboxgl.StyleSpecification = baseStyle;\n\n const overlayStyles = props.overlayStyles ?? [];\n\n if (overlayStyles.length > 0) {\n newStyle = mergeStyles(newStyle, ...overlayStyles);\n }\n\n /** If we can, we try to update the map style with terrain information\n * immediately, before the style is loaded. This allows us to avoid a\n * flash of the map without terrain.\n *\n * To do this, we need to estimate the map position before load, which\n * doesn't always work.\n */\n if (is3DAvailable) {\n // We can update the style with terrain layers immediately\n const terrainStyle = getTerrainLayerForStyle(newStyle, terrainSourceID);\n newStyle = mergeStyles(newStyle, terrainStyle);\n }\n\n if (transformStyle != null) {\n newStyle = transformStyle(newStyle);\n }\n\n if (map != null) {\n dispatch({ type: \"set-style-loaded\", payload: false });\n map.setStyle(newStyle);\n } else {\n const map = initializeMap(ref.current, {\n style: newStyle,\n projection,\n mapPosition,\n transformRequest,\n ...rest,\n });\n dispatch({ type: \"set-map\", payload: map });\n map.setPadding(getMapPadding(ref, parentRef), { animate: false });\n onMapLoaded?.(map);\n }\n }, [baseStyle, overlayStyles, transformStyle]);\n\n useAsyncEffect(async () => {\n /** Manager to update map style */\n let newStyle: mapboxgl.StyleSpecification;\n if (typeof style === \"string\") {\n newStyle = await getMapboxStyle(style, {\n access_token: mapboxgl.accessToken,\n });\n } else {\n newStyle = style;\n }\n setBaseStyle(newStyle);\n }, [style]);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const mapClassName = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": is3DAvailable,\n },\n `${_projection}-projection`,\n );\n\n const parentClassName = classNames(\n {\n standalone,\n },\n className,\n );\n\n return h(\n \"div.map-view-container.main-view\",\n { ref: parentRef, className: parentClassName },\n [\n h(\"div.mapbox-map.map-view\", { ref, className: mapClassName, id }),\n h(MapLoadingReporter, {\n ignoredSources: loadingIgnoredSources,\n }),\n h(StyleLoadedReporter, { onStyleLoaded }),\n h(MapMovedReporter, { onMapMoved }),\n // Subsitute for trackResize: true that allows map resizing to\n // be tied to a specific ref component\n h.if(trackResize)(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, {\n containerRef: ref,\n parentRef,\n infoMarkerPosition,\n }),\n h(MapTerrainManager, { mapUse3D: is3DAvailable, terrainSourceID, style }),\n children,\n ],\n );\n}\n\nfunction StyleLoadedReporter({ onStyleLoaded = null }) {\n /** Check back every 0.1 seconds to see if the map has loaded.\n * We do it this way because mapboxgl loading events are unreliable */\n const isStyleLoaded = useMapStatus((state) => state.isStyleLoaded);\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n\n useEffect(() => {\n if (isStyleLoaded) return;\n const interval = setInterval(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (map.isStyleLoaded()) {\n // Wait a tick before setting the style loaded state\n dispatch({ type: \"set-style-loaded\", payload: true });\n onStyleLoaded?.(map);\n clearInterval(interval);\n }\n }, 50);\n return () => clearInterval(interval);\n }, [isStyleLoaded]);\n\n return null;\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n style,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n style?: mapboxgl.StyleSpecification | string;\n}) {\n use3DTerrain(mapUse3D, terrainSourceID);\n\n return null;\n}\n"],"names":["hyper","styles","mapboxgl","setMapPosition","useEffect","useMapDispatch","useMapRef","useRef","useState","getMapPosition","mapViewInfo","overlayStyles","mergeStyles","getTerrainLayerForStyle","map","getMapPadding","useAsyncEffect","getMapboxStyle","classNames","MapLoadingReporter","MapMovedReporter","MapResizeManager","MapPaddingManager","useMapStatus","use3DTerrain"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { default as React } from 'react';
2
+ import { MapPosition } from '@macrostrat/mapbox-utils';
3
+ type MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, "container">;
4
+ export interface MapViewProps extends MapboxCoreOptions {
5
+ showLineSymbols?: boolean;
6
+ children?: React.ReactNode;
7
+ mapboxToken?: string;
8
+ accessToken?: string;
9
+ terrainSourceID?: string;
10
+ enableTerrain?: boolean;
11
+ infoMarkerPosition?: mapboxgl.LngLatLike;
12
+ mapPosition?: MapPosition;
13
+ initializeMap?: (container: HTMLElement, args: MapboxOptionsExt) => mapboxgl.Map;
14
+ onMapLoaded?: (map: mapboxgl.Map) => void;
15
+ onStyleLoaded?: (map: mapboxgl.Map) => void;
16
+ onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;
17
+ /** This map sets its own viewport, rather than being positioned by a parent.
18
+ * This is a hack to ensure that the map can overflow its "safe area" when false */
19
+ standalone?: boolean;
20
+ /** Overlay styles to apply to the map: a list of mapbox style objects or fragments to
21
+ * overlay on top of the main map style at runtime */
22
+ overlayStyles?: Partial<mapboxgl.StyleSpecification>[];
23
+ /** A function to transform the map style before it is loaded */
24
+ transformStyle?: (style: mapboxgl.StyleSpecification) => mapboxgl.StyleSpecification;
25
+ loadingIgnoredSources?: string[];
26
+ id?: string;
27
+ className?: string;
28
+ }
29
+ export interface MapboxOptionsExt extends MapboxCoreOptions {
30
+ mapPosition?: MapPosition;
31
+ }
32
+ export declare function MapView(props: MapViewProps): import('react').ReactElement<{
33
+ ref: React.MutableRefObject<HTMLDivElement>;
34
+ className: string;
35
+ }, string | import('react').JSXElementConstructor<any>>;
36
+ export declare function MapTerrainManager({ mapUse3D, terrainSourceID, style, }: {
37
+ mapUse3D?: boolean;
38
+ terrainSourceID?: string;
39
+ style?: mapboxgl.StyleSpecification | string;
40
+ }): any;
41
+ export {};
@@ -0,0 +1,200 @@
1
+ import h$1 from "@macrostrat/hyper";
2
+ import { use3DTerrain, useMapDispatch, useMapRef, getTerrainLayerForStyle, useMapStatus } from "@macrostrat/mapbox-react";
3
+ import { getMapPosition, mapViewInfo, mergeStyles, getMapboxStyle, setMapPosition } from "@macrostrat/mapbox-utils";
4
+ import classNames from "classnames";
5
+ import mapboxgl from "mapbox-gl";
6
+ import { useEffect, useRef, useState } from "react";
7
+ import styles from "./main.module.sass.js";
8
+ import { MapLoadingReporter, MapMovedReporter, MapResizeManager, MapPaddingManager } from "./helpers.js";
9
+ /* empty css */
10
+ import { getMapPadding } from "./utils.js";
11
+ import { useAsyncEffect } from "@macrostrat/ui-components";
12
+ const h = h$1.styled(styles);
13
+ function defaultInitializeMap(container, args = {}) {
14
+ const { mapPosition, ...rest } = args;
15
+ const map = new mapboxgl.Map({
16
+ container,
17
+ maxZoom: 18,
18
+ logoPosition: "bottom-left",
19
+ trackResize: false,
20
+ antialias: true,
21
+ // This is a legacy option for Mapbox GL v2
22
+ // @ts-ignore
23
+ optimizeForTerrain: true,
24
+ ...rest
25
+ });
26
+ let _mapPosition = mapPosition;
27
+ if (_mapPosition == null && rest.center == null && rest.bounds == null) {
28
+ _mapPosition = defaultMapPosition;
29
+ }
30
+ if (_mapPosition != null) {
31
+ setMapPosition(map, _mapPosition);
32
+ }
33
+ return map;
34
+ }
35
+ const defaultMapPosition = {
36
+ camera: {
37
+ lat: 34,
38
+ lng: -120,
39
+ altitude: 3e5
40
+ }
41
+ };
42
+ function MapView(props) {
43
+ let { terrainSourceID } = props;
44
+ const {
45
+ enableTerrain = true,
46
+ style,
47
+ mapPosition,
48
+ initializeMap = defaultInitializeMap,
49
+ children,
50
+ mapboxToken,
51
+ // Deprecated
52
+ accessToken,
53
+ infoMarkerPosition,
54
+ transformRequest,
55
+ projection,
56
+ onMapLoaded = null,
57
+ onStyleLoaded = null,
58
+ onMapMoved = null,
59
+ standalone = false,
60
+ overlayStyles,
61
+ transformStyle,
62
+ trackResize = true,
63
+ loadingIgnoredSources = ["elevationMarker", "crossSectionEndpoints"],
64
+ id = "map",
65
+ className,
66
+ ...rest
67
+ } = props;
68
+ if (enableTerrain) {
69
+ terrainSourceID ??= "mapbox-3d-dem";
70
+ }
71
+ useEffect(() => {
72
+ if (id != null) {
73
+ console.warn(
74
+ "Setting a specific element ID for the map is deprecated. Please use className instead."
75
+ );
76
+ }
77
+ }, [id]);
78
+ const _mapboxToken = mapboxToken ?? accessToken;
79
+ if (_mapboxToken != null) {
80
+ mapboxgl.accessToken = _mapboxToken;
81
+ }
82
+ const dispatch = useMapDispatch();
83
+ let mapRef = useMapRef();
84
+ const ref = useRef();
85
+ const parentRef = useRef();
86
+ const [baseStyle, setBaseStyle] = useState(null);
87
+ const estMapPosition = mapRef.current == null ? mapPosition : getMapPosition(mapRef.current);
88
+ const { mapUse3D, mapIsRotated } = mapViewInfo(estMapPosition);
89
+ const is3DAvailable = (mapUse3D ?? false) && enableTerrain;
90
+ useEffect(() => {
91
+ if (baseStyle == null) return;
92
+ let map = mapRef.current;
93
+ let newStyle = baseStyle;
94
+ const overlayStyles2 = props.overlayStyles ?? [];
95
+ if (overlayStyles2.length > 0) {
96
+ newStyle = mergeStyles(newStyle, ...overlayStyles2);
97
+ }
98
+ if (is3DAvailable) {
99
+ const terrainStyle = getTerrainLayerForStyle(newStyle, terrainSourceID);
100
+ newStyle = mergeStyles(newStyle, terrainStyle);
101
+ }
102
+ if (transformStyle != null) {
103
+ newStyle = transformStyle(newStyle);
104
+ }
105
+ if (map != null) {
106
+ dispatch({ type: "set-style-loaded", payload: false });
107
+ map.setStyle(newStyle);
108
+ } else {
109
+ const map2 = initializeMap(ref.current, {
110
+ style: newStyle,
111
+ projection,
112
+ mapPosition,
113
+ transformRequest,
114
+ ...rest
115
+ });
116
+ dispatch({ type: "set-map", payload: map2 });
117
+ map2.setPadding(getMapPadding(ref, parentRef), { animate: false });
118
+ onMapLoaded?.(map2);
119
+ }
120
+ }, [baseStyle, overlayStyles, transformStyle]);
121
+ useAsyncEffect(async () => {
122
+ let newStyle;
123
+ if (typeof style === "string") {
124
+ newStyle = await getMapboxStyle(style, {
125
+ access_token: mapboxgl.accessToken
126
+ });
127
+ } else {
128
+ newStyle = style;
129
+ }
130
+ setBaseStyle(newStyle);
131
+ }, [style]);
132
+ const _projection = mapRef.current?.getProjection()?.name ?? "mercator";
133
+ const mapClassName = classNames(
134
+ {
135
+ "is-rotated": mapIsRotated ?? false,
136
+ "is-3d-available": is3DAvailable
137
+ },
138
+ `${_projection}-projection`
139
+ );
140
+ const parentClassName = classNames(
141
+ {
142
+ standalone
143
+ },
144
+ className
145
+ );
146
+ return h(
147
+ "div.map-view-container.main-view",
148
+ { ref: parentRef, className: parentClassName },
149
+ [
150
+ h("div.mapbox-map.map-view", { ref, className: mapClassName, id }),
151
+ h(MapLoadingReporter, {
152
+ ignoredSources: loadingIgnoredSources
153
+ }),
154
+ h(StyleLoadedReporter, { onStyleLoaded }),
155
+ h(MapMovedReporter, { onMapMoved }),
156
+ // Subsitute for trackResize: true that allows map resizing to
157
+ // be tied to a specific ref component
158
+ h.if(trackResize)(MapResizeManager, { containerRef: ref }),
159
+ h(MapPaddingManager, {
160
+ containerRef: ref,
161
+ parentRef,
162
+ infoMarkerPosition
163
+ }),
164
+ h(MapTerrainManager, { mapUse3D: is3DAvailable, terrainSourceID, style }),
165
+ children
166
+ ]
167
+ );
168
+ }
169
+ function StyleLoadedReporter({ onStyleLoaded = null }) {
170
+ const isStyleLoaded = useMapStatus((state) => state.isStyleLoaded);
171
+ const mapRef = useMapRef();
172
+ const dispatch = useMapDispatch();
173
+ useEffect(() => {
174
+ if (isStyleLoaded) return;
175
+ const interval = setInterval(() => {
176
+ const map = mapRef.current;
177
+ if (map == null) return;
178
+ if (map.isStyleLoaded()) {
179
+ dispatch({ type: "set-style-loaded", payload: true });
180
+ onStyleLoaded?.(map);
181
+ clearInterval(interval);
182
+ }
183
+ }, 50);
184
+ return () => clearInterval(interval);
185
+ }, [isStyleLoaded]);
186
+ return null;
187
+ }
188
+ function MapTerrainManager({
189
+ mapUse3D,
190
+ terrainSourceID,
191
+ style
192
+ }) {
193
+ use3DTerrain(mapUse3D, terrainSourceID);
194
+ return null;
195
+ }
196
+ export {
197
+ MapTerrainManager,
198
+ MapView
199
+ };
200
+ //# sourceMappingURL=map-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-view.js","sources":["../src/map-view.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n use3DTerrain,\n getTerrainLayerForStyle,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport React from \"react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n getMapPosition,\n getMapboxStyle,\n mergeStyles,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef, useState } from \"react\";\nimport styles from \"./main.module.sass\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"./helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { getMapPadding } from \"./utils\";\nimport { useAsyncEffect } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n mapboxToken?: string;\n // Deprecated\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n mapPosition?: MapPosition;\n initializeMap?: (\n container: HTMLElement,\n args: MapboxOptionsExt,\n ) => mapboxgl.Map;\n onMapLoaded?: (map: mapboxgl.Map) => void;\n onStyleLoaded?: (map: mapboxgl.Map) => void;\n onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;\n /** This map sets its own viewport, rather than being positioned by a parent.\n * This is a hack to ensure that the map can overflow its \"safe area\" when false */\n standalone?: boolean;\n /** Overlay styles to apply to the map: a list of mapbox style objects or fragments to\n * overlay on top of the main map style at runtime */\n overlayStyles?: Partial<mapboxgl.StyleSpecification>[];\n /** A function to transform the map style before it is loaded */\n transformStyle?: (\n style: mapboxgl.StyleSpecification,\n ) => mapboxgl.StyleSpecification;\n loadingIgnoredSources?: string[];\n id?: string;\n className?: string;\n}\n\nexport interface MapboxOptionsExt extends MapboxCoreOptions {\n mapPosition?: MapPosition;\n}\n\nfunction defaultInitializeMap(container, args: MapboxOptionsExt = {}) {\n const { mapPosition, ...rest } = args;\n\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n logoPosition: \"bottom-left\",\n trackResize: false,\n antialias: true,\n // This is a legacy option for Mapbox GL v2\n // @ts-ignore\n optimizeForTerrain: true,\n ...rest,\n });\n\n let _mapPosition = mapPosition;\n if (_mapPosition == null && rest.center == null && rest.bounds == null) {\n // If no map positioning information is provided, we use the default\n _mapPosition = defaultMapPosition;\n }\n\n // set initial map position\n if (_mapPosition != null) {\n setMapPosition(map, _mapPosition);\n }\n\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n mapPosition,\n initializeMap = defaultInitializeMap,\n children,\n mapboxToken,\n // Deprecated\n accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n onMapMoved = null,\n standalone = false,\n overlayStyles,\n transformStyle,\n trackResize = true,\n loadingIgnoredSources = [\"elevationMarker\", \"crossSectionEndpoints\"],\n id = \"map\",\n className,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n useEffect(() => {\n if (id != null) {\n console.warn(\n \"Setting a specific element ID for the map is deprecated. Please use className instead.\",\n );\n }\n }, [id]);\n\n const _mapboxToken = mapboxToken ?? accessToken;\n\n if (_mapboxToken != null) {\n mapboxgl.accessToken = _mapboxToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n const [baseStyle, setBaseStyle] = useState<mapboxgl.Style>(null);\n\n const estMapPosition: MapPosition | null =\n mapRef.current == null ? mapPosition : getMapPosition(mapRef.current);\n const { mapUse3D, mapIsRotated } = mapViewInfo(estMapPosition);\n const is3DAvailable = (mapUse3D ?? false) && enableTerrain;\n\n useEffect(() => {\n /** Manager to update map style */\n if (baseStyle == null) return;\n let map = mapRef.current;\n\n let newStyle: mapboxgl.StyleSpecification = baseStyle;\n\n const overlayStyles = props.overlayStyles ?? [];\n\n if (overlayStyles.length > 0) {\n newStyle = mergeStyles(newStyle, ...overlayStyles);\n }\n\n /** If we can, we try to update the map style with terrain information\n * immediately, before the style is loaded. This allows us to avoid a\n * flash of the map without terrain.\n *\n * To do this, we need to estimate the map position before load, which\n * doesn't always work.\n */\n if (is3DAvailable) {\n // We can update the style with terrain layers immediately\n const terrainStyle = getTerrainLayerForStyle(newStyle, terrainSourceID);\n newStyle = mergeStyles(newStyle, terrainStyle);\n }\n\n if (transformStyle != null) {\n newStyle = transformStyle(newStyle);\n }\n\n if (map != null) {\n dispatch({ type: \"set-style-loaded\", payload: false });\n map.setStyle(newStyle);\n } else {\n const map = initializeMap(ref.current, {\n style: newStyle,\n projection,\n mapPosition,\n transformRequest,\n ...rest,\n });\n dispatch({ type: \"set-map\", payload: map });\n map.setPadding(getMapPadding(ref, parentRef), { animate: false });\n onMapLoaded?.(map);\n }\n }, [baseStyle, overlayStyles, transformStyle]);\n\n useAsyncEffect(async () => {\n /** Manager to update map style */\n let newStyle: mapboxgl.StyleSpecification;\n if (typeof style === \"string\") {\n newStyle = await getMapboxStyle(style, {\n access_token: mapboxgl.accessToken,\n });\n } else {\n newStyle = style;\n }\n setBaseStyle(newStyle);\n }, [style]);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const mapClassName = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": is3DAvailable,\n },\n `${_projection}-projection`,\n );\n\n const parentClassName = classNames(\n {\n standalone,\n },\n className,\n );\n\n return h(\n \"div.map-view-container.main-view\",\n { ref: parentRef, className: parentClassName },\n [\n h(\"div.mapbox-map.map-view\", { ref, className: mapClassName, id }),\n h(MapLoadingReporter, {\n ignoredSources: loadingIgnoredSources,\n }),\n h(StyleLoadedReporter, { onStyleLoaded }),\n h(MapMovedReporter, { onMapMoved }),\n // Subsitute for trackResize: true that allows map resizing to\n // be tied to a specific ref component\n h.if(trackResize)(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, {\n containerRef: ref,\n parentRef,\n infoMarkerPosition,\n }),\n h(MapTerrainManager, { mapUse3D: is3DAvailable, terrainSourceID, style }),\n children,\n ],\n );\n}\n\nfunction StyleLoadedReporter({ onStyleLoaded = null }) {\n /** Check back every 0.1 seconds to see if the map has loaded.\n * We do it this way because mapboxgl loading events are unreliable */\n const isStyleLoaded = useMapStatus((state) => state.isStyleLoaded);\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n\n useEffect(() => {\n if (isStyleLoaded) return;\n const interval = setInterval(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (map.isStyleLoaded()) {\n // Wait a tick before setting the style loaded state\n dispatch({ type: \"set-style-loaded\", payload: true });\n onStyleLoaded?.(map);\n clearInterval(interval);\n }\n }, 50);\n return () => clearInterval(interval);\n }, [isStyleLoaded]);\n\n return null;\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n style,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n style?: mapboxgl.StyleSpecification | string;\n}) {\n use3DTerrain(mapUse3D, terrainSourceID);\n\n return null;\n}\n"],"names":["hyper","overlayStyles","map"],"mappings":"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"}
package/dist/utils.cjs ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const mapboxgl = require("mapbox-gl");
5
+ function calcMapPadding(rect, childRect) {
6
+ return {
7
+ left: Math.max(rect.left - childRect.left, 0),
8
+ top: Math.max(rect.top - childRect.top, 0),
9
+ right: Math.max(childRect.right - rect.right, 0),
10
+ bottom: Math.max(childRect.bottom - rect.bottom, 0)
11
+ };
12
+ }
13
+ function getMapPadding(ref, parentRef) {
14
+ const rect = parentRef.current?.getBoundingClientRect();
15
+ const childRect = ref.current?.getBoundingClientRect();
16
+ if (rect == null || childRect == null) return;
17
+ return calcMapPadding(rect, childRect);
18
+ }
19
+ function useMapMarker(mapRef, markerRef, markerPosition) {
20
+ React.useEffect(() => {
21
+ const map = mapRef.current;
22
+ if (map == null) return;
23
+ if (markerPosition == null) {
24
+ markerRef.current?.remove();
25
+ return;
26
+ }
27
+ const marker = markerRef.current ?? new mapboxgl.Marker();
28
+ marker.setLngLat(markerPosition).addTo(map);
29
+ markerRef.current = marker;
30
+ return () => marker.remove();
31
+ }, [mapRef.current, markerPosition]);
32
+ }
33
+ exports.getMapPadding = getMapPadding;
34
+ exports.useMapMarker = useMapMarker;
35
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","sources":["../src/utils.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { Marker } from \"mapbox-gl\";\n\nfunction calcMapPadding(rect, childRect) {\n return {\n left: Math.max(rect.left - childRect.left, 0),\n top: Math.max(rect.top - childRect.top, 0),\n right: Math.max(childRect.right - rect.right, 0),\n bottom: Math.max(childRect.bottom - rect.bottom, 0),\n };\n}\n\nexport function getMapPadding(ref, parentRef) {\n const rect = parentRef.current?.getBoundingClientRect();\n const childRect = ref.current?.getBoundingClientRect();\n if (rect == null || childRect == null) return;\n return calcMapPadding(rect, childRect);\n}\n\nexport function useMapMarker(mapRef, markerRef, markerPosition) {\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (markerPosition == null) {\n markerRef.current?.remove();\n return;\n }\n const marker = markerRef.current ?? new Marker();\n marker.setLngLat(markerPosition).addTo(map);\n markerRef.current = marker;\n return () => marker.remove();\n }, [mapRef.current, markerPosition]);\n}\n"],"names":["useEffect","Marker"],"mappings":";;;;AAGA,SAAS,eAAe,MAAM,WAAW;AACvC,SAAO;AAAA,IACL,MAAM,KAAK,IAAI,KAAK,OAAO,UAAU,MAAM,CAAC;AAAA,IAC5C,KAAK,KAAK,IAAI,KAAK,MAAM,UAAU,KAAK,CAAC;AAAA,IACzC,OAAO,KAAK,IAAI,UAAU,QAAQ,KAAK,OAAO,CAAC;AAAA,IAC/C,QAAQ,KAAK,IAAI,UAAU,SAAS,KAAK,QAAQ,CAAC;AAAA,EAAA;AAEtD;AAEO,SAAS,cAAc,KAAK,WAAW;AAC5C,QAAM,OAAO,UAAU,SAAS,sBAAA;AAChC,QAAM,YAAY,IAAI,SAAS,sBAAA;AAC/B,MAAI,QAAQ,QAAQ,aAAa,KAAM;AACvC,SAAO,eAAe,MAAM,SAAS;AACvC;AAEO,SAAS,aAAa,QAAQ,WAAW,gBAAgB;AAC9DA,QAAAA,UAAU,MAAM;AACd,UAAM,MAAM,OAAO;AACnB,QAAI,OAAO,KAAM;AACjB,QAAI,kBAAkB,MAAM;AAC1B,gBAAU,SAAS,OAAA;AACnB;AAAA,IACF;AACA,UAAM,SAAS,UAAU,WAAW,IAAIC,SAAAA,OAAA;AACxC,WAAO,UAAU,cAAc,EAAE,MAAM,GAAG;AAC1C,cAAU,UAAU;AACpB,WAAO,MAAM,OAAO,OAAA;AAAA,EACtB,GAAG,CAAC,OAAO,SAAS,cAAc,CAAC;AACrC;;;"}
@@ -0,0 +1,7 @@
1
+ export declare function getMapPadding(ref: any, parentRef: any): {
2
+ left: number;
3
+ top: number;
4
+ right: number;
5
+ bottom: number;
6
+ };
7
+ export declare function useMapMarker(mapRef: any, markerRef: any, markerPosition: any): void;
package/dist/utils.js ADDED
@@ -0,0 +1,35 @@
1
+ import { useEffect } from "react";
2
+ import { Marker } from "mapbox-gl";
3
+ function calcMapPadding(rect, childRect) {
4
+ return {
5
+ left: Math.max(rect.left - childRect.left, 0),
6
+ top: Math.max(rect.top - childRect.top, 0),
7
+ right: Math.max(childRect.right - rect.right, 0),
8
+ bottom: Math.max(childRect.bottom - rect.bottom, 0)
9
+ };
10
+ }
11
+ function getMapPadding(ref, parentRef) {
12
+ const rect = parentRef.current?.getBoundingClientRect();
13
+ const childRect = ref.current?.getBoundingClientRect();
14
+ if (rect == null || childRect == null) return;
15
+ return calcMapPadding(rect, childRect);
16
+ }
17
+ function useMapMarker(mapRef, markerRef, markerPosition) {
18
+ useEffect(() => {
19
+ const map = mapRef.current;
20
+ if (map == null) return;
21
+ if (markerPosition == null) {
22
+ markerRef.current?.remove();
23
+ return;
24
+ }
25
+ const marker = markerRef.current ?? new Marker();
26
+ marker.setLngLat(markerPosition).addTo(map);
27
+ markerRef.current = marker;
28
+ return () => marker.remove();
29
+ }, [mapRef.current, markerPosition]);
30
+ }
31
+ export {
32
+ getMapPadding,
33
+ useMapMarker
34
+ };
35
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { Marker } from \"mapbox-gl\";\n\nfunction calcMapPadding(rect, childRect) {\n return {\n left: Math.max(rect.left - childRect.left, 0),\n top: Math.max(rect.top - childRect.top, 0),\n right: Math.max(childRect.right - rect.right, 0),\n bottom: Math.max(childRect.bottom - rect.bottom, 0),\n };\n}\n\nexport function getMapPadding(ref, parentRef) {\n const rect = parentRef.current?.getBoundingClientRect();\n const childRect = ref.current?.getBoundingClientRect();\n if (rect == null || childRect == null) return;\n return calcMapPadding(rect, childRect);\n}\n\nexport function useMapMarker(mapRef, markerRef, markerPosition) {\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (markerPosition == null) {\n markerRef.current?.remove();\n return;\n }\n const marker = markerRef.current ?? new Marker();\n marker.setLngLat(markerPosition).addTo(map);\n markerRef.current = marker;\n return () => marker.remove();\n }, [mapRef.current, markerPosition]);\n}\n"],"names":[],"mappings":";;AAGA,SAAS,eAAe,MAAM,WAAW;AACvC,SAAO;AAAA,IACL,MAAM,KAAK,IAAI,KAAK,OAAO,UAAU,MAAM,CAAC;AAAA,IAC5C,KAAK,KAAK,IAAI,KAAK,MAAM,UAAU,KAAK,CAAC;AAAA,IACzC,OAAO,KAAK,IAAI,UAAU,QAAQ,KAAK,OAAO,CAAC;AAAA,IAC/C,QAAQ,KAAK,IAAI,UAAU,SAAS,KAAK,QAAQ,CAAC;AAAA,EAAA;AAEtD;AAEO,SAAS,cAAc,KAAK,WAAW;AAC5C,QAAM,OAAO,UAAU,SAAS,sBAAA;AAChC,QAAM,YAAY,IAAI,SAAS,sBAAA;AAC/B,MAAI,QAAQ,QAAQ,aAAa,KAAM;AACvC,SAAO,eAAe,MAAM,SAAS;AACvC;AAEO,SAAS,aAAa,QAAQ,WAAW,gBAAgB;AAC9D,YAAU,MAAM;AACd,UAAM,MAAM,OAAO;AACnB,QAAI,OAAO,KAAM;AACjB,QAAI,kBAAkB,MAAM;AAC1B,gBAAU,SAAS,OAAA;AACnB;AAAA,IACF;AACA,UAAM,SAAS,UAAU,WAAW,IAAI,OAAA;AACxC,WAAO,UAAU,cAAc,EAAE,MAAM,GAAG;AAC1C,cAAU,UAAU;AACpB,WAAO,MAAM,OAAO,OAAA;AAAA,EACtB,GAAG,CAAC,OAAO,SAAS,cAAc,CAAC;AACrC;"}