@macrostrat/map-interface 1.6.0 → 2.0.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 (450) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/container.cjs +131 -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 +79 -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 +54 -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 +155 -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 +212 -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 +20 -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 +125 -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 +162 -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 +68 -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 +13 -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 +8 -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 +81 -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 +355 -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 +30 -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 +90 -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 +62 -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 +69 -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 +25 -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 +109 -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 +42 -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 +200 -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 +51 -48
  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,200 @@
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 h = h$1.styled(main_module.default);
15
+ function defaultInitializeMap(container, args = {}) {
16
+ const { mapPosition, ...rest } = args;
17
+ const map = new mapboxgl.Map({
18
+ container,
19
+ maxZoom: 18,
20
+ logoPosition: "bottom-left",
21
+ trackResize: false,
22
+ antialias: true,
23
+ // This is a legacy option for Mapbox GL v2
24
+ // @ts-ignore
25
+ optimizeForTerrain: true,
26
+ ...rest
27
+ });
28
+ let _mapPosition = mapPosition;
29
+ if (_mapPosition == null && rest.center == null && rest.bounds == null) {
30
+ _mapPosition = defaultMapPosition;
31
+ }
32
+ if (_mapPosition != null) {
33
+ mapboxUtils.setMapPosition(map, _mapPosition);
34
+ }
35
+ return map;
36
+ }
37
+ const defaultMapPosition = {
38
+ camera: {
39
+ lat: 34,
40
+ lng: -120,
41
+ altitude: 3e5
42
+ }
43
+ };
44
+ function MapView(props) {
45
+ let { terrainSourceID } = props;
46
+ const {
47
+ enableTerrain = true,
48
+ style,
49
+ mapPosition,
50
+ initializeMap = defaultInitializeMap,
51
+ children,
52
+ mapboxToken,
53
+ // Deprecated
54
+ accessToken,
55
+ infoMarkerPosition,
56
+ transformRequest,
57
+ projection,
58
+ onMapLoaded = null,
59
+ onStyleLoaded = null,
60
+ onMapMoved = null,
61
+ standalone = false,
62
+ overlayStyles,
63
+ transformStyle,
64
+ trackResize = true,
65
+ loadingIgnoredSources = ["elevationMarker", "crossSectionEndpoints"],
66
+ id = "map",
67
+ className,
68
+ ...rest
69
+ } = props;
70
+ if (enableTerrain) {
71
+ terrainSourceID ??= "mapbox-3d-dem";
72
+ }
73
+ React.useEffect(() => {
74
+ if (id != null) {
75
+ console.warn(
76
+ "Setting a specific element ID for the map is deprecated. Please use className instead."
77
+ );
78
+ }
79
+ }, [id]);
80
+ const _mapboxToken = mapboxToken ?? accessToken;
81
+ if (_mapboxToken != null) {
82
+ mapboxgl.accessToken = _mapboxToken;
83
+ }
84
+ const dispatch = mapboxReact.useMapDispatch();
85
+ let mapRef = mapboxReact.useMapRef();
86
+ const ref = React.useRef();
87
+ const parentRef = React.useRef();
88
+ const [baseStyle, setBaseStyle] = React.useState(null);
89
+ const estMapPosition = mapRef.current == null ? mapPosition : mapboxUtils.getMapPosition(mapRef.current);
90
+ const { mapUse3D, mapIsRotated } = mapboxUtils.mapViewInfo(estMapPosition);
91
+ const is3DAvailable = (mapUse3D ?? false) && enableTerrain;
92
+ React.useEffect(() => {
93
+ if (baseStyle == null) return;
94
+ let map = mapRef.current;
95
+ let newStyle = baseStyle;
96
+ const overlayStyles2 = props.overlayStyles ?? [];
97
+ if (overlayStyles2.length > 0) {
98
+ newStyle = mapboxUtils.mergeStyles(newStyle, ...overlayStyles2);
99
+ }
100
+ if (is3DAvailable) {
101
+ const terrainStyle = mapboxReact.getTerrainLayerForStyle(newStyle, terrainSourceID);
102
+ newStyle = mapboxUtils.mergeStyles(newStyle, terrainStyle);
103
+ }
104
+ if (transformStyle != null) {
105
+ newStyle = transformStyle(newStyle);
106
+ }
107
+ if (map != null) {
108
+ dispatch({ type: "set-style-loaded", payload: false });
109
+ map.setStyle(newStyle);
110
+ } else {
111
+ const map2 = initializeMap(ref.current, {
112
+ style: newStyle,
113
+ projection,
114
+ mapPosition,
115
+ transformRequest,
116
+ ...rest
117
+ });
118
+ dispatch({ type: "set-map", payload: map2 });
119
+ map2.setPadding(utils.getMapPadding(ref, parentRef), { animate: false });
120
+ onMapLoaded?.(map2);
121
+ }
122
+ }, [baseStyle, overlayStyles, transformStyle]);
123
+ uiComponents.useAsyncEffect(async () => {
124
+ let newStyle;
125
+ if (typeof style === "string") {
126
+ newStyle = await mapboxUtils.getMapboxStyle(style, {
127
+ access_token: mapboxgl.accessToken
128
+ });
129
+ } else {
130
+ newStyle = style;
131
+ }
132
+ setBaseStyle(newStyle);
133
+ }, [style]);
134
+ const _projection = mapRef.current?.getProjection()?.name ?? "mercator";
135
+ const mapClassName = classNames(
136
+ {
137
+ "is-rotated": mapIsRotated ?? false,
138
+ "is-3d-available": is3DAvailable
139
+ },
140
+ `${_projection}-projection`
141
+ );
142
+ const parentClassName = classNames(
143
+ {
144
+ standalone
145
+ },
146
+ className
147
+ );
148
+ return h(
149
+ "div.map-view-container.main-view",
150
+ { ref: parentRef, className: parentClassName },
151
+ [
152
+ h("div.mapbox-map.map-view", { ref, className: mapClassName, id }),
153
+ h(helpers.MapLoadingReporter, {
154
+ ignoredSources: loadingIgnoredSources
155
+ }),
156
+ h(StyleLoadedReporter, { onStyleLoaded }),
157
+ h(helpers.MapMovedReporter, { onMapMoved }),
158
+ // Subsitute for trackResize: true that allows map resizing to
159
+ // be tied to a specific ref component
160
+ h.if(trackResize)(helpers.MapResizeManager, { containerRef: ref }),
161
+ h(helpers.MapPaddingManager, {
162
+ containerRef: ref,
163
+ parentRef,
164
+ infoMarkerPosition
165
+ }),
166
+ h(MapTerrainManager, { mapUse3D: is3DAvailable, terrainSourceID, style }),
167
+ children
168
+ ]
169
+ );
170
+ }
171
+ function StyleLoadedReporter({ onStyleLoaded = null }) {
172
+ const isStyleLoaded = mapboxReact.useMapStatus((state) => state.isStyleLoaded);
173
+ const mapRef = mapboxReact.useMapRef();
174
+ const dispatch = mapboxReact.useMapDispatch();
175
+ React.useEffect(() => {
176
+ if (isStyleLoaded) return;
177
+ const interval = setInterval(() => {
178
+ const map = mapRef.current;
179
+ if (map == null) return;
180
+ if (map.isStyleLoaded()) {
181
+ dispatch({ type: "set-style-loaded", payload: true });
182
+ onStyleLoaded?.(map);
183
+ clearInterval(interval);
184
+ }
185
+ }, 50);
186
+ return () => clearInterval(interval);
187
+ }, [isStyleLoaded]);
188
+ return null;
189
+ }
190
+ function MapTerrainManager({
191
+ mapUse3D,
192
+ terrainSourceID,
193
+ style
194
+ }) {
195
+ mapboxReact.use3DTerrain(mapUse3D, terrainSourceID);
196
+ return null;
197
+ }
198
+ exports.MapTerrainManager = MapTerrainManager;
199
+ exports.MapView = MapView;
200
+ //# 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","setMapPosition","useEffect","useMapDispatch","useMapRef","useRef","useState","getMapPosition","mapViewInfo","overlayStyles","mergeStyles","getTerrainLayerForStyle","map","getMapPadding","useAsyncEffect","getMapboxStyle","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;"}