@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,81 @@
1
+ import { formatCoordForZoomLevel } from "@macrostrat/mapbox-utils";
2
+ const fmt1 = (x) => x.toFixed(1);
3
+ const fmt2 = (x) => x.toFixed(2);
4
+ const fmtInt = (x) => Math.round(x).toString();
5
+ function applyMapPositionToHash(args, mapPosition) {
6
+ const pos = mapPosition?.camera;
7
+ if (pos == null) return;
8
+ const zoom = mapPosition.target?.zoom;
9
+ args.x = formatCoordForZoomLevel(pos.lng, zoom);
10
+ args.y = formatCoordForZoomLevel(pos.lat, zoom);
11
+ if (pos.bearing == 0 && pos.pitch == 0 && zoom != null) {
12
+ args.z = fmt1(zoom);
13
+ } else if (pos.altitude != null) {
14
+ if (pos.altitude > 5e3) {
15
+ args.z = fmt2(pos.altitude / 1e3) + "km";
16
+ } else {
17
+ args.z = fmtInt(pos.altitude) + "m";
18
+ }
19
+ }
20
+ if (pos.bearing != 0) {
21
+ let az = pos.bearing;
22
+ if (az < 0) az += 360;
23
+ args.a = fmtInt(az);
24
+ }
25
+ if (pos.pitch != 0) {
26
+ args.e = fmtInt(pos.pitch);
27
+ }
28
+ }
29
+ function _fmt(x) {
30
+ if (Array.isArray(x)) {
31
+ x = x[0];
32
+ }
33
+ return parseFloat(x.toString());
34
+ }
35
+ function getMapPositionForHash(hashData, centerPosition) {
36
+ const {
37
+ x = centerPosition?.lng ?? 0,
38
+ y = centerPosition?.lat ?? 0,
39
+ // Different default for zoom depending on whether we have a marker
40
+ z = centerPosition != null ? 7 : 2,
41
+ a = 0,
42
+ e = 0
43
+ } = hashData;
44
+ const lng = _fmt(x);
45
+ const lat = _fmt(y);
46
+ let altitude = null;
47
+ let zoom = null;
48
+ const _z = z.toString();
49
+ if (_z.endsWith("km")) {
50
+ altitude = _fmt(_z.substring(0, _z.length - 2)) * 1e3;
51
+ } else if (_z.endsWith("m")) {
52
+ altitude = _fmt(_z.substring(0, _z.length - 1));
53
+ } else {
54
+ zoom = _fmt(z);
55
+ }
56
+ const bearing = _fmt(a);
57
+ const pitch = _fmt(e);
58
+ let target = void 0;
59
+ if (bearing == 0 && pitch == 0 && zoom != null) {
60
+ target = {
61
+ lat,
62
+ lng,
63
+ zoom
64
+ };
65
+ }
66
+ return {
67
+ camera: {
68
+ lng: _fmt(x),
69
+ lat: _fmt(y),
70
+ altitude,
71
+ bearing: _fmt(a),
72
+ pitch: _fmt(e)
73
+ },
74
+ target
75
+ };
76
+ }
77
+ export {
78
+ applyMapPositionToHash,
79
+ getMapPositionForHash
80
+ };
81
+ //# sourceMappingURL=hash-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-string.js","sources":["../src/hash-string.ts"],"sourcesContent":["import {\n LatLng,\n MapPosition,\n formatCoordForZoomLevel,\n} from \"@macrostrat/mapbox-utils\";\nimport { ParsedQuery } from \"query-string\";\n\ninterface LocationHashParams {\n x?: string;\n y?: string;\n z?: string;\n a?: string;\n e?: string;\n}\n\nconst fmt1 = (x: number) => x.toFixed(1);\nconst fmt2 = (x: number) => x.toFixed(2);\nconst fmtInt = (x: number) => Math.round(x).toString();\n\nexport function applyMapPositionToHash(\n args: LocationHashParams,\n mapPosition: MapPosition | null,\n) {\n const pos = mapPosition?.camera;\n if (pos == null) return;\n const zoom = mapPosition.target?.zoom;\n\n args.x = formatCoordForZoomLevel(pos.lng, zoom);\n args.y = formatCoordForZoomLevel(pos.lat, zoom);\n\n if (pos.bearing == 0 && pos.pitch == 0 && zoom != null) {\n args.z = fmt1(zoom);\n } else if (pos.altitude != null) {\n if (pos.altitude > 5000) {\n args.z = fmt2(pos.altitude / 1000) + \"km\";\n } else {\n args.z = fmtInt(pos.altitude) + \"m\";\n }\n }\n if (pos.bearing != 0) {\n let az = pos.bearing;\n if (az < 0) az += 360;\n args.a = fmtInt(az);\n }\n if (pos.pitch != 0) {\n args.e = fmtInt(pos.pitch);\n }\n}\n\nfunction _fmt(x: string | number | string[]) {\n if (Array.isArray(x)) {\n x = x[0];\n }\n return parseFloat(x.toString());\n}\n\nexport function getMapPositionForHash(\n hashData: ParsedQuery<string>,\n centerPosition: LatLng | null,\n): MapPosition {\n const {\n x = centerPosition?.lng ?? 0,\n y = centerPosition?.lat ?? 0,\n // Different default for zoom depending on whether we have a marker\n z = centerPosition != null ? 7 : 2,\n a = 0,\n e = 0,\n } = hashData;\n\n const lng = _fmt(x);\n const lat = _fmt(y);\n\n let altitude = null;\n let zoom = null;\n const _z = z.toString();\n if (_z.endsWith(\"km\")) {\n altitude = _fmt(_z.substring(0, _z.length - 2)) * 1000;\n } else if (_z.endsWith(\"m\")) {\n altitude = _fmt(_z.substring(0, _z.length - 1));\n } else {\n zoom = _fmt(z);\n }\n const bearing = _fmt(a);\n const pitch = _fmt(e);\n\n let target = undefined;\n if (bearing == 0 && pitch == 0 && zoom != null) {\n target = {\n lat,\n lng,\n zoom,\n };\n }\n\n return {\n camera: {\n lng: _fmt(x),\n lat: _fmt(y),\n altitude,\n bearing: _fmt(a),\n pitch: _fmt(e),\n },\n target,\n };\n}\n"],"names":[],"mappings":";AAeA,MAAM,OAAO,CAAC,MAAc,EAAE,QAAQ,CAAC;AACvC,MAAM,OAAO,CAAC,MAAc,EAAE,QAAQ,CAAC;AACvC,MAAM,SAAS,CAAC,MAAc,KAAK,MAAM,CAAC,EAAE,SAAA;AAErC,SAAS,uBACd,MACA,aACA;AACA,QAAM,MAAM,aAAa;AACzB,MAAI,OAAO,KAAM;AACjB,QAAM,OAAO,YAAY,QAAQ;AAEjC,OAAK,IAAI,wBAAwB,IAAI,KAAK,IAAI;AAC9C,OAAK,IAAI,wBAAwB,IAAI,KAAK,IAAI;AAE9C,MAAI,IAAI,WAAW,KAAK,IAAI,SAAS,KAAK,QAAQ,MAAM;AACtD,SAAK,IAAI,KAAK,IAAI;AAAA,EACpB,WAAW,IAAI,YAAY,MAAM;AAC/B,QAAI,IAAI,WAAW,KAAM;AACvB,WAAK,IAAI,KAAK,IAAI,WAAW,GAAI,IAAI;AAAA,IACvC,OAAO;AACL,WAAK,IAAI,OAAO,IAAI,QAAQ,IAAI;AAAA,IAClC;AAAA,EACF;AACA,MAAI,IAAI,WAAW,GAAG;AACpB,QAAI,KAAK,IAAI;AACb,QAAI,KAAK,EAAG,OAAM;AAClB,SAAK,IAAI,OAAO,EAAE;AAAA,EACpB;AACA,MAAI,IAAI,SAAS,GAAG;AAClB,SAAK,IAAI,OAAO,IAAI,KAAK;AAAA,EAC3B;AACF;AAEA,SAAS,KAAK,GAA+B;AAC3C,MAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,QAAI,EAAE,CAAC;AAAA,EACT;AACA,SAAO,WAAW,EAAE,UAAU;AAChC;AAEO,SAAS,sBACd,UACA,gBACa;AACb,QAAM;AAAA,IACJ,IAAI,gBAAgB,OAAO;AAAA,IAC3B,IAAI,gBAAgB,OAAO;AAAA;AAAA,IAE3B,IAAI,kBAAkB,OAAO,IAAI;AAAA,IACjC,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,IACF;AAEJ,QAAM,MAAM,KAAK,CAAC;AAClB,QAAM,MAAM,KAAK,CAAC;AAElB,MAAI,WAAW;AACf,MAAI,OAAO;AACX,QAAM,KAAK,EAAE,SAAA;AACb,MAAI,GAAG,SAAS,IAAI,GAAG;AACrB,eAAW,KAAK,GAAG,UAAU,GAAG,GAAG,SAAS,CAAC,CAAC,IAAI;AAAA,EACpD,WAAW,GAAG,SAAS,GAAG,GAAG;AAC3B,eAAW,KAAK,GAAG,UAAU,GAAG,GAAG,SAAS,CAAC,CAAC;AAAA,EAChD,OAAO;AACL,WAAO,KAAK,CAAC;AAAA,EACf;AACA,QAAM,UAAU,KAAK,CAAC;AACtB,QAAM,QAAQ,KAAK,CAAC;AAEpB,MAAI,SAAS;AACb,MAAI,WAAW,KAAK,SAAS,KAAK,QAAQ,MAAM;AAC9C,aAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,KAAK,KAAK,CAAC;AAAA,MACX,KAAK,KAAK,CAAC;AAAA,MACX;AAAA,MACA,SAAS,KAAK,CAAC;AAAA,MACf,OAAO,KAAK,CAAC;AAAA,IAAA;AAAA,IAEf;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const mapboxReact = require("@macrostrat/mapbox-react");
4
+ const React = require("react");
5
+ const underscore = require("underscore");
6
+ const useResizeObserver = require("use-resize-observer");
7
+ const mapboxUtils = require("@macrostrat/mapbox-utils");
8
+ const utils = require("./utils.cjs");
9
+ const uiComponents = require("@macrostrat/ui-components");
10
+ function MapResizeManager({ containerRef }) {
11
+ const mapRef = mapboxReact.useMapRef();
12
+ const debouncedResize = React.useRef(
13
+ underscore.debounce(() => {
14
+ mapRef.current?.resize();
15
+ }, 100)
16
+ );
17
+ useResizeObserver({
18
+ ref: containerRef,
19
+ onResize: debouncedResize.current
20
+ });
21
+ return null;
22
+ }
23
+ function MapPaddingManager({
24
+ containerRef,
25
+ parentRef,
26
+ infoMarkerPosition,
27
+ debounceTime = 200
28
+ }) {
29
+ const mapRef = mapboxReact.useMapRef();
30
+ const [padding, setPadding] = React.useState(
31
+ utils.getMapPadding(containerRef, parentRef)
32
+ );
33
+ const _updateMapPadding = React.useCallback(() => {
34
+ const newPadding = utils.getMapPadding(containerRef, parentRef);
35
+ setPadding(newPadding);
36
+ }, [containerRef.current, parentRef.current]);
37
+ const updateMapPadding = React.useMemo(
38
+ () => underscore.debounce(_updateMapPadding, debounceTime),
39
+ [_updateMapPadding, debounceTime]
40
+ );
41
+ React.useEffect(() => {
42
+ const map = mapRef.current;
43
+ if (map == null) return;
44
+ updateMapPadding();
45
+ }, [mapRef.current]);
46
+ useResizeObserver({
47
+ ref: parentRef,
48
+ onResize(sz) {
49
+ updateMapPadding();
50
+ },
51
+ round(n) {
52
+ return Math.round(n);
53
+ }
54
+ });
55
+ mapboxReact.useMapEaseTo({ center: infoMarkerPosition, padding });
56
+ return null;
57
+ }
58
+ function MapMovedReporter({ onMapMoved = null }) {
59
+ const mapRef = mapboxReact.useMapRef();
60
+ const dispatch = mapboxReact.useMapDispatch();
61
+ const isInitialized = mapboxReact.useMapInitialized();
62
+ const mapMovedCallback = React.useCallback(() => {
63
+ const map = mapRef.current;
64
+ if (map == null) return;
65
+ const mapPosition = mapboxUtils.getMapPosition(map);
66
+ dispatch({ type: "map-moved", payload: mapPosition });
67
+ onMapMoved?.(mapPosition, map);
68
+ }, [onMapMoved, dispatch, isInitialized]);
69
+ React.useEffect(() => {
70
+ const map = mapRef.current;
71
+ if (map == null) return;
72
+ mapMovedCallback();
73
+ const cb = underscore.debounce(mapMovedCallback, 100);
74
+ map.on("moveend", cb);
75
+ return () => {
76
+ map?.off("moveend", cb);
77
+ };
78
+ }, [mapMovedCallback]);
79
+ return null;
80
+ }
81
+ function MapLoadingReporter({
82
+ ignoredSources,
83
+ onMapLoading = null,
84
+ onMapIdle = null,
85
+ mapIsLoading
86
+ }) {
87
+ const mapRef = mapboxReact.useMapRef();
88
+ const loadingRef = React.useRef(false);
89
+ const dispatch = mapboxReact.useMapDispatch();
90
+ const isInitialized = mapboxReact.useMapInitialized();
91
+ React.useEffect(() => {
92
+ const map = mapRef.current;
93
+ const mapIsLoading2 = loadingRef.current;
94
+ if (map == null) return;
95
+ const loadingCallback = (evt) => {
96
+ if (ignoredSources.includes(evt.sourceId) || mapIsLoading2) return;
97
+ onMapLoading?.(evt);
98
+ dispatch({ type: "set-loading", payload: true });
99
+ loadingRef.current = true;
100
+ };
101
+ const idleCallback = (evt) => {
102
+ if (!map.loaded()) return;
103
+ dispatch({ type: "set-loading", payload: false });
104
+ loadingRef.current = false;
105
+ onMapIdle?.(evt);
106
+ };
107
+ map.on("sourcedataloading", loadingCallback);
108
+ map.on("idle", idleCallback);
109
+ return () => {
110
+ map?.off("sourcedataloading", loadingCallback);
111
+ map?.off("idle", idleCallback);
112
+ };
113
+ }, [ignoredSources, mapIsLoading, isInitialized]);
114
+ return null;
115
+ }
116
+ function MapMarker({ position, setPosition, centerMarker = true }) {
117
+ const mapRef = mapboxReact.useMapRef();
118
+ const markerRef = React.useRef(null);
119
+ const isInitialized = mapboxReact.useMapInitialized();
120
+ utils.useMapMarker(mapRef, markerRef, position);
121
+ React.useEffect(() => {
122
+ const map = mapRef.current;
123
+ if (map == null || setPosition == null) return;
124
+ const handleMapClick = (event) => {
125
+ setPosition(event.lngLat, event, mapRef.current);
126
+ if (centerMarker) {
127
+ mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });
128
+ }
129
+ };
130
+ map.on("click", handleMapClick);
131
+ return () => {
132
+ map?.off("click", handleMapClick);
133
+ };
134
+ }, [setPosition, isInitialized]);
135
+ return null;
136
+ }
137
+ function useBasicMapStyle(opts = {}) {
138
+ const { styleType } = opts;
139
+ const inDarkMode = uiComponents.useInDarkMode();
140
+ const props = React.useMemo(() => {
141
+ return { styleType, inDarkMode };
142
+ }, [styleType, inDarkMode]);
143
+ return getBasicMapStyle(props);
144
+ }
145
+ function getBasicMapStyle(opts) {
146
+ const { styleType = "macrostrat", inDarkMode = false } = opts ?? {};
147
+ if (styleType == "macrostrat") {
148
+ return inDarkMode ? "mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true" : "mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true";
149
+ } else {
150
+ return inDarkMode ? "mapbox://styles/mapbox/dark-v10" : "mapbox://styles/mapbox/light-v10";
151
+ }
152
+ }
153
+ const useBasicStylePair = useBasicMapStyle;
154
+ exports.MapLoadingReporter = MapLoadingReporter;
155
+ exports.MapMarker = MapMarker;
156
+ exports.MapMovedReporter = MapMovedReporter;
157
+ exports.MapPaddingManager = MapPaddingManager;
158
+ exports.MapResizeManager = MapResizeManager;
159
+ exports.getBasicMapStyle = getBasicMapStyle;
160
+ exports.useBasicMapStyle = useBasicMapStyle;
161
+ exports.useBasicStylePair = useBasicStylePair;
162
+ //# sourceMappingURL=helpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import {\n useMapRef,\n useMapEaseTo,\n useMapDispatch,\n useMapInitialized,\n} from \"@macrostrat/mapbox-react\";\nimport { useMemo, useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100),\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n debounceTime?: number;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n debounceTime = 200,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef),\n );\n\n const _updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n const updateMapPadding = useMemo(\n () => debounce(_updateMapPadding, debounceTime),\n [_updateMapPadding, debounceTime],\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n round(n) {\n return Math.round(n);\n },\n });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseTo({ center: infoMarkerPosition, padding });\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [onMapMoved, dispatch, isInitialized]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\ninterface MapLoadingReporterProps {\n ignoredSources?: string[];\n onMapLoading?: (evt: mapboxgl.MapEvent) => void;\n onMapIdle?: (evt: mapboxgl.MapEvent) => void;\n mapIsLoading?: boolean;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}: MapLoadingReporterProps) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n //let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n //if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n //didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!map.loaded()) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapIsLoading, isInitialized]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n const isInitialized = useMapInitialized();\n\n useMapMarker(mapRef, markerRef, position);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n\n const handleMapClick = (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n };\n\n map.on(\"click\", handleMapClick);\n\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [setPosition, isInitialized]);\n\n return null;\n}\n\nexport function useBasicMapStyle(\n opts: {\n styleType?: \"macrostrat\" | \"standard\";\n } = {},\n) {\n const { styleType } = opts;\n const inDarkMode = useInDarkMode();\n\n const props = useMemo(() => {\n return { styleType, inDarkMode };\n }, [styleType, inDarkMode]);\n\n return getBasicMapStyle(props);\n}\n\nexport function getBasicMapStyle(opts: {\n styleType?: \"macrostrat\" | \"standard\";\n inDarkMode?: boolean;\n}) {\n const { styleType = \"macrostrat\", inDarkMode = false } = opts ?? {};\n\n if (styleType == \"macrostrat\") {\n return inDarkMode\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n}\n\nexport const useBasicStylePair = useBasicMapStyle;\n"],"names":["useMapRef","useRef","debounce","useState","getMapPadding","useCallback","useMemo","useEffect","useMapEaseTo","useMapDispatch","useMapInitialized","getMapPosition","mapIsLoading","useMapMarker","useInDarkMode"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare function MapResizeManager({ containerRef }: {
2
+ containerRef: any;
3
+ }): any;
4
+ interface MapPaddingManagerProps {
5
+ containerRef: React.RefObject<HTMLDivElement>;
6
+ parentRef: React.RefObject<HTMLDivElement>;
7
+ infoMarkerPosition: mapboxgl.LngLatLike;
8
+ debounceTime?: number;
9
+ }
10
+ export declare function MapPaddingManager({ containerRef, parentRef, infoMarkerPosition, debounceTime, }: MapPaddingManagerProps): any;
11
+ export declare function MapMovedReporter({ onMapMoved }: {
12
+ onMapMoved?: any;
13
+ }): any;
14
+ interface MapLoadingReporterProps {
15
+ ignoredSources?: string[];
16
+ onMapLoading?: (evt: mapboxgl.MapEvent) => void;
17
+ onMapIdle?: (evt: mapboxgl.MapEvent) => void;
18
+ mapIsLoading?: boolean;
19
+ }
20
+ export declare function MapLoadingReporter({ ignoredSources, onMapLoading, onMapIdle, mapIsLoading, }: MapLoadingReporterProps): any;
21
+ export declare function MapMarker({ position, setPosition, centerMarker }: {
22
+ position: any;
23
+ setPosition: any;
24
+ centerMarker?: boolean;
25
+ }): any;
26
+ export declare function useBasicMapStyle(opts?: {
27
+ styleType?: "macrostrat" | "standard";
28
+ }): "mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true" | "mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true" | "mapbox://styles/mapbox/dark-v10" | "mapbox://styles/mapbox/light-v10";
29
+ export declare function getBasicMapStyle(opts: {
30
+ styleType?: "macrostrat" | "standard";
31
+ inDarkMode?: boolean;
32
+ }): "mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true" | "mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true" | "mapbox://styles/mapbox/dark-v10" | "mapbox://styles/mapbox/light-v10";
33
+ export declare const useBasicStylePair: typeof useBasicMapStyle;
34
+ export {};
@@ -0,0 +1,162 @@
1
+ import { useMapRef, useMapDispatch, useMapInitialized, useMapEaseTo } from "@macrostrat/mapbox-react";
2
+ import { useRef, useEffect, useCallback, useState, useMemo } from "react";
3
+ import { debounce } from "underscore";
4
+ import useResizeObserver from "use-resize-observer";
5
+ import { getMapPosition } from "@macrostrat/mapbox-utils";
6
+ import { useMapMarker, getMapPadding } from "./utils.js";
7
+ import { useInDarkMode } from "@macrostrat/ui-components";
8
+ function MapResizeManager({ containerRef }) {
9
+ const mapRef = useMapRef();
10
+ const debouncedResize = useRef(
11
+ debounce(() => {
12
+ mapRef.current?.resize();
13
+ }, 100)
14
+ );
15
+ useResizeObserver({
16
+ ref: containerRef,
17
+ onResize: debouncedResize.current
18
+ });
19
+ return null;
20
+ }
21
+ function MapPaddingManager({
22
+ containerRef,
23
+ parentRef,
24
+ infoMarkerPosition,
25
+ debounceTime = 200
26
+ }) {
27
+ const mapRef = useMapRef();
28
+ const [padding, setPadding] = useState(
29
+ getMapPadding(containerRef, parentRef)
30
+ );
31
+ const _updateMapPadding = useCallback(() => {
32
+ const newPadding = getMapPadding(containerRef, parentRef);
33
+ setPadding(newPadding);
34
+ }, [containerRef.current, parentRef.current]);
35
+ const updateMapPadding = useMemo(
36
+ () => debounce(_updateMapPadding, debounceTime),
37
+ [_updateMapPadding, debounceTime]
38
+ );
39
+ useEffect(() => {
40
+ const map = mapRef.current;
41
+ if (map == null) return;
42
+ updateMapPadding();
43
+ }, [mapRef.current]);
44
+ useResizeObserver({
45
+ ref: parentRef,
46
+ onResize(sz) {
47
+ updateMapPadding();
48
+ },
49
+ round(n) {
50
+ return Math.round(n);
51
+ }
52
+ });
53
+ useMapEaseTo({ center: infoMarkerPosition, padding });
54
+ return null;
55
+ }
56
+ function MapMovedReporter({ onMapMoved = null }) {
57
+ const mapRef = useMapRef();
58
+ const dispatch = useMapDispatch();
59
+ const isInitialized = useMapInitialized();
60
+ const mapMovedCallback = useCallback(() => {
61
+ const map = mapRef.current;
62
+ if (map == null) return;
63
+ const mapPosition = getMapPosition(map);
64
+ dispatch({ type: "map-moved", payload: mapPosition });
65
+ onMapMoved?.(mapPosition, map);
66
+ }, [onMapMoved, dispatch, isInitialized]);
67
+ useEffect(() => {
68
+ const map = mapRef.current;
69
+ if (map == null) return;
70
+ mapMovedCallback();
71
+ const cb = debounce(mapMovedCallback, 100);
72
+ map.on("moveend", cb);
73
+ return () => {
74
+ map?.off("moveend", cb);
75
+ };
76
+ }, [mapMovedCallback]);
77
+ return null;
78
+ }
79
+ function MapLoadingReporter({
80
+ ignoredSources,
81
+ onMapLoading = null,
82
+ onMapIdle = null,
83
+ mapIsLoading
84
+ }) {
85
+ const mapRef = useMapRef();
86
+ const loadingRef = useRef(false);
87
+ const dispatch = useMapDispatch();
88
+ const isInitialized = useMapInitialized();
89
+ useEffect(() => {
90
+ const map = mapRef.current;
91
+ const mapIsLoading2 = loadingRef.current;
92
+ if (map == null) return;
93
+ const loadingCallback = (evt) => {
94
+ if (ignoredSources.includes(evt.sourceId) || mapIsLoading2) return;
95
+ onMapLoading?.(evt);
96
+ dispatch({ type: "set-loading", payload: true });
97
+ loadingRef.current = true;
98
+ };
99
+ const idleCallback = (evt) => {
100
+ if (!map.loaded()) return;
101
+ dispatch({ type: "set-loading", payload: false });
102
+ loadingRef.current = false;
103
+ onMapIdle?.(evt);
104
+ };
105
+ map.on("sourcedataloading", loadingCallback);
106
+ map.on("idle", idleCallback);
107
+ return () => {
108
+ map?.off("sourcedataloading", loadingCallback);
109
+ map?.off("idle", idleCallback);
110
+ };
111
+ }, [ignoredSources, mapIsLoading, isInitialized]);
112
+ return null;
113
+ }
114
+ function MapMarker({ position, setPosition, centerMarker = true }) {
115
+ const mapRef = useMapRef();
116
+ const markerRef = useRef(null);
117
+ const isInitialized = useMapInitialized();
118
+ useMapMarker(mapRef, markerRef, position);
119
+ useEffect(() => {
120
+ const map = mapRef.current;
121
+ if (map == null || setPosition == null) return;
122
+ const handleMapClick = (event) => {
123
+ setPosition(event.lngLat, event, mapRef.current);
124
+ if (centerMarker) {
125
+ mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });
126
+ }
127
+ };
128
+ map.on("click", handleMapClick);
129
+ return () => {
130
+ map?.off("click", handleMapClick);
131
+ };
132
+ }, [setPosition, isInitialized]);
133
+ return null;
134
+ }
135
+ function useBasicMapStyle(opts = {}) {
136
+ const { styleType } = opts;
137
+ const inDarkMode = useInDarkMode();
138
+ const props = useMemo(() => {
139
+ return { styleType, inDarkMode };
140
+ }, [styleType, inDarkMode]);
141
+ return getBasicMapStyle(props);
142
+ }
143
+ function getBasicMapStyle(opts) {
144
+ const { styleType = "macrostrat", inDarkMode = false } = opts ?? {};
145
+ if (styleType == "macrostrat") {
146
+ return inDarkMode ? "mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true" : "mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true";
147
+ } else {
148
+ return inDarkMode ? "mapbox://styles/mapbox/dark-v10" : "mapbox://styles/mapbox/light-v10";
149
+ }
150
+ }
151
+ const useBasicStylePair = useBasicMapStyle;
152
+ export {
153
+ MapLoadingReporter,
154
+ MapMarker,
155
+ MapMovedReporter,
156
+ MapPaddingManager,
157
+ MapResizeManager,
158
+ getBasicMapStyle,
159
+ useBasicMapStyle,
160
+ useBasicStylePair
161
+ };
162
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import {\n useMapRef,\n useMapEaseTo,\n useMapDispatch,\n useMapInitialized,\n} from \"@macrostrat/mapbox-react\";\nimport { useMemo, useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100),\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n debounceTime?: number;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n debounceTime = 200,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef),\n );\n\n const _updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n const updateMapPadding = useMemo(\n () => debounce(_updateMapPadding, debounceTime),\n [_updateMapPadding, debounceTime],\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n round(n) {\n return Math.round(n);\n },\n });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseTo({ center: infoMarkerPosition, padding });\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [onMapMoved, dispatch, isInitialized]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\ninterface MapLoadingReporterProps {\n ignoredSources?: string[];\n onMapLoading?: (evt: mapboxgl.MapEvent) => void;\n onMapIdle?: (evt: mapboxgl.MapEvent) => void;\n mapIsLoading?: boolean;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}: MapLoadingReporterProps) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n //let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n //if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n //didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!map.loaded()) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapIsLoading, isInitialized]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n const isInitialized = useMapInitialized();\n\n useMapMarker(mapRef, markerRef, position);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n\n const handleMapClick = (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n };\n\n map.on(\"click\", handleMapClick);\n\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [setPosition, isInitialized]);\n\n return null;\n}\n\nexport function useBasicMapStyle(\n opts: {\n styleType?: \"macrostrat\" | \"standard\";\n } = {},\n) {\n const { styleType } = opts;\n const inDarkMode = useInDarkMode();\n\n const props = useMemo(() => {\n return { styleType, inDarkMode };\n }, [styleType, inDarkMode]);\n\n return getBasicMapStyle(props);\n}\n\nexport function getBasicMapStyle(opts: {\n styleType?: \"macrostrat\" | \"standard\";\n inDarkMode?: boolean;\n}) {\n const { styleType = \"macrostrat\", inDarkMode = false } = opts ?? {};\n\n if (styleType == \"macrostrat\") {\n return inDarkMode\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n}\n\nexport const useBasicStylePair = useBasicMapStyle;\n"],"names":["mapIsLoading"],"mappings":"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"}
package/dist/index.cjs ADDED
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const index$2 = require("./context-panel/index.cjs");
4
+ const index = require("./location-panel/index.cjs");
5
+ const container = require("./container.cjs");
6
+ const mapView = require("./map-view.cjs");
7
+ const controls = require("./controls.cjs");
8
+ const helpers = require("./helpers.cjs");
9
+ const utils = require("./utils.cjs");
10
+ const index$1 = require("./expansion-panel/index.cjs");
11
+ const hashString = require("./hash-string.cjs");
12
+ const mapPage = require("./dev/map-page.cjs");
13
+ const vectorTileFeatures = require("./dev/vector-tile-features.cjs");
14
+ const index$3 = require("./location-details/fossil-collections/index.cjs");
15
+ const macrostratLinked = require("./location-details/macrostrat-linked.cjs");
16
+ const headers = require("./expansion-panel/headers.cjs");
17
+ const physiography = require("./location-details/physiography.cjs");
18
+ const regStrat = require("./location-details/reg-strat.cjs");
19
+ const tileExtent = require("./dev/tile-extent.cjs");
20
+ const index$4 = require("./location-details/xdd-panel/index.cjs");
21
+ const xray = require("./dev/xray.cjs");
22
+ exports.FloatingNavbar = index$2.FloatingNavbar;
23
+ exports.LoadingButton = index$2.LoadingButton;
24
+ exports.MapLoadingButton = index$2.MapLoadingButton;
25
+ exports.BaseInfoDrawer = index.BaseInfoDrawer;
26
+ exports.DetailsPanel = index.DetailsPanel;
27
+ exports.InfoDrawerContainer = index.InfoDrawerContainer;
28
+ exports.LocationPanel = index.LocationPanel;
29
+ exports.DetailPanelStyle = container.DetailPanelStyle;
30
+ exports.MapAreaContainer = container.MapAreaContainer;
31
+ exports.MapStyledContainer = container.MapStyledContainer;
32
+ exports.PanelCard = container.PanelCard;
33
+ exports.MapTerrainManager = mapView.MapTerrainManager;
34
+ exports.MapView = mapView.MapView;
35
+ exports.MapBottomControls = controls.MapBottomControls;
36
+ exports.MapLoadingReporter = helpers.MapLoadingReporter;
37
+ exports.MapMarker = helpers.MapMarker;
38
+ exports.MapMovedReporter = helpers.MapMovedReporter;
39
+ exports.MapPaddingManager = helpers.MapPaddingManager;
40
+ exports.MapResizeManager = helpers.MapResizeManager;
41
+ exports.getBasicMapStyle = helpers.getBasicMapStyle;
42
+ exports.useBasicMapStyle = helpers.useBasicMapStyle;
43
+ exports.useBasicStylePair = helpers.useBasicStylePair;
44
+ exports.getMapPadding = utils.getMapPadding;
45
+ exports.useMapMarker = utils.useMapMarker;
46
+ exports.ExpandableDetailsPanel = index$1.ExpandableDetailsPanel;
47
+ exports.ExpansionBody = index$1.ExpansionBody;
48
+ exports.ExpansionPanel = index$1.ExpansionPanel;
49
+ exports.ExpansionPanelSummary = index$1.ExpansionPanelSummary;
50
+ exports.InfoPanelSection = index$1.InfoPanelSection;
51
+ exports.SubExpansionPanel = index$1.SubExpansionPanel;
52
+ exports.applyMapPositionToHash = hashString.applyMapPositionToHash;
53
+ exports.getMapPositionForHash = hashString.getMapPositionForHash;
54
+ exports.DevMapPage = mapPage.DevMapPage;
55
+ exports.MapInspectorV2 = mapPage.MapInspectorV2;
56
+ exports.h = mapPage.h;
57
+ exports.FeaturePanel = vectorTileFeatures.FeaturePanel;
58
+ exports.FeatureProperties = vectorTileFeatures.FeatureProperties;
59
+ exports.FeatureRecord = vectorTileFeatures.FeatureRecord;
60
+ exports.FeatureSelectionHandler = vectorTileFeatures.FeatureSelectionHandler;
61
+ exports.Features = vectorTileFeatures.Features;
62
+ exports.TileInfo = vectorTileFeatures.TileInfo;
63
+ exports.FossilCollections = index$3.FossilCollections;
64
+ exports.MacrostratLinkedData = macrostratLinked.MacrostratLinkedData;
65
+ exports.PanelSubhead = headers.PanelSubhead;
66
+ exports.Physiography = physiography.Physiography;
67
+ exports.RegionalStratigraphy = regStrat.RegionalStratigraphy;
68
+ exports.TileExtentLayer = tileExtent.TileExtentLayer;
69
+ exports.XddExpansion = index$4.XddExpansion;
70
+ exports.xDDPanelCore = index$4.xDDPanelCore;
71
+ exports.buildInspectorStyle = xray.buildInspectorStyle;
72
+ exports.buildXRayStyle = xray.buildXRayStyle;
73
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ export * from './context-panel';
2
+ export * from './location-panel';
3
+ export * from './dev';
4
+ export * from './container';
5
+ export * from './map-view';
6
+ export * from './controls';
7
+ export * from './helpers';
8
+ export * from './utils';
9
+ export * from './expansion-panel';
10
+ export * from './location-details';
11
+ export * from './hash-string';
package/dist/index.js ADDED
@@ -0,0 +1,73 @@
1
+ import { FloatingNavbar, LoadingButton, MapLoadingButton } from "./context-panel/index.js";
2
+ import { BaseInfoDrawer, DetailsPanel, InfoDrawerContainer, LocationPanel } from "./location-panel/index.js";
3
+ import { DetailPanelStyle, MapAreaContainer, MapStyledContainer, PanelCard } from "./container.js";
4
+ import { MapTerrainManager, MapView } from "./map-view.js";
5
+ import { MapBottomControls } from "./controls.js";
6
+ import { MapLoadingReporter, MapMarker, MapMovedReporter, MapPaddingManager, MapResizeManager, getBasicMapStyle, useBasicMapStyle, useBasicStylePair } from "./helpers.js";
7
+ import { getMapPadding, useMapMarker } from "./utils.js";
8
+ import { ExpandableDetailsPanel, ExpansionBody, ExpansionPanel, ExpansionPanelSummary, InfoPanelSection, SubExpansionPanel } from "./expansion-panel/index.js";
9
+ import { applyMapPositionToHash, getMapPositionForHash } from "./hash-string.js";
10
+ import { DevMapPage, MapInspectorV2, h } from "./dev/map-page.js";
11
+ import { FeaturePanel, FeatureProperties, FeatureRecord, FeatureSelectionHandler, Features, TileInfo } from "./dev/vector-tile-features.js";
12
+ import { FossilCollections } from "./location-details/fossil-collections/index.js";
13
+ import { MacrostratLinkedData } from "./location-details/macrostrat-linked.js";
14
+ import { PanelSubhead } from "./expansion-panel/headers.js";
15
+ import { Physiography } from "./location-details/physiography.js";
16
+ import { RegionalStratigraphy } from "./location-details/reg-strat.js";
17
+ import { TileExtentLayer } from "./dev/tile-extent.js";
18
+ import { XddExpansion, xDDPanelCore } from "./location-details/xdd-panel/index.js";
19
+ import { buildInspectorStyle, buildXRayStyle } from "./dev/xray.js";
20
+ export {
21
+ BaseInfoDrawer,
22
+ DetailPanelStyle,
23
+ DetailsPanel,
24
+ DevMapPage,
25
+ ExpandableDetailsPanel,
26
+ ExpansionBody,
27
+ ExpansionPanel,
28
+ ExpansionPanelSummary,
29
+ FeaturePanel,
30
+ FeatureProperties,
31
+ FeatureRecord,
32
+ FeatureSelectionHandler,
33
+ Features,
34
+ FloatingNavbar,
35
+ FossilCollections,
36
+ InfoDrawerContainer,
37
+ InfoPanelSection,
38
+ LoadingButton,
39
+ LocationPanel,
40
+ MacrostratLinkedData,
41
+ MapAreaContainer,
42
+ MapBottomControls,
43
+ MapInspectorV2,
44
+ MapLoadingButton,
45
+ MapLoadingReporter,
46
+ MapMarker,
47
+ MapMovedReporter,
48
+ MapPaddingManager,
49
+ MapResizeManager,
50
+ MapStyledContainer,
51
+ MapTerrainManager,
52
+ MapView,
53
+ PanelCard,
54
+ PanelSubhead,
55
+ Physiography,
56
+ RegionalStratigraphy,
57
+ SubExpansionPanel,
58
+ TileExtentLayer,
59
+ TileInfo,
60
+ XddExpansion,
61
+ applyMapPositionToHash,
62
+ buildInspectorStyle,
63
+ buildXRayStyle,
64
+ getBasicMapStyle,
65
+ getMapPadding,
66
+ getMapPositionForHash,
67
+ h,
68
+ useBasicMapStyle,
69
+ useBasicStylePair,
70
+ useMapMarker,
71
+ xDDPanelCore
72
+ };
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ export declare function fetchMapInfo(lng: any, lat: any, z: any): any;
2
+ export declare function fetchColumnInfo(lng: any, lat: any): any;
3
+ export declare function fetchXddInfo(stratNames: any): any;
4
+ export declare function fetchFossilInfo(lng: any, lat: any): any;