@macrostrat/map-interface 1.2.4 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/index.js +10 -10
- package/dist/cjs/{context-panel.3061a63e.js → map-interface.0e252a74.js} +3 -3
- package/dist/cjs/map-interface.0e252a74.js.map +1 -0
- package/dist/cjs/{tile-extent.06a4b2ed.js → map-interface.175c4635.js} +1 -1
- package/dist/cjs/{tile-extent.06a4b2ed.js.map → map-interface.175c4635.js.map} +1 -1
- package/dist/cjs/{map-page.1e1970d8.js → map-interface.17e81e8a.js} +14 -13
- package/dist/cjs/map-interface.17e81e8a.js.map +1 -0
- package/dist/cjs/{main.module.13eb33f8.css → map-interface.1b386e07.css} +1 -1
- package/dist/cjs/{main.module.13eb33f8.css.map → map-interface.1b386e07.css.map} +1 -1
- package/dist/cjs/{header.af864bde.js → map-interface.1d19056e.js} +4 -4
- package/dist/cjs/map-interface.1d19056e.js.map +1 -0
- package/dist/cjs/{main.module.becc2fe7.css → map-interface.26497065.css} +1 -1
- package/dist/cjs/{main.module.becc2fe7.css.map → map-interface.26497065.css.map} +1 -1
- package/dist/cjs/{main.module.a3a78b0d.js → map-interface.31742bd3.js} +1 -1
- package/dist/cjs/{main.module.a3a78b0d.js.map → map-interface.31742bd3.js.map} +1 -1
- package/dist/cjs/{expansion-panel.ef757efe.js → map-interface.354aaa39.js} +4 -4
- package/dist/cjs/map-interface.354aaa39.js.map +1 -0
- package/dist/cjs/{location-panel.e33becf0.js → map-interface.3934d6d6.js} +5 -5
- package/dist/cjs/{location-panel.e33becf0.js.map → map-interface.3934d6d6.js.map} +1 -1
- package/dist/cjs/{main.module.f57e27f2.css → map-interface.4a401c1f.css} +16 -5
- package/dist/cjs/map-interface.4a401c1f.css.map +1 -0
- package/dist/cjs/{xray.a23f8660.js → map-interface.4c5addca.js} +2 -2
- package/dist/cjs/map-interface.4c5addca.js.map +1 -0
- package/dist/cjs/{helpers.0f72ddaf.js → map-interface.5813e876.js} +22 -4
- package/dist/cjs/map-interface.5813e876.js.map +1 -0
- package/dist/cjs/{dev.e6613cda.js → map-interface.5cea0ff4.js} +5 -5
- package/dist/cjs/{dev.e6613cda.js.map → map-interface.5cea0ff4.js.map} +1 -1
- package/dist/cjs/{location-info.92e70042.js → map-interface.64823b7c.js} +15 -5
- package/dist/cjs/map-interface.64823b7c.js.map +1 -0
- package/dist/cjs/{main.module.e958948e.js → map-interface.70458f75.js} +1 -1
- package/dist/cjs/{main.module.e958948e.js.map → map-interface.70458f75.js.map} +1 -1
- package/dist/cjs/{headers.d9f3e324.js → map-interface.7509f2c1.js} +3 -3
- package/dist/cjs/{headers.d9f3e324.js.map → map-interface.7509f2c1.js.map} +1 -1
- package/dist/cjs/{hash-string.62e84f08.js → map-interface.860fcb7e.js} +2 -2
- package/dist/cjs/map-interface.860fcb7e.js.map +1 -0
- package/dist/cjs/{controls.5fcf8a91.js → map-interface.99a048dc.js} +3 -3
- package/dist/cjs/{controls.5fcf8a91.js.map → map-interface.99a048dc.js.map} +1 -1
- package/dist/cjs/{main.module.62939ea7.js → map-interface.a9fe0f5d.js} +4 -1
- package/dist/cjs/map-interface.a9fe0f5d.js.map +1 -0
- package/dist/cjs/{main.module.ccec47df.js → map-interface.abe5fe65.js} +1 -1
- package/dist/cjs/{main.module.ccec47df.js.map → map-interface.abe5fe65.js.map} +1 -1
- package/dist/cjs/{main.module.338867af.css → map-interface.adb45df9.css} +1 -1
- package/dist/cjs/{main.module.338867af.css.map → map-interface.adb45df9.css.map} +1 -1
- package/dist/cjs/{main.module.e872989b.css → map-interface.ae4c52a6.css} +1 -1
- package/dist/cjs/{main.module.e872989b.css.map → map-interface.ae4c52a6.css.map} +1 -1
- package/dist/cjs/{container.d2e83c46.js → map-interface.bda26b27.js} +4 -4
- package/dist/cjs/{container.d2e83c46.js.map → map-interface.bda26b27.js.map} +1 -1
- package/dist/cjs/{main.module.0bbfa859.js → map-interface.cd485bb4.js} +1 -1
- package/dist/cjs/{main.module.0bbfa859.js.map → map-interface.cd485bb4.js.map} +1 -1
- package/dist/cjs/{utils.09cef979.js → map-interface.dfaad4a1.js} +1 -1
- package/dist/cjs/{utils.09cef979.js.map → map-interface.dfaad4a1.js.map} +1 -1
- package/dist/cjs/{map-view.61e50e18.js → map-interface.e7194f92.js} +67 -37
- package/dist/cjs/map-interface.e7194f92.js.map +1 -0
- package/dist/cjs/{vector-tile-features.77121785.js → map-interface.e9bcd5c0.js} +6 -6
- package/dist/cjs/map-interface.e9bcd5c0.js.map +1 -0
- package/dist/cjs/{utils.26f02633.js → map-interface.ffb109ef.js} +1 -1
- package/dist/cjs/{utils.26f02633.js.map → map-interface.ffb109ef.js.map} +1 -1
- package/dist/esm/index.d.ts +69 -39
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -11
- package/dist/esm/{map-page.1da2d70c.js → map-interface.00058d23.js} +15 -14
- package/dist/esm/map-interface.00058d23.js.map +1 -0
- package/dist/esm/{main.module.58922c04.js → map-interface.01826888.js} +1 -1
- package/dist/esm/{main.module.58922c04.js.map → map-interface.01826888.js.map} +1 -1
- package/dist/esm/{main.module.f70e002b.js → map-interface.065737fe.js} +4 -1
- package/dist/esm/map-interface.065737fe.js.map +1 -0
- package/dist/esm/{context-panel.5dae1a8c.js → map-interface.0b1aa8f2.js} +4 -4
- package/dist/esm/map-interface.0b1aa8f2.js.map +1 -0
- package/dist/esm/{xray.c0663c25.js → map-interface.1843c708.js} +2 -2
- package/dist/esm/map-interface.1843c708.js.map +1 -0
- package/dist/esm/{headers.32db7784.js → map-interface.1db44824.js} +4 -4
- package/dist/esm/{headers.32db7784.js.map → map-interface.1db44824.js.map} +1 -1
- package/dist/esm/{container.bba0b16c.js → map-interface.27587c50.js} +5 -5
- package/dist/esm/{container.bba0b16c.js.map → map-interface.27587c50.js.map} +1 -1
- package/dist/esm/{utils.d40349f0.js → map-interface.3033c825.js} +1 -1
- package/dist/esm/{utils.d40349f0.js.map → map-interface.3033c825.js.map} +1 -1
- package/dist/esm/{dev.b2d9d35d.js → map-interface.3248abc7.js} +5 -5
- package/dist/esm/{dev.b2d9d35d.js.map → map-interface.3248abc7.js.map} +1 -1
- package/dist/esm/{location-info.5543bb05.js → map-interface.3ef9d0ae.js} +15 -5
- package/dist/esm/map-interface.3ef9d0ae.js.map +1 -0
- package/dist/esm/{expansion-panel.465b822f.js → map-interface.3f07937e.js} +5 -5
- package/dist/esm/map-interface.3f07937e.js.map +1 -0
- package/dist/esm/{helpers.fb1d7227.js → map-interface.45814073.js} +21 -5
- package/dist/esm/map-interface.45814073.js.map +1 -0
- package/dist/esm/{main.module.9c57cc95.js → map-interface.473f1f2b.js} +1 -1
- package/dist/esm/{main.module.9c57cc95.js.map → map-interface.473f1f2b.js.map} +1 -1
- package/dist/esm/{controls.42c750c4.js → map-interface.50edfdfd.js} +4 -4
- package/dist/esm/{controls.42c750c4.js.map → map-interface.50edfdfd.js.map} +1 -1
- package/dist/esm/{vector-tile-features.53b48d66.js → map-interface.786d6e58.js} +7 -7
- package/dist/esm/map-interface.786d6e58.js.map +1 -0
- package/dist/esm/{main.module.5eb366de.js → map-interface.957e414c.js} +1 -1
- package/dist/esm/{main.module.5eb366de.js.map → map-interface.957e414c.js.map} +1 -1
- package/dist/esm/{map-view.1fc6297b.js → map-interface.9ce3d553.js} +71 -41
- package/dist/esm/map-interface.9ce3d553.js.map +1 -0
- package/dist/esm/{utils.122d1f2d.js → map-interface.c4fa120d.js} +1 -1
- package/dist/esm/{utils.122d1f2d.js.map → map-interface.c4fa120d.js.map} +1 -1
- package/dist/esm/{main.module.303f6d99.js → map-interface.c99b53b6.js} +1 -1
- package/dist/esm/{main.module.303f6d99.js.map → map-interface.c99b53b6.js.map} +1 -1
- package/dist/esm/{header.a73b6e0a.js → map-interface.e1493866.js} +5 -5
- package/dist/esm/map-interface.e1493866.js.map +1 -0
- package/dist/esm/{hash-string.836601b2.js → map-interface.e50c290f.js} +2 -2
- package/dist/esm/{hash-string.836601b2.js.map → map-interface.e50c290f.js.map} +1 -1
- package/dist/esm/{location-panel.c620b13b.js → map-interface.e5349e97.js} +6 -6
- package/dist/esm/{location-panel.c620b13b.js.map → map-interface.e5349e97.js.map} +1 -1
- package/dist/esm/{tile-extent.ca526996.js → map-interface.f107347b.js} +1 -1
- package/dist/esm/{tile-extent.ca526996.js.map → map-interface.f107347b.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/map-interface.02dd6884.js +2 -0
- package/dist/node/map-interface.02dd6884.js.map +1 -0
- package/dist/node/{main.module.2d51c752.css → map-interface.07882229.css} +1 -1
- package/dist/node/map-interface.07882229.css.map +1 -0
- package/dist/node/map-interface.10f5ef81.js +2 -0
- package/dist/node/map-interface.10f5ef81.js.map +1 -0
- package/dist/node/map-interface.1a5eecac.js +2 -0
- package/dist/node/map-interface.1a5eecac.js.map +1 -0
- package/dist/node/{main.module.8a9943af.css → map-interface.1be49df8.css} +1 -1
- package/dist/node/map-interface.1be49df8.css.map +1 -0
- package/dist/node/map-interface.20c346ba.js +2 -0
- package/dist/node/map-interface.20c346ba.js.map +1 -0
- package/dist/node/map-interface.2d12b35c.js +2 -0
- package/dist/node/map-interface.2d12b35c.js.map +1 -0
- package/dist/node/map-interface.3ea55e0c.js +2 -0
- package/dist/node/map-interface.3ea55e0c.js.map +1 -0
- package/dist/node/map-interface.42a4b05a.js +2 -0
- package/dist/node/map-interface.42a4b05a.js.map +1 -0
- package/dist/node/{main.module.29a15f3d.css → map-interface.42ef081d.css} +1 -1
- package/dist/node/map-interface.42ef081d.css.map +1 -0
- package/dist/node/map-interface.44d3f3bf.js +2 -0
- package/dist/node/map-interface.44d3f3bf.js.map +1 -0
- package/dist/node/map-interface.47b81f95.js +2 -0
- package/dist/node/map-interface.47b81f95.js.map +1 -0
- package/dist/node/map-interface.62b147ce.js +2 -0
- package/dist/node/map-interface.62b147ce.js.map +1 -0
- package/dist/node/map-interface.713361a4.js +2 -0
- package/dist/node/map-interface.713361a4.js.map +1 -0
- package/dist/node/map-interface.722387fb.js +2 -0
- package/dist/node/map-interface.722387fb.js.map +1 -0
- package/dist/node/map-interface.83fa8028.js +2 -0
- package/dist/node/map-interface.83fa8028.js.map +1 -0
- package/dist/node/map-interface.971af4bc.js +2 -0
- package/dist/node/map-interface.971af4bc.js.map +1 -0
- package/dist/node/map-interface.b14f08e8.js +2 -0
- package/dist/node/map-interface.b14f08e8.js.map +1 -0
- package/dist/node/map-interface.bc0fb98b.js +2 -0
- package/dist/node/map-interface.bc0fb98b.js.map +1 -0
- package/dist/node/{main.module.3943144e.css → map-interface.bd78832e.css} +1 -1
- package/dist/node/map-interface.bd78832e.css.map +1 -0
- package/dist/node/map-interface.cf540298.js +2 -0
- package/dist/node/map-interface.cf540298.js.map +1 -0
- package/dist/node/map-interface.d16a06b1.js +2 -0
- package/dist/node/map-interface.d16a06b1.js.map +1 -0
- package/dist/node/map-interface.d2fce135.css +2 -0
- package/dist/node/map-interface.d2fce135.css.map +1 -0
- package/dist/node/map-interface.d92b296e.js +2 -0
- package/dist/node/map-interface.d92b296e.js.map +1 -0
- package/dist/node/map-interface.e0032d67.js +2 -0
- package/dist/node/map-interface.e0032d67.js.map +1 -0
- package/dist/node/map-interface.eb663cae.js +2 -0
- package/dist/node/map-interface.eb663cae.js.map +1 -0
- package/dist/node/map-interface.ed6b5586.js +2 -0
- package/dist/node/map-interface.ed6b5586.js.map +1 -0
- package/dist/node/map-interface.f4d2a5eb.js +2 -0
- package/dist/node/map-interface.f4d2a5eb.js.map +1 -0
- package/package.json +9 -9
- package/src/container.ts +3 -3
- package/src/context-panel/index.ts +8 -8
- package/src/dev/map-page.ts +5 -13
- package/src/dev/tile-extent.ts +1 -1
- package/src/dev/vector-tile-features.ts +11 -7
- package/src/dev/xray.ts +7 -3
- package/src/expansion-panel/headers.ts +1 -1
- package/src/expansion-panel/index.ts +4 -4
- package/src/helpers.ts +42 -8
- package/src/location-info/hash-string.ts +2 -2
- package/src/location-info/index.ts +15 -6
- package/src/location-panel/header.ts +8 -6
- package/src/main.module.sass +13 -6
- package/src/map-view.ts +96 -47
- package/dist/cjs/context-panel.3061a63e.js.map +0 -1
- package/dist/cjs/expansion-panel.ef757efe.js.map +0 -1
- package/dist/cjs/hash-string.62e84f08.js.map +0 -1
- package/dist/cjs/header.af864bde.js.map +0 -1
- package/dist/cjs/helpers.0f72ddaf.js.map +0 -1
- package/dist/cjs/location-info.92e70042.js.map +0 -1
- package/dist/cjs/main.module.62939ea7.js.map +0 -1
- package/dist/cjs/main.module.f57e27f2.css.map +0 -1
- package/dist/cjs/map-page.1e1970d8.js.map +0 -1
- package/dist/cjs/map-view.61e50e18.js.map +0 -1
- package/dist/cjs/vector-tile-features.77121785.js.map +0 -1
- package/dist/cjs/xray.a23f8660.js.map +0 -1
- package/dist/esm/context-panel.5dae1a8c.js.map +0 -1
- package/dist/esm/expansion-panel.465b822f.js.map +0 -1
- package/dist/esm/header.a73b6e0a.js.map +0 -1
- package/dist/esm/helpers.fb1d7227.js.map +0 -1
- package/dist/esm/location-info.5543bb05.js.map +0 -1
- package/dist/esm/main.module.f70e002b.js.map +0 -1
- package/dist/esm/map-page.1da2d70c.js.map +0 -1
- package/dist/esm/map-view.1fc6297b.js.map +0 -1
- package/dist/esm/vector-tile-features.53b48d66.js.map +0 -1
- package/dist/esm/xray.c0663c25.js.map +0 -1
- package/dist/node/container.053f798f.js +0 -2
- package/dist/node/container.053f798f.js.map +0 -1
- package/dist/node/context-panel.0ae29ecf.js +0 -2
- package/dist/node/context-panel.0ae29ecf.js.map +0 -1
- package/dist/node/controls.6ec8e9ac.js +0 -2
- package/dist/node/controls.6ec8e9ac.js.map +0 -1
- package/dist/node/dev.4640438e.js +0 -2
- package/dist/node/dev.4640438e.js.map +0 -1
- package/dist/node/expansion-panel.62240ee3.js +0 -2
- package/dist/node/expansion-panel.62240ee3.js.map +0 -1
- package/dist/node/hash-string.3fc8ceb0.js +0 -2
- package/dist/node/hash-string.3fc8ceb0.js.map +0 -1
- package/dist/node/header.cf9ba12b.js +0 -2
- package/dist/node/header.cf9ba12b.js.map +0 -1
- package/dist/node/headers.2581f6d9.js +0 -2
- package/dist/node/headers.2581f6d9.js.map +0 -1
- package/dist/node/helpers.6bda171f.js +0 -2
- package/dist/node/helpers.6bda171f.js.map +0 -1
- package/dist/node/location-info.9f59aad3.js +0 -2
- package/dist/node/location-info.9f59aad3.js.map +0 -1
- package/dist/node/location-panel.2e422cc0.js +0 -2
- package/dist/node/location-panel.2e422cc0.js.map +0 -1
- package/dist/node/main.module.24615279.js +0 -2
- package/dist/node/main.module.24615279.js.map +0 -1
- package/dist/node/main.module.29a15f3d.css.map +0 -1
- package/dist/node/main.module.2d51c752.css.map +0 -1
- package/dist/node/main.module.3943144e.css.map +0 -1
- package/dist/node/main.module.3a8fef67.js +0 -2
- package/dist/node/main.module.3a8fef67.js.map +0 -1
- package/dist/node/main.module.434acaf9.js +0 -2
- package/dist/node/main.module.434acaf9.js.map +0 -1
- package/dist/node/main.module.5d5ab665.js +0 -2
- package/dist/node/main.module.5d5ab665.js.map +0 -1
- package/dist/node/main.module.65e40c2e.css +0 -2
- package/dist/node/main.module.65e40c2e.css.map +0 -1
- package/dist/node/main.module.8a9943af.css.map +0 -1
- package/dist/node/main.module.e200d631.js +0 -2
- package/dist/node/main.module.e200d631.js.map +0 -1
- package/dist/node/map-page.d0e099ab.js +0 -2
- package/dist/node/map-page.d0e099ab.js.map +0 -1
- package/dist/node/map-view.9dc96288.js +0 -2
- package/dist/node/map-view.9dc96288.js.map +0 -1
- package/dist/node/tile-extent.28db5d2c.js +0 -2
- package/dist/node/tile-extent.28db5d2c.js.map +0 -1
- package/dist/node/utils.274d0452.js +0 -2
- package/dist/node/utils.274d0452.js.map +0 -1
- package/dist/node/utils.dd92f725.js +0 -2
- package/dist/node/utils.dd92f725.js.map +0 -1
- package/dist/node/vector-tile-features.b5a23b71.js +0 -2
- package/dist/node/vector-tile-features.b5a23b71.js.map +0 -1
- package/dist/node/xray.bce11e7b.js +0 -2
- package/dist/node/xray.bce11e7b.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AALA,4CAAmC,CAAC,sBAAsB,CAAC;AAC3D,4CAA2B,CAAC,cAAc,CAAC;AAC3C,4CAAkC,CAAC,qBAAqB,CAAC;AACzD,4CAA8B,CAAC,iBAAiB,CAAC;AACjD,4CAAqC,CAAC,wBAAwB,CAAC;AAC/D,4CAAkC,CAAC,qBAAqB,CAAC","sources":["packages/map-interface/src/context-panel/main.module.sass"],"sourcesContent":[".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n\n .navbar-holder\n display: flex\n flex-direction: row\n\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: var(--map-panel-border-radius, 5px)\n padding: var(--navbar-padding, 10px)\n display: flex\n flex-direction: row\n align-items: center\n gap: 5px\n\n :global(.bp5-input-group)\n flex-grow: 1\n cursor: text\n\n.navbar\n min-height: 50px\n\n:global(.bp5-navbar) > .loading-button\n width: 40px\n height: 40px\n\n.status-tongue\n background-color: var(--panel-background-color)\n margin: 5px\n margin-bottom: 0\n margin-top: -12px\n padding: 0\n padding-top: 12px\n overflow: hidden\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AALA,4CAAmC,CAAC,sBAAsB,CAAC;AAC3D,4CAA2B,CAAC,cAAc,CAAC;AAC3C,4CAAkC,CAAC,qBAAqB,CAAC;AACzD,4CAA8B,CAAC,iBAAiB,CAAC;AACjD,4CAAqC,CAAC,wBAAwB,CAAC;AAC/D,4CAAkC,CAAC,qBAAqB,CAAC","sources":["packages/map-interface/src/context-panel/main.module.sass"],"sourcesContent":[".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n\n .navbar-holder\n display: flex\n flex-direction: row\n\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: var(--map-panel-border-radius, 5px)\n padding: var(--navbar-padding, 10px)\n display: flex\n flex-direction: row\n align-items: center\n gap: 5px\n\n :global(.bp5-input-group)\n flex-grow: 1\n cursor: text\n\n.navbar\n min-height: 50px\n\n:global(.bp5-navbar) > .loading-button\n width: 40px\n height: 40px\n\n.status-tongue:global(.bp5-card)\n background-color: var(--panel-background-color)\n margin: 5px\n margin-bottom: 0\n margin-top: -12px\n padding: 0\n padding-top: 12px\n overflow: hidden\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n"],"names":[],"version":3,"file":"map-interface.70458f75.js.map"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var $b1c160aff794b8f5$exports = require("./
|
|
2
|
-
require("./
|
|
1
|
+
var $b1c160aff794b8f5$exports = require("./map-interface.31742bd3.js");
|
|
2
|
+
require("./map-interface.adb45df9.css");
|
|
3
3
|
var $br79r$macrostrathyper = require("@macrostrat/hyper");
|
|
4
4
|
|
|
5
5
|
|
|
@@ -26,4 +26,4 @@ function $a0970d22776f9f4c$export$ed081779ec3709aa(props) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=map-interface.7509f2c1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;AAGA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAErB,SAAS,0CAAa,KAAK;IAChC,MAAM,SAAE,KAAK,aAAE,YAAY,gBAAM,QAAQ,EAAE,GAAG,MAAM,GAAG;IACvD,OAAO,wBAAE,qBAAqB,MAAM;QAClC,wBACE,WACA;YACE,WAAW;QACb,GACA;QAEF;KACD;AACH","sources":["packages/map-interface/src/expansion-panel/headers.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyper.styled(styles);\n\nexport function PanelSubhead(props) {\n const { title, component = \"h3\", children, ...rest } = props;\n return h(\"div.panel-subhead\", rest, [\n h(\n component,\n {\n className: \"title\",\n },\n title
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;AAGA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAErB,SAAS,0CAAa,KAAK;IAChC,MAAM,SAAE,KAAK,aAAE,YAAY,gBAAM,QAAQ,EAAE,GAAG,MAAM,GAAG;IACvD,OAAO,wBAAE,qBAAqB,MAAM;QAClC,wBACE,WACA;YACE,WAAW;QACb,GACA;QAEF;KACD;AACH","sources":["packages/map-interface/src/expansion-panel/headers.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyper.styled(styles);\n\nexport function PanelSubhead(props) {\n const { title, component = \"h3\", children, ...rest } = props;\n return h(\"div.panel-subhead\", rest, [\n h(\n component,\n {\n className: \"title\",\n },\n title,\n ),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"map-interface.7509f2c1.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var $bf943af2b72f182b$exports = require("./
|
|
1
|
+
var $bf943af2b72f182b$exports = require("./map-interface.dfaad4a1.js");
|
|
2
2
|
var $aMvpk$macrostratmapboxutils = require("@macrostrat/mapbox-utils");
|
|
3
3
|
|
|
4
4
|
|
|
@@ -64,4 +64,4 @@ function $370ea7ef3413c03a$export$80abf1cbcc3918e4(hashData, centerPosition) {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=
|
|
67
|
+
//# sourceMappingURL=map-interface.860fcb7e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;AAgBO,SAAS,0CACd,IAAwB,EACxB,WAA+B;IAE/B,MAAM,MAAM,aAAa;IACzB,IAAI,OAAO,MAAM;IACjB,MAAM,OAAO,YAAY,MAAM,EAAE;IAEjC,KAAK,CAAC,GAAG,CAAA,GAAA,oDAAsB,EAAE,IAAI,GAAG,EAAE;IAC1C,KAAK,CAAC,GAAG,CAAA,GAAA,oDAAsB,EAAE,IAAI,GAAG,EAAE;IAE1C,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,MAChD,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAG,EAAE;SACT,IAAI,IAAI,QAAQ,IAAI;QACzB,IAAI,IAAI,QAAQ,GAAG,MACjB,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAG,EAAE,IAAI,QAAQ,GAAG,QAAQ;aAErC,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE,IAAI,QAAQ,IAAI;;IAGpC,IAAI,IAAI,OAAO,IAAI,GAAG;QACpB,IAAI,KAAK,IAAI,OAAO;QACpB,IAAI,KAAK,GAAG,MAAM;QAClB,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE;IAClB;IACA,IAAI,IAAI,KAAK,IAAI,GACf,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE,IAAI,KAAK;AAE7B;AAEA,SAAS,2BAAK,CAA6B;IACzC,IAAI,MAAM,OAAO,CAAC,IAChB,IAAI,CAAC,CAAC,EAAE;IAEV,OAAO,WAAW,EAAE,QAAQ;AAC9B;AAEO,SAAS,0CACd,QAA6B,EAC7B,cAA6B;IAE7B,MAAM,KACJ,IAAI,gBAAgB,OAAO,MAC3B,IAAI,gBAAgB,OAAO,MAC3B,mEAAmE;IACnE,IAAI,kBAAkB,OAAO,IAAI,MACjC,IAAI,MACJ,IAAI,GACL,GAAG;IAEJ,MAAM,MAAM,2BAAK;IACjB,MAAM,MAAM,2BAAK;IAEjB,IAAI,WAAW;IACf,IAAI,OAAO;IACX,MAAM,KAAK,EAAE,QAAQ;IACrB,IAAI,GAAG,QAAQ,CAAC,OACd,WAAW,2BAAK,GAAG,SAAS,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM;SAC7C,IAAI,GAAG,QAAQ,CAAC,MACrB,WAAW,2BAAK,GAAG,SAAS,CAAC,GAAG,GAAG,MAAM,GAAG;SAE5C,OAAO,2BAAK;IAEd,MAAM,UAAU,2BAAK;IACrB,MAAM,QAAQ,2BAAK;IAEnB,IAAI,SAAS;IACb,IAAI,WAAW,KAAK,SAAS,KAAK,QAAQ,MACxC,SAAS;aACP;aACA;cACA;IACF;IAGF,OAAO;QACL,QAAQ;YACN,KAAK,2BAAK;YACV,KAAK,2BAAK;sBACV;YACA,SAAS,2BAAK;YACd,OAAO,2BAAK;QACd;gBACA;IACF;AACF","sources":["packages/map-interface/src/location-info/hash-string.ts"],"sourcesContent":["import {\n LatLng,\n MapPosition,\n formatCoordForZoomLevel,\n} from \"@macrostrat/mapbox-utils\";\nimport { ParsedQuery } from \"query-string\";\nimport { fmt1, fmt2, fmtInt } from \"./utils\";\n\ninterface LocationHashParams {\n x?: string;\n y?: string;\n z?: string;\n a?: string;\n e?: string;\n}\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":[],"version":3,"file":"map-interface.860fcb7e.js.map"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var $35f1bc0112883d51$exports = require("./
|
|
2
|
-
require("./
|
|
1
|
+
var $35f1bc0112883d51$exports = require("./map-interface.a9fe0f5d.js");
|
|
2
|
+
require("./map-interface.4a401c1f.css");
|
|
3
3
|
var $9ks7g$react = require("react");
|
|
4
4
|
var $9ks7g$mapboxgl = require("mapbox-gl");
|
|
5
5
|
var $9ks7g$macrostrathyper = require("@macrostrat/hyper");
|
|
@@ -76,4 +76,4 @@ function $f333fe6f49373ca9$export$db1a2e058a06fb5c({ children: children }) {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
//# sourceMappingURL=
|
|
79
|
+
//# sourceMappingURL=map-interface.99a048dc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAE5B,SAAS,mCAAa,KAAK;IACzB,MAAM,aAAa,CAAA,GAAA,mBAAK,EAAE;QACxB,UAAU;QACV,MAAM;IACR;IACA,OAAO,wBAAE,CAAA,GAAA,8CAAgB,GAAG;QAC1B,WAAW;QACX,SAAS,CAAA,GAAA,4BAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEA,SAAS,yCAAmB,KAAK;IAC/B,MAAM,aAAa,CAAA,GAAA,mBAAK,EAAE;QACxB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;YACf,oBAAoB;QACtB;IACF;IACA,OAAO,wBAAE,CAAA,GAAA,8CAAgB,GAAG;QAC1B,SAAS,CAAA,GAAA,gCAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEO,SAAS,0CAAkB,YAAE,QAAQ,EAAE;IAC5C,MAAM,iBAAE,aAAa,EAAE,GAAG,CAAA,GAAA,yCAAW;IAErC,IAAI,CAAC,eACH,OAAO;IAGT,OAAO,wBAAE,oBAAoB;QAC3B,wBAAE;QACF,wBAAE,CAAA,GAAA,0CAAY,GAAG;YAAE,WAAW;QAAiB;QAC/C,wBAAE,CAAA,GAAA,2CAAa,GAAG;YAAE,WAAW;QAAkB;QACjD,wBAAE,CAAA,GAAA,yCAAW,GAAG;YAAE,WAAW;QAAgB;QAC7C,wBAAE,0CAAoB;YAAE,WAAW;QAAsB;QACzD,+DAA+D;QAC/D,wBAAE,CAAA,GAAA,gDAAiB,GAAG;YAAE,WAAW;QAAc;QACjD;KACD;AACH","sources":["packages/map-interface/src/controls.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\nimport { DevToolsButtonSlot } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls({ children }) {\n const { isInitialized } = useMapStatus();\n\n if (!isInitialized) {\n return null;\n }\n\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n // If we have global development tools enabled, show the button\n h(DevToolsButtonSlot, { className: \"map-control\" }),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAE5B,SAAS,mCAAa,KAAK;IACzB,MAAM,aAAa,CAAA,GAAA,mBAAK,EAAE;QACxB,UAAU;QACV,MAAM;IACR;IACA,OAAO,wBAAE,CAAA,GAAA,8CAAgB,GAAG;QAC1B,WAAW;QACX,SAAS,CAAA,GAAA,4BAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEA,SAAS,yCAAmB,KAAK;IAC/B,MAAM,aAAa,CAAA,GAAA,mBAAK,EAAE;QACxB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;YACf,oBAAoB;QACtB;IACF;IACA,OAAO,wBAAE,CAAA,GAAA,8CAAgB,GAAG;QAC1B,SAAS,CAAA,GAAA,gCAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEO,SAAS,0CAAkB,YAAE,QAAQ,EAAE;IAC5C,MAAM,iBAAE,aAAa,EAAE,GAAG,CAAA,GAAA,yCAAW;IAErC,IAAI,CAAC,eACH,OAAO;IAGT,OAAO,wBAAE,oBAAoB;QAC3B,wBAAE;QACF,wBAAE,CAAA,GAAA,0CAAY,GAAG;YAAE,WAAW;QAAiB;QAC/C,wBAAE,CAAA,GAAA,2CAAa,GAAG;YAAE,WAAW;QAAkB;QACjD,wBAAE,CAAA,GAAA,yCAAW,GAAG;YAAE,WAAW;QAAgB;QAC7C,wBAAE,0CAAoB;YAAE,WAAW;QAAsB;QACzD,+DAA+D;QAC/D,wBAAE,CAAA,GAAA,gDAAiB,GAAG;YAAE,WAAW;QAAc;QACjD;KACD;AACH","sources":["packages/map-interface/src/controls.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\nimport { DevToolsButtonSlot } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls({ children }) {\n const { isInitialized } = useMapStatus();\n\n if (!isInitialized) {\n return null;\n }\n\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n // If we have global development tools enabled, show the button\n h(DevToolsButtonSlot, { className: \"map-control\" }),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"map-interface.99a048dc.js.map"}
|
|
@@ -20,6 +20,7 @@ $parcel$export(module.exports, "detail-panel-holder", () => $35f1bc0112883d51$ex
|
|
|
20
20
|
$parcel$export(module.exports, "map-control-stack", () => $35f1bc0112883d51$export$c163dab1f00a51cb, (v) => $35f1bc0112883d51$export$c163dab1f00a51cb = v);
|
|
21
21
|
$parcel$export(module.exports, "main-row", () => $35f1bc0112883d51$export$bc4885f800420ea3, (v) => $35f1bc0112883d51$export$bc4885f800420ea3 = v);
|
|
22
22
|
$parcel$export(module.exports, "map-ui", () => $35f1bc0112883d51$export$7d4a718201bc0bd1, (v) => $35f1bc0112883d51$export$7d4a718201bc0bd1 = v);
|
|
23
|
+
$parcel$export(module.exports, "standalone", () => $35f1bc0112883d51$export$983430b50142290b, (v) => $35f1bc0112883d51$export$983430b50142290b = v);
|
|
23
24
|
$parcel$export(module.exports, "mapbox-map", () => $35f1bc0112883d51$export$d0dcaf774d09fc4c, (v) => $35f1bc0112883d51$export$d0dcaf774d09fc4c = v);
|
|
24
25
|
$parcel$export(module.exports, "context-panel-holder", () => $35f1bc0112883d51$export$1113ec858cdbc244, (v) => $35f1bc0112883d51$export$1113ec858cdbc244 = v);
|
|
25
26
|
$parcel$export(module.exports, "panel-card", () => $35f1bc0112883d51$export$8eff531ff0f1cffe, (v) => $35f1bc0112883d51$export$8eff531ff0f1cffe = v);
|
|
@@ -73,6 +74,7 @@ var $35f1bc0112883d51$export$f553ebb4e6df6c5f;
|
|
|
73
74
|
var $35f1bc0112883d51$export$c163dab1f00a51cb;
|
|
74
75
|
var $35f1bc0112883d51$export$bc4885f800420ea3;
|
|
75
76
|
var $35f1bc0112883d51$export$7d4a718201bc0bd1;
|
|
77
|
+
var $35f1bc0112883d51$export$983430b50142290b;
|
|
76
78
|
var $35f1bc0112883d51$export$d0dcaf774d09fc4c;
|
|
77
79
|
var $35f1bc0112883d51$export$1113ec858cdbc244;
|
|
78
80
|
var $35f1bc0112883d51$export$8eff531ff0f1cffe;
|
|
@@ -126,6 +128,7 @@ $35f1bc0112883d51$export$f553ebb4e6df6c5f = "detail-panel-holder_4c0a66";
|
|
|
126
128
|
$35f1bc0112883d51$export$c163dab1f00a51cb = "map-control-stack_4c0a66";
|
|
127
129
|
$35f1bc0112883d51$export$bc4885f800420ea3 = "main-row_4c0a66";
|
|
128
130
|
$35f1bc0112883d51$export$7d4a718201bc0bd1 = "map-ui_4c0a66";
|
|
131
|
+
$35f1bc0112883d51$export$983430b50142290b = "standalone_4c0a66";
|
|
129
132
|
$35f1bc0112883d51$export$d0dcaf774d09fc4c = "mapbox-map_4c0a66";
|
|
130
133
|
$35f1bc0112883d51$export$1113ec858cdbc244 = "context-panel-holder_4c0a66";
|
|
131
134
|
$35f1bc0112883d51$export$8eff531ff0f1cffe = "panel-card_4c0a66";
|
|
@@ -164,4 +167,4 @@ $35f1bc0112883d51$export$1d0f1d0b062c3bee = "detail-panel-leave_4c0a66";
|
|
|
164
167
|
$35f1bc0112883d51$export$b4dbb67ffc3cc7a9 = "context-panel_4c0a66";
|
|
165
168
|
|
|
166
169
|
|
|
167
|
-
//# sourceMappingURL=
|
|
170
|
+
//# sourceMappingURL=map-interface.a9fe0f5d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AArDA,4CAAkC;AAClC,2CAAwC;AACxC,4CAAuC;AACvC,4CAAiC;AACjC,4CAAoC;AACpC,4CAAmC;AACnC,4CAAmC;AACnC,4CAAqC;AACrC,4CAAkC;AAClC,4CAAkC;AAClC,4CAAsC;AACtC,4CAAiC;AACjC,4CAAuC;AACvC,4CAAwC;AACxC,4CAAsC;AACtC,4CAA6B;AAC7B,4CAA2B;AAC3B,4CAA+B;AAC/B,4CAA+B;AAC/B,4CAAyC;AACzC,4CAA+B;AAC/B,4CAAkC;AAClC,4CAA8B;AAC9B,4CAAiC;AACjC,4CAAoC;AACpC,4CAAgC;AAChC,4CAA2B;AAC3B,4CAAqC;AACrC,2CAAgC;AAChC,4CAA4B;AAC5B,4CAA+B;AAC/B,2CAA8B;AAC9B,2CAAgC;AAChC,4CAAiC;AACjC,4CAA4B;AAC5B,4CAAwC;AACxC,4CAAiC;AACjC,4CAA+B;AAC/B,4CAAiC;AACjC,4CAAqC;AACrC,4CAA2C;AAC3C,4CAAuC;AACvC,4CAAiC;AACjC,4CAAsC;AACtC,4CAAuC;AACvC,4CAAqC;AACrC,4CAAiC;AACjC,4CAAmC;AACnC,4CAAuC;AACvC,4CAAwC;AACxC,4CAA0C;AAC1C,4CAAsC;AACtC,4CAAuC;AACvC,4CAAkC","sources":["packages/map-interface/src/main.module.sass"],"sourcesContent":[".map-container\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n overflow: hidden\n --map-panel-border-radius: 4px\n\n &.show-panel-outlines\n .map-view-container\n outline: 2px dotted dodgerblue\n\n &.fit-viewport\n height: 100vh\n width: 100vw\n /* mobile viewport bug fix */\n max-height: -webkit-fill-available\n\n // Compass display\n .compass-control\n display: none\n\n &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n\n &.map-3d-available .map-3d-control\n display: block\n\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n\n svg\n color: var(--secondary-color)\n\n &.map-is-global .globe-control\n display: block\n\n &.detail-panel-open\n .zoom-control\n opacity: 0\n display: none\n\n &.detail-panel-fixed\n .detail-panel-holder\n & > *\n border-radius: unset\n\n.detail-panel-holder\n display: flex\n flex-direction: column\n min-height: 0\n\n & > *\n flex: 1\n\n\n.map-control-stack\n display: flex\n flex-direction: column\n width: 30em\n margin-left: -30em\n pointer-events: none\n\n.main-row\n flex: 1\n display: flex\n flex-direction: row\n position: relative\n max-height: 100%\n min-height: 0\n\n.map-ui\n flex: 1\n position: relative\n display: flex\n flex-direction: column\n max-height: 100%\n height: 100%\n box-shadow: 0 0 10px 4px var(--card-shadow-color)\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n &.standalone\n height: 100%\n width: 100%\n\n.mapbox-map\n position: absolute\n top: 0\n bottom: 0\n left: 0\n right: 0\n\n &:global(.mapboxgl-map)\n // override the default mapbox position: relative in all cases\n position: absolute\n\n\n /** These styles seem to help with weird map zooming behavior */\n :global(.mapboxgl-canvas), :global(.mapboxgl-canvas-container)\n position: relative\n left: 0\n top: 0\n\n\n.context-panel-holder > :global(.bp5-card)\n padding: 10px\n background-color: var(--panel-background-color)\n\n.panel-card, .panel-card:global(.bp5-card)\n padding: var(--panel-padding, 10px)\n background-color: var(--panel-background-color)\n overflow: hidden\n border-radius: var(--map-panel-border-radius)\n\n & > :last-child\n margin-bottom: 0\n\n:global(.bp5-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n & > div\n flex-shrink: 1\n\n & > .searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 10\n max-height: 100%\n\n.panel-container\n display: flex\n flex-direction: column\n\n & > div\n pointer-events: all\n\n.panel-title\n font-size: 16px\n\n.spacer\n flex-grow: 1\n pointer-events: none\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.searchbar-holder\n margin-bottom: 0.5em\n\n.right-panel\n width: 24em\n\n.buttons\n display: flex\n flex-direction: row\n flex: 1\n min-width: 0\n\n.tab-button\n flex-shrink: 1\n min-width: 40px\n overflow: hidden\n text-align: right\n\n & :global(.bp5-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp5-active) ~ & :global(.bp5-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp5-button-text)\n opacity: 0\n width: 0\n\n.narrow-card.narrow-enter .panel-header .buttons\n margin-right: -500px\n\n.panel-header.minimal .tab-button:not(:hover):not(:global(.bp5-active))\n padding-left: 0\n padding-right: 0\n min-width: 30px\n width: 30px\n\n.panel-header.minimal .tab-button:not(:hover) :global(.bp5-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n.menu-group\n margin-bottom: 0.5em\n margin-top: 0.2em\n\n.menu-card :global .bp5-text ul,\n.menu-card :global .text-panel ul\n padding-left: 1em\n\n.menu-content\n display: flex\n flex-direction: column\n margin-bottom: -8px\n\n & .bp5-button-group\n margin-bottom: 4px\n\n & hr\n width: 100%\n\n:global\n .mapbox-map\n .mapbox-compass, .mapbox-3d\n display: none\n\n .mapboxgl-ctrl.mapbox-3d.mapbox-control\n width: unset\n\n .mapboxgl-ctrl.mapbox-3d.mapbox-control button\n width: unset\n padding-inline: 4px\n\n .mapboxgl-canvas-container\n width: 100%\n height: 100%\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib\n background-color: var(--translucent-panel-background-color) !important\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib a\n color: var(--text-color)\n\n .mapboxgl-marker svg path\n fill: var(--panel-background-color) !important\n\n .mapboxgl-marker svg circle\n fill: var(--secondary-color) !important\n\n .mapbox-control.mapbox-zoom\n background: var(--translucent-panel-background-inner)\n\n .mapbox-control.mapbox-zoom svg\n fill: var(--text-color) !important\n\n .mapboxgl-ctrl-logo\n transform: scale(0.9) translate(-8px, 2px)\n\n .bp5-dark\n .mapboxgl-ctrl-group\n background-color: var(--panel-background-color)\n\n .mapboxgl-ctrl-logo\n filter: invert(100%)\n\n .mapboxgl-ctrl-group button + button\n border-top: 1px solid var(--panel-rule-color) !important\n\n .bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n.detail-stack\n position: relative\n\n.detail-panel-container, .map-right-controls\n flex: 1\n\n\n.zoom-control\n transition: opacity 1s ease-in-out\n width: 30px\n position: absolute\n top: 0\n right: 0\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n gap: 0.5em\n\n :global(.map-control)\n & > :global(.bp5-button)\n padding: 0\n transform: translate(-3.5px, -3.5px)\n width: 22px !important\n\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls :global(.map-control)\n max-height: 22px\n height: 22px\n border-radius: 4px\n background-color: var(--panel-background-color)\n box-shadow: 0 0 0 1px var(--card-shadow-color)\n\n.map-controls :global(.mapbox-control) button,\n.map-controls :global(.map-control-wrapper) button,\n.map-controls :global(.map-control) button\n max-height: 22px\n height: 22px\n width: 22px\n max-width: 22px\n background-position: center center\n padding: 0\n//background-color: var(--panel-background-color)\n//color: var(--text-color)\n\n//.map-controls :global(.mapbox-control) button:hover,\n//.map-controls :global(.map-control-wrapper) button:hover,\n//.map-controls .map-control button:hover\n// background-color: var(--panel-background-color) !important\n\n.map-controls .map-scale-control\n background: none\n box-shadow: none\n padding-top: 8px\n\n :global(.mapboxgl-ctrl-scale)\n background-color: var(--translucent-panel-background-color)\n border-color: var(--secondary-text-color)\n color: var(--secondary-text-color)\n\n// .map-container.detail-panel-fixed\n// right: 30em\n\n/* For mobile phones, we want to make the most of screen space,\n which in some cases means adding complications to the basic page. */\n@media only screen and (max-width: 768px)\n .map-container.detail-panel-enter .context-stack\n height: 0\n visibility: hidden\n transition: height 0.5s ease-in-out\n\n .detail-stack\n height: fit-content\n position: inherit\n max-height: 70%\n\n .infodrawer-stack\n max-height: 70%\n\n &:global(.exit-active)\n max-height: 0\n\n :global(.mapbox-control.mapbox-zoom)\n display: none\n\n .map-controls\n position: absolute\n top: -60px\n right: 10px\n\n .detail-panel\n border-radius: 0px\n\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n /* Make map fill page rather than containing div,\n by unsetting map position */\n // We should move this to another file.\n\n .map-view-container:not(.standalone)\n position: unset\n\n\n .map-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n gap: 0.5em\n\n .context-stack\n max-width: var(--map-context-stack-max-width, 34em)\n min-width: 14em\n transition: width 300ms ease\n padding-bottom: 0.5em\n width: var(--map-context-stack-width, 16em)\n margin-right: 0.5em\n display: flex\n flex-direction: column\n\n\n &.adaptive-width\n width: var(--map-context-stack-width, none)\n max-width: var(--map-context-stack-max-width, none)\n transition: width 300ms ease\n\n :global(.bp5-navbar)\n //height: unset\n //padding: 5px\n h1, h2, h3\n margin: 0\n\n & > .spacer\n flex-grow: 0\n\n .context-panel-holder\n min-height: 0\n position: relative\n\n & > div\n max-height: 100%\n\n .detail-stack\n width: var(--map-detail-stack-width, 30em)\n display: flex\n flex-direction: column\n\n .context-stack, .detail-stack\n pointer-events: none\n z-index: 10\n\n & > div\n pointer-events: all\n margin-bottom: 0.5em\n\n &:last-child\n margin-bottom: 0\n\n &.spacer\n pointer-events: none\n\n .context-stack .spacer\n min-height: 1em\n\n/** CSS Transitions **/\n\n.map-container\n // Context panel\n .context-panel-holder\n pointer-events: none\n flex: 1\n\n & > div\n pointer-events: all\n transition: opacity 0.8s ease\n //, height 0.8s ease, max-height 0.8s ease, padding 0.8s ease\n\n &.context-panel-from .context-panel-holder > div\n opacity: 0\n\n &.context-panel-enter .context-panel-holder > div\n opacity: 1\n\n &.context-panel-leave .context-panel-holder > div\n opacity: 0\n\n // Detail panel (floating)\n &.detail-panel-floating\n // We assume that the relevant panel is the first child of the stack.\n &.detail-panel-from .detail-panel-holder\n opacity: 0\n\n &.detail-panel-enter .detail-panel-holder\n opacity: 1\n\n &.detail-panel-leave .detail-panel-holder\n opacity: 0\n\n .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n // TODO: these styles have not been evaluated for mobile\n &.detail-panel-fixed\n .map-ui\n transition: margin-right 0.8s ease\n\n .detail-stack\n transition: margin-right 0.8s ease\n\n &.detail-panel-from .detail-panel-holder\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em))\n\n &.detail-panel-enter .detail-panel-holder\n margin-right: 0\n\n &.detail-panel-leave .detail-panel-holder\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em))\n\n\n// The max-height transition is a bit jerky because of panel padding.\n// We could probably fix this by pulling the panel container itself into\n// the class.\n//max-height: 0\n//padding: 0i\n\n@media only screen and (max-width: 768px)\n .map-container .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .map-container.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .map-container.detail-panel-leave .detail-stack\n max-height: 0\n\n .map-container.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .map-container.context-panel-leave\n .context-stack\n .context-panel-holder\n flex: 0\n\n .spacer\n flex: 1\n\n\n// Shift UI around to center elements if we're in the global view\n@media only screen and (min-width: 768px)\n .map-container.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-container.map-is-global.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-container.map-is-global.context-panel-leave .map-view-container\n margin-left: -16em\n"],"names":[],"version":3,"file":"map-interface.a9fe0f5d.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAbA,4CAAkC;AAClC,4CAA8B;AAC9B,4CAAwB;AACxB,4CAA0B;AAC1B,4CAAuC;AACvC,4CAA6B;AAC7B,4CAAmC;AACnC,2CAAkC;AAClC,4CAA8B;AAC9B,4CAAmC;AACnC,2CAAgC;AAChC,4CAAyB;AACzB,4CAAyB;AACzB,4CAAmC","sources":["packages/map-interface/src/dev/main.module.sass"],"sourcesContent":[".feature-panel\n position: relative\n margin: 0 -1em\n\n.key-value\n display: inline-block\n margin-right: 1em\n\n .key\n font-weight: bold\n font-size: 0.9em\n\n &:after\n content: ': '\n\n .value\n font-size: 0.9em\n\n.feature-properties\n position: relative\n\n &:before\n content: \"–\"\n position: absolute\n top: 4px\n left: 0\n\n .controls\n display: flex\n flex-direction: row\n align-items: flex-end\n position: absolute\n top: 0\n right: 0\n gap: 0.5em\n\n.feature-header h3\n margin-bottom: 0\n margin-top: 0.5em\n\n.feature-group\n border-bottom: 1px solid var(--panel-rule-inner)\n margin-bottom: 0.5em\n\n &:last-child\n border-bottom: none\n\n.tile-info\n display: flex\n flex-direction: row\n align-items: baseline\n\n h3\n margin-right: 0.5em\n\n.opacity-slider\n margin: 0 1em 0.5em\n\n :global\n .bp5-slider-handle .bp5-slider-label\n background-color: var(--secondary-color)\n color: var(--text-color)\n\n.unit-number\n .unit\n font-size: 0.9em\n margin-left: 0.2em\n font-weight: bold\n\n.page\n margin: 2em auto\n max-width: 50em\n\n.dev-index-page\n overflow-y: scroll\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAbA,4CAAkC;AAClC,4CAA8B;AAC9B,4CAAwB;AACxB,4CAA0B;AAC1B,4CAAuC;AACvC,4CAA6B;AAC7B,4CAAmC;AACnC,2CAAkC;AAClC,4CAA8B;AAC9B,4CAAmC;AACnC,2CAAgC;AAChC,4CAAyB;AACzB,4CAAyB;AACzB,4CAAmC","sources":["packages/map-interface/src/dev/main.module.sass"],"sourcesContent":[".feature-panel\n position: relative\n margin: 0 -1em\n\n.key-value\n display: inline-block\n margin-right: 1em\n\n .key\n font-weight: bold\n font-size: 0.9em\n\n &:after\n content: ': '\n\n .value\n font-size: 0.9em\n\n.feature-properties\n position: relative\n\n &:before\n content: \"–\"\n position: absolute\n top: 4px\n left: 0\n\n .controls\n display: flex\n flex-direction: row\n align-items: flex-end\n position: absolute\n top: 0\n right: 0\n gap: 0.5em\n\n.feature-header h3\n margin-bottom: 0\n margin-top: 0.5em\n\n.feature-group\n border-bottom: 1px solid var(--panel-rule-inner)\n margin-bottom: 0.5em\n\n &:last-child\n border-bottom: none\n\n.tile-info\n display: flex\n flex-direction: row\n align-items: baseline\n\n h3\n margin-right: 0.5em\n\n.opacity-slider\n margin: 0 1em 0.5em\n\n :global\n .bp5-slider-handle .bp5-slider-label\n background-color: var(--secondary-color)\n color: var(--text-color)\n\n.unit-number\n .unit\n font-size: 0.9em\n margin-left: 0.2em\n font-weight: bold\n\n.page\n margin: 2em auto\n max-width: 50em\n\n.dev-index-page\n overflow-y: scroll\n"],"names":[],"version":3,"file":"map-interface.abe5fe65.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AACA;;;;;;;;;;;;;;;AAaE;;;;;;AAIA;;;;AAEA;;;;AAGA;;;;;;;;;;;;;;AAaA;;;;;AAMA;;;;AAGE;;;;;AAGA;;;;;;AAKA;;;;AAGA;;;;;;;AAKE;;;;;;;;;;;;AASJ;;;;AAEE;;;;AAEA;;;;;AAGF;;;;AAEE;;;;AAEA;;;;AAEF;;;;;AAGE;;;;AAIJ;;;;;;;;;;;;;;;;;;;;;;;;AAoBE;;;;;;;;AAKA;;;;;;;;AAKA;;;;AAGA;;;;;;;;;;;AASE;;;;;;;;AAOF;;;;AAGA","sources":["packages/map-interface/src/expansion-panel/main.module.sass"],"sourcesContent":["\n.panel-subhead\n padding: 0 1rem\n border: 1px solid var(--panel-rule-color)\n border-bottom: 1px solid var(--panel-rule-color)\n background-color: var(--accent-color)\n display: flex\n flex-direction: row\n align-items: center\n z-index: 1\n gap: var(--panel-header-gap, 0.5rem)\n top: -1px\n position: sticky\n min-height: var(--panel-header-height, 40px)\n h1, h2, h3, h4\n font-family: Montserrat,sans-serif\n font-weight: 700\n margin: 0\n h4\n font-weight: 600\n .title\n flex-grow: 1\n\n .expansion-panel-icon\n margin-right: -0.35em\n\n// :global(.bp5-dark) .panel-subhead\n// margin 0 1px\n\n.info-panel-section\n &>.panel-subhead\n margin: -1px calc(var(--panel-padding-h) * -1) 0\n\n.expansion-panel\n padding: 0\n flex-wrap: wrap\n margin-top: -1px\n // &.collapsed\n // .expansion-panel-header\n // border-bottom-width: 0;\n\n.sub-expansion-panel\n margin: -1px calc(var(--panel-padding-h) * -0.5) 0\n overflow: hidden\n &:first-child\n .expansion-panel-header\n border-top-width: 0\n .panel-subhead\n border-top: none\n border-bottom: none\n\n .expansion-panel-header\n background-color: var(--accent-secondary-color)\n cursor: pointer\n padding: 0 1rem\n\n &:hover\n background-color: var(--accent-secondary-hover-color)\n h2, h3, h4\n font-weight: 500\n border-bottom: 1px solid var(--tertiary-border-color)\n border-top: 1px solid var(--tertiary-border-color)\n align-items: center\n\n.expansion-summary-title-help\n margin-left: 5px\n :global(.bp5-icon)\n margin-left: 5px\n\n.expansion-panel-header\n cursor: pointer\n &:hover\n background-color: var(--accent-hover-color)\n :global(.bp5-icon)\n transform: translate(0,3px)\n\n.expansion-children\n padding: 0 1rem\n .expansion-panel\n margin-left: -1rem\n margin-right: -1rem\n &:first-child\n margin-top: 0\n &>:first-child\n margin-top: 1rem\n &>:last-child\n margin-bottom: 1rem\n\n\n\n.expansion-panel-subtext\n font-size: 85%\n font-weight: 400\n\n:global\n .expansion-panel-root\n padding-left: 15px !important\n\n .expansion-panel-detail\n display: block !important\n padding: 0 !important\n\n .expansion-panel-detail-sub\n display: block !important\n\n// New expandable panel for details\n.expandable-details-main\n display: flex\n flex-direction: row\n align-items: center\n justify-content: space-between\n margin: 3px 0\n\n.expandable-details-header\n display: inline-flex\n flex-direction: row\n align-items: baseline\n flex-grow: 1\n\n.expandable-details-children\n position: relative\n\n.expandable-details-toggle\n :global(.bp5-button)\n font-size: 10px\n\n.expandable-details\n &.macrostrat-unit\n .title:after\n content: none\n .title\n margin-right: 1em\n &:after\n content: \":\"\n\n.expansion-body\n display: inline-block\n //flex-direction row\n align-items: baseline\n background-color: var(--tertiary-background)\n padding: 2px 6px\n border-radius: 4px\n width: 100%\n box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.2)\n margin-bottom: 6px\n\n.expansion-panel-detail-header\n font-size: 90%\n font-style: italic\n margin-right: 1em\n display: inline\n color: var(--secondary-color)\n &:after\n content: \":\"\n\n.expansion-panel-detail-body\n display: inline\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":"AACA;;;;;;;;;;;;;;;AAaE;;;;;;AAIA;;;;AAEA;;;;AAGA;;;;;;;;;;;;;;AAaA;;;;;AAMA;;;;AAGE;;;;;AAGA;;;;;;AAKA;;;;AAGA;;;;;;;AAKE;;;;;;;;;;;;AASJ;;;;AAEE;;;;AAEA;;;;;AAGF;;;;AAEE;;;;AAEA;;;;AAEF;;;;;AAGE;;;;AAIJ;;;;;;;;;;;;;;;;;;;;;;;;AAoBE;;;;;;;;AAKA;;;;;;;;AAKA;;;;AAGA;;;;;;;;;;;AASE;;;;;;;;AAOF;;;;AAGA","sources":["packages/map-interface/src/expansion-panel/main.module.sass"],"sourcesContent":["\n.panel-subhead\n padding: 0 1rem\n border: 1px solid var(--panel-rule-color)\n border-bottom: 1px solid var(--panel-rule-color)\n background-color: var(--accent-color)\n display: flex\n flex-direction: row\n align-items: center\n z-index: 1\n gap: var(--panel-header-gap, 0.5rem)\n top: -1px\n position: sticky\n min-height: var(--panel-header-height, 40px)\n h1, h2, h3, h4\n font-family: Montserrat,sans-serif\n font-weight: 700\n margin: 0\n h4\n font-weight: 600\n .title\n flex-grow: 1\n\n .expansion-panel-icon\n margin-right: -0.35em\n\n// :global(.bp5-dark) .panel-subhead\n// margin 0 1px\n\n.info-panel-section\n &>.panel-subhead\n margin: -1px calc(var(--panel-padding-h) * -1) 0\n\n.expansion-panel\n padding: 0\n flex-wrap: wrap\n margin-top: -1px\n // &.collapsed\n // .expansion-panel-header\n // border-bottom-width: 0;\n\n.sub-expansion-panel\n margin: -1px calc(var(--panel-padding-h) * -0.5) 0\n overflow: hidden\n &:first-child\n .expansion-panel-header\n border-top-width: 0\n .panel-subhead\n border-top: none\n border-bottom: none\n\n .expansion-panel-header\n background-color: var(--accent-secondary-color)\n cursor: pointer\n padding: 0 1rem\n\n &:hover\n background-color: var(--accent-secondary-hover-color)\n h2, h3, h4\n font-weight: 500\n border-bottom: 1px solid var(--tertiary-border-color)\n border-top: 1px solid var(--tertiary-border-color)\n align-items: center\n\n.expansion-summary-title-help\n margin-left: 5px\n :global(.bp5-icon)\n margin-left: 5px\n\n.expansion-panel-header\n cursor: pointer\n &:hover\n background-color: var(--accent-hover-color)\n :global(.bp5-icon)\n transform: translate(0,3px)\n\n.expansion-children\n padding: 0 1rem\n .expansion-panel\n margin-left: -1rem\n margin-right: -1rem\n &:first-child\n margin-top: 0\n &>:first-child\n margin-top: 1rem\n &>:last-child\n margin-bottom: 1rem\n\n\n\n.expansion-panel-subtext\n font-size: 85%\n font-weight: 400\n\n:global\n .expansion-panel-root\n padding-left: 15px !important\n\n .expansion-panel-detail\n display: block !important\n padding: 0 !important\n\n .expansion-panel-detail-sub\n display: block !important\n\n// New expandable panel for details\n.expandable-details-main\n display: flex\n flex-direction: row\n align-items: center\n justify-content: space-between\n margin: 3px 0\n\n.expandable-details-header\n display: inline-flex\n flex-direction: row\n align-items: baseline\n flex-grow: 1\n\n.expandable-details-children\n position: relative\n\n.expandable-details-toggle\n :global(.bp5-button)\n font-size: 10px\n\n.expandable-details\n &.macrostrat-unit\n .title:after\n content: none\n .title\n margin-right: 1em\n &:after\n content: \":\"\n\n.expansion-body\n display: inline-block\n //flex-direction row\n align-items: baseline\n background-color: var(--tertiary-background)\n padding: 2px 6px\n border-radius: 4px\n width: 100%\n box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.2)\n margin-bottom: 6px\n\n.expansion-panel-detail-header\n font-size: 90%\n font-style: italic\n margin-right: 1em\n display: inline\n color: var(--secondary-color)\n &:after\n content: \":\"\n\n.expansion-panel-detail-body\n display: inline\n"],"names":[],"version":3,"file":"map-interface.adb45df9.css.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAAA;;;;;;;AAME;;;;;AAIA;;;;;;;;;;;AAUE;;;;;AAIJ;;;;AAGA;;;;;AAIA;;;;;;;AASA;EACE","sources":["packages/map-interface/src/context-panel/main.module.sass"],"sourcesContent":[".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n\n .navbar-holder\n display: flex\n flex-direction: row\n\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: var(--map-panel-border-radius, 5px)\n padding: var(--navbar-padding, 10px)\n display: flex\n flex-direction: row\n align-items: center\n gap: 5px\n\n :global(.bp5-input-group)\n flex-grow: 1\n cursor: text\n\n.navbar\n min-height: 50px\n\n:global(.bp5-navbar) > .loading-button\n width: 40px\n height: 40px\n\n.status-tongue:global(.bp5-card)\n background-color: var(--panel-background-color)\n margin: 5px\n margin-bottom: 0\n margin-top: -12px\n padding: 0\n padding-top: 12px\n overflow: hidden\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":"AAAA;;;;;;;AAME;;;;;AAIA;;;;;;;;;;;AAUE;;;;;AAIJ;;;;AAGA;;;;;AAIA;;;;;;;AASA;EACE","sources":["packages/map-interface/src/context-panel/main.module.sass"],"sourcesContent":[".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n\n .navbar-holder\n display: flex\n flex-direction: row\n\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: var(--map-panel-border-radius, 5px)\n padding: var(--navbar-padding, 10px)\n display: flex\n flex-direction: row\n align-items: center\n gap: 5px\n\n :global(.bp5-input-group)\n flex-grow: 1\n cursor: text\n\n.navbar\n min-height: 50px\n\n:global(.bp5-navbar) > .loading-button\n width: 40px\n height: 40px\n\n.status-tongue:global(.bp5-card)\n background-color: var(--panel-background-color)\n margin: 5px\n margin-bottom: 0\n margin-top: -12px\n padding: 0\n padding-top: 12px\n overflow: hidden\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n"],"names":[],"version":3,"file":"map-interface.ae4c52a6.css.map"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var $35f1bc0112883d51$exports = require("./
|
|
2
|
-
require("./
|
|
3
|
-
var $f333fe6f49373ca9$exports = require("./
|
|
1
|
+
var $35f1bc0112883d51$exports = require("./map-interface.a9fe0f5d.js");
|
|
2
|
+
require("./map-interface.4a401c1f.css");
|
|
3
|
+
var $f333fe6f49373ca9$exports = require("./map-interface.99a048dc.js");
|
|
4
4
|
var $4Qxhf$macrostrathyper = require("@macrostrat/hyper");
|
|
5
5
|
var $4Qxhf$classnames = require("classnames");
|
|
6
6
|
var $4Qxhf$transitionhook = require("transition-hook");
|
|
@@ -131,4 +131,4 @@ function $c3311f59335df34d$export$fa395a37c3898ae3({ className: className, child
|
|
|
131
131
|
} //const _MapPage = compose(HotkeysProvider, MapPage);
|
|
132
132
|
|
|
133
133
|
|
|
134
|
-
//# sourceMappingURL=
|
|
134
|
+
//# sourceMappingURL=map-interface.bda26b27.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/map-interface/src/container.ts"],"sourcesContent":["import hyper, { addClassNames } from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\ninterface ContextStackProps extends HTMLDivProps {\n adaptiveWidth: boolean;\n navbar: AnyElement;\n}\n\nexport enum DetailPanelStyle {\n FIXED = \"fixed\",\n FLOATING = \"floating\",\n}\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapAreaContainerProps {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n contextStack?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: ContextStackProps;\n detailStackProps?: HTMLDivProps;\n detailPanelStyle: DetailPanelStyle;\n fitViewport?: boolean;\n showPanelOutlines?: boolean;\n preventMapInteraction?: boolean;\n}\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n detailPanelStyle = DetailPanelStyle.FLOATING,\n fitViewport = true,\n showPanelOutlines = false,\n preventMapInteraction = false,\n ...rest\n}: MapAreaContainerProps) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\n\n /*- We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n - We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const mainUIClassNames = classNames(\n \"map-container\",\n className,\n `detail-panel-${detailPanelStyle}`,\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`,\n {\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": contextPanelOpen,\n \"show-panel-outlines\": showPanelOutlines,\n \"fit-viewport\": fitViewport,\n }
|
|
1
|
+
{"mappings":"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","sources":["packages/map-interface/src/container.ts"],"sourcesContent":["import hyper, { addClassNames } from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\ninterface ContextStackProps extends HTMLDivProps {\n adaptiveWidth: boolean;\n navbar: AnyElement;\n}\n\nexport enum DetailPanelStyle {\n FIXED = \"fixed\",\n FLOATING = \"floating\",\n}\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapAreaContainerProps {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n contextStack?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: ContextStackProps;\n detailStackProps?: HTMLDivProps;\n detailPanelStyle: DetailPanelStyle;\n fitViewport?: boolean;\n showPanelOutlines?: boolean;\n preventMapInteraction?: boolean;\n}\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n detailPanelStyle = DetailPanelStyle.FLOATING,\n fitViewport = true,\n showPanelOutlines = false,\n preventMapInteraction = false,\n ...rest\n}: MapAreaContainerProps) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\n\n /*- We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n - We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const mainUIClassNames = classNames(\n \"map-container\",\n className,\n `detail-panel-${detailPanelStyle}`,\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`,\n {\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": contextPanelOpen,\n \"show-panel-outlines\": showPanelOutlines,\n \"fit-viewport\": fitViewport,\n },\n );\n\n const mapControlsExt = h([\n h(ZoomControl, { className: \"zoom-control\" }),\n h(\"div.spacer\"),\n mapControls,\n ]);\n\n const detailStackExt = h(\n \"div.detail-stack.infodrawer-container\",\n detailStackProps,\n [\n h(\"div.detail-panel-holder\", null, detailPanel),\n h.if(detailPanelStyle == DetailPanelStyle.FLOATING)([mapControlsExt]),\n ],\n );\n\n let contextStack = null;\n if (navbar != null || contextPanel != null) {\n contextStack = h(ContextStack, { navbar, ...contextStackProps }, [\n h.if(contextPanelTrans.shouldMount)([contextPanel]),\n ]);\n }\n\n return h(MapStyledContainer, { className: mainUIClassNames }, [\n h(\"div.main-row\", [\n h(\"div.map-ui\", { ...rest }, [\n contextStack,\n //h(MapView),\n children ?? mainPanel,\n h.if(detailPanelStyle == DetailPanelStyle.FLOATING)([detailStackExt]),\n h.if(detailPanelStyle == DetailPanelStyle.FIXED)(\n \"div.map-control-stack\",\n mapControlsExt,\n ),\n ]),\n h.if(detailPanelStyle == DetailPanelStyle.FIXED)([detailStackExt]),\n ]),\n h(\"div.bottom\", null, bottomPanel),\n ]);\n}\n\nfunction ContextStack(props: ContextStackProps) {\n const { adaptiveWidth, navbar, children, ...rest } = props;\n const props1 = addClassNames(rest, { \"adaptive-width\": adaptiveWidth });\n return h(\"div.context-stack\", props1, [\n navbar,\n h(\"div.context-panel-holder\", null, children),\n h(\"div.spacer\"),\n ]);\n}\n\nconst MapProviders = ({ children }) =>\n h(ToasterContext, h(MapboxMapProvider, children));\n\ninterface MapContainerProps {\n className?: string;\n children?: ReactNode;\n}\n\nexport function MapStyledContainer({ className, children }: MapContainerProps) {\n const mapPosition = useMapPosition();\n if (mapPosition != null) {\n const { mapIsRotated, mapUse3D, mapIsGlobal } = mapViewInfo(mapPosition);\n className = classNames(className, {\n \"map-is-rotated\": mapIsRotated,\n \"map-3d-available\": mapUse3D,\n \"map-is-global\": mapIsGlobal,\n });\n }\n\n return h(\"div\", { className }, children);\n}\n\n//const _MapPage = compose(HotkeysProvider, MapPage);\n"],"names":[],"version":3,"file":"map-interface.bda26b27.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAVA,4CAAqC,CAAC,uBAAuB,CAAC;AAC9D,4CAAiC,CAAC,mBAAmB,CAAC;AACtD,4CAA+B,CAAC,iBAAiB,CAAC;AAClD,4CAAoC,CAAC,sBAAsB,CAAC;AAC5D,4CAAwC,CAAC,0BAA0B,CAAC;AACpE,4CAA2C,CAAC,6BAA6B,CAAC;AAC1E,4CAA8B,CAAC,gBAAgB,CAAC;AAChD,4CAA4B,CAAC,cAAc,CAAC;AAC5C,4CAA0C,CAAC,4BAA4B,CAAC;AACxE,2CAAsC,CAAC,wBAAwB,CAAC;AAChE,4CAA2B,CAAC,aAAa,CAAC","sources":["packages/map-interface/src/location-panel/main.module.sass"],"sourcesContent":[".copy-link-button:global(.bp5-minimal.bp5-button)\n color: var(--text-subtle-color)\n\n svg\n fill: var(--text-subtle-color)\n\n.location-panel-header\n padding: 5px\n display: flex\n flex-direction: row\n align-items: center\n gap: var(--panel-header-gap, 0.5rem)\n min-height: var(--panel-header-height, 40px)\n border-bottom: 1px solid var(--panel-rule-color)\n &.fixed-height\n height: var(--panel-header-height, 40px)\n\n .spacer\n flex-grow: 1\n // Ensure the spacer is not extra wide\n margin-right: calc(-1 * var(--panel-header-gap, 0.5rem))\n\n .left-icon\n padding: 7px\n\n .position-controls :global(.bp5-button)\n font-size: 12px !important\n\n // Text elements should\n h1, h2, h3, h4, h5, h6, p\n margin: 0\n font-size: 16px\n overflow: hidden\n text-overflow: ellipsis\n &:first-child\n margin-left: 10px\n\n.infodrawer-header-item\n font-size: 12px\n\n :global(.secondary)\n font-size: 0.9em\n color: var(--text-subtle-color)\n\n.infodrawer\n pointer-events: all\n max-height: 100%\n max-width: 100%\n height: fit-content\n display: flex\n flex-direction: column\n overflow-y: hidden\n background-color: var(--panel-background-color)\n\n &:global(.bp5-card)\n padding: 0\n background-color: var(--panel-background-color)\n\n\n &.loading\n .infodrawer-body\n overflow-y: hidden\n min-height: 70px\n\n\n.infodrawer-contents\n padding: 0 1em\n &>:first-child\n margin-top: 1rem\n &>:last-child\n margin-bottom: 1rem\n\n// The scrollable body of the infodrawer\n.infodrawer-body\n flex-shrink: 1\n min-height: 0\n transition: min-height 0.5s ease\n overflow-y: scroll\n position: relative\n\n// TODO: remove this when we have a better way to handle card media queries\n@media screen and (max-width: 768px)\n .infodrawer\n border-radius: var(--panel-border-radius, 0px)\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAVA,4CAAqC,CAAC,uBAAuB,CAAC;AAC9D,4CAAiC,CAAC,mBAAmB,CAAC;AACtD,4CAA+B,CAAC,iBAAiB,CAAC;AAClD,4CAAoC,CAAC,sBAAsB,CAAC;AAC5D,4CAAwC,CAAC,0BAA0B,CAAC;AACpE,4CAA2C,CAAC,6BAA6B,CAAC;AAC1E,4CAA8B,CAAC,gBAAgB,CAAC;AAChD,4CAA4B,CAAC,cAAc,CAAC;AAC5C,4CAA0C,CAAC,4BAA4B,CAAC;AACxE,2CAAsC,CAAC,wBAAwB,CAAC;AAChE,4CAA2B,CAAC,aAAa,CAAC","sources":["packages/map-interface/src/location-panel/main.module.sass"],"sourcesContent":[".copy-link-button:global(.bp5-minimal.bp5-button)\n color: var(--text-subtle-color)\n\n svg\n fill: var(--text-subtle-color)\n\n.location-panel-header\n padding: 5px\n display: flex\n flex-direction: row\n align-items: center\n gap: var(--panel-header-gap, 0.5rem)\n min-height: var(--panel-header-height, 40px)\n border-bottom: 1px solid var(--panel-rule-color)\n &.fixed-height\n height: var(--panel-header-height, 40px)\n\n .spacer\n flex-grow: 1\n // Ensure the spacer is not extra wide\n margin-right: calc(-1 * var(--panel-header-gap, 0.5rem))\n\n .left-icon\n padding: 7px\n\n .position-controls :global(.bp5-button)\n font-size: 12px !important\n\n // Text elements should\n h1, h2, h3, h4, h5, h6, p\n margin: 0\n font-size: 16px\n overflow: hidden\n text-overflow: ellipsis\n &:first-child\n margin-left: 10px\n\n.infodrawer-header-item\n font-size: 12px\n\n :global(.secondary)\n font-size: 0.9em\n color: var(--text-subtle-color)\n\n.infodrawer\n pointer-events: all\n max-height: 100%\n max-width: 100%\n height: fit-content\n display: flex\n flex-direction: column\n overflow-y: hidden\n background-color: var(--panel-background-color)\n --panel-padding: 0\n\n &:global(.bp5-card)\n padding: 0\n background-color: var(--panel-background-color)\n\n\n &.loading\n .infodrawer-body\n overflow-y: hidden\n min-height: 70px\n\n\n.infodrawer-contents\n padding: 0 1em\n &>:first-child\n margin-top: 1rem\n &>div:first-child\n margin-top: 0\n &>:last-child\n margin-bottom: 1rem\n &>div:last-child\n margin-bottom: 0\n\n// The scrollable body of the infodrawer\n.infodrawer-body\n flex-shrink: 1\n min-height: 0\n transition: min-height 0.5s ease\n overflow-y: scroll\n position: relative\n\n// TODO: remove this when we have a better way to handle card media queries\n@media screen and (max-width: 768px)\n .infodrawer\n border-radius: var(--panel-border-radius, 0px)\n"],"names":[],"version":3,"file":"map-interface.cd485bb4.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;AAEO,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAS,CAAA,GAAA,sBAAK,EAAE;AAEtB,SAAS,0CAAY,GAAW,EAAE,YAAoB,CAAC;IAC5D,OAAQ;QACN,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAO;QAChB;YACE,OAAO,0CAAK;IAChB;AACF","sources":["packages/map-interface/src/location-info/utils.ts"],"sourcesContent":["import { format } from \"d3-format\";\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n"],"names":[],"version":3,"file":"
|
|
1
|
+
{"mappings":";;;;;;;;;;;;AAEO,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAS,CAAA,GAAA,sBAAK,EAAE;AAEtB,SAAS,0CAAY,GAAW,EAAE,YAAoB,CAAC;IAC5D,OAAQ;QACN,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAO;QAChB;YACE,OAAO,0CAAK;IAChB;AACF","sources":["packages/map-interface/src/location-info/utils.ts"],"sourcesContent":["import { format } from \"d3-format\";\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n"],"names":[],"version":3,"file":"map-interface.dfaad4a1.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var $35f1bc0112883d51$exports = require("./
|
|
2
|
-
require("./
|
|
3
|
-
var $2611a7b4364593e5$exports = require("./
|
|
4
|
-
var $3490fc4f4bda12f7$exports = require("./
|
|
1
|
+
var $35f1bc0112883d51$exports = require("./map-interface.a9fe0f5d.js");
|
|
2
|
+
require("./map-interface.4a401c1f.css");
|
|
3
|
+
var $2611a7b4364593e5$exports = require("./map-interface.5813e876.js");
|
|
4
|
+
var $3490fc4f4bda12f7$exports = require("./map-interface.ffb109ef.js");
|
|
5
5
|
var $8GJXj$macrostrathyper = require("@macrostrat/hyper");
|
|
6
6
|
var $8GJXj$macrostratmapboxreact = require("@macrostrat/mapbox-react");
|
|
7
7
|
var $8GJXj$macrostratmapboxutils = require("@macrostrat/mapbox-utils");
|
|
@@ -36,20 +36,22 @@ $parcel$export(module.exports, "MapTerrainManager", () => $493deb9ab6b848e3$expo
|
|
|
36
36
|
const $493deb9ab6b848e3$var$h = (0, ($parcel$interopDefault($8GJXj$macrostrathyper))).styled((0, ($parcel$interopDefault($35f1bc0112883d51$exports))));
|
|
37
37
|
function $493deb9ab6b848e3$var$defaultInitializeMap(container, args = {}) {
|
|
38
38
|
const { mapPosition: mapPosition, ...rest } = args;
|
|
39
|
-
console.log("Initializing map (default)", args);
|
|
40
39
|
const map = new (0, ($parcel$interopDefault($8GJXj$mapboxgl))).Map({
|
|
41
40
|
container: container,
|
|
42
41
|
maxZoom: 18,
|
|
43
|
-
//maxTileCacheSize: 0,
|
|
44
42
|
logoPosition: "bottom-left",
|
|
45
43
|
trackResize: true,
|
|
46
44
|
antialias: true,
|
|
45
|
+
// This is a legacy option for Mapbox GL v2
|
|
46
|
+
// @ts-ignore
|
|
47
47
|
optimizeForTerrain: true,
|
|
48
48
|
...rest
|
|
49
49
|
});
|
|
50
|
+
let _mapPosition = mapPosition;
|
|
51
|
+
if (_mapPosition == null && rest.center == null && rest.bounds == null) // If no map positioning information is provided, we use the default
|
|
52
|
+
_mapPosition = $493deb9ab6b848e3$var$defaultMapPosition;
|
|
50
53
|
// set initial map position
|
|
51
|
-
if (
|
|
52
|
-
//setMapPosition(map, mapPosition);
|
|
54
|
+
if (_mapPosition != null) (0, $8GJXj$macrostratmapboxutils.setMapPosition)(map, _mapPosition);
|
|
53
55
|
return map;
|
|
54
56
|
}
|
|
55
57
|
const $493deb9ab6b848e3$var$defaultMapPosition = {
|
|
@@ -61,8 +63,8 @@ const $493deb9ab6b848e3$var$defaultMapPosition = {
|
|
|
61
63
|
};
|
|
62
64
|
function $493deb9ab6b848e3$export$ab1e7a67d6ec5ad8(props) {
|
|
63
65
|
let { terrainSourceID: terrainSourceID } = props;
|
|
64
|
-
const { enableTerrain: enableTerrain = true, style: style, mapPosition: mapPosition
|
|
65
|
-
accessToken, infoMarkerPosition: infoMarkerPosition, transformRequest: transformRequest, projection: projection, onMapLoaded: onMapLoaded = null, onStyleLoaded: onStyleLoaded = null, onMapMoved: onMapMoved = null, ...rest } = props;
|
|
66
|
+
const { enableTerrain: enableTerrain = true, style: style, mapPosition: mapPosition, initializeMap: initializeMap = $493deb9ab6b848e3$var$defaultInitializeMap, children: children, mapboxToken: mapboxToken, accessToken: // Deprecated
|
|
67
|
+
accessToken, infoMarkerPosition: infoMarkerPosition, transformRequest: transformRequest, projection: projection, onMapLoaded: onMapLoaded = null, onStyleLoaded: onStyleLoaded = null, onMapMoved: onMapMoved = null, standalone: standalone = false, overlayStyles: overlayStyles, transformStyle: transformStyle, ...rest } = props;
|
|
66
68
|
if (enableTerrain) terrainSourceID ??= "mapbox-3d-dem";
|
|
67
69
|
const _mapboxToken = mapboxToken ?? accessToken;
|
|
68
70
|
if (_mapboxToken != null) (0, ($parcel$interopDefault($8GJXj$mapboxgl))).accessToken = _mapboxToken;
|
|
@@ -70,8 +72,10 @@ function $493deb9ab6b848e3$export$ab1e7a67d6ec5ad8(props) {
|
|
|
70
72
|
let mapRef = (0, $8GJXj$macrostratmapboxreact.useMapRef)();
|
|
71
73
|
const ref = (0, $8GJXj$react.useRef)();
|
|
72
74
|
const parentRef = (0, $8GJXj$react.useRef)();
|
|
73
|
-
(0, $8GJXj$
|
|
74
|
-
|
|
75
|
+
const [baseStyle, setBaseStyle] = (0, $8GJXj$react.useState)(null);
|
|
76
|
+
const isStyleLoaded = (0, $8GJXj$macrostratmapboxreact.useMapStatus)((state)=>state.isStyleLoaded);
|
|
77
|
+
(0, $8GJXj$react.useEffect)(()=>{
|
|
78
|
+
/** Manager to update map style */ if (baseStyle == null) return;
|
|
75
79
|
let map = mapRef.current;
|
|
76
80
|
/** If we can, we try to update the map style with terrain information
|
|
77
81
|
* immediately, before the style is loaded. This allows us to avoid a
|
|
@@ -81,17 +85,22 @@ function $493deb9ab6b848e3$export$ab1e7a67d6ec5ad8(props) {
|
|
|
81
85
|
* doesn't always work.
|
|
82
86
|
*/ // We either get the map position directly from the map or from props
|
|
83
87
|
const estMapPosition = map == null ? mapPosition : (0, $8GJXj$macrostratmapboxutils.getMapPosition)(map);
|
|
84
|
-
let newStyle = style;
|
|
85
88
|
const { mapUse3D: mapUse3D } = (0, $8GJXj$macrostratmapboxutils.mapViewInfo)(estMapPosition);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
let newStyle = baseStyle;
|
|
90
|
+
const overlayStyles = props.overlayStyles ?? [];
|
|
91
|
+
if (overlayStyles.length > 0) newStyle = (0, $8GJXj$macrostratmapboxutils.mergeStyles)(newStyle, ...overlayStyles);
|
|
92
|
+
if (mapUse3D) {
|
|
93
|
+
// We can update the style with terrain layers immediately
|
|
94
|
+
const terrainStyle = (0, $8GJXj$macrostratmapboxreact.getTerrainLayerForStyle)(newStyle, terrainSourceID);
|
|
95
|
+
newStyle = (0, $8GJXj$macrostratmapboxutils.mergeStyles)(newStyle, terrainStyle);
|
|
96
|
+
}
|
|
97
|
+
if (transformStyle != null) newStyle = transformStyle(newStyle);
|
|
93
98
|
if (map != null) {
|
|
94
99
|
console.log("Setting style", newStyle);
|
|
100
|
+
dispatch({
|
|
101
|
+
type: "set-style-loaded",
|
|
102
|
+
payload: false
|
|
103
|
+
});
|
|
95
104
|
map.setStyle(newStyle);
|
|
96
105
|
} else {
|
|
97
106
|
console.log("Initializing map", newStyle);
|
|
@@ -111,21 +120,38 @@ function $493deb9ab6b848e3$export$ab1e7a67d6ec5ad8(props) {
|
|
|
111
120
|
});
|
|
112
121
|
onMapLoaded?.(map);
|
|
113
122
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
}, [
|
|
124
|
+
baseStyle,
|
|
125
|
+
overlayStyles,
|
|
126
|
+
transformStyle
|
|
127
|
+
]);
|
|
128
|
+
/** Check back every 0.1 seconds to see if the map has loaded.
|
|
129
|
+
* We do it this way because mapboxgl loading events are unreliable */ (0, $8GJXj$react.useEffect)(()=>{
|
|
130
|
+
if (isStyleLoaded) return;
|
|
131
|
+
const interval = setInterval(()=>{
|
|
132
|
+
const map = mapRef.current;
|
|
133
|
+
if (map == null) return;
|
|
134
|
+
if (map.isStyleLoaded()) {
|
|
135
|
+
// Wait a tick before setting the style loaded state
|
|
136
|
+
dispatch({
|
|
137
|
+
type: "set-style-loaded",
|
|
138
|
+
payload: true
|
|
139
|
+
});
|
|
140
|
+
onStyleLoaded?.(map);
|
|
141
|
+
clearInterval(interval);
|
|
142
|
+
}
|
|
143
|
+
}, 50);
|
|
144
|
+
return ()=>clearInterval(interval);
|
|
145
|
+
}, [
|
|
146
|
+
isStyleLoaded
|
|
147
|
+
]);
|
|
148
|
+
(0, $8GJXj$macrostratuicomponents.useAsyncEffect)(async ()=>{
|
|
149
|
+
/** Manager to update map style */ let newStyle;
|
|
150
|
+
if (typeof style === "string") newStyle = await (0, $8GJXj$macrostratmapboxutils.getMapboxStyle)(style, {
|
|
151
|
+
access_token: (0, ($parcel$interopDefault($8GJXj$mapboxgl))).accessToken
|
|
152
|
+
});
|
|
153
|
+
else newStyle = style;
|
|
154
|
+
setBaseStyle(newStyle);
|
|
129
155
|
}, [
|
|
130
156
|
style
|
|
131
157
|
]);
|
|
@@ -137,8 +163,12 @@ function $493deb9ab6b848e3$export$ab1e7a67d6ec5ad8(props) {
|
|
|
137
163
|
"is-rotated": mapIsRotated ?? false,
|
|
138
164
|
"is-3d-available": mapUse3D ?? false
|
|
139
165
|
}, `${_projection}-projection`);
|
|
166
|
+
const parentClassName = (0, ($parcel$interopDefault($8GJXj$classnames)))({
|
|
167
|
+
standalone: standalone
|
|
168
|
+
});
|
|
140
169
|
return $493deb9ab6b848e3$var$h("div.map-view-container.main-view", {
|
|
141
|
-
ref: parentRef
|
|
170
|
+
ref: parentRef,
|
|
171
|
+
className: parentClassName
|
|
142
172
|
}, [
|
|
143
173
|
$493deb9ab6b848e3$var$h("div.mapbox-map#map", {
|
|
144
174
|
ref: ref,
|
|
@@ -175,4 +205,4 @@ function $493deb9ab6b848e3$export$cee395a8a2a00b29({ mapUse3D: mapUse3D, terrain
|
|
|
175
205
|
}
|
|
176
206
|
|
|
177
207
|
|
|
178
|
-
//# sourceMappingURL=map-
|
|
208
|
+
//# sourceMappingURL=map-interface.e7194f92.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/map-interface/src/map-view.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n use3DTerrain,\n getTerrainLayerForStyle,\n useMapStatus,\n} from \"@macrostrat/mapbox-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.Style>[];\n /** A function to transform the map style before it is loaded */\n transformStyle?: (style: mapboxgl.Style) => mapboxgl.Style;\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: true,\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 ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\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 const isStyleLoaded = useMapStatus((state) => state.isStyleLoaded);\n\n useEffect(() => {\n /** Manager to update map style */\n if (baseStyle == null) return;\n let map = mapRef.current;\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 // We either get the map position directly from the map or from props\n const estMapPosition: MapPosition | null =\n map == null ? mapPosition : getMapPosition(map);\n const { mapUse3D } = mapViewInfo(estMapPosition);\n\n let newStyle: mapboxgl.Style = baseStyle;\n\n const overlayStyles = props.overlayStyles ?? [];\n\n if (overlayStyles.length > 0) {\n newStyle = mergeStyles(newStyle, ...overlayStyles);\n }\n\n if (mapUse3D) {\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 console.log(\"Setting style\", newStyle);\n dispatch({ type: \"set-style-loaded\", payload: false });\n map.setStyle(newStyle);\n } else {\n console.log(\"Initializing map\", newStyle);\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 /** 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 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 useAsyncEffect(async () => {\n /** Manager to update map style */\n let newStyle: mapboxgl.Style;\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 const _computedMapPosition = useMapPosition();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`,\n );\n\n const parentClassName = classNames({\n standalone,\n });\n\n return h(\n \"div.map-view-container.main-view\",\n { ref: parentRef, className: parentClassName },\n [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter, { onMapMoved }),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, {\n containerRef: ref,\n parentRef,\n infoMarkerPosition,\n }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID, style }),\n children,\n ],\n );\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n style,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n style?: mapboxgl.Style | string;\n}) {\n use3DTerrain(mapUse3D, terrainSourceID);\n\n return null;\n}\n"],"names":[],"version":3,"file":"map-interface.e7194f92.js.map"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var $33088e8384af337c$exports = require("./
|
|
2
|
-
require("./
|
|
3
|
-
var $750d69d73bfbdc9a$exports = require("./
|
|
1
|
+
var $33088e8384af337c$exports = require("./map-interface.abe5fe65.js");
|
|
2
|
+
require("./map-interface.26497065.css");
|
|
3
|
+
var $750d69d73bfbdc9a$exports = require("./map-interface.354aaa39.js");
|
|
4
4
|
var $dHcMG$blueprintjscore = require("@blueprintjs/core");
|
|
5
5
|
var $dHcMG$macrostratmapboxreact = require("@macrostrat/mapbox-react");
|
|
6
6
|
var $dHcMG$macrostrathyper = require("@macrostrat/hyper");
|
|
@@ -211,7 +211,7 @@ function $db14eb7a5c07abdb$var$UnitNumber({ value: value, unit: unit, precision:
|
|
|
211
211
|
$db14eb7a5c07abdb$var$h("span.unit", unit)
|
|
212
212
|
]);
|
|
213
213
|
}
|
|
214
|
-
function $db14eb7a5c07abdb$export$43277c51a01761c1({ features: features, focusedSource: focusedSource = null }) {
|
|
214
|
+
function $db14eb7a5c07abdb$export$43277c51a01761c1({ features: features, focusedSource: focusedSource = null, focusedSourceTitle: focusedSourceTitle = null }) {
|
|
215
215
|
if (features == null) return null;
|
|
216
216
|
let focusedSourcePanel = null;
|
|
217
217
|
let filteredFeatures = features;
|
|
@@ -219,7 +219,7 @@ function $db14eb7a5c07abdb$export$43277c51a01761c1({ features: features, focused
|
|
|
219
219
|
if (focusedSource != null) {
|
|
220
220
|
title = "Basemap features";
|
|
221
221
|
focusedSourcePanel = $db14eb7a5c07abdb$var$h((0, $750d69d73bfbdc9a$exports.ExpansionPanel), {
|
|
222
|
-
title: "Macrostrat features",
|
|
222
|
+
title: focusedSourceTitle ?? "Macrostrat features",
|
|
223
223
|
className: "macrostrat-features",
|
|
224
224
|
expanded: true
|
|
225
225
|
}, [
|
|
@@ -265,4 +265,4 @@ function $db14eb7a5c07abdb$export$617d79dae526d2cf({ features: features }) {
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
|
|
268
|
-
//# sourceMappingURL=
|
|
268
|
+
//# sourceMappingURL=map-interface.e9bcd5c0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/map-interface/src/dev/vector-tile-features.ts"],"sourcesContent":["import { Spinner, Switch, Button, Intent } from \"@blueprintjs/core\";\nimport { useMapRef, useMapStatus } from \"@macrostrat/mapbox-react\";\nimport mapboxgl from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ExpansionPanel } from \"../expansion-panel\";\n\nconst h = hyper.styled(styles);\n\nexport function FeatureProperties({ data, ...rest }) {\n // Instead of managing hover state with CSS, we use a state variable,\n // so that the button re-renders when the state changes\n const [showControls, setShowControls] = useState(false);\n const onMouseEnter = useCallback(() => setShowControls(true), []);\n const onMouseLeave = useCallback(() => setShowControls(false), []);\n\n return h(\"div.feature-properties\", { onMouseEnter, onMouseLeave }, [\n h.if(showControls)(\"div.controls\", h(CopyJSONButton, { data })),\n h(JSONView, {\n data,\n hideRoot: true,\n ...rest,\n }),\n ]);\n}\n\nexport function FeatureRecord({ feature }) {\n const props = feature.properties;\n return h(\"div.feature-record\", [\n h.if(Object.keys(props).length > 0)(FeatureProperties, { data: props }),\n ]);\n}\n\nfunction CopyJSONButton({ data }) {\n const [copied, setCopied] = useState(false);\n return h(Button, {\n icon: copied ? \"tick\" : \"clipboard\",\n intent: copied ? Intent.SUCCESS : Intent.NONE,\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(JSON.stringify(data, null, 2));\n setCopied(true);\n },\n });\n}\n\n/** This component wraps queryRenderedFeatures to get features at a given location */\nexport function FeatureSelectionHandler({\n selectedLocation,\n setFeatures,\n radius = 2,\n}: {\n selectedLocation: mapboxgl.LngLat;\n setFeatures: (features: mapboxgl.MapboxGeoJSONFeature[]) => void;\n radius?: number;\n}) {\n const mapRef = useMapRef();\n const isLoading = useMapStatus((s) => s.isLoading);\n const isInitialized = useMapStatus((s) => s.isInitialized);\n const prevLocation = useRef(null);\n const prevFeatures = useRef([]);\n\n useEffect(() => {\n const map = mapRef?.current;\n if (map == null) return;\n if (selectedLocation == null) {\n setFeatures(null);\n return;\n }\n\n if (!isInitialized) return;\n\n const hasPreviouslyLoadedFeatures = prevFeatures.current.length > 0;\n\n const locationMemo = JSON.stringify(selectedLocation);\n if (locationMemo == prevLocation.current && hasPreviouslyLoadedFeatures)\n return;\n\n prevLocation.current = locationMemo;\n\n // Don't update if the location hasn't changed\n //if (selectedLocation == prevLocation) return;\n\n const r = radius;\n const pt = map.project(selectedLocation);\n\n const bbox: [mapboxgl.PointLike, mapboxgl.PointLike] = [\n [pt.x - r, pt.y - r],\n [pt.x + r, pt.y + r],\n ];\n const features = map.queryRenderedFeatures(bbox);\n prevFeatures.current = features ?? [];\n setFeatures(features);\n }, [isInitialized, selectedLocation, isLoading]);\n\n return null;\n}\n\nfunction FeatureHeader({ feature }) {\n return h(\"div.feature-header\", [\n h(\"h3\", [\n h(KeyValue, { label: \"Source\", value: feature.source }),\n h(KeyValue, { label: \"Source layer\", value: feature.sourceLayer }),\n ]),\n ]);\n}\n\nfunction KeyValue({ label, value }) {\n return h(\"span.key-value\", [h(\"span.key\", label), h(\"code.value\", value)]);\n}\n\nfunction LoadingAwareFeatureSet({ features, sourceID }) {\n const map = useMapRef();\n if (map?.current == null) return null;\n const [isLoaded, setIsLoaded] = useState(false);\n\n const sourceFeatures = features.filter((d) => d.source == \"burwell\");\n\n useEffect(() => {\n if (sourceFeatures.length > 0) {\n setIsLoaded(true);\n return;\n }\n\n const isLoaded = map.current.isSourceLoaded(sourceID);\n setIsLoaded(isLoaded);\n if (!isLoaded) {\n map.current.once(\"sourcedata\", (e) => {\n if (e.sourceId == sourceID) {\n setIsLoaded(true);\n }\n });\n }\n }, [map.current, sourceID, sourceFeatures.length]);\n\n if (!isLoaded) return h(Spinner);\n return h(Features, { features: sourceFeatures });\n}\n\nexport function TileInfo({ feature, showExtent, setShowExtent }) {\n if (feature == null) return null;\n const size = feature._vectorTileFeature._pbf.length;\n return h(\"div.tile-info\", [\n h(\"h3\", \"Tile\"),\n h(\"div.tile-index\", [\n h(KeyValue, { label: \"x\", value: feature._x }),\n h(KeyValue, { label: \"y\", value: feature._y }),\n h(KeyValue, { label: \"z\", value: feature._z }),\n ]),\n h(\"div.spacer\"),\n h(KeyValue, { label: \"Size\", value: formatSize(size) }),\n h(Switch, {\n label: \"Show extent\",\n alignIndicator: \"right\",\n checked: showExtent,\n onChange() {\n setShowExtent(!showExtent);\n },\n }),\n ]);\n}\n\nfunction formatSize(size: number) {\n if (size > 1000000)\n return h(UnitNumber, { value: size / 1000000, unit: \"Mb\" });\n if (size > 1000) return h(UnitNumber, { value: size / 1000, unit: \"Kb\" });\n return `${size} bytes`;\n}\n\nfunction UnitNumber({ value, unit, precision = 1 }) {\n return h(\"span.unit-number\", [\n h(\"span.number\", value.toFixed(precision)),\n h(\"span.unit\", unit),\n ]);\n}\n\nexport function FeaturePanel({\n features,\n focusedSource = null,\n focusedSourceTitle = null,\n}) {\n if (features == null) return null;\n\n let focusedSourcePanel = null;\n let filteredFeatures = features;\n let title = \"Features\";\n\n if (focusedSource != null) {\n title = \"Basemap features\";\n focusedSourcePanel = h(\n ExpansionPanel,\n {\n title: focusedSourceTitle ?? \"Macrostrat features\",\n className: \"macrostrat-features\",\n expanded: true,\n },\n [\n h(LoadingAwareFeatureSet, {\n features,\n sourceID: focusedSource,\n }),\n ],\n );\n filteredFeatures = features.filter((d) => d.source != focusedSource);\n }\n\n return h(\"div.feature-panel\", [\n focusedSourcePanel,\n h(\n ExpansionPanel,\n { title, className: \"basemap-features\", expanded: focusedSource == null },\n [\n h(FeatureGroups, {\n features: filteredFeatures,\n }),\n ],\n ),\n ]);\n}\n\nfunction FeatureGroups({ features }) {\n /** Group features by source and sourceLayer */\n if (features == null) return null;\n\n const groups = group(features, (d: any) => `${d.source} - ${d.sourceLayer}`);\n\n return h(\n \"div.feature-groups\",\n Array.from(groups).map(([key, features]) => {\n return h(\"div.feature-group\", [\n h(FeatureHeader, { feature: features[0] }),\n h(Features, { features }),\n ]);\n }),\n );\n}\n\nexport function Features({ features }) {\n return h(\n \"div.features\",\n features.map((feature, i) => h(FeatureRecord, { key: i, feature })),\n );\n}\n"],"names":[],"version":3,"file":"map-interface.e9bcd5c0.js.map"}
|