@macrostrat/map-interface 1.0.12 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -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} +104 -52
- 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/package.json +19 -36
- package/src/container.ts +29 -21
- package/src/context-panel/index.ts +7 -8
- package/src/context-panel/main.module.sass +1 -1
- package/src/dev/main.module.sass +16 -0
- package/src/dev/map-page.ts +32 -11
- package/src/dev/vector-tile-features.ts +44 -13
- package/src/helpers.ts +15 -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 +28 -32
- package/dist/index.cjs.css +0 -961
- package/dist/index.cjs.css.map +0 -1
- package/dist/index.cjs.js +0 -1965
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/index.js +0 -1956
- 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":"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","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"}
|