@macrostrat/map-interface 1.5.7 → 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 (473) hide show
  1. package/CHANGELOG.md +15 -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/location-details/xdd-panel/journal.cjs.map +1 -0
  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-info/hash-string.ts → hash-string.ts} +4 -1
  183. package/src/helpers.ts +0 -2
  184. package/src/index.ts +1 -1
  185. package/src/location-details/fossil-collections/main.module.sass +1 -1
  186. package/src/location-details/info-blocks.module.sass +35 -0
  187. package/src/location-details/info-blocks.ts +1 -1
  188. package/src/location-details/macrostrat-linked.ts +1 -1
  189. package/src/location-details/{main.module.styl → main.module.sass} +21 -21
  190. package/src/location-details/xdd-panel/article.ts +67 -0
  191. package/src/location-details/xdd-panel/index.ts +2 -17
  192. package/src/location-details/xdd-panel/{Journal.tsx → journal.ts} +15 -5
  193. package/src/location-panel/header.ts +1 -1
  194. package/src/location-panel/main.module.sass +3 -3
  195. package/src/main.module.sass +15 -15
  196. package/dist/cjs/index.js +0 -54
  197. package/dist/cjs/index.js.map +0 -1
  198. package/dist/cjs/map-interface.0e252a74.js +0 -88
  199. package/dist/cjs/map-interface.0e252a74.js.map +0 -1
  200. package/dist/cjs/map-interface.10d442f4.js +0 -66
  201. package/dist/cjs/map-interface.10d442f4.js.map +0 -1
  202. package/dist/cjs/map-interface.11056b04.js +0 -390
  203. package/dist/cjs/map-interface.11056b04.js.map +0 -1
  204. package/dist/cjs/map-interface.12e5d744.js +0 -123
  205. package/dist/cjs/map-interface.12e5d744.js.map +0 -1
  206. package/dist/cjs/map-interface.1b386e07.css +0 -111
  207. package/dist/cjs/map-interface.1b386e07.css.map +0 -1
  208. package/dist/cjs/map-interface.1faa2839.js +0 -14
  209. package/dist/cjs/map-interface.1faa2839.js.map +0 -1
  210. package/dist/cjs/map-interface.23d5c62c.js +0 -135
  211. package/dist/cjs/map-interface.23d5c62c.js.map +0 -1
  212. package/dist/cjs/map-interface.2401af7a.js +0 -59
  213. package/dist/cjs/map-interface.2401af7a.js.map +0 -1
  214. package/dist/cjs/map-interface.24a1c14e.js +0 -46
  215. package/dist/cjs/map-interface.24a1c14e.js.map +0 -1
  216. package/dist/cjs/map-interface.26497065.css +0 -92
  217. package/dist/cjs/map-interface.26497065.css.map +0 -1
  218. package/dist/cjs/map-interface.28d1a6b7.js +0 -185
  219. package/dist/cjs/map-interface.28d1a6b7.js.map +0 -1
  220. package/dist/cjs/map-interface.31742bd3.js +0 -65
  221. package/dist/cjs/map-interface.31742bd3.js.map +0 -1
  222. package/dist/cjs/map-interface.354aaa39.js +0 -135
  223. package/dist/cjs/map-interface.354aaa39.js.map +0 -1
  224. package/dist/cjs/map-interface.368b346c.css +0 -45
  225. package/dist/cjs/map-interface.368b346c.css.map +0 -1
  226. package/dist/cjs/map-interface.3bc4f731.js +0 -33
  227. package/dist/cjs/map-interface.3bc4f731.js.map +0 -1
  228. package/dist/cjs/map-interface.3bcda63a.js +0 -66
  229. package/dist/cjs/map-interface.3bcda63a.js.map +0 -1
  230. package/dist/cjs/map-interface.441d3b83.css +0 -69
  231. package/dist/cjs/map-interface.441d3b83.css.map +0 -1
  232. package/dist/cjs/map-interface.46d1c77b.js +0 -189
  233. package/dist/cjs/map-interface.46d1c77b.js.map +0 -1
  234. package/dist/cjs/map-interface.4a401c1f.css +0 -584
  235. package/dist/cjs/map-interface.4a401c1f.css.map +0 -1
  236. package/dist/cjs/map-interface.4c5addca.js +0 -89
  237. package/dist/cjs/map-interface.4c5addca.js.map +0 -1
  238. package/dist/cjs/map-interface.5a4f4529.js +0 -38
  239. package/dist/cjs/map-interface.5a4f4529.js.map +0 -1
  240. package/dist/cjs/map-interface.633d24e6.css +0 -22
  241. package/dist/cjs/map-interface.633d24e6.css.map +0 -1
  242. package/dist/cjs/map-interface.64823b7c.js +0 -129
  243. package/dist/cjs/map-interface.64823b7c.js.map +0 -1
  244. package/dist/cjs/map-interface.66958831.js +0 -36
  245. package/dist/cjs/map-interface.66958831.js.map +0 -1
  246. package/dist/cjs/map-interface.69b2e2a9.js +0 -25
  247. package/dist/cjs/map-interface.69b2e2a9.js.map +0 -1
  248. package/dist/cjs/map-interface.70458f75.js +0 -26
  249. package/dist/cjs/map-interface.70458f75.js.map +0 -1
  250. package/dist/cjs/map-interface.71e61c74.js +0 -73
  251. package/dist/cjs/map-interface.71e61c74.js.map +0 -1
  252. package/dist/cjs/map-interface.7509f2c1.js +0 -29
  253. package/dist/cjs/map-interface.7509f2c1.js.map +0 -1
  254. package/dist/cjs/map-interface.7bdbe4b6.js +0 -220
  255. package/dist/cjs/map-interface.7bdbe4b6.js.map +0 -1
  256. package/dist/cjs/map-interface.860fcb7e.js +0 -67
  257. package/dist/cjs/map-interface.860fcb7e.js.map +0 -1
  258. package/dist/cjs/map-interface.8d67cc21.js +0 -100
  259. package/dist/cjs/map-interface.8d67cc21.js.map +0 -1
  260. package/dist/cjs/map-interface.99a048dc.js +0 -79
  261. package/dist/cjs/map-interface.99a048dc.js.map +0 -1
  262. package/dist/cjs/map-interface.a9fe0f5d.js +0 -170
  263. package/dist/cjs/map-interface.a9fe0f5d.js.map +0 -1
  264. package/dist/cjs/map-interface.abe5fe65.js +0 -50
  265. package/dist/cjs/map-interface.abe5fe65.js.map +0 -1
  266. package/dist/cjs/map-interface.adb45df9.css +0 -191
  267. package/dist/cjs/map-interface.adb45df9.css.map +0 -1
  268. package/dist/cjs/map-interface.ae4c52a6.css +0 -52
  269. package/dist/cjs/map-interface.ae4c52a6.css.map +0 -1
  270. package/dist/cjs/map-interface.bda26b27.js +0 -134
  271. package/dist/cjs/map-interface.bda26b27.js.map +0 -1
  272. package/dist/cjs/map-interface.cd485bb4.js +0 -41
  273. package/dist/cjs/map-interface.cd485bb4.js.map +0 -1
  274. package/dist/cjs/map-interface.cf6c9a68.js +0 -208
  275. package/dist/cjs/map-interface.cf6c9a68.js.map +0 -1
  276. package/dist/cjs/map-interface.dcbd3874.js +0 -112
  277. package/dist/cjs/map-interface.dcbd3874.js.map +0 -1
  278. package/dist/cjs/map-interface.dfaad4a1.js +0 -36
  279. package/dist/cjs/map-interface.dfaad4a1.js.map +0 -1
  280. package/dist/cjs/map-interface.e74ded77.js +0 -135
  281. package/dist/cjs/map-interface.e74ded77.js.map +0 -1
  282. package/dist/cjs/map-interface.e975d65c.js +0 -23
  283. package/dist/cjs/map-interface.e975d65c.js.map +0 -1
  284. package/dist/cjs/map-interface.e9bcd5c0.js +0 -268
  285. package/dist/cjs/map-interface.e9bcd5c0.js.map +0 -1
  286. package/dist/cjs/map-interface.f8826069.js +0 -46
  287. package/dist/cjs/map-interface.f8826069.js.map +0 -1
  288. package/dist/cjs/map-interface.f9611285.js +0 -32
  289. package/dist/cjs/map-interface.f9611285.js.map +0 -1
  290. package/dist/cjs/map-interface.ffb109ef.js +0 -46
  291. package/dist/cjs/map-interface.ffb109ef.js.map +0 -1
  292. package/dist/esm/index.d.ts +0 -365
  293. package/dist/esm/index.d.ts.map +0 -1
  294. package/dist/esm/index.js +0 -27
  295. package/dist/esm/index.js.map +0 -1
  296. package/dist/esm/map-interface.00ecf2ee.js +0 -56
  297. package/dist/esm/map-interface.00ecf2ee.js.map +0 -1
  298. package/dist/esm/map-interface.01826888.js +0 -67
  299. package/dist/esm/map-interface.01826888.js.map +0 -1
  300. package/dist/esm/map-interface.021cf79b.js +0 -18
  301. package/dist/esm/map-interface.021cf79b.js.map +0 -1
  302. package/dist/esm/map-interface.065737fe.js +0 -172
  303. package/dist/esm/map-interface.065737fe.js.map +0 -1
  304. package/dist/esm/map-interface.0b1aa8f2.js +0 -81
  305. package/dist/esm/map-interface.0b1aa8f2.js.map +0 -1
  306. package/dist/esm/map-interface.1843c708.js +0 -83
  307. package/dist/esm/map-interface.1843c708.js.map +0 -1
  308. package/dist/esm/map-interface.1d38872e.js +0 -385
  309. package/dist/esm/map-interface.1d38872e.js.map +0 -1
  310. package/dist/esm/map-interface.1db44824.js +0 -24
  311. package/dist/esm/map-interface.1db44824.js.map +0 -1
  312. package/dist/esm/map-interface.21fab792.js +0 -15
  313. package/dist/esm/map-interface.21fab792.js.map +0 -1
  314. package/dist/esm/map-interface.22ea3934.js +0 -41
  315. package/dist/esm/map-interface.22ea3934.js.map +0 -1
  316. package/dist/esm/map-interface.27587c50.js +0 -126
  317. package/dist/esm/map-interface.27587c50.js.map +0 -1
  318. package/dist/esm/map-interface.3033c825.js +0 -40
  319. package/dist/esm/map-interface.3033c825.js.map +0 -1
  320. package/dist/esm/map-interface.3ef9d0ae.js +0 -99
  321. package/dist/esm/map-interface.3ef9d0ae.js.map +0 -1
  322. package/dist/esm/map-interface.3f07937e.js +0 -124
  323. package/dist/esm/map-interface.3f07937e.js.map +0 -1
  324. package/dist/esm/map-interface.473f1f2b.js +0 -28
  325. package/dist/esm/map-interface.473f1f2b.js.map +0 -1
  326. package/dist/esm/map-interface.50edfdfd.js +0 -74
  327. package/dist/esm/map-interface.50edfdfd.js.map +0 -1
  328. package/dist/esm/map-interface.54ccd41f.js +0 -58
  329. package/dist/esm/map-interface.54ccd41f.js.map +0 -1
  330. package/dist/esm/map-interface.578a7505.js +0 -130
  331. package/dist/esm/map-interface.578a7505.js.map +0 -1
  332. package/dist/esm/map-interface.59896194.js +0 -37
  333. package/dist/esm/map-interface.59896194.js.map +0 -1
  334. package/dist/esm/map-interface.672c2e0b.js +0 -182
  335. package/dist/esm/map-interface.672c2e0b.js.map +0 -1
  336. package/dist/esm/map-interface.70d6a7ff.js +0 -16
  337. package/dist/esm/map-interface.70d6a7ff.js.map +0 -1
  338. package/dist/esm/map-interface.72b1bfba.js +0 -94
  339. package/dist/esm/map-interface.72b1bfba.js.map +0 -1
  340. package/dist/esm/map-interface.767fdc4a.js +0 -64
  341. package/dist/esm/map-interface.767fdc4a.js.map +0 -1
  342. package/dist/esm/map-interface.786d6e58.js +0 -258
  343. package/dist/esm/map-interface.786d6e58.js.map +0 -1
  344. package/dist/esm/map-interface.7ea8a1e0.js +0 -40
  345. package/dist/esm/map-interface.7ea8a1e0.js.map +0 -1
  346. package/dist/esm/map-interface.90d9023c.js +0 -13
  347. package/dist/esm/map-interface.90d9023c.js.map +0 -1
  348. package/dist/esm/map-interface.9152234b.js +0 -114
  349. package/dist/esm/map-interface.9152234b.js.map +0 -1
  350. package/dist/esm/map-interface.957e414c.js +0 -52
  351. package/dist/esm/map-interface.957e414c.js.map +0 -1
  352. package/dist/esm/map-interface.9fac5fa6.js +0 -50
  353. package/dist/esm/map-interface.9fac5fa6.js.map +0 -1
  354. package/dist/esm/map-interface.a03a7a23.js +0 -16
  355. package/dist/esm/map-interface.a03a7a23.js.map +0 -1
  356. package/dist/esm/map-interface.bdef07d2.js +0 -34
  357. package/dist/esm/map-interface.bdef07d2.js.map +0 -1
  358. package/dist/esm/map-interface.c4fa120d.js +0 -28
  359. package/dist/esm/map-interface.c4fa120d.js.map +0 -1
  360. package/dist/esm/map-interface.c52c2fec.js +0 -130
  361. package/dist/esm/map-interface.c52c2fec.js.map +0 -1
  362. package/dist/esm/map-interface.c99b53b6.js +0 -43
  363. package/dist/esm/map-interface.c99b53b6.js.map +0 -1
  364. package/dist/esm/map-interface.ca1ee406.js +0 -214
  365. package/dist/esm/map-interface.ca1ee406.js.map +0 -1
  366. package/dist/esm/map-interface.e20a9bac.js +0 -107
  367. package/dist/esm/map-interface.e20a9bac.js.map +0 -1
  368. package/dist/esm/map-interface.e50c290f.js +0 -61
  369. package/dist/esm/map-interface.e50c290f.js.map +0 -1
  370. package/dist/esm/map-interface.ec2278ab.js +0 -178
  371. package/dist/esm/map-interface.ec2278ab.js.map +0 -1
  372. package/dist/esm/map-interface.f7b8bdb7.js +0 -192
  373. package/dist/esm/map-interface.f7b8bdb7.js.map +0 -1
  374. package/dist/node/index.js +0 -2
  375. package/dist/node/index.js.map +0 -1
  376. package/dist/node/map-interface.07882229.css +0 -2
  377. package/dist/node/map-interface.07882229.css.map +0 -1
  378. package/dist/node/map-interface.0e71fd95.js +0 -2
  379. package/dist/node/map-interface.0e71fd95.js.map +0 -1
  380. package/dist/node/map-interface.10f5ef81.js +0 -2
  381. package/dist/node/map-interface.10f5ef81.js.map +0 -1
  382. package/dist/node/map-interface.1a5eecac.js +0 -2
  383. package/dist/node/map-interface.1a5eecac.js.map +0 -1
  384. package/dist/node/map-interface.1be49df8.css +0 -2
  385. package/dist/node/map-interface.1be49df8.css.map +0 -1
  386. package/dist/node/map-interface.254e457a.js +0 -2
  387. package/dist/node/map-interface.254e457a.js.map +0 -1
  388. package/dist/node/map-interface.2d12b35c.js +0 -2
  389. package/dist/node/map-interface.2d12b35c.js.map +0 -1
  390. package/dist/node/map-interface.33b7734a.js +0 -2
  391. package/dist/node/map-interface.33b7734a.js.map +0 -1
  392. package/dist/node/map-interface.3ea55e0c.js +0 -2
  393. package/dist/node/map-interface.3ea55e0c.js.map +0 -1
  394. package/dist/node/map-interface.42a4b05a.js +0 -2
  395. package/dist/node/map-interface.42a4b05a.js.map +0 -1
  396. package/dist/node/map-interface.42ef081d.css +0 -2
  397. package/dist/node/map-interface.42ef081d.css.map +0 -1
  398. package/dist/node/map-interface.47b81f95.js +0 -2
  399. package/dist/node/map-interface.47b81f95.js.map +0 -1
  400. package/dist/node/map-interface.48262cbb.js +0 -2
  401. package/dist/node/map-interface.48262cbb.js.map +0 -1
  402. package/dist/node/map-interface.4df6e2c7.js +0 -2
  403. package/dist/node/map-interface.4df6e2c7.js.map +0 -1
  404. package/dist/node/map-interface.55a1f38d.js +0 -2
  405. package/dist/node/map-interface.55a1f38d.js.map +0 -1
  406. package/dist/node/map-interface.56b5b2ee.js +0 -2
  407. package/dist/node/map-interface.56b5b2ee.js.map +0 -1
  408. package/dist/node/map-interface.6184dc0f.js +0 -2
  409. package/dist/node/map-interface.6184dc0f.js.map +0 -1
  410. package/dist/node/map-interface.62b147ce.js +0 -2
  411. package/dist/node/map-interface.62b147ce.js.map +0 -1
  412. package/dist/node/map-interface.713361a4.js +0 -2
  413. package/dist/node/map-interface.713361a4.js.map +0 -1
  414. package/dist/node/map-interface.722387fb.js +0 -2
  415. package/dist/node/map-interface.722387fb.js.map +0 -1
  416. package/dist/node/map-interface.7aaa58c9.js +0 -2
  417. package/dist/node/map-interface.7aaa58c9.js.map +0 -1
  418. package/dist/node/map-interface.7e13bea8.js +0 -2
  419. package/dist/node/map-interface.7e13bea8.js.map +0 -1
  420. package/dist/node/map-interface.83fa8028.js +0 -2
  421. package/dist/node/map-interface.83fa8028.js.map +0 -1
  422. package/dist/node/map-interface.9317d050.js +0 -2
  423. package/dist/node/map-interface.9317d050.js.map +0 -1
  424. package/dist/node/map-interface.971af4bc.js +0 -2
  425. package/dist/node/map-interface.971af4bc.js.map +0 -1
  426. package/dist/node/map-interface.9824c03a.js +0 -2
  427. package/dist/node/map-interface.9824c03a.js.map +0 -1
  428. package/dist/node/map-interface.992dea73.js +0 -2
  429. package/dist/node/map-interface.992dea73.js.map +0 -1
  430. package/dist/node/map-interface.9e6751ac.js +0 -2
  431. package/dist/node/map-interface.9e6751ac.js.map +0 -1
  432. package/dist/node/map-interface.a1252092.css +0 -2
  433. package/dist/node/map-interface.a1252092.css.map +0 -1
  434. package/dist/node/map-interface.a8a16138.js +0 -2
  435. package/dist/node/map-interface.a8a16138.js.map +0 -1
  436. package/dist/node/map-interface.aa4d45ff.js +0 -2
  437. package/dist/node/map-interface.aa4d45ff.js.map +0 -1
  438. package/dist/node/map-interface.ae3d2d83.js +0 -2
  439. package/dist/node/map-interface.ae3d2d83.js.map +0 -1
  440. package/dist/node/map-interface.b0e1ad1b.js +0 -2
  441. package/dist/node/map-interface.b0e1ad1b.js.map +0 -1
  442. package/dist/node/map-interface.b14f08e8.js +0 -2
  443. package/dist/node/map-interface.b14f08e8.js.map +0 -1
  444. package/dist/node/map-interface.bd78832e.css +0 -2
  445. package/dist/node/map-interface.bd78832e.css.map +0 -1
  446. package/dist/node/map-interface.c5c0ad06.js +0 -2
  447. package/dist/node/map-interface.c5c0ad06.js.map +0 -1
  448. package/dist/node/map-interface.ce86a010.js +0 -2
  449. package/dist/node/map-interface.ce86a010.js.map +0 -1
  450. package/dist/node/map-interface.d22d91e9.css +0 -2
  451. package/dist/node/map-interface.d22d91e9.css.map +0 -1
  452. package/dist/node/map-interface.d2fce135.css +0 -2
  453. package/dist/node/map-interface.d2fce135.css.map +0 -1
  454. package/dist/node/map-interface.d5eba479.css +0 -2
  455. package/dist/node/map-interface.d5eba479.css.map +0 -1
  456. package/dist/node/map-interface.d92b296e.js +0 -2
  457. package/dist/node/map-interface.d92b296e.js.map +0 -1
  458. package/dist/node/map-interface.e0032d67.js +0 -2
  459. package/dist/node/map-interface.e0032d67.js.map +0 -1
  460. package/dist/node/map-interface.e7598785.js +0 -2
  461. package/dist/node/map-interface.e7598785.js.map +0 -1
  462. package/dist/node/map-interface.ed6b5586.js +0 -2
  463. package/dist/node/map-interface.ed6b5586.js.map +0 -1
  464. package/dist/node/map-interface.f413c362.js +0 -2
  465. package/dist/node/map-interface.f413c362.js.map +0 -1
  466. package/dist/node/map-interface.f4d2a5eb.js +0 -2
  467. package/dist/node/map-interface.f4d2a5eb.js.map +0 -1
  468. package/dist/node/map-interface.fdd35e74.js +0 -2
  469. package/dist/node/map-interface.fdd35e74.js.map +0 -1
  470. package/src/location-details/info-blocks.module.styl +0 -39
  471. package/src/location-details/xdd-panel/Article.tsx +0 -69
  472. package/src/location-info/index.ts +0 -100
  473. package/src/location-info/utils.ts +0 -24
@@ -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;"}