@macrostrat/map-interface 1.1.0 → 1.2.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 +11 -0
- package/dist/cjs/container.72611900.js +134 -0
- package/dist/cjs/container.72611900.js.map +1 -0
- package/dist/cjs/context-panel.8c4b009c.js +88 -0
- package/dist/cjs/context-panel.8c4b009c.js.map +1 -0
- package/dist/cjs/controls.7ce3e95c.js +79 -0
- package/dist/cjs/controls.7ce3e95c.js.map +1 -0
- package/dist/cjs/dev.7499151f.js +33 -0
- package/dist/cjs/dev.7499151f.js.map +1 -0
- package/dist/cjs/expansion-panel.08532cee.js +134 -0
- package/dist/cjs/expansion-panel.08532cee.js.map +1 -0
- package/dist/cjs/hash-string.62e84f08.js +67 -0
- package/dist/cjs/hash-string.62e84f08.js.map +1 -0
- package/dist/cjs/header.58c5c012.js +104 -0
- package/dist/cjs/header.58c5c012.js.map +1 -0
- package/dist/cjs/headers.20eae5f7.js +29 -0
- package/dist/cjs/headers.20eae5f7.js.map +1 -0
- package/dist/cjs/helpers.0f72ddaf.js +190 -0
- package/dist/cjs/helpers.0f72ddaf.js.map +1 -0
- package/dist/cjs/index.js +51 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/location-info.92e70042.js +119 -0
- package/dist/cjs/location-info.92e70042.js.map +1 -0
- package/dist/cjs/location-panel.c95f5e96.js +66 -0
- package/dist/cjs/location-panel.c95f5e96.js.map +1 -0
- package/dist/cjs/main.module.02c4de16.css +86 -0
- package/dist/cjs/main.module.02c4de16.css.map +1 -0
- package/dist/cjs/main.module.3f2b7c9f.js +38 -0
- package/dist/cjs/main.module.3f2b7c9f.js.map +1 -0
- package/dist/cjs/main.module.4ecbaaa5.js +62 -0
- package/dist/cjs/main.module.4ecbaaa5.js.map +1 -0
- package/dist/cjs/main.module.62939ea7.js +167 -0
- package/dist/cjs/main.module.62939ea7.js.map +1 -0
- package/dist/cjs/main.module.92978d8b.css +52 -0
- package/dist/cjs/main.module.92978d8b.css.map +1 -0
- package/dist/cjs/main.module.becc2fe7.css +92 -0
- package/dist/cjs/main.module.becc2fe7.css.map +1 -0
- package/dist/cjs/main.module.ccec47df.js +50 -0
- package/dist/cjs/main.module.ccec47df.js.map +1 -0
- package/dist/cjs/main.module.e958948e.js +26 -0
- package/dist/cjs/main.module.e958948e.js.map +1 -0
- package/dist/{index.css → cjs/main.module.f085a193.css} +9 -397
- package/dist/cjs/main.module.f085a193.css.map +1 -0
- package/dist/cjs/main.module.ff1b1aca.css +179 -0
- package/dist/cjs/main.module.ff1b1aca.css.map +1 -0
- package/dist/cjs/map-page.190b6723.js +182 -0
- package/dist/cjs/map-page.190b6723.js.map +1 -0
- package/dist/cjs/map-view.93363b41.js +167 -0
- package/dist/cjs/map-view.93363b41.js.map +1 -0
- package/dist/cjs/terrain.90f76b4e.js +59 -0
- package/dist/cjs/terrain.90f76b4e.js.map +1 -0
- package/dist/cjs/tile-extent.06a4b2ed.js +51 -0
- package/dist/cjs/tile-extent.06a4b2ed.js.map +1 -0
- package/dist/cjs/utils.09cef979.js +36 -0
- package/dist/cjs/utils.09cef979.js.map +1 -0
- package/dist/cjs/utils.26f02633.js +46 -0
- package/dist/cjs/utils.26f02633.js.map +1 -0
- package/dist/cjs/vector-tile-features.456f887b.js +268 -0
- package/dist/cjs/vector-tile-features.456f887b.js.map +1 -0
- package/dist/cjs/xray.a23f8660.js +89 -0
- package/dist/cjs/xray.a23f8660.js.map +1 -0
- package/dist/esm/container.16bde261.js +126 -0
- package/dist/esm/container.16bde261.js.map +1 -0
- package/dist/esm/context-panel.c288c5cd.js +81 -0
- package/dist/esm/context-panel.c288c5cd.js.map +1 -0
- package/dist/esm/controls.f757ce16.js +74 -0
- package/dist/esm/controls.f757ce16.js.map +1 -0
- package/dist/esm/dev.ccb6e774.js +13 -0
- package/dist/esm/dev.ccb6e774.js.map +1 -0
- package/dist/esm/expansion-panel.feff0e62.js +123 -0
- package/dist/esm/expansion-panel.feff0e62.js.map +1 -0
- package/dist/esm/hash-string.836601b2.js +61 -0
- package/dist/esm/hash-string.836601b2.js.map +1 -0
- package/dist/esm/header.0f535ab1.js +99 -0
- package/dist/esm/header.0f535ab1.js.map +1 -0
- package/dist/esm/headers.b25ff414.js +24 -0
- package/dist/esm/headers.b25ff414.js.map +1 -0
- package/dist/esm/helpers.fb1d7227.js +176 -0
- package/dist/esm/helpers.fb1d7227.js.map +1 -0
- package/dist/{types.d.ts → esm/index.d.ts} +102 -51
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +25 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/location-info.5543bb05.js +89 -0
- package/dist/esm/location-info.5543bb05.js.map +1 -0
- package/dist/esm/location-panel.0b1f4ed2.js +58 -0
- package/dist/esm/location-panel.0b1f4ed2.js.map +1 -0
- package/dist/esm/main.module.5eb366de.js +52 -0
- package/dist/esm/main.module.5eb366de.js.map +1 -0
- package/dist/esm/main.module.67a908da.js +40 -0
- package/dist/esm/main.module.67a908da.js.map +1 -0
- package/dist/esm/main.module.89579666.js +64 -0
- package/dist/esm/main.module.89579666.js.map +1 -0
- package/dist/esm/main.module.9c57cc95.js +28 -0
- package/dist/esm/main.module.9c57cc95.js.map +1 -0
- package/dist/esm/main.module.f70e002b.js +169 -0
- package/dist/esm/main.module.f70e002b.js.map +1 -0
- package/dist/esm/map-page.b953c404.js +175 -0
- package/dist/esm/map-page.b953c404.js.map +1 -0
- package/dist/esm/map-view.a3fe6257.js +161 -0
- package/dist/esm/map-view.a3fe6257.js.map +1 -0
- package/dist/esm/terrain.f65cf7c5.js +54 -0
- package/dist/esm/terrain.f65cf7c5.js.map +1 -0
- package/dist/esm/tile-extent.ca526996.js +46 -0
- package/dist/esm/tile-extent.ca526996.js.map +1 -0
- package/dist/esm/utils.122d1f2d.js +28 -0
- package/dist/esm/utils.122d1f2d.js.map +1 -0
- package/dist/esm/utils.d40349f0.js +40 -0
- package/dist/esm/utils.d40349f0.js.map +1 -0
- package/dist/esm/vector-tile-features.e1a24df0.js +258 -0
- package/dist/esm/vector-tile-features.e1a24df0.js.map +1 -0
- package/dist/esm/xray.c0663c25.js +83 -0
- package/dist/esm/xray.c0663c25.js.map +1 -0
- package/dist/node/container.abd6f0d2.js +2 -0
- package/dist/node/container.abd6f0d2.js.map +1 -0
- package/dist/node/context-panel.7c2f42c9.js +2 -0
- package/dist/node/context-panel.7c2f42c9.js.map +1 -0
- package/dist/node/controls.ffb44307.js +2 -0
- package/dist/node/controls.ffb44307.js.map +1 -0
- package/dist/node/dev.15b4cdb0.js +2 -0
- package/dist/node/dev.15b4cdb0.js.map +1 -0
- package/dist/node/expansion-panel.1553938f.js +2 -0
- package/dist/node/expansion-panel.1553938f.js.map +1 -0
- package/dist/node/hash-string.3fc8ceb0.js +2 -0
- package/dist/node/hash-string.3fc8ceb0.js.map +1 -0
- package/dist/node/header.5f15d599.js +2 -0
- package/dist/node/header.5f15d599.js.map +1 -0
- package/dist/node/headers.0d494ac2.js +2 -0
- package/dist/node/headers.0d494ac2.js.map +1 -0
- package/dist/node/helpers.6bda171f.js +2 -0
- package/dist/node/helpers.6bda171f.js.map +1 -0
- package/dist/node/index.js +2 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/location-info.9f59aad3.js +2 -0
- package/dist/node/location-info.9f59aad3.js.map +1 -0
- package/dist/node/location-panel.d22d21fa.js +2 -0
- package/dist/node/location-panel.d22d21fa.js.map +1 -0
- package/dist/node/main.module.24615279.js +2 -0
- package/dist/node/main.module.24615279.js.map +1 -0
- package/dist/node/main.module.29a15f3d.css +2 -0
- package/dist/node/main.module.29a15f3d.css.map +1 -0
- package/dist/node/main.module.2cc98713.css +2 -0
- package/dist/node/main.module.2cc98713.css.map +1 -0
- package/dist/node/main.module.434acaf9.js +2 -0
- package/dist/node/main.module.434acaf9.js.map +1 -0
- package/dist/node/main.module.61b261c8.css +2 -0
- package/dist/node/main.module.61b261c8.css.map +1 -0
- package/dist/node/main.module.78d7f40f.js +2 -0
- package/dist/node/main.module.78d7f40f.js.map +1 -0
- package/dist/node/main.module.89f269c7.css +2 -0
- package/dist/node/main.module.89f269c7.css.map +1 -0
- package/dist/node/main.module.d4e98e60.js +2 -0
- package/dist/node/main.module.d4e98e60.js.map +1 -0
- package/dist/node/main.module.e200d631.js +2 -0
- package/dist/node/main.module.e200d631.js.map +1 -0
- package/dist/node/main.module.f0530add.css +2 -0
- package/dist/node/main.module.f0530add.css.map +1 -0
- package/dist/node/map-page.0b19d49e.js +2 -0
- package/dist/node/map-page.0b19d49e.js.map +1 -0
- package/dist/node/map-view.c6746dca.js +2 -0
- package/dist/node/map-view.c6746dca.js.map +1 -0
- package/dist/node/terrain.96ae432a.js +2 -0
- package/dist/node/terrain.96ae432a.js.map +1 -0
- package/dist/node/tile-extent.28db5d2c.js +2 -0
- package/dist/node/tile-extent.28db5d2c.js.map +1 -0
- package/dist/node/utils.274d0452.js +2 -0
- package/dist/node/utils.274d0452.js.map +1 -0
- package/dist/node/utils.dd92f725.js +2 -0
- package/dist/node/utils.dd92f725.js.map +1 -0
- package/dist/node/vector-tile-features.c02e240c.js +2 -0
- package/dist/node/vector-tile-features.c02e240c.js.map +1 -0
- package/dist/node/xray.bce11e7b.js +2 -0
- package/dist/node/xray.bce11e7b.js.map +1 -0
- package/package.json +28 -36
- package/src/container.ts +29 -21
- package/src/context-panel/index.ts +4 -4
- package/src/context-panel/main.module.sass +1 -1
- package/src/dev/main.module.sass +16 -0
- package/src/dev/map-page.ts +19 -4
- package/src/dev/vector-tile-features.ts +44 -13
- package/src/location-panel/header.ts +27 -8
- package/src/location-panel/index.ts +4 -2
- package/src/location-panel/main.module.sass +7 -0
- package/src/main.module.sass +4 -1
- package/src/map-view/index.ts +1 -1
- package/dist/index.cjs.css +0 -961
- package/dist/index.cjs.css.map +0 -1
- package/dist/index.cjs.js +0 -1954
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/index.js +0 -1945
- package/dist/index.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import $9t1N0$mainmodulef70e002bjs from "./main.module.f70e002b.js";
|
|
2
|
+
import "../cjs/main.module.f085a193.css";
|
|
3
|
+
import {useRef as $9t1N0$useRef} from "react";
|
|
4
|
+
import {ScaleControl as $9t1N0$ScaleControl, GeolocateControl as $9t1N0$GeolocateControl} from "mapbox-gl";
|
|
5
|
+
import $9t1N0$macrostrathyper from "@macrostrat/hyper";
|
|
6
|
+
import {MapControlWrapper as $9t1N0$MapControlWrapper, useMapStatus as $9t1N0$useMapStatus, ThreeDControl as $9t1N0$ThreeDControl, CompassControl as $9t1N0$CompassControl, GlobeControl as $9t1N0$GlobeControl} from "@macrostrat/mapbox-react";
|
|
7
|
+
import {DevToolsButtonSlot as $9t1N0$DevToolsButtonSlot} from "@macrostrat/ui-components";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function $parcel$interopDefault(a) {
|
|
11
|
+
return a && a.__esModule ? a.default : a;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const $91d5aa004eeb2226$var$h = (0, $9t1N0$macrostrathyper).styled((0, ($parcel$interopDefault($9t1N0$mainmodulef70e002bjs))));
|
|
20
|
+
function $91d5aa004eeb2226$var$ScaleControl(props) {
|
|
21
|
+
const optionsRef = (0, $9t1N0$useRef)({
|
|
22
|
+
maxWidth: 200,
|
|
23
|
+
unit: "metric"
|
|
24
|
+
});
|
|
25
|
+
return $91d5aa004eeb2226$var$h((0, $9t1N0$MapControlWrapper), {
|
|
26
|
+
className: "map-scale-control",
|
|
27
|
+
control: (0, $9t1N0$ScaleControl),
|
|
28
|
+
options: optionsRef.current,
|
|
29
|
+
...props
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function $91d5aa004eeb2226$var$GeolocationControl(props) {
|
|
33
|
+
const optionsRef = (0, $9t1N0$useRef)({
|
|
34
|
+
showAccuracyCircle: true,
|
|
35
|
+
showUserLocation: true,
|
|
36
|
+
trackUserLocation: true,
|
|
37
|
+
positionOptions: {
|
|
38
|
+
enableHighAccuracy: true
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return $91d5aa004eeb2226$var$h((0, $9t1N0$MapControlWrapper), {
|
|
42
|
+
control: (0, $9t1N0$GeolocateControl),
|
|
43
|
+
options: optionsRef.current,
|
|
44
|
+
...props
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function $91d5aa004eeb2226$export$db1a2e058a06fb5c({ children: children }) {
|
|
48
|
+
const { isInitialized: isInitialized } = (0, $9t1N0$useMapStatus)();
|
|
49
|
+
if (!isInitialized) return null;
|
|
50
|
+
return $91d5aa004eeb2226$var$h("div.map-controls", [
|
|
51
|
+
$91d5aa004eeb2226$var$h($91d5aa004eeb2226$var$ScaleControl),
|
|
52
|
+
$91d5aa004eeb2226$var$h((0, $9t1N0$ThreeDControl), {
|
|
53
|
+
className: "map-3d-control"
|
|
54
|
+
}),
|
|
55
|
+
$91d5aa004eeb2226$var$h((0, $9t1N0$CompassControl), {
|
|
56
|
+
className: "compass-control"
|
|
57
|
+
}),
|
|
58
|
+
$91d5aa004eeb2226$var$h((0, $9t1N0$GlobeControl), {
|
|
59
|
+
className: "globe-control"
|
|
60
|
+
}),
|
|
61
|
+
$91d5aa004eeb2226$var$h($91d5aa004eeb2226$var$GeolocationControl, {
|
|
62
|
+
className: "geolocation-control"
|
|
63
|
+
}),
|
|
64
|
+
// If we have global development tools enabled, show the button
|
|
65
|
+
$91d5aa004eeb2226$var$h((0, $9t1N0$DevToolsButtonSlot), {
|
|
66
|
+
className: "map-control"
|
|
67
|
+
}),
|
|
68
|
+
children
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
export {$91d5aa004eeb2226$export$db1a2e058a06fb5c as MapBottomControls};
|
|
74
|
+
//# sourceMappingURL=controls.f757ce16.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,sEAAK;AAE5B,SAAS,mCAAa,KAAK;IACzB,MAAM,aAAa,CAAA,GAAA,aAAK,EAAE;QACxB,UAAU;QACV,MAAM;IACR;IACA,OAAO,wBAAE,CAAA,GAAA,wBAAgB,GAAG;QAC1B,WAAW;QACX,SAAS,CAAA,GAAA,mBAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEA,SAAS,yCAAmB,KAAK;IAC/B,MAAM,aAAa,CAAA,GAAA,aAAK,EAAE;QACxB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;YACf,oBAAoB;QACtB;IACF;IACA,OAAO,wBAAE,CAAA,GAAA,wBAAgB,GAAG;QAC1B,SAAS,CAAA,GAAA,uBAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEO,SAAS,0CAAkB,YAAE,QAAQ,EAAE;IAC5C,MAAM,iBAAE,aAAa,EAAE,GAAG,CAAA,GAAA,mBAAW;IAErC,IAAI,CAAC,eACH,OAAO;IAGT,OAAO,wBAAE,oBAAoB;QAC3B,wBAAE;QACF,wBAAE,CAAA,GAAA,oBAAY,GAAG;YAAE,WAAW;QAAiB;QAC/C,wBAAE,CAAA,GAAA,qBAAa,GAAG;YAAE,WAAW;QAAkB;QACjD,wBAAE,CAAA,GAAA,mBAAW,GAAG;YAAE,WAAW;QAAgB;QAC7C,wBAAE,0CAAoB;YAAE,WAAW;QAAsB;QACzD,+DAA+D;QAC/D,wBAAE,CAAA,GAAA,yBAAiB,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":"controls.f757ce16.js.map"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {h as $a281a0612311d660$export$dda1d9f60106f0e9, MapInspectorV2 as $a281a0612311d660$export$eab3034e57b46e26, DevMapPage as $a281a0612311d660$export$2391061fbdfb71ef} from "./map-page.b953c404.js";
|
|
2
|
+
import {TileExtentLayer as $1d4d29ef2725aa16$export$86c09739b12f23cd} from "./tile-extent.ca526996.js";
|
|
3
|
+
import {FeatureProperties as $b8c84b63e75fe4f2$export$2906e7f4b228efe9, FeatureRecord as $b8c84b63e75fe4f2$export$dc87b4d46cea200d, FeatureSelectionHandler as $b8c84b63e75fe4f2$export$214daccdda0f4ac6, Features as $b8c84b63e75fe4f2$export$617d79dae526d2cf, TileInfo as $b8c84b63e75fe4f2$export$43c75dec9d0b96c, FeaturePanel as $b8c84b63e75fe4f2$export$43277c51a01761c1} from "./vector-tile-features.e1a24df0.js";
|
|
4
|
+
import {buildXRayStyle as $64ee2eed3ed5ffbc$export$eff5fb2e10d05b1d, buildInspectorStyle as $64ee2eed3ed5ffbc$export$e739dc8dfc0db9a6} from "./xray.c0663c25.js";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
export {$a281a0612311d660$export$dda1d9f60106f0e9 as h, $a281a0612311d660$export$eab3034e57b46e26 as MapInspectorV2, $a281a0612311d660$export$2391061fbdfb71ef as DevMapPage, $1d4d29ef2725aa16$export$86c09739b12f23cd as TileExtentLayer, $b8c84b63e75fe4f2$export$2906e7f4b228efe9 as FeatureProperties, $b8c84b63e75fe4f2$export$dc87b4d46cea200d as FeatureRecord, $b8c84b63e75fe4f2$export$214daccdda0f4ac6 as FeatureSelectionHandler, $b8c84b63e75fe4f2$export$617d79dae526d2cf as Features, $b8c84b63e75fe4f2$export$43c75dec9d0b96c as TileInfo, $b8c84b63e75fe4f2$export$43277c51a01761c1 as FeaturePanel, $64ee2eed3ed5ffbc$export$eff5fb2e10d05b1d as buildXRayStyle, $64ee2eed3ed5ffbc$export$e739dc8dfc0db9a6 as buildInspectorStyle};
|
|
13
|
+
//# sourceMappingURL=dev.ccb6e774.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","sources":["packages/map-interface/src/dev/index.ts"],"sourcesContent":["export * from \"./map-page\";\nexport * from \"./tile-extent\";\nexport * from \"./vector-tile-features\";\nexport * from \"./xray\";\n"],"names":[],"version":3,"file":"dev.ccb6e774.js.map"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import $h94Kl$mainmodule89579666js from "./main.module.89579666.js";
|
|
2
|
+
import "../cjs/main.module.ff1b1aca.css";
|
|
3
|
+
import {PanelSubhead as $72e497a412b1da0a$export$ed081779ec3709aa} from "./headers.b25ff414.js";
|
|
4
|
+
import {useState as $h94Kl$useState} from "react";
|
|
5
|
+
import {Icon as $h94Kl$Icon, Collapse as $h94Kl$Collapse, Button as $h94Kl$Button} from "@blueprintjs/core";
|
|
6
|
+
import $h94Kl$macrostrathyper from "@macrostrat/hyper";
|
|
7
|
+
import $h94Kl$classnames from "classnames";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function $parcel$interopDefault(a) {
|
|
11
|
+
return a && a.__esModule ? a.default : a;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const $d570ac304373e71c$var$h = (0, $h94Kl$macrostrathyper).styled((0, ($parcel$interopDefault($h94Kl$mainmodule89579666js))));
|
|
20
|
+
function $d570ac304373e71c$export$cea00a9d724d5a32(props) {
|
|
21
|
+
const { expanded: expanded, children: children, onChange: onChange, className: className, title: title, titleComponent: titleComponent } = props;
|
|
22
|
+
const icon = expanded ? "chevron-up" : "chevron-down";
|
|
23
|
+
return $d570ac304373e71c$var$h((0, $72e497a412b1da0a$export$ed081779ec3709aa), {
|
|
24
|
+
className: (0, $h94Kl$classnames)("expansion-panel-header", className),
|
|
25
|
+
onClick: onChange,
|
|
26
|
+
title: title,
|
|
27
|
+
component: titleComponent
|
|
28
|
+
}, [
|
|
29
|
+
children,
|
|
30
|
+
$d570ac304373e71c$var$h((0, $h94Kl$Icon), {
|
|
31
|
+
icon: icon
|
|
32
|
+
})
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
function $d570ac304373e71c$var$ExpansionPanelBase(props) {
|
|
36
|
+
let { title: title, titleComponent: titleComponent = "h3", children: children, expanded: expanded, helpText: helpText, onChange: onChange = ()=>{}, sideComponent: sideComponent = null, className: className } = props;
|
|
37
|
+
const [isOpen, setOpen] = (0, $h94Kl$useState)(expanded || false);
|
|
38
|
+
const onChange_ = ()=>{
|
|
39
|
+
onChange();
|
|
40
|
+
setOpen(!isOpen);
|
|
41
|
+
};
|
|
42
|
+
return $d570ac304373e71c$var$h("div.expansion-panel-base", {
|
|
43
|
+
className: (0, $h94Kl$classnames)(className, {
|
|
44
|
+
expanded: isOpen,
|
|
45
|
+
collapsed: !isOpen
|
|
46
|
+
})
|
|
47
|
+
}, [
|
|
48
|
+
$d570ac304373e71c$var$h($d570ac304373e71c$export$cea00a9d724d5a32, {
|
|
49
|
+
onChange: onChange_,
|
|
50
|
+
expanded: isOpen,
|
|
51
|
+
title: title,
|
|
52
|
+
titleComponent: titleComponent
|
|
53
|
+
}, $d570ac304373e71c$var$h("div.expansion-summary-title-help", [
|
|
54
|
+
$d570ac304373e71c$var$h("span.expansion-panel-subtext", helpText),
|
|
55
|
+
" ",
|
|
56
|
+
sideComponent
|
|
57
|
+
])),
|
|
58
|
+
$d570ac304373e71c$var$h((0, $h94Kl$Collapse), {
|
|
59
|
+
isOpen: isOpen
|
|
60
|
+
}, $d570ac304373e71c$var$h("div.expansion-children", null, children))
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
function $d570ac304373e71c$export$39c134eb0b07cf0e(props) {
|
|
64
|
+
let { title: title, children: children, className: className, headerElement: headerElement = null } = props;
|
|
65
|
+
return $d570ac304373e71c$var$h("div.info-panel-section", {
|
|
66
|
+
className: className
|
|
67
|
+
}, [
|
|
68
|
+
$d570ac304373e71c$var$h("div.panel-subhead", null, headerElement ?? $d570ac304373e71c$var$h("h3", title)),
|
|
69
|
+
$d570ac304373e71c$var$h("div.panel-content", null, children)
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
function $d570ac304373e71c$export$40e646e38e6ed100(props) {
|
|
73
|
+
return $d570ac304373e71c$var$h($d570ac304373e71c$var$ExpansionPanelBase, {
|
|
74
|
+
...props,
|
|
75
|
+
className: "expansion-panel"
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function $d570ac304373e71c$export$d7160281aff7c3b8(props) {
|
|
79
|
+
return $d570ac304373e71c$var$h($d570ac304373e71c$var$ExpansionPanelBase, {
|
|
80
|
+
...props,
|
|
81
|
+
className: "expansion-panel sub-expansion-panel",
|
|
82
|
+
titleComponent: "h4"
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function $d570ac304373e71c$export$44ad9ff780615135(props) {
|
|
86
|
+
let { title: title, children: children, value: value, headerElement: headerElement, className: className } = props;
|
|
87
|
+
const [isOpen, setIsOpen] = (0, $h94Kl$useState)(false);
|
|
88
|
+
headerElement ??= $d570ac304373e71c$var$h([
|
|
89
|
+
$d570ac304373e71c$var$h("div.title", title),
|
|
90
|
+
value
|
|
91
|
+
]);
|
|
92
|
+
return $d570ac304373e71c$var$h("div.expandable-details", {
|
|
93
|
+
className: className
|
|
94
|
+
}, [
|
|
95
|
+
$d570ac304373e71c$var$h("div.expandable-details-main", [
|
|
96
|
+
$d570ac304373e71c$var$h("div.expandable-details-header", headerElement),
|
|
97
|
+
$d570ac304373e71c$var$h("div.expandable-details-toggle", [
|
|
98
|
+
$d570ac304373e71c$var$h((0, $h94Kl$Button), {
|
|
99
|
+
small: true,
|
|
100
|
+
minimal: true,
|
|
101
|
+
active: isOpen,
|
|
102
|
+
onClick: ()=>setIsOpen(!isOpen),
|
|
103
|
+
icon: "more"
|
|
104
|
+
})
|
|
105
|
+
])
|
|
106
|
+
]),
|
|
107
|
+
$d570ac304373e71c$var$h((0, $h94Kl$Collapse), {
|
|
108
|
+
isOpen: isOpen
|
|
109
|
+
}, $d570ac304373e71c$var$h("div.expandable-details-children", null, children))
|
|
110
|
+
]);
|
|
111
|
+
}
|
|
112
|
+
function $d570ac304373e71c$export$263416b670b3f129({ title: title, className: className, children: children }) {
|
|
113
|
+
return $d570ac304373e71c$var$h("div.expansion-body", {
|
|
114
|
+
className: className
|
|
115
|
+
}, [
|
|
116
|
+
$d570ac304373e71c$var$h("div.expansion-panel-detail-header", title),
|
|
117
|
+
$d570ac304373e71c$var$h("div.expansion-panel-detail-body", null, children)
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
export {$d570ac304373e71c$export$cea00a9d724d5a32 as ExpansionPanelSummary, $d570ac304373e71c$export$39c134eb0b07cf0e as InfoPanelSection, $d570ac304373e71c$export$40e646e38e6ed100 as ExpansionPanel, $d570ac304373e71c$export$d7160281aff7c3b8 as SubExpansionPanel, $d570ac304373e71c$export$44ad9ff780615135 as ExpandableDetailsPanel, $d570ac304373e71c$export$263416b670b3f129 as ExpansionBody, $72e497a412b1da0a$export$ed081779ec3709aa as PanelSubhead};
|
|
123
|
+
//# sourceMappingURL=expansion-panel.feff0e62.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;AAQA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,sEAAK;AAE5B,SAAS,0CAAsB,KAAK;IAClC,MAAM,YAAE,QAAQ,YAAE,QAAQ,YAAE,QAAQ,aAAE,SAAS,SAAE,KAAK,kBAAE,cAAc,EAAE,GACtE;IACF,MAAM,OAAO,WAAW,eAAe;IACvC,OAAO,wBACL,CAAA,GAAA,yCAAW,GACX;QACE,WAAW,CAAA,GAAA,iBAAS,EAAE,0BAA0B;QAChD,SAAS;eACT;QACA,WAAW;IACb,GACA;QAAC;QAAU,wBAAE,CAAA,GAAA,WAAG,GAAG;kBAAE;QAAK;KAAG;AAEjC;AAEA,SAAS,yCAAmB,KAAK;IAC/B,IAAI,SACF,KAAK,kBACL,iBAAiB,gBACjB,QAAQ,YACR,QAAQ,YACR,QAAQ,YACR,WAAW,KAAO,kBAClB,gBAAgB,iBAChB,SAAS,EACV,GAAG;IACJ,MAAM,CAAC,QAAQ,QAAQ,GAAG,CAAA,GAAA,eAAO,EAAE,YAAY;IAE/C,MAAM,YAAY;QAChB;QACA,QAAQ,CAAC;IACX;IAEA,OAAO,wBACL,4BACA;QACE,WAAW,CAAA,GAAA,iBAAS,EAAE,WAAW;YAC/B,UAAU;YACV,WAAW,CAAC;QACd;IACF,GACA;QACE,wBACE,2CACA;YACE,UAAU;YACV,UAAU;mBACV;4BACA;QACF,GACA,wBAAE,oCAAoC;YACpC,wBAAE,gCAAgC;YAClC;YACA;SACD;QAEH,wBAAE,CAAA,GAAA,eAAO,GAAG;oBAAE;QAAO,GAAG,wBAAE,0BAA0B,MAAM;KAC3D;AAEL;AAEO,SAAS,0CAAiB,KAAK;IACpC,IAAI,SAAE,KAAK,YAAE,QAAQ,aAAE,SAAS,iBAAE,gBAAgB,MAAM,GAAG;IAC3D,OAAO,wBAAE,0BAA0B;mBAAE;IAAU,GAAG;QAChD,wBAAE,qBAAqB,MAAM,iBAAiB,wBAAE,MAAM;QACtD,wBAAE,qBAAqB,MAAM;KAC9B;AACH;AAEA,SAAS,0CAAe,KAAK;IAC3B,OAAO,wBAAE,0CAAoB;QAC3B,GAAG,KAAK;QACR,WAAW;IACb;AACF;AAEA,SAAS,0CAAkB,KAAK;IAC9B,OAAO,wBAAE,0CAAoB;QAC3B,GAAG,KAAK;QACR,WAAW;QACX,gBAAgB;IAClB;AACF;AAEA,SAAS,0CAAuB,KAAK;IACnC,IAAI,SAAE,KAAK,YAAE,QAAQ,SAAE,KAAK,iBAAE,aAAa,aAAE,SAAS,EAAE,GAAG;IAC3D,MAAM,CAAC,QAAQ,UAAU,GAAG,CAAA,GAAA,eAAO,EAAE;IACrC,kBAAkB,wBAAE;QAAC,wBAAE,aAAa;QAAQ;KAAM;IAClD,OAAO,wBAAE,0BAA0B;mBAAE;IAAU,GAAG;QAChD,wBAAE,+BAA+B;YAC/B,wBAAE,iCAAiC;YACnC,wBAAE,iCAAiC;gBACjC,wBAAE,CAAA,GAAA,aAAK,GAAG;oBACR,OAAO;oBACP,SAAS;oBACT,QAAQ;oBACR,SAAS,IAAM,UAAU,CAAC;oBAC1B,MAAM;gBACR;aACD;SACF;QACD,wBACE,CAAA,GAAA,eAAO,GACP;oBAAE;QAAO,GACT,wBAAE,mCAAmC,MAAM;KAE9C;AACH;AAEA,SAAS,0CAAc,SAAE,KAAK,aAAE,SAAS,YAAE,QAAQ,EAAE;IACnD,OAAO,wBAAE,sBAAsB;mBAAE;IAAU,GAAG;QAC5C,wBAAE,qCAAqC;QACvC,wBAAE,mCAAmC,MAAM;KAC5C;AACH","sources":["packages/map-interface/src/expansion-panel/index.ts"],"sourcesContent":["import { useState } from \"react\";\nimport { Collapse, Icon } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { Button } from \"@blueprintjs/core\";\nimport { PanelSubhead } from \"./headers\";\n\nconst h = hyper.styled(styles);\n\nfunction ExpansionPanelSummary(props) {\n const { expanded, children, onChange, className, title, titleComponent } =\n props;\n const icon = expanded ? \"chevron-up\" : \"chevron-down\";\n return h(\n PanelSubhead,\n {\n className: classNames(\"expansion-panel-header\", className),\n onClick: onChange,\n title,\n component: titleComponent,\n },\n [children, h(Icon, { icon })]\n );\n}\n\nfunction ExpansionPanelBase(props) {\n let {\n title,\n titleComponent = \"h3\",\n children,\n expanded,\n helpText,\n onChange = () => {},\n sideComponent = null,\n className,\n } = props;\n const [isOpen, setOpen] = useState(expanded || false);\n\n const onChange_ = () => {\n onChange();\n setOpen(!isOpen);\n };\n\n return h(\n \"div.expansion-panel-base\",\n {\n className: classNames(className, {\n expanded: isOpen,\n collapsed: !isOpen,\n }),\n },\n [\n h(\n ExpansionPanelSummary,\n {\n onChange: onChange_,\n expanded: isOpen,\n title,\n titleComponent,\n },\n h(\"div.expansion-summary-title-help\", [\n h(\"span.expansion-panel-subtext\", helpText),\n \" \",\n sideComponent,\n ])\n ),\n h(Collapse, { isOpen }, h(\"div.expansion-children\", null, children)),\n ]\n );\n}\n\nexport function InfoPanelSection(props) {\n let { title, children, className, headerElement = null } = props;\n return h(\"div.info-panel-section\", { className }, [\n h(\"div.panel-subhead\", null, headerElement ?? h(\"h3\", title)),\n h(\"div.panel-content\", null, children),\n ]);\n}\n\nfunction ExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel\",\n });\n}\n\nfunction SubExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel sub-expansion-panel\",\n titleComponent: \"h4\",\n });\n}\n\nfunction ExpandableDetailsPanel(props) {\n let { title, children, value, headerElement, className } = props;\n const [isOpen, setIsOpen] = useState(false);\n headerElement ??= h([h(\"div.title\", title), value]);\n return h(\"div.expandable-details\", { className }, [\n h(\"div.expandable-details-main\", [\n h(\"div.expandable-details-header\", headerElement),\n h(\"div.expandable-details-toggle\", [\n h(Button, {\n small: true,\n minimal: true,\n active: isOpen,\n onClick: () => setIsOpen(!isOpen),\n icon: \"more\",\n }),\n ]),\n ]),\n h(\n Collapse,\n { isOpen },\n h(\"div.expandable-details-children\", null, children)\n ),\n ]);\n}\n\nfunction ExpansionBody({ title, className, children }) {\n return h(\"div.expansion-body\", { className }, [\n h(\"div.expansion-panel-detail-header\", title),\n h(\"div.expansion-panel-detail-body\", null, children),\n ]);\n}\n\nexport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpandableDetailsPanel,\n SubExpansionPanel,\n ExpansionBody,\n PanelSubhead,\n};\n"],"names":[],"version":3,"file":"expansion-panel.feff0e62.js.map"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {fmt1 as $3e1bd09be8f70c4c$export$e54bbd2c33d17485, fmt2 as $3e1bd09be8f70c4c$export$4c173b1b2f78faf7, fmtInt as $3e1bd09be8f70c4c$export$bc135f63e2f56fd4} from "./utils.122d1f2d.js";
|
|
2
|
+
import {formatCoordForZoomLevel as $diowj$formatCoordForZoomLevel} from "@macrostrat/mapbox-utils";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
function $bb5f34705d9c44bc$export$8391d1abb505ffb3(args, mapPosition) {
|
|
7
|
+
const pos = mapPosition?.camera;
|
|
8
|
+
if (pos == null) return;
|
|
9
|
+
const zoom = mapPosition.target?.zoom;
|
|
10
|
+
args.x = (0, $diowj$formatCoordForZoomLevel)(pos.lng, zoom);
|
|
11
|
+
args.y = (0, $diowj$formatCoordForZoomLevel)(pos.lat, zoom);
|
|
12
|
+
if (pos.bearing == 0 && pos.pitch == 0 && zoom != null) args.z = (0, $3e1bd09be8f70c4c$export$e54bbd2c33d17485)(zoom);
|
|
13
|
+
else if (pos.altitude != null) {
|
|
14
|
+
if (pos.altitude > 5000) args.z = (0, $3e1bd09be8f70c4c$export$4c173b1b2f78faf7)(pos.altitude / 1000) + "km";
|
|
15
|
+
else args.z = (0, $3e1bd09be8f70c4c$export$bc135f63e2f56fd4)(pos.altitude) + "m";
|
|
16
|
+
}
|
|
17
|
+
if (pos.bearing != 0) {
|
|
18
|
+
let az = pos.bearing;
|
|
19
|
+
if (az < 0) az += 360;
|
|
20
|
+
args.a = (0, $3e1bd09be8f70c4c$export$bc135f63e2f56fd4)(az);
|
|
21
|
+
}
|
|
22
|
+
if (pos.pitch != 0) args.e = (0, $3e1bd09be8f70c4c$export$bc135f63e2f56fd4)(pos.pitch);
|
|
23
|
+
}
|
|
24
|
+
function $bb5f34705d9c44bc$var$_fmt(x) {
|
|
25
|
+
if (Array.isArray(x)) x = x[0];
|
|
26
|
+
return parseFloat(x.toString());
|
|
27
|
+
}
|
|
28
|
+
function $bb5f34705d9c44bc$export$80abf1cbcc3918e4(hashData, centerPosition) {
|
|
29
|
+
const { x: x = centerPosition?.lng ?? 0, y: y = centerPosition?.lat ?? 0, z: // Different default for zoom depending on whether we have a marker
|
|
30
|
+
z = centerPosition != null ? 7 : 2, a: a = 0, e: e = 0 } = hashData;
|
|
31
|
+
const lng = $bb5f34705d9c44bc$var$_fmt(x);
|
|
32
|
+
const lat = $bb5f34705d9c44bc$var$_fmt(y);
|
|
33
|
+
let altitude = null;
|
|
34
|
+
let zoom = null;
|
|
35
|
+
const _z = z.toString();
|
|
36
|
+
if (_z.endsWith("km")) altitude = $bb5f34705d9c44bc$var$_fmt(_z.substring(0, _z.length - 2)) * 1000;
|
|
37
|
+
else if (_z.endsWith("m")) altitude = $bb5f34705d9c44bc$var$_fmt(_z.substring(0, _z.length - 1));
|
|
38
|
+
else zoom = $bb5f34705d9c44bc$var$_fmt(z);
|
|
39
|
+
const bearing = $bb5f34705d9c44bc$var$_fmt(a);
|
|
40
|
+
const pitch = $bb5f34705d9c44bc$var$_fmt(e);
|
|
41
|
+
let target = undefined;
|
|
42
|
+
if (bearing == 0 && pitch == 0 && zoom != null) target = {
|
|
43
|
+
lat: lat,
|
|
44
|
+
lng: lng,
|
|
45
|
+
zoom: zoom
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
camera: {
|
|
49
|
+
lng: $bb5f34705d9c44bc$var$_fmt(x),
|
|
50
|
+
lat: $bb5f34705d9c44bc$var$_fmt(y),
|
|
51
|
+
altitude: altitude,
|
|
52
|
+
bearing: $bb5f34705d9c44bc$var$_fmt(a),
|
|
53
|
+
pitch: $bb5f34705d9c44bc$var$_fmt(e)
|
|
54
|
+
},
|
|
55
|
+
target: target
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
export {$bb5f34705d9c44bc$export$8391d1abb505ffb3 as applyMapPositionToHash, $bb5f34705d9c44bc$export$80abf1cbcc3918e4 as getMapPositionForHash};
|
|
61
|
+
//# sourceMappingURL=hash-string.836601b2.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,8BAAsB,EAAE,IAAI,GAAG,EAAE;IAC1C,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAsB,EAAE,IAAI,GAAG,EAAE;IAE1C,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,MAChD,KAAK,CAAC,GAAG,CAAA,GAAA,yCAAG,EAAE;SACT,IAAI,IAAI,QAAQ,IAAI;QACzB,IAAI,IAAI,QAAQ,GAAG,MACjB,KAAK,CAAC,GAAG,CAAA,GAAA,yCAAG,EAAE,IAAI,QAAQ,GAAG,QAAQ;aAErC,KAAK,CAAC,GAAG,CAAA,GAAA,yCAAK,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,yCAAK,EAAE;IAClB;IACA,IAAI,IAAI,KAAK,IAAI,GACf,KAAK,CAAC,GAAG,CAAA,GAAA,yCAAK,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":"hash-string.836601b2.js.map"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import "../cjs/main.module.02c4de16.css";
|
|
2
|
+
import $fU9jX$mainmodule67a908dajs from "./main.module.67a908da.js";
|
|
3
|
+
import {LngLatCoords as $4fae2d573d730db8$export$f195b3550849e560, Elevation as $4fae2d573d730db8$export$58bfb4f6ec5aa58d} from "./location-info.5543bb05.js";
|
|
4
|
+
import {Button as $fU9jX$Button, Icon as $fU9jX$Icon} from "@blueprintjs/core";
|
|
5
|
+
import $fU9jX$macrostrathyper from "@macrostrat/hyper";
|
|
6
|
+
import {useToaster as $fU9jX$useToaster} from "@macrostrat/ui-components";
|
|
7
|
+
import {useFocusState as $fU9jX$useFocusState, isCentered as $fU9jX$isCentered, LocationFocusButton as $fU9jX$LocationFocusButton} from "@macrostrat/mapbox-react";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function $parcel$interopDefault(a) {
|
|
11
|
+
return a && a.__esModule ? a.default : a;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const $427faf94283514d4$var$h = (0, $fU9jX$macrostrathyper).styled((0, ($parcel$interopDefault($fU9jX$mainmodule67a908dajs))));
|
|
20
|
+
function $427faf94283514d4$var$PositionButton({ position: position, bounds: bounds, showCopyLink: showCopyLink = false }) {
|
|
21
|
+
const focusState = (0, $fU9jX$useFocusState)(position);
|
|
22
|
+
const copyLinkIsVisible = (0, $fU9jX$isCentered)(focusState) && showCopyLink;
|
|
23
|
+
return $427faf94283514d4$var$h("div.position-controls", [
|
|
24
|
+
$427faf94283514d4$var$h((0, $fU9jX$LocationFocusButton), {
|
|
25
|
+
location: position,
|
|
26
|
+
bounds: bounds,
|
|
27
|
+
focusState: focusState
|
|
28
|
+
}, []),
|
|
29
|
+
$427faf94283514d4$var$h.if(copyLinkIsVisible && position != null)($427faf94283514d4$var$CopyLinkButton, {
|
|
30
|
+
itemName: "position"
|
|
31
|
+
})
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
function $427faf94283514d4$var$CopyLinkButton({ itemName: itemName, children: children, onClick: onClick, ...rest }) {
|
|
35
|
+
const toaster = (0, $fU9jX$useToaster)();
|
|
36
|
+
let message = `Copied link`;
|
|
37
|
+
if (itemName != null) message += ` to ${itemName}`;
|
|
38
|
+
message += "!";
|
|
39
|
+
return $427faf94283514d4$var$h((0, $fU9jX$Button), {
|
|
40
|
+
className: "copy-link-button",
|
|
41
|
+
rightIcon: $427faf94283514d4$var$h((0, $fU9jX$Icon), {
|
|
42
|
+
icon: "link",
|
|
43
|
+
size: 12
|
|
44
|
+
}),
|
|
45
|
+
minimal: true,
|
|
46
|
+
small: true,
|
|
47
|
+
onClick () {
|
|
48
|
+
navigator.clipboard.writeText(window.location.href).then(()=>{
|
|
49
|
+
toaster?.show({
|
|
50
|
+
message: message,
|
|
51
|
+
intent: "success",
|
|
52
|
+
icon: "clipboard",
|
|
53
|
+
timeout: 1000
|
|
54
|
+
});
|
|
55
|
+
onClick?.();
|
|
56
|
+
}, ()=>{
|
|
57
|
+
toaster?.show({
|
|
58
|
+
message: "Failed to copy link",
|
|
59
|
+
intent: "danger",
|
|
60
|
+
icon: "error",
|
|
61
|
+
timeout: 1000
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
...rest
|
|
66
|
+
}, children ?? "Copy link");
|
|
67
|
+
}
|
|
68
|
+
function $427faf94283514d4$export$e9ff14c4822c2e8c(props) {
|
|
69
|
+
const { onClose: onClose, position: position, bounds: bounds, zoom: zoom = 7, elevation: elevation, showCopyPositionButton: showCopyPositionButton, children: children } = props;
|
|
70
|
+
let leftButton = null;
|
|
71
|
+
if (bounds != null || position != null) leftButton = $427faf94283514d4$var$h($427faf94283514d4$var$PositionButton, {
|
|
72
|
+
position: position,
|
|
73
|
+
bounds: bounds,
|
|
74
|
+
showCopyLink: showCopyPositionButton
|
|
75
|
+
});
|
|
76
|
+
return $427faf94283514d4$var$h("header.location-panel-header", [
|
|
77
|
+
leftButton,
|
|
78
|
+
children,
|
|
79
|
+
$427faf94283514d4$var$h("div.spacer"),
|
|
80
|
+
$427faf94283514d4$var$h.if(position != null)((0, $4fae2d573d730db8$export$f195b3550849e560), {
|
|
81
|
+
position: position,
|
|
82
|
+
zoom: zoom,
|
|
83
|
+
className: "infodrawer-header-item"
|
|
84
|
+
}),
|
|
85
|
+
$427faf94283514d4$var$h.if(elevation != null)((0, $4fae2d573d730db8$export$58bfb4f6ec5aa58d), {
|
|
86
|
+
elevation: elevation,
|
|
87
|
+
className: "infodrawer-header-item"
|
|
88
|
+
}),
|
|
89
|
+
$427faf94283514d4$var$h.if(onClose != null)((0, $fU9jX$Button), {
|
|
90
|
+
minimal: true,
|
|
91
|
+
icon: "cross",
|
|
92
|
+
onClick: onClose
|
|
93
|
+
})
|
|
94
|
+
]);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
export {$427faf94283514d4$export$e9ff14c4822c2e8c as InfoDrawerHeader};
|
|
99
|
+
//# sourceMappingURL=header.0f535ab1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;AAWA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,sEAAK;AAE5B,SAAS,qCAAe,YAAE,QAAQ,UAAE,MAAM,gBAAE,eAAe,OAAO;IAChE,MAAM,aAAa,CAAA,GAAA,oBAAY,EAAE;IAEjC,MAAM,oBAAoB,CAAA,GAAA,iBAAS,EAAE,eAAe;IAEpD,OAAO,wBAAE,yBAAyB;QAChC,wBAAE,CAAA,GAAA,0BAAkB,GAAG;YAAE,UAAU;oBAAU;wBAAQ;QAAW,GAAG,EAAE;QACrE,wBAAE,EAAE,CAAC,qBAAqB,YAAY,MAAM,sCAAgB;YAC1D,UAAU;QACZ;KACD;AACH;AAEA,SAAS,qCAAe,YAAE,QAAQ,YAAE,QAAQ,WAAE,OAAO,EAAE,GAAG,MAAM;IAC9D,MAAM,UAAU,CAAA,GAAA,iBAAS;IAEzB,IAAI,UAAU,CAAC,WAAW,CAAC;IAC3B,IAAI,YAAY,MACd,WAAW,CAAC,IAAI,EAAE,UAAU;IAE9B,WAAW;IAEX,OAAO,wBACL,CAAA,GAAA,aAAK,GACL;QACE,WAAW;QACX,WAAW,wBAAE,CAAA,GAAA,WAAG,GAAG;YAAE,MAAM;YAAQ,MAAM;QAAG;QAC5C,SAAS;QACT,OAAO;QACP;YACE,UAAU,SAAS,CAAC,SAAS,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CACtD;gBACE,SAAS,KAAK;6BACZ;oBACA,QAAQ;oBACR,MAAM;oBACN,SAAS;gBACX;gBACA;YACF,GACA;gBACE,SAAS,KAAK;oBACZ,SAAS;oBACT,QAAQ;oBACR,MAAM;oBACN,SAAS;gBACX;YACF;QAEJ;QACA,GAAG,IAAI;IACT,GACA,YAAY;AAEhB;AAWO,SAAS,0CAAiB,KAA4B;IAC3D,MAAM,WACJ,OAAO,YACP,QAAQ,UACR,MAAM,QACN,OAAO,cACP,SAAS,0BACT,sBAAsB,YACtB,QAAQ,EACT,GAAG;IAEJ,IAAI,aAAa;IACjB,IAAI,UAAU,QAAQ,YAAY,MAChC,aAAa,wBAAE,sCAAgB;kBAC7B;gBACA;QACA,cAAc;IAChB;IAGF,OAAO,wBAAE,gCAAgC;QACvC;QACA;QACA,wBAAE;QACF,wBAAE,EAAE,CAAC,YAAY,MAAM,CAAA,GAAA,yCAAW,GAAG;sBACnC;kBACA;YACA,WAAW;QACb;QACA,wBAAE,EAAE,CAAC,aAAa,MAAM,CAAA,GAAA,yCAAQ,GAAG;uBACjC;YACA,WAAW;QACb;QACA,wBAAE,EAAE,CAAC,WAAW,MAAM,CAAA,GAAA,aAAK,GAAG;YAC5B,SAAS;YACT,MAAM;YACN,SAAS;QACX;KACD;AACH","sources":["packages/map-interface/src/location-panel/header.ts"],"sourcesContent":["import { Icon, Button } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useToaster } from \"@macrostrat/ui-components\";\nimport { LngLatCoords, Elevation } from \"../location-info\";\nimport {\n LocationFocusButton,\n useFocusState,\n isCentered,\n} from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position, bounds, showCopyLink = false }) {\n const focusState = useFocusState(position);\n\n const copyLinkIsVisible = isCentered(focusState) && showCopyLink;\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, bounds, focusState }, []),\n h.if(copyLinkIsVisible && position != null)(CopyLinkButton, {\n itemName: \"position\",\n }),\n ]);\n}\n\nfunction CopyLinkButton({ itemName, children, onClick, ...rest }) {\n const toaster = useToaster();\n\n let message = `Copied link`;\n if (itemName != null) {\n message += ` to ${itemName}`;\n }\n message += \"!\";\n\n return h(\n Button,\n {\n className: \"copy-link-button\",\n rightIcon: h(Icon, { icon: \"link\", size: 12 }),\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(window.location.href).then(\n () => {\n toaster?.show({\n message,\n intent: \"success\",\n icon: \"clipboard\",\n timeout: 1000,\n });\n onClick?.();\n },\n () => {\n toaster?.show({\n message: \"Failed to copy link\",\n intent: \"danger\",\n icon: \"error\",\n timeout: 1000,\n });\n }\n );\n },\n ...rest,\n },\n children ?? \"Copy link\"\n );\n}\n\nexport interface InfoDrawerHeaderProps {\n onClose?: () => void;\n position?: mapboxgl.LngLat;\n zoom?: number;\n elevation?: number;\n showCopyPositionButton?: boolean;\n bounds?: mapboxgl.LngLatBounds;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const {\n onClose,\n position,\n bounds,\n zoom = 7,\n elevation,\n showCopyPositionButton,\n children,\n } = props;\n\n let leftButton = null;\n if (bounds != null || position != null) {\n leftButton = h(PositionButton, {\n position,\n bounds,\n showCopyLink: showCopyPositionButton,\n });\n }\n\n return h(\"header.location-panel-header\", [\n leftButton,\n children,\n h(\"div.spacer\"),\n h.if(position != null)(LngLatCoords, {\n position,\n zoom,\n className: \"infodrawer-header-item\",\n }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h.if(onClose != null)(Button, {\n minimal: true,\n icon: \"cross\",\n onClick: onClose,\n }),\n ]);\n}\n"],"names":[],"version":3,"file":"header.0f535ab1.js.map"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import $1ittv$mainmodule89579666js from "./main.module.89579666.js";
|
|
2
|
+
import "../cjs/main.module.ff1b1aca.css";
|
|
3
|
+
import $1ittv$macrostrathyper from "@macrostrat/hyper";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
function $parcel$interopDefault(a) {
|
|
7
|
+
return a && a.__esModule ? a.default : a;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const $72e497a412b1da0a$var$h = (0, $1ittv$macrostrathyper).styled((0, ($parcel$interopDefault($1ittv$mainmodule89579666js))));
|
|
12
|
+
function $72e497a412b1da0a$export$ed081779ec3709aa(props) {
|
|
13
|
+
const { title: title, component: component = "h3", children: children, ...rest } = props;
|
|
14
|
+
return $72e497a412b1da0a$var$h("div.panel-subhead", rest, [
|
|
15
|
+
$72e497a412b1da0a$var$h(component, {
|
|
16
|
+
className: "title"
|
|
17
|
+
}, title),
|
|
18
|
+
children
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
export {$72e497a412b1da0a$export$ed081779ec3709aa as PanelSubhead};
|
|
24
|
+
//# sourceMappingURL=headers.b25ff414.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;AAGA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,sEAAK;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":"headers.b25ff414.js.map"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import {getMapPadding as $82fe09613877ffc2$export$bb78f9f01775eef1, useMapMarker as $82fe09613877ffc2$export$278090850f6b3a9f} from "./utils.d40349f0.js";
|
|
2
|
+
import {useMapRef as $ctV7I$useMapRef, useMapEaseTo as $ctV7I$useMapEaseTo, useMapDispatch as $ctV7I$useMapDispatch, useMapInitialized as $ctV7I$useMapInitialized} from "@macrostrat/mapbox-react";
|
|
3
|
+
import {useRef as $ctV7I$useRef, useState as $ctV7I$useState, useCallback as $ctV7I$useCallback, useMemo as $ctV7I$useMemo, useEffect as $ctV7I$useEffect} from "react";
|
|
4
|
+
import {debounce as $ctV7I$debounce} from "underscore";
|
|
5
|
+
import $ctV7I$useresizeobserver from "use-resize-observer";
|
|
6
|
+
import {getMapPosition as $ctV7I$getMapPosition} from "@macrostrat/mapbox-utils";
|
|
7
|
+
import {useInDarkMode as $ctV7I$useInDarkMode} from "@macrostrat/ui-components";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
function $4bc3dd5f0732eed3$export$31b2e088aff2dc5d({ containerRef: containerRef }) {
|
|
17
|
+
const mapRef = (0, $ctV7I$useMapRef)();
|
|
18
|
+
const debouncedResize = (0, $ctV7I$useRef)((0, $ctV7I$debounce)(()=>{
|
|
19
|
+
mapRef.current?.resize();
|
|
20
|
+
}, 100));
|
|
21
|
+
(0, $ctV7I$useresizeobserver)({
|
|
22
|
+
ref: containerRef,
|
|
23
|
+
onResize: debouncedResize.current
|
|
24
|
+
});
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
function $4bc3dd5f0732eed3$export$2ab96428dea558d6({ containerRef: containerRef, parentRef: parentRef, infoMarkerPosition: infoMarkerPosition, debounceTime: debounceTime = 200 }) {
|
|
28
|
+
const mapRef = (0, $ctV7I$useMapRef)();
|
|
29
|
+
const [padding, setPadding] = (0, $ctV7I$useState)((0, $82fe09613877ffc2$export$bb78f9f01775eef1)(containerRef, parentRef));
|
|
30
|
+
const _updateMapPadding = (0, $ctV7I$useCallback)(()=>{
|
|
31
|
+
const newPadding = (0, $82fe09613877ffc2$export$bb78f9f01775eef1)(containerRef, parentRef);
|
|
32
|
+
setPadding(newPadding);
|
|
33
|
+
}, [
|
|
34
|
+
containerRef.current,
|
|
35
|
+
parentRef.current
|
|
36
|
+
]);
|
|
37
|
+
const updateMapPadding = (0, $ctV7I$useMemo)(()=>(0, $ctV7I$debounce)(_updateMapPadding, debounceTime), [
|
|
38
|
+
_updateMapPadding,
|
|
39
|
+
debounceTime
|
|
40
|
+
]);
|
|
41
|
+
(0, $ctV7I$useEffect)(()=>{
|
|
42
|
+
const map = mapRef.current;
|
|
43
|
+
if (map == null) return;
|
|
44
|
+
// Update map padding on load
|
|
45
|
+
updateMapPadding();
|
|
46
|
+
}, [
|
|
47
|
+
mapRef.current
|
|
48
|
+
]);
|
|
49
|
+
(0, $ctV7I$useresizeobserver)({
|
|
50
|
+
ref: parentRef,
|
|
51
|
+
onResize (sz) {
|
|
52
|
+
updateMapPadding();
|
|
53
|
+
},
|
|
54
|
+
round (n) {
|
|
55
|
+
return Math.round(n);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
// Ideally, we would not have to do this when we know the infobox is loaded
|
|
59
|
+
(0, $ctV7I$useMapEaseTo)({
|
|
60
|
+
center: infoMarkerPosition,
|
|
61
|
+
padding: padding
|
|
62
|
+
});
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
function $4bc3dd5f0732eed3$export$f6eeee399afc4e9a({ onMapMoved: onMapMoved = null }) {
|
|
66
|
+
const mapRef = (0, $ctV7I$useMapRef)();
|
|
67
|
+
const dispatch = (0, $ctV7I$useMapDispatch)();
|
|
68
|
+
const isInitialized = (0, $ctV7I$useMapInitialized)();
|
|
69
|
+
const mapMovedCallback = (0, $ctV7I$useCallback)(()=>{
|
|
70
|
+
const map = mapRef.current;
|
|
71
|
+
if (map == null) return;
|
|
72
|
+
const mapPosition = (0, $ctV7I$getMapPosition)(map);
|
|
73
|
+
dispatch({
|
|
74
|
+
type: "map-moved",
|
|
75
|
+
payload: mapPosition
|
|
76
|
+
});
|
|
77
|
+
onMapMoved?.(mapPosition, map);
|
|
78
|
+
}, [
|
|
79
|
+
onMapMoved,
|
|
80
|
+
dispatch,
|
|
81
|
+
isInitialized
|
|
82
|
+
]);
|
|
83
|
+
(0, $ctV7I$useEffect)(()=>{
|
|
84
|
+
// Get the current value of the map. Useful for gradually moving away
|
|
85
|
+
// from class component
|
|
86
|
+
const map = mapRef.current;
|
|
87
|
+
if (map == null) return;
|
|
88
|
+
// Update the URI when the map moves
|
|
89
|
+
mapMovedCallback();
|
|
90
|
+
const cb = (0, $ctV7I$debounce)(mapMovedCallback, 100);
|
|
91
|
+
map.on("moveend", cb);
|
|
92
|
+
return ()=>{
|
|
93
|
+
map?.off("moveend", cb);
|
|
94
|
+
};
|
|
95
|
+
}, [
|
|
96
|
+
mapMovedCallback
|
|
97
|
+
]);
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
function $4bc3dd5f0732eed3$export$e57f9eaa51773f82({ ignoredSources: ignoredSources, onMapLoading: onMapLoading = null, onMapIdle: onMapIdle = null, mapIsLoading: mapIsLoading }) {
|
|
101
|
+
const mapRef = (0, $ctV7I$useMapRef)();
|
|
102
|
+
const loadingRef = (0, $ctV7I$useRef)(false);
|
|
103
|
+
const dispatch = (0, $ctV7I$useMapDispatch)();
|
|
104
|
+
const isInitialized = (0, $ctV7I$useMapInitialized)();
|
|
105
|
+
(0, $ctV7I$useEffect)(()=>{
|
|
106
|
+
const map = mapRef.current;
|
|
107
|
+
const mapIsLoading = loadingRef.current;
|
|
108
|
+
if (map == null) return;
|
|
109
|
+
let didSendLoading = false;
|
|
110
|
+
const loadingCallback = (evt)=>{
|
|
111
|
+
if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;
|
|
112
|
+
if (didSendLoading) return;
|
|
113
|
+
onMapLoading?.(evt);
|
|
114
|
+
dispatch({
|
|
115
|
+
type: "set-loading",
|
|
116
|
+
payload: true
|
|
117
|
+
});
|
|
118
|
+
loadingRef.current = true;
|
|
119
|
+
didSendLoading = true;
|
|
120
|
+
};
|
|
121
|
+
const idleCallback = (evt)=>{
|
|
122
|
+
if (!mapIsLoading) return;
|
|
123
|
+
dispatch({
|
|
124
|
+
type: "set-loading",
|
|
125
|
+
payload: false
|
|
126
|
+
});
|
|
127
|
+
loadingRef.current = false;
|
|
128
|
+
onMapIdle?.(evt);
|
|
129
|
+
};
|
|
130
|
+
map.on("sourcedataloading", loadingCallback);
|
|
131
|
+
map.on("idle", idleCallback);
|
|
132
|
+
return ()=>{
|
|
133
|
+
map?.off("sourcedataloading", loadingCallback);
|
|
134
|
+
map?.off("idle", idleCallback);
|
|
135
|
+
};
|
|
136
|
+
}, [
|
|
137
|
+
ignoredSources,
|
|
138
|
+
mapIsLoading,
|
|
139
|
+
isInitialized
|
|
140
|
+
]);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
function $4bc3dd5f0732eed3$export$5c90a91c7455938c({ position: position, setPosition: setPosition, centerMarker: centerMarker = true }) {
|
|
144
|
+
const mapRef = (0, $ctV7I$useMapRef)();
|
|
145
|
+
const markerRef = (0, $ctV7I$useRef)(null);
|
|
146
|
+
const isInitialized = (0, $ctV7I$useMapInitialized)();
|
|
147
|
+
(0, $82fe09613877ffc2$export$278090850f6b3a9f)(mapRef, markerRef, position);
|
|
148
|
+
(0, $ctV7I$useEffect)(()=>{
|
|
149
|
+
const map = mapRef.current;
|
|
150
|
+
if (map == null || setPosition == null) return;
|
|
151
|
+
const handleMapClick = (event)=>{
|
|
152
|
+
setPosition(event.lngLat, event, mapRef.current);
|
|
153
|
+
// We should integrate this with the "easeToCenter" hook
|
|
154
|
+
if (centerMarker) mapRef.current?.flyTo({
|
|
155
|
+
center: event.lngLat,
|
|
156
|
+
duration: 800
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
map.on("click", handleMapClick);
|
|
160
|
+
return ()=>{
|
|
161
|
+
map?.off("click", handleMapClick);
|
|
162
|
+
};
|
|
163
|
+
}, [
|
|
164
|
+
setPosition,
|
|
165
|
+
isInitialized
|
|
166
|
+
]);
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
function $4bc3dd5f0732eed3$export$566518253d2584f8() {
|
|
170
|
+
const inDarkMode = (0, $ctV7I$useInDarkMode)();
|
|
171
|
+
return inDarkMode ? "mapbox://styles/mapbox/dark-v10" : "mapbox://styles/mapbox/light-v10";
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
export {$4bc3dd5f0732eed3$export$31b2e088aff2dc5d as MapResizeManager, $4bc3dd5f0732eed3$export$2ab96428dea558d6 as MapPaddingManager, $4bc3dd5f0732eed3$export$f6eeee399afc4e9a as MapMovedReporter, $4bc3dd5f0732eed3$export$e57f9eaa51773f82 as MapLoadingReporter, $4bc3dd5f0732eed3$export$5c90a91c7455938c as MapMarker, $4bc3dd5f0732eed3$export$566518253d2584f8 as useBasicStylePair};
|
|
176
|
+
//# sourceMappingURL=helpers.fb1d7227.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;AAiBO,SAAS,0CAAiB,gBAAE,YAAY,EAAE;IAC/C,MAAM,SAAS,CAAA,GAAA,gBAAQ;IAEvB,MAAM,kBAAkB,CAAA,GAAA,aAAK,EAC3B,CAAA,GAAA,eAAO,EAAE;QACP,OAAO,OAAO,EAAE;IAClB,GAAG;IAGL,CAAA,GAAA,wBAAgB,EAAE;QAChB,KAAK;QACL,UAAU,gBAAgB,OAAO;IACnC;IAEA,OAAO;AACT;AASO,SAAS,0CAAkB,gBAChC,YAAY,aACZ,SAAS,sBACT,kBAAkB,gBAClB,eAAe,KACQ;IACvB,MAAM,SAAS,CAAA,GAAA,gBAAQ;IAEvB,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,eAAO,EACnC,CAAA,GAAA,yCAAY,EAAE,cAAc;IAG9B,MAAM,oBAAoB,CAAA,GAAA,kBAAU,EAAE;QACpC,MAAM,aAAa,CAAA,GAAA,yCAAY,EAAE,cAAc;QAC/C,WAAW;IACb,GAAG;QAAC,aAAa,OAAO;QAAE,UAAU,OAAO;KAAC;IAE5C,MAAM,mBAAmB,CAAA,GAAA,cAAM,EAC7B,IAAM,CAAA,GAAA,eAAO,EAAE,mBAAmB,eAClC;QAAC;QAAmB;KAAa;IAGnC,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,MAAM;QACjB,6BAA6B;QAC7B;IACF,GAAG;QAAC,OAAO,OAAO;KAAC;IAEnB,CAAA,GAAA,wBAAgB,EAAE;QAChB,KAAK;QACL,UAAS,EAAE;YACT;QACF;QACA,OAAM,CAAC;YACL,OAAO,KAAK,KAAK,CAAC;QACpB;IACF;IAEA,2EAA2E;IAC3E,CAAA,GAAA,mBAAW,EAAE;QAAE,QAAQ;iBAAoB;IAAQ;IAEnD,OAAO;AACT;AAEO,SAAS,0CAAiB,cAAE,aAAa,MAAM;IACpD,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,WAAW,CAAA,GAAA,qBAAa;IAC9B,MAAM,gBAAgB,CAAA,GAAA,wBAAgB;IAEtC,MAAM,mBAAmB,CAAA,GAAA,kBAAU,EAAE;QACnC,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,MAAM;QACjB,MAAM,cAAc,CAAA,GAAA,qBAAa,EAAE;QACnC,SAAS;YAAE,MAAM;YAAa,SAAS;QAAY;QACnD,aAAa,aAAa;IAC5B,GAAG;QAAC;QAAY;QAAU;KAAc;IAExC,CAAA,GAAA,gBAAQ,EAAE;QACR,qEAAqE;QACrE,uBAAuB;QACvB,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,MAAM;QACjB,oCAAoC;QACpC;QACA,MAAM,KAAK,CAAA,GAAA,eAAO,EAAE,kBAAkB;QACtC,IAAI,EAAE,CAAC,WAAW;QAClB,OAAO;YACL,KAAK,IAAI,WAAW;QACtB;IACF,GAAG;QAAC;KAAiB;IACrB,OAAO;AACT;AAEO,SAAS,0CAAmB,kBACjC,cAAc,gBACd,eAAe,iBACf,YAAY,oBACZ,YAAY,EACb;IACC,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,aAAa,CAAA,GAAA,aAAK,EAAE;IAC1B,MAAM,WAAW,CAAA,GAAA,qBAAa;IAC9B,MAAM,gBAAgB,CAAA,GAAA,wBAAgB;IAEtC,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,MAAM,OAAO,OAAO;QAC1B,MAAM,eAAe,WAAW,OAAO;QACvC,IAAI,OAAO,MAAM;QAEjB,IAAI,iBAAiB;QAErB,MAAM,kBAAkB,CAAC;YACvB,IAAI,eAAe,QAAQ,CAAC,IAAI,QAAQ,KAAK,cAAc;YAC3D,IAAI,gBAAgB;YACpB,eAAe;YACf,SAAS;gBAAE,MAAM;gBAAe,SAAS;YAAK;YAC9C,WAAW,OAAO,GAAG;YACrB,iBAAiB;QACnB;QACA,MAAM,eAAe,CAAC;YACpB,IAAI,CAAC,cAAc;YACnB,SAAS;gBAAE,MAAM;gBAAe,SAAS;YAAM;YAC/C,WAAW,OAAO,GAAG;YACrB,YAAY;QACd;QACA,IAAI,EAAE,CAAC,qBAAqB;QAC5B,IAAI,EAAE,CAAC,QAAQ;QACf,OAAO;YACL,KAAK,IAAI,qBAAqB;YAC9B,KAAK,IAAI,QAAQ;QACnB;IACF,GAAG;QAAC;QAAgB;QAAc;KAAc;IAChD,OAAO;AACT;AAEO,SAAS,0CAAU,YAAE,QAAQ,eAAE,WAAW,gBAAE,eAAe,MAAM;IACtE,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,YAAY,CAAA,GAAA,aAAK,EAAE;IACzB,MAAM,gBAAgB,CAAA,GAAA,wBAAgB;IAEtC,CAAA,GAAA,yCAAW,EAAE,QAAQ,WAAW;IAEhC,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,QAAQ,eAAe,MAAM;QAExC,MAAM,iBAAiB,CAAC;YACtB,YAAY,MAAM,MAAM,EAAE,OAAO,OAAO,OAAO;YAC/C,wDAAwD;YACxD,IAAI,cACF,OAAO,OAAO,EAAE,MAAM;gBAAE,QAAQ,MAAM,MAAM;gBAAE,UAAU;YAAI;QAEhE;QAEA,IAAI,EAAE,CAAC,SAAS;QAEhB,OAAO;YACL,KAAK,IAAI,SAAS;QACpB;IACF,GAAG;QAAC;QAAa;KAAc;IAE/B,OAAO;AACT;AAEO,SAAS;IACd,MAAM,aAAa,CAAA,GAAA,oBAAY;IAC/B,OAAO,aACH,oCACA;AACN","sources":["packages/map-interface/src/helpers.ts"],"sourcesContent":["import {\n useMapRef,\n useMapEaseTo,\n useMapDispatch,\n useMapStatus,\n useMapInitialized,\n} from \"@macrostrat/mapbox-react\";\nimport { useMemo, useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100)\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n debounceTime?: number;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n debounceTime = 200,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef)\n );\n\n const _updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n const updateMapPadding = useMemo(\n () => debounce(_updateMapPadding, debounceTime),\n [_updateMapPadding, debounceTime]\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n round(n) {\n return Math.round(n);\n },\n });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseTo({ center: infoMarkerPosition, padding });\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [onMapMoved, dispatch, isInitialized]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!mapIsLoading) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapIsLoading, isInitialized]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n const isInitialized = useMapInitialized();\n\n useMapMarker(mapRef, markerRef, position);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n\n const handleMapClick = (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n };\n\n map.on(\"click\", handleMapClick);\n\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [setPosition, isInitialized]);\n\n return null;\n}\n\nexport function useBasicStylePair() {\n const inDarkMode = useInDarkMode();\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n}\n"],"names":[],"version":3,"file":"helpers.fb1d7227.js.map"}
|