@macrostrat/map-interface 1.1.0 → 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.
Files changed (133) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/container.72611900.js +134 -0
  3. package/dist/cjs/container.72611900.js.map +1 -0
  4. package/dist/cjs/context-panel.8c4b009c.js +88 -0
  5. package/dist/cjs/context-panel.8c4b009c.js.map +1 -0
  6. package/dist/cjs/controls.7ce3e95c.js +79 -0
  7. package/dist/cjs/controls.7ce3e95c.js.map +1 -0
  8. package/dist/cjs/dev.7499151f.js +33 -0
  9. package/dist/cjs/dev.7499151f.js.map +1 -0
  10. package/dist/cjs/expansion-panel.08532cee.js +134 -0
  11. package/dist/cjs/expansion-panel.08532cee.js.map +1 -0
  12. package/dist/cjs/hash-string.62e84f08.js +67 -0
  13. package/dist/cjs/hash-string.62e84f08.js.map +1 -0
  14. package/dist/cjs/header.58c5c012.js +104 -0
  15. package/dist/cjs/header.58c5c012.js.map +1 -0
  16. package/dist/cjs/headers.20eae5f7.js +29 -0
  17. package/dist/cjs/headers.20eae5f7.js.map +1 -0
  18. package/dist/cjs/helpers.0f72ddaf.js +190 -0
  19. package/dist/cjs/helpers.0f72ddaf.js.map +1 -0
  20. package/dist/cjs/index.js +51 -0
  21. package/dist/cjs/index.js.map +1 -0
  22. package/dist/cjs/location-info.92e70042.js +119 -0
  23. package/dist/cjs/location-info.92e70042.js.map +1 -0
  24. package/dist/cjs/location-panel.c95f5e96.js +66 -0
  25. package/dist/cjs/location-panel.c95f5e96.js.map +1 -0
  26. package/dist/cjs/main.module.02c4de16.css +86 -0
  27. package/dist/cjs/main.module.02c4de16.css.map +1 -0
  28. package/dist/cjs/main.module.3f2b7c9f.js +38 -0
  29. package/dist/cjs/main.module.3f2b7c9f.js.map +1 -0
  30. package/dist/cjs/main.module.4ecbaaa5.js +62 -0
  31. package/dist/cjs/main.module.4ecbaaa5.js.map +1 -0
  32. package/dist/cjs/main.module.62939ea7.js +167 -0
  33. package/dist/cjs/main.module.62939ea7.js.map +1 -0
  34. package/dist/cjs/main.module.92978d8b.css +52 -0
  35. package/dist/cjs/main.module.92978d8b.css.map +1 -0
  36. package/dist/cjs/main.module.becc2fe7.css +92 -0
  37. package/dist/cjs/main.module.becc2fe7.css.map +1 -0
  38. package/dist/cjs/main.module.ccec47df.js +50 -0
  39. package/dist/cjs/main.module.ccec47df.js.map +1 -0
  40. package/dist/cjs/main.module.e958948e.js +26 -0
  41. package/dist/cjs/main.module.e958948e.js.map +1 -0
  42. package/dist/{index.css → cjs/main.module.f085a193.css} +9 -397
  43. package/dist/cjs/main.module.f085a193.css.map +1 -0
  44. package/dist/cjs/main.module.ff1b1aca.css +179 -0
  45. package/dist/cjs/main.module.ff1b1aca.css.map +1 -0
  46. package/dist/cjs/map-page.190b6723.js +182 -0
  47. package/dist/cjs/map-page.190b6723.js.map +1 -0
  48. package/dist/cjs/map-view.93363b41.js +167 -0
  49. package/dist/cjs/map-view.93363b41.js.map +1 -0
  50. package/dist/cjs/terrain.90f76b4e.js +59 -0
  51. package/dist/cjs/terrain.90f76b4e.js.map +1 -0
  52. package/dist/cjs/tile-extent.06a4b2ed.js +51 -0
  53. package/dist/cjs/tile-extent.06a4b2ed.js.map +1 -0
  54. package/dist/cjs/utils.09cef979.js +36 -0
  55. package/dist/cjs/utils.09cef979.js.map +1 -0
  56. package/dist/cjs/utils.26f02633.js +46 -0
  57. package/dist/cjs/utils.26f02633.js.map +1 -0
  58. package/dist/cjs/vector-tile-features.456f887b.js +268 -0
  59. package/dist/cjs/vector-tile-features.456f887b.js.map +1 -0
  60. package/dist/cjs/xray.a23f8660.js +89 -0
  61. package/dist/cjs/xray.a23f8660.js.map +1 -0
  62. package/dist/esm/container.16bde261.js +126 -0
  63. package/dist/esm/container.16bde261.js.map +1 -0
  64. package/dist/esm/context-panel.c288c5cd.js +81 -0
  65. package/dist/esm/context-panel.c288c5cd.js.map +1 -0
  66. package/dist/esm/controls.f757ce16.js +74 -0
  67. package/dist/esm/controls.f757ce16.js.map +1 -0
  68. package/dist/esm/dev.ccb6e774.js +13 -0
  69. package/dist/esm/dev.ccb6e774.js.map +1 -0
  70. package/dist/esm/expansion-panel.feff0e62.js +123 -0
  71. package/dist/esm/expansion-panel.feff0e62.js.map +1 -0
  72. package/dist/esm/hash-string.836601b2.js +61 -0
  73. package/dist/esm/hash-string.836601b2.js.map +1 -0
  74. package/dist/esm/header.0f535ab1.js +99 -0
  75. package/dist/esm/header.0f535ab1.js.map +1 -0
  76. package/dist/esm/headers.b25ff414.js +24 -0
  77. package/dist/esm/headers.b25ff414.js.map +1 -0
  78. package/dist/esm/helpers.fb1d7227.js +176 -0
  79. package/dist/esm/helpers.fb1d7227.js.map +1 -0
  80. package/dist/{types.d.ts → esm/index.d.ts} +102 -51
  81. package/dist/esm/index.d.ts.map +1 -0
  82. package/dist/esm/index.js +25 -0
  83. package/dist/esm/index.js.map +1 -0
  84. package/dist/esm/location-info.5543bb05.js +89 -0
  85. package/dist/esm/location-info.5543bb05.js.map +1 -0
  86. package/dist/esm/location-panel.0b1f4ed2.js +58 -0
  87. package/dist/esm/location-panel.0b1f4ed2.js.map +1 -0
  88. package/dist/esm/main.module.5eb366de.js +52 -0
  89. package/dist/esm/main.module.5eb366de.js.map +1 -0
  90. package/dist/esm/main.module.67a908da.js +40 -0
  91. package/dist/esm/main.module.67a908da.js.map +1 -0
  92. package/dist/esm/main.module.89579666.js +64 -0
  93. package/dist/esm/main.module.89579666.js.map +1 -0
  94. package/dist/esm/main.module.9c57cc95.js +28 -0
  95. package/dist/esm/main.module.9c57cc95.js.map +1 -0
  96. package/dist/esm/main.module.f70e002b.js +169 -0
  97. package/dist/esm/main.module.f70e002b.js.map +1 -0
  98. package/dist/esm/map-page.b953c404.js +175 -0
  99. package/dist/esm/map-page.b953c404.js.map +1 -0
  100. package/dist/esm/map-view.a3fe6257.js +161 -0
  101. package/dist/esm/map-view.a3fe6257.js.map +1 -0
  102. package/dist/esm/terrain.f65cf7c5.js +54 -0
  103. package/dist/esm/terrain.f65cf7c5.js.map +1 -0
  104. package/dist/esm/tile-extent.ca526996.js +46 -0
  105. package/dist/esm/tile-extent.ca526996.js.map +1 -0
  106. package/dist/esm/utils.122d1f2d.js +28 -0
  107. package/dist/esm/utils.122d1f2d.js.map +1 -0
  108. package/dist/esm/utils.d40349f0.js +40 -0
  109. package/dist/esm/utils.d40349f0.js.map +1 -0
  110. package/dist/esm/vector-tile-features.e1a24df0.js +258 -0
  111. package/dist/esm/vector-tile-features.e1a24df0.js.map +1 -0
  112. package/dist/esm/xray.c0663c25.js +83 -0
  113. package/dist/esm/xray.c0663c25.js.map +1 -0
  114. package/package.json +19 -36
  115. package/src/container.ts +29 -21
  116. package/src/context-panel/index.ts +4 -4
  117. package/src/context-panel/main.module.sass +1 -1
  118. package/src/dev/main.module.sass +16 -0
  119. package/src/dev/map-page.ts +19 -4
  120. package/src/dev/vector-tile-features.ts +44 -13
  121. package/src/location-panel/header.ts +27 -8
  122. package/src/location-panel/index.ts +4 -2
  123. package/src/location-panel/main.module.sass +7 -0
  124. package/src/main.module.sass +4 -1
  125. package/src/map-view/index.ts +1 -1
  126. package/dist/index.cjs.css +0 -961
  127. package/dist/index.cjs.css.map +0 -1
  128. package/dist/index.cjs.js +0 -1954
  129. package/dist/index.cjs.js.map +0 -1
  130. package/dist/index.css.map +0 -1
  131. package/dist/index.js +0 -1945
  132. package/dist/index.js.map +0 -1
  133. package/dist/types.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. The format
4
4
  is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this
5
5
  project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.2.0] - 2025-02-14
8
+
9
+ - Make several dependencies more explicit
10
+ - Create an option for the sidebar to focus on a region as well as a point
11
+ - Streamline code
12
+ - Create stories
13
+
7
14
  ## [1.1.0] - 2024-11-16
8
15
 
9
16
  - Improve map state management with `zustand` (in `@macrostrat/mapbox-react`)
@@ -0,0 +1,134 @@
1
+ var $35f1bc0112883d51$exports = require("./main.module.62939ea7.js");
2
+ require("./main.module.f085a193.css");
3
+ var $f333fe6f49373ca9$exports = require("./controls.7ce3e95c.js");
4
+ var $4Qxhf$macrostrathyper = require("@macrostrat/hyper");
5
+ var $4Qxhf$classnames = require("classnames");
6
+ var $4Qxhf$transitionhook = require("transition-hook");
7
+ var $4Qxhf$macrostratmapboxreact = require("@macrostrat/mapbox-react");
8
+ var $4Qxhf$macrostratuicomponents = require("@macrostrat/ui-components");
9
+ var $4Qxhf$macrostratmapboxutils = require("@macrostrat/mapbox-utils");
10
+ var $4Qxhf$blueprintjscore = require("@blueprintjs/core");
11
+
12
+
13
+ function $parcel$interopDefault(a) {
14
+ return a && a.__esModule ? a.default : a;
15
+ }
16
+
17
+ function $parcel$export(e, n, v, s) {
18
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
19
+ }
20
+
21
+ $parcel$export(module.exports, "PanelCard", () => $c3311f59335df34d$export$ec68dd77edbe678b);
22
+ $parcel$export(module.exports, "DetailPanelStyle", () => $c3311f59335df34d$export$612ca936d3ed4784);
23
+ $parcel$export(module.exports, "MapAreaContainer", () => $c3311f59335df34d$export$9fa5da0bcfd0a290);
24
+ $parcel$export(module.exports, "MapStyledContainer", () => $c3311f59335df34d$export$fa395a37c3898ae3);
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ const $c3311f59335df34d$var$h = (0, ($parcel$interopDefault($4Qxhf$macrostrathyper))).styled((0, ($parcel$interopDefault($35f1bc0112883d51$exports))));
35
+ const $c3311f59335df34d$export$ec68dd77edbe678b = (props)=>$c3311f59335df34d$var$h((0, $4Qxhf$blueprintjscore.Card), {
36
+ ...props,
37
+ className: (0, ($parcel$interopDefault($4Qxhf$classnames)))("panel-card", props.className)
38
+ });
39
+ var $c3311f59335df34d$export$612ca936d3ed4784 = /*#__PURE__*/ function(DetailPanelStyle) {
40
+ DetailPanelStyle["FIXED"] = "fixed";
41
+ DetailPanelStyle["FLOATING"] = "floating";
42
+ return DetailPanelStyle;
43
+ }({});
44
+ const $c3311f59335df34d$export$9fa5da0bcfd0a290 = (props)=>$c3311f59335df34d$var$h($c3311f59335df34d$var$MapProviders, $c3311f59335df34d$var$h($c3311f59335df34d$var$_MapAreaContainer, props));
45
+ function $c3311f59335df34d$var$_MapAreaContainer({ children: children, className: className, navbar: navbar, contextPanel: contextPanel = null, detailPanel: detailPanel = null, detailPanelOpen: detailPanelOpen, contextPanelOpen: contextPanelOpen = true, bottomPanel: bottomPanel = null, mainPanel: mainPanel, mapControls: mapControls = $c3311f59335df34d$var$h((0, $f333fe6f49373ca9$exports.MapBottomControls)), contextStackProps: contextStackProps = null, detailStackProps: detailStackProps = null, detailPanelStyle: detailPanelStyle = "floating", fitViewport: fitViewport = true, showPanelOutlines: showPanelOutlines = false, preventMapInteraction: preventMapInteraction = false, ...rest }) {
46
+ const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;
47
+ const contextPanelTrans = (0, $4Qxhf$transitionhook.useTransition)(contextPanelOpen, 800);
48
+ const detailPanelTrans = (0, $4Qxhf$transitionhook.useTransition)(_detailPanelOpen, 800);
49
+ /*- We apply a custom style to the panel container when we are interacting
50
+ with the search bar, so that we can block map interactions until search
51
+ bar focus is lost.
52
+ - We also apply a custom style when the infodrawer is open so we can hide
53
+ the search bar on mobile platforms
54
+ - These styles are doubly applied so we can have both namespaced and
55
+ outside-accessible styles for each case.
56
+ */ const mainUIClassNames = (0, ($parcel$interopDefault($4Qxhf$classnames)))("map-container", className, `detail-panel-${detailPanelStyle}`, `context-panel-${contextPanelTrans.stage}`, `map-context-${contextPanelTrans.stage}`, `detail-panel-${detailPanelTrans.stage}`, `map-detail-${detailPanelTrans.stage}`, {
57
+ "detail-panel-open": _detailPanelOpen,
58
+ "map-context-open": contextPanelOpen,
59
+ "show-panel-outlines": showPanelOutlines,
60
+ "fit-viewport": fitViewport
61
+ });
62
+ const mapControlsExt = $c3311f59335df34d$var$h([
63
+ $c3311f59335df34d$var$h((0, $4Qxhf$macrostratmapboxreact.ZoomControl), {
64
+ className: "zoom-control"
65
+ }),
66
+ $c3311f59335df34d$var$h("div.spacer"),
67
+ mapControls
68
+ ]);
69
+ const detailStackExt = $c3311f59335df34d$var$h("div.detail-stack.infodrawer-container", detailStackProps, [
70
+ $c3311f59335df34d$var$h("div.detail-panel-holder", null, detailPanel),
71
+ $c3311f59335df34d$var$h.if(detailPanelStyle == "floating")([
72
+ mapControlsExt
73
+ ])
74
+ ]);
75
+ let contextStack = null;
76
+ if (navbar != null && contextPanel != null) contextStack = $c3311f59335df34d$var$h($c3311f59335df34d$var$ContextStack, {
77
+ navbar: navbar,
78
+ ...contextStackProps
79
+ }, [
80
+ $c3311f59335df34d$var$h.if(contextPanelTrans.shouldMount)([
81
+ contextPanel
82
+ ])
83
+ ]);
84
+ return $c3311f59335df34d$var$h($c3311f59335df34d$export$fa395a37c3898ae3, {
85
+ className: mainUIClassNames
86
+ }, [
87
+ $c3311f59335df34d$var$h("div.main-row", [
88
+ $c3311f59335df34d$var$h("div.map-ui", {
89
+ ...rest
90
+ }, [
91
+ contextStack,
92
+ //h(MapView),
93
+ children ?? mainPanel,
94
+ $c3311f59335df34d$var$h.if(detailPanelStyle == "floating")([
95
+ detailStackExt
96
+ ]),
97
+ $c3311f59335df34d$var$h.if(detailPanelStyle == "fixed")("div.map-control-stack", mapControlsExt)
98
+ ]),
99
+ $c3311f59335df34d$var$h.if(detailPanelStyle == "fixed")([
100
+ detailStackExt
101
+ ])
102
+ ]),
103
+ $c3311f59335df34d$var$h("div.bottom", null, bottomPanel)
104
+ ]);
105
+ }
106
+ function $c3311f59335df34d$var$ContextStack(props) {
107
+ const { adaptiveWidth: adaptiveWidth, navbar: navbar, children: children, ...rest } = props;
108
+ const props1 = (0, $4Qxhf$macrostrathyper.addClassNames)(rest, {
109
+ "adaptive-width": adaptiveWidth
110
+ });
111
+ return $c3311f59335df34d$var$h("div.context-stack", props1, [
112
+ navbar,
113
+ $c3311f59335df34d$var$h("div.context-panel-holder", null, children),
114
+ $c3311f59335df34d$var$h("div.spacer")
115
+ ]);
116
+ }
117
+ const $c3311f59335df34d$var$MapProviders = ({ children: children })=>$c3311f59335df34d$var$h((0, $4Qxhf$macrostratuicomponents.ToasterContext), $c3311f59335df34d$var$h((0, $4Qxhf$macrostratmapboxreact.MapboxMapProvider), children));
118
+ function $c3311f59335df34d$export$fa395a37c3898ae3({ className: className, children: children }) {
119
+ const mapPosition = (0, $4Qxhf$macrostratmapboxreact.useMapPosition)();
120
+ if (mapPosition != null) {
121
+ const { mapIsRotated: mapIsRotated, mapUse3D: mapUse3D, mapIsGlobal: mapIsGlobal } = (0, $4Qxhf$macrostratmapboxutils.mapViewInfo)(mapPosition);
122
+ className = (0, ($parcel$interopDefault($4Qxhf$classnames)))(className, {
123
+ "map-is-rotated": mapIsRotated,
124
+ "map-3d-available": mapUse3D,
125
+ "map-is-global": mapIsGlobal
126
+ });
127
+ }
128
+ return $c3311f59335df34d$var$h("div", {
129
+ className: className
130
+ }, children);
131
+ } //const _MapPage = compose(HotkeysProvider, MapPage);
132
+
133
+
134
+ //# sourceMappingURL=container.72611900.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/map-interface/src/container.ts"],"sourcesContent":["import hyper, { addClassNames } from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\ninterface ContextStackProps extends HTMLDivProps {\n adaptiveWidth: boolean;\n navbar: AnyElement;\n}\n\nexport enum DetailPanelStyle {\n FIXED = \"fixed\",\n FLOATING = \"floating\",\n}\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapAreaContainerProps {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n contextStack?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: ContextStackProps;\n detailStackProps?: HTMLDivProps;\n detailPanelStyle: DetailPanelStyle;\n fitViewport?: boolean;\n showPanelOutlines?: boolean;\n preventMapInteraction?: boolean;\n}\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n detailPanelStyle = DetailPanelStyle.FLOATING,\n fitViewport = true,\n showPanelOutlines = false,\n preventMapInteraction = false,\n ...rest\n}: MapAreaContainerProps) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\n\n /*- We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n - We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const mainUIClassNames = classNames(\n \"map-container\",\n className,\n `detail-panel-${detailPanelStyle}`,\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`,\n {\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": contextPanelOpen,\n \"show-panel-outlines\": showPanelOutlines,\n \"fit-viewport\": fitViewport,\n }\n );\n\n const mapControlsExt = h([\n h(ZoomControl, { className: \"zoom-control\" }),\n h(\"div.spacer\"),\n mapControls,\n ]);\n\n const detailStackExt = h(\n \"div.detail-stack.infodrawer-container\",\n detailStackProps,\n [\n h(\"div.detail-panel-holder\", null, detailPanel),\n h.if(detailPanelStyle == DetailPanelStyle.FLOATING)([mapControlsExt]),\n ]\n );\n\n let contextStack = null;\n if (navbar != null && contextPanel != null) {\n contextStack = h(ContextStack, { navbar, ...contextStackProps }, [\n h.if(contextPanelTrans.shouldMount)([contextPanel]),\n ]);\n }\n\n return h(MapStyledContainer, { className: mainUIClassNames }, [\n h(\"div.main-row\", [\n h(\"div.map-ui\", { ...rest }, [\n contextStack,\n //h(MapView),\n children ?? mainPanel,\n h.if(detailPanelStyle == DetailPanelStyle.FLOATING)([detailStackExt]),\n h.if(detailPanelStyle == DetailPanelStyle.FIXED)(\n \"div.map-control-stack\",\n mapControlsExt\n ),\n ]),\n h.if(detailPanelStyle == DetailPanelStyle.FIXED)([detailStackExt]),\n ]),\n h(\"div.bottom\", null, bottomPanel),\n ]);\n}\n\nfunction ContextStack(props: ContextStackProps) {\n const { adaptiveWidth, navbar, children, ...rest } = props;\n const props1 = addClassNames(rest, { \"adaptive-width\": adaptiveWidth });\n return h(\"div.context-stack\", props1, [\n navbar,\n h(\"div.context-panel-holder\", null, children),\n h(\"div.spacer\"),\n ]);\n}\n\nconst MapProviders = ({ children }) =>\n h(ToasterContext, h(MapboxMapProvider, children));\n\ninterface MapContainerProps {\n className?: string;\n children?: ReactNode;\n}\n\nexport function MapStyledContainer({ className, children }: MapContainerProps) {\n const mapPosition = useMapPosition();\n if (mapPosition != null) {\n const { mapIsRotated, mapUse3D, mapIsGlobal } = mapViewInfo(mapPosition);\n className = classNames(className, {\n \"map-is-rotated\": mapIsRotated,\n \"map-3d-available\": mapUse3D,\n \"map-is-global\": mapIsGlobal,\n });\n }\n\n return h(\"div\", { className }, children);\n}\n\n//const _MapPage = compose(HotkeysProvider, MapPage);\n"],"names":[],"version":3,"file":"container.72611900.js.map"}
@@ -0,0 +1,88 @@
1
+ require("./main.module.92978d8b.css");
2
+ var $7a1b0f72a2e7f87d$exports = require("./main.module.e958948e.js");
3
+ var $gcA2U$blueprintjscore = require("@blueprintjs/core");
4
+ var $gcA2U$macrostrathyper = require("@macrostrat/hyper");
5
+ var $gcA2U$macrostratmapboxreact = require("@macrostrat/mapbox-react");
6
+ var $gcA2U$macrostratuicomponents = require("@macrostrat/ui-components");
7
+
8
+
9
+ function $parcel$interopDefault(a) {
10
+ return a && a.__esModule ? a.default : a;
11
+ }
12
+
13
+ function $parcel$export(e, n, v, s) {
14
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
15
+ }
16
+
17
+ $parcel$export(module.exports, "LoadingButton", () => $fce5fc950d1fe35b$export$4ec83e90d030b2f3);
18
+ $parcel$export(module.exports, "MapLoadingButton", () => $fce5fc950d1fe35b$export$9e3bae3c08bde368);
19
+ $parcel$export(module.exports, "FloatingNavbar", () => $fce5fc950d1fe35b$export$a8cc0062d02a3841);
20
+
21
+
22
+
23
+
24
+
25
+ const $fce5fc950d1fe35b$var$h = (0, ($parcel$interopDefault($gcA2U$macrostrathyper))).styled((0, ($parcel$interopDefault($7a1b0f72a2e7f87d$exports))));
26
+ const $fce5fc950d1fe35b$var$spinnerElement = $fce5fc950d1fe35b$var$h((0, $gcA2U$blueprintjscore.Spinner), {
27
+ size: 16
28
+ });
29
+ function $fce5fc950d1fe35b$export$4ec83e90d030b2f3({ isLoading: isLoading = false, onClick: onClick, active: active = false, large: large = true, icon: icon = "menu", style: style }) {
30
+ return $fce5fc950d1fe35b$var$h((0, $gcA2U$blueprintjscore.Button), {
31
+ className: "loading-button",
32
+ icon: isLoading ? $fce5fc950d1fe35b$var$spinnerElement : icon,
33
+ large: large,
34
+ minimal: true,
35
+ onClick: onClick,
36
+ active: active && !isLoading,
37
+ style: style
38
+ });
39
+ }
40
+ function $fce5fc950d1fe35b$export$9e3bae3c08bde368(props) {
41
+ const isLoading = (0, $gcA2U$macrostratmapboxreact.useMapStatus)((s)=>s.isLoading);
42
+ return $fce5fc950d1fe35b$var$h($fce5fc950d1fe35b$export$4ec83e90d030b2f3, {
43
+ ...props,
44
+ isLoading: isLoading
45
+ });
46
+ }
47
+ function $fce5fc950d1fe35b$export$a8cc0062d02a3841({ className: className, children: children, headerElement: headerElement = null, title: title = null, statusElement: statusElement = null, rightElement: rightElement = null, height: height, width: width, style: style = {} }) {
48
+ let _rightElement = null;
49
+ if (rightElement != null) _rightElement = $fce5fc950d1fe35b$var$h("div.right-element", rightElement);
50
+ let _headerElement = headerElement;
51
+ if (title != null && _headerElement == null) {
52
+ if (typeof title === "string") _headerElement = $fce5fc950d1fe35b$var$h((0, $gcA2U$blueprintjscore.Text), {
53
+ tagName: "h2",
54
+ ellipsize: true
55
+ }, title);
56
+ else _headerElement = title;
57
+ }
58
+ if (_headerElement != null) _headerElement = $fce5fc950d1fe35b$var$h([
59
+ _headerElement,
60
+ $fce5fc950d1fe35b$var$h((0, $gcA2U$macrostratuicomponents.Spacer))
61
+ ]);
62
+ return $fce5fc950d1fe35b$var$h("div.searchbar-holder", {
63
+ className: className,
64
+ style: {
65
+ width: width
66
+ }
67
+ }, [
68
+ $fce5fc950d1fe35b$var$h("div.navbar-holder", [
69
+ $fce5fc950d1fe35b$var$h((0, $gcA2U$blueprintjscore.Navbar), {
70
+ className: "searchbar navbar panel",
71
+ style: {
72
+ height: height,
73
+ ...style
74
+ }
75
+ }, [
76
+ _headerElement,
77
+ children,
78
+ _rightElement
79
+ ])
80
+ ]),
81
+ $fce5fc950d1fe35b$var$h.if(statusElement != null)((0, $gcA2U$blueprintjscore.Card), {
82
+ className: "status-tongue"
83
+ }, statusElement)
84
+ ]);
85
+ }
86
+
87
+
88
+ //# sourceMappingURL=context-panel.8c4b009c.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAE5B,MAAM,uCAAiB,wBAAE,CAAA,GAAA,8BAAM,GAAG;IAAE,MAAM;AAAG;AAEtC,SAAS,0CAAc,aAC5B,YAAY,gBACZ,OAAO,UACP,SAAS,cACT,QAAQ,YACR,OAAO,eACP,KAAK,EACN;IACC,OAAO,wBAAE,CAAA,GAAA,6BAAK,GAAG;QACf,WAAW;QACX,MAAM,YAAY,uCAAiB;eACnC;QACA,SAAS;iBACT;QACA,QAAQ,UAAU,CAAC;eACnB;IACF;AACF;AAEO,SAAS,0CAAiB,KAAK;IACpC,MAAM,YAAY,CAAA,GAAA,yCAAW,EAAE,CAAC,IAAM,EAAE,SAAS;IACjD,OAAO,wBAAE,2CAAe;QAAE,GAAG,KAAK;mBAAE;IAAU;AAChD;AAgBO,SAAS,0CAAe,aAC7B,SAAS,YACT,QAAQ,iBACR,gBAAgB,aAChB,QAAQ,qBACR,gBAAgB,oBAChB,eAAe,cACf,MAAM,SACN,KAAK,SACL,QAAQ,CAAC,GACW;IACpB,IAAI,gBAAwC;IAC5C,IAAI,gBAAgB,MAClB,gBAAgB,wBAAE,qBAAqB;IAGzC,IAAI,iBAAyC;IAC7C,IAAI,SAAS,QAAQ,kBAAkB;QACrC,IAAI,OAAO,UAAU,UACnB,iBAAiB,wBAAE,CAAA,GAAA,2BAAG,GAAG;YAAE,SAAS;YAAM,WAAW;QAAK,GAAG;aAE7D,iBAAiB;;IAIrB,IAAI,kBAAkB,MACpB,iBAAiB,wBAAE;QAAC;QAAgB,wBAAE,CAAA,GAAA,oCAAK;KAAG;IAGhD,OAAO,wBAAE,wBAAwB;mBAAE;QAAW,OAAO;mBAAE;QAAM;IAAE,GAAG;QAChE,wBAAE,qBAAqB;YACrB,wBACE,CAAA,GAAA,6BAAK,GACL;gBACE,WAAW;gBACX,OAAO;4BAAE;oBAAQ,GAAG,KAAK;gBAAC;YAC5B,GACA;gBAAC;gBAAgB;gBAAU;aAAc;SAE5C;QACD,wBAAE,EAAE,CAAC,iBAAiB,MACpB,CAAA,GAAA,2BAAG,GACH;YAAE,WAAW;QAAgB,GAC7B;KAEH;AACH","sources":["packages/map-interface/src/context-panel/index.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { Navbar, Button, Spinner, Card, Text } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMapStatus } from \"@macrostrat/mapbox-react\";\nimport { Spacer } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nconst spinnerElement = h(Spinner, { size: 16 });\n\nexport function LoadingButton({\n isLoading = false,\n onClick,\n active = false,\n large = true,\n icon = \"menu\",\n style,\n}) {\n return h(Button, {\n className: \"loading-button\",\n icon: isLoading ? spinnerElement : icon,\n large,\n minimal: true,\n onClick,\n active: active && !isLoading,\n style,\n });\n}\n\nexport function MapLoadingButton(props) {\n const isLoading = useMapStatus((s) => s.isLoading);\n return h(LoadingButton, { ...props, isLoading });\n}\n\ntype AnyChildren = React.ReactNode;\n\nexport interface FloatingNavbarProps {\n className?: string;\n children?: AnyChildren;\n headerElement?: AnyChildren;\n title?: AnyChildren;\n statusElement?: AnyChildren;\n rightElement?: AnyChildren;\n height?: number | string;\n width?: number | string;\n style?: object;\n}\n\nexport function FloatingNavbar({\n className,\n children,\n headerElement = null,\n title = null,\n statusElement = null,\n rightElement = null,\n height,\n width,\n style = {},\n}: FloatingNavbarProps) {\n let _rightElement: React.ReactNode | null = null;\n if (rightElement != null) {\n _rightElement = h(\"div.right-element\", rightElement);\n }\n\n let _headerElement: React.ReactNode | null = headerElement;\n if (title != null && _headerElement == null) {\n if (typeof title === \"string\") {\n _headerElement = h(Text, { tagName: \"h2\", ellipsize: true }, title);\n } else {\n _headerElement = title;\n }\n }\n\n if (_headerElement != null) {\n _headerElement = h([_headerElement, h(Spacer)]);\n }\n\n return h(\"div.searchbar-holder\", { className, style: { width } }, [\n h(\"div.navbar-holder\", [\n h(\n Navbar,\n {\n className: \"searchbar navbar panel\",\n style: { height, ...style },\n },\n [_headerElement, children, _rightElement]\n ),\n ]),\n h.if(statusElement != null)(\n Card,\n { className: \"status-tongue\" },\n statusElement\n ),\n ]);\n}\n"],"names":[],"version":3,"file":"context-panel.8c4b009c.js.map"}
@@ -0,0 +1,79 @@
1
+ var $35f1bc0112883d51$exports = require("./main.module.62939ea7.js");
2
+ require("./main.module.f085a193.css");
3
+ var $9ks7g$react = require("react");
4
+ var $9ks7g$mapboxgl = require("mapbox-gl");
5
+ var $9ks7g$macrostrathyper = require("@macrostrat/hyper");
6
+ var $9ks7g$macrostratmapboxreact = require("@macrostrat/mapbox-react");
7
+ var $9ks7g$macrostratuicomponents = require("@macrostrat/ui-components");
8
+
9
+
10
+ function $parcel$interopDefault(a) {
11
+ return a && a.__esModule ? a.default : a;
12
+ }
13
+
14
+ function $parcel$export(e, n, v, s) {
15
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
16
+ }
17
+
18
+ $parcel$export(module.exports, "MapBottomControls", () => $f333fe6f49373ca9$export$db1a2e058a06fb5c);
19
+
20
+
21
+
22
+
23
+
24
+
25
+ const $f333fe6f49373ca9$var$h = (0, ($parcel$interopDefault($9ks7g$macrostrathyper))).styled((0, ($parcel$interopDefault($35f1bc0112883d51$exports))));
26
+ function $f333fe6f49373ca9$var$ScaleControl(props) {
27
+ const optionsRef = (0, $9ks7g$react.useRef)({
28
+ maxWidth: 200,
29
+ unit: "metric"
30
+ });
31
+ return $f333fe6f49373ca9$var$h((0, $9ks7g$macrostratmapboxreact.MapControlWrapper), {
32
+ className: "map-scale-control",
33
+ control: (0, $9ks7g$mapboxgl.ScaleControl),
34
+ options: optionsRef.current,
35
+ ...props
36
+ });
37
+ }
38
+ function $f333fe6f49373ca9$var$GeolocationControl(props) {
39
+ const optionsRef = (0, $9ks7g$react.useRef)({
40
+ showAccuracyCircle: true,
41
+ showUserLocation: true,
42
+ trackUserLocation: true,
43
+ positionOptions: {
44
+ enableHighAccuracy: true
45
+ }
46
+ });
47
+ return $f333fe6f49373ca9$var$h((0, $9ks7g$macrostratmapboxreact.MapControlWrapper), {
48
+ control: (0, $9ks7g$mapboxgl.GeolocateControl),
49
+ options: optionsRef.current,
50
+ ...props
51
+ });
52
+ }
53
+ function $f333fe6f49373ca9$export$db1a2e058a06fb5c({ children: children }) {
54
+ const { isInitialized: isInitialized } = (0, $9ks7g$macrostratmapboxreact.useMapStatus)();
55
+ if (!isInitialized) return null;
56
+ return $f333fe6f49373ca9$var$h("div.map-controls", [
57
+ $f333fe6f49373ca9$var$h($f333fe6f49373ca9$var$ScaleControl),
58
+ $f333fe6f49373ca9$var$h((0, $9ks7g$macrostratmapboxreact.ThreeDControl), {
59
+ className: "map-3d-control"
60
+ }),
61
+ $f333fe6f49373ca9$var$h((0, $9ks7g$macrostratmapboxreact.CompassControl), {
62
+ className: "compass-control"
63
+ }),
64
+ $f333fe6f49373ca9$var$h((0, $9ks7g$macrostratmapboxreact.GlobeControl), {
65
+ className: "globe-control"
66
+ }),
67
+ $f333fe6f49373ca9$var$h($f333fe6f49373ca9$var$GeolocationControl, {
68
+ className: "geolocation-control"
69
+ }),
70
+ // If we have global development tools enabled, show the button
71
+ $f333fe6f49373ca9$var$h((0, $9ks7g$macrostratuicomponents.DevToolsButtonSlot), {
72
+ className: "map-control"
73
+ }),
74
+ children
75
+ ]);
76
+ }
77
+
78
+
79
+ //# sourceMappingURL=controls.7ce3e95c.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAE5B,SAAS,mCAAa,KAAK;IACzB,MAAM,aAAa,CAAA,GAAA,mBAAK,EAAE;QACxB,UAAU;QACV,MAAM;IACR;IACA,OAAO,wBAAE,CAAA,GAAA,8CAAgB,GAAG;QAC1B,WAAW;QACX,SAAS,CAAA,GAAA,4BAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEA,SAAS,yCAAmB,KAAK;IAC/B,MAAM,aAAa,CAAA,GAAA,mBAAK,EAAE;QACxB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;YACf,oBAAoB;QACtB;IACF;IACA,OAAO,wBAAE,CAAA,GAAA,8CAAgB,GAAG;QAC1B,SAAS,CAAA,GAAA,gCAAe;QACxB,SAAS,WAAW,OAAO;QAC3B,GAAG,KAAK;IACV;AACF;AAEO,SAAS,0CAAkB,YAAE,QAAQ,EAAE;IAC5C,MAAM,iBAAE,aAAa,EAAE,GAAG,CAAA,GAAA,yCAAW;IAErC,IAAI,CAAC,eACH,OAAO;IAGT,OAAO,wBAAE,oBAAoB;QAC3B,wBAAE;QACF,wBAAE,CAAA,GAAA,0CAAY,GAAG;YAAE,WAAW;QAAiB;QAC/C,wBAAE,CAAA,GAAA,2CAAa,GAAG;YAAE,WAAW;QAAkB;QACjD,wBAAE,CAAA,GAAA,yCAAW,GAAG;YAAE,WAAW;QAAgB;QAC7C,wBAAE,0CAAoB;YAAE,WAAW;QAAsB;QACzD,+DAA+D;QAC/D,wBAAE,CAAA,GAAA,gDAAiB,GAAG;YAAE,WAAW;QAAc;QACjD;KACD;AACH","sources":["packages/map-interface/src/controls.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\nimport { DevToolsButtonSlot } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls({ children }) {\n const { isInitialized } = useMapStatus();\n\n if (!isInitialized) {\n return null;\n }\n\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n // If we have global development tools enabled, show the button\n h(DevToolsButtonSlot, { className: \"map-control\" }),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"controls.7ce3e95c.js.map"}
@@ -0,0 +1,33 @@
1
+ var $6f5ca387ac26c0b5$exports = require("./map-page.190b6723.js");
2
+ var $abbe8d0af34cbbed$exports = require("./tile-extent.06a4b2ed.js");
3
+ var $db14eb7a5c07abdb$exports = require("./vector-tile-features.456f887b.js");
4
+ var $8646508ae99a5857$exports = require("./xray.a23f8660.js");
5
+
6
+
7
+ function $parcel$exportWildcard(dest, source) {
8
+ Object.keys(source).forEach(function(key) {
9
+ if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {
10
+ return;
11
+ }
12
+
13
+ Object.defineProperty(dest, key, {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return source[key];
17
+ }
18
+ });
19
+ });
20
+
21
+ return dest;
22
+ }
23
+
24
+
25
+
26
+
27
+ $parcel$exportWildcard(module.exports, $6f5ca387ac26c0b5$exports);
28
+ $parcel$exportWildcard(module.exports, $abbe8d0af34cbbed$exports);
29
+ $parcel$exportWildcard(module.exports, $db14eb7a5c07abdb$exports);
30
+ $parcel$exportWildcard(module.exports, $8646508ae99a5857$exports);
31
+
32
+
33
+ //# sourceMappingURL=dev.7499151f.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.7499151f.js.map"}
@@ -0,0 +1,134 @@
1
+ var $b1c160aff794b8f5$exports = require("./main.module.4ecbaaa5.js");
2
+ require("./main.module.ff1b1aca.css");
3
+ var $a0970d22776f9f4c$exports = require("./headers.20eae5f7.js");
4
+ var $fcjlG$react = require("react");
5
+ var $fcjlG$blueprintjscore = require("@blueprintjs/core");
6
+ var $fcjlG$macrostrathyper = require("@macrostrat/hyper");
7
+ var $fcjlG$classnames = require("classnames");
8
+
9
+
10
+ function $parcel$interopDefault(a) {
11
+ return a && a.__esModule ? a.default : a;
12
+ }
13
+
14
+ function $parcel$export(e, n, v, s) {
15
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
16
+ }
17
+
18
+ $parcel$export(module.exports, "ExpansionPanelSummary", () => $750d69d73bfbdc9a$export$cea00a9d724d5a32);
19
+ $parcel$export(module.exports, "InfoPanelSection", () => $750d69d73bfbdc9a$export$39c134eb0b07cf0e);
20
+ $parcel$export(module.exports, "ExpansionPanel", () => $750d69d73bfbdc9a$export$40e646e38e6ed100);
21
+ $parcel$export(module.exports, "SubExpansionPanel", () => $750d69d73bfbdc9a$export$d7160281aff7c3b8);
22
+ $parcel$export(module.exports, "ExpandableDetailsPanel", () => $750d69d73bfbdc9a$export$44ad9ff780615135);
23
+ $parcel$export(module.exports, "ExpansionBody", () => $750d69d73bfbdc9a$export$263416b670b3f129);
24
+ $parcel$export(module.exports, "PanelSubhead", () => $a0970d22776f9f4c$exports.PanelSubhead);
25
+
26
+
27
+
28
+
29
+
30
+
31
+ const $750d69d73bfbdc9a$var$h = (0, ($parcel$interopDefault($fcjlG$macrostrathyper))).styled((0, ($parcel$interopDefault($b1c160aff794b8f5$exports))));
32
+ function $750d69d73bfbdc9a$export$cea00a9d724d5a32(props) {
33
+ const { expanded: expanded, children: children, onChange: onChange, className: className, title: title, titleComponent: titleComponent } = props;
34
+ const icon = expanded ? "chevron-up" : "chevron-down";
35
+ return $750d69d73bfbdc9a$var$h((0, $a0970d22776f9f4c$exports.PanelSubhead), {
36
+ className: (0, ($parcel$interopDefault($fcjlG$classnames)))("expansion-panel-header", className),
37
+ onClick: onChange,
38
+ title: title,
39
+ component: titleComponent
40
+ }, [
41
+ children,
42
+ $750d69d73bfbdc9a$var$h((0, $fcjlG$blueprintjscore.Icon), {
43
+ icon: icon
44
+ })
45
+ ]);
46
+ }
47
+ function $750d69d73bfbdc9a$var$ExpansionPanelBase(props) {
48
+ let { title: title, titleComponent: titleComponent = "h3", children: children, expanded: expanded, helpText: helpText, onChange: onChange = ()=>{}, sideComponent: sideComponent = null, className: className } = props;
49
+ const [isOpen, setOpen] = (0, $fcjlG$react.useState)(expanded || false);
50
+ const onChange_ = ()=>{
51
+ onChange();
52
+ setOpen(!isOpen);
53
+ };
54
+ return $750d69d73bfbdc9a$var$h("div.expansion-panel-base", {
55
+ className: (0, ($parcel$interopDefault($fcjlG$classnames)))(className, {
56
+ expanded: isOpen,
57
+ collapsed: !isOpen
58
+ })
59
+ }, [
60
+ $750d69d73bfbdc9a$var$h($750d69d73bfbdc9a$export$cea00a9d724d5a32, {
61
+ onChange: onChange_,
62
+ expanded: isOpen,
63
+ title: title,
64
+ titleComponent: titleComponent
65
+ }, $750d69d73bfbdc9a$var$h("div.expansion-summary-title-help", [
66
+ $750d69d73bfbdc9a$var$h("span.expansion-panel-subtext", helpText),
67
+ " ",
68
+ sideComponent
69
+ ])),
70
+ $750d69d73bfbdc9a$var$h((0, $fcjlG$blueprintjscore.Collapse), {
71
+ isOpen: isOpen
72
+ }, $750d69d73bfbdc9a$var$h("div.expansion-children", null, children))
73
+ ]);
74
+ }
75
+ function $750d69d73bfbdc9a$export$39c134eb0b07cf0e(props) {
76
+ let { title: title, children: children, className: className, headerElement: headerElement = null } = props;
77
+ return $750d69d73bfbdc9a$var$h("div.info-panel-section", {
78
+ className: className
79
+ }, [
80
+ $750d69d73bfbdc9a$var$h("div.panel-subhead", null, headerElement ?? $750d69d73bfbdc9a$var$h("h3", title)),
81
+ $750d69d73bfbdc9a$var$h("div.panel-content", null, children)
82
+ ]);
83
+ }
84
+ function $750d69d73bfbdc9a$export$40e646e38e6ed100(props) {
85
+ return $750d69d73bfbdc9a$var$h($750d69d73bfbdc9a$var$ExpansionPanelBase, {
86
+ ...props,
87
+ className: "expansion-panel"
88
+ });
89
+ }
90
+ function $750d69d73bfbdc9a$export$d7160281aff7c3b8(props) {
91
+ return $750d69d73bfbdc9a$var$h($750d69d73bfbdc9a$var$ExpansionPanelBase, {
92
+ ...props,
93
+ className: "expansion-panel sub-expansion-panel",
94
+ titleComponent: "h4"
95
+ });
96
+ }
97
+ function $750d69d73bfbdc9a$export$44ad9ff780615135(props) {
98
+ let { title: title, children: children, value: value, headerElement: headerElement, className: className } = props;
99
+ const [isOpen, setIsOpen] = (0, $fcjlG$react.useState)(false);
100
+ headerElement ??= $750d69d73bfbdc9a$var$h([
101
+ $750d69d73bfbdc9a$var$h("div.title", title),
102
+ value
103
+ ]);
104
+ return $750d69d73bfbdc9a$var$h("div.expandable-details", {
105
+ className: className
106
+ }, [
107
+ $750d69d73bfbdc9a$var$h("div.expandable-details-main", [
108
+ $750d69d73bfbdc9a$var$h("div.expandable-details-header", headerElement),
109
+ $750d69d73bfbdc9a$var$h("div.expandable-details-toggle", [
110
+ $750d69d73bfbdc9a$var$h((0, $fcjlG$blueprintjscore.Button), {
111
+ small: true,
112
+ minimal: true,
113
+ active: isOpen,
114
+ onClick: ()=>setIsOpen(!isOpen),
115
+ icon: "more"
116
+ })
117
+ ])
118
+ ]),
119
+ $750d69d73bfbdc9a$var$h((0, $fcjlG$blueprintjscore.Collapse), {
120
+ isOpen: isOpen
121
+ }, $750d69d73bfbdc9a$var$h("div.expandable-details-children", null, children))
122
+ ]);
123
+ }
124
+ function $750d69d73bfbdc9a$export$263416b670b3f129({ title: title, className: className, children: children }) {
125
+ return $750d69d73bfbdc9a$var$h("div.expansion-body", {
126
+ className: className
127
+ }, [
128
+ $750d69d73bfbdc9a$var$h("div.expansion-panel-detail-header", title),
129
+ $750d69d73bfbdc9a$var$h("div.expansion-panel-detail-body", null, children)
130
+ ]);
131
+ }
132
+
133
+
134
+ //# sourceMappingURL=expansion-panel.08532cee.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;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,sCAAW,GACX;QACE,WAAW,CAAA,GAAA,2CAAS,EAAE,0BAA0B;QAChD,SAAS;eACT;QACA,WAAW;IACb,GACA;QAAC;QAAU,wBAAE,CAAA,GAAA,2BAAG,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,qBAAO,EAAE,YAAY;IAE/C,MAAM,YAAY;QAChB;QACA,QAAQ,CAAC;IACX;IAEA,OAAO,wBACL,4BACA;QACE,WAAW,CAAA,GAAA,2CAAS,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,+BAAO,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,qBAAO,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,6BAAK,GAAG;oBACR,OAAO;oBACP,SAAS;oBACT,QAAQ;oBACR,SAAS,IAAM,UAAU,CAAC;oBAC1B,MAAM;gBACR;aACD;SACF;QACD,wBACE,CAAA,GAAA,+BAAO,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.08532cee.js.map"}
@@ -0,0 +1,67 @@
1
+ var $bf943af2b72f182b$exports = require("./utils.09cef979.js");
2
+ var $aMvpk$macrostratmapboxutils = require("@macrostrat/mapbox-utils");
3
+
4
+
5
+ function $parcel$export(e, n, v, s) {
6
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
7
+ }
8
+
9
+ $parcel$export(module.exports, "applyMapPositionToHash", () => $370ea7ef3413c03a$export$8391d1abb505ffb3);
10
+ $parcel$export(module.exports, "getMapPositionForHash", () => $370ea7ef3413c03a$export$80abf1cbcc3918e4);
11
+
12
+
13
+ function $370ea7ef3413c03a$export$8391d1abb505ffb3(args, mapPosition) {
14
+ const pos = mapPosition?.camera;
15
+ if (pos == null) return;
16
+ const zoom = mapPosition.target?.zoom;
17
+ args.x = (0, $aMvpk$macrostratmapboxutils.formatCoordForZoomLevel)(pos.lng, zoom);
18
+ args.y = (0, $aMvpk$macrostratmapboxutils.formatCoordForZoomLevel)(pos.lat, zoom);
19
+ if (pos.bearing == 0 && pos.pitch == 0 && zoom != null) args.z = (0, $bf943af2b72f182b$exports.fmt1)(zoom);
20
+ else if (pos.altitude != null) {
21
+ if (pos.altitude > 5000) args.z = (0, $bf943af2b72f182b$exports.fmt2)(pos.altitude / 1000) + "km";
22
+ else args.z = (0, $bf943af2b72f182b$exports.fmtInt)(pos.altitude) + "m";
23
+ }
24
+ if (pos.bearing != 0) {
25
+ let az = pos.bearing;
26
+ if (az < 0) az += 360;
27
+ args.a = (0, $bf943af2b72f182b$exports.fmtInt)(az);
28
+ }
29
+ if (pos.pitch != 0) args.e = (0, $bf943af2b72f182b$exports.fmtInt)(pos.pitch);
30
+ }
31
+ function $370ea7ef3413c03a$var$_fmt(x) {
32
+ if (Array.isArray(x)) x = x[0];
33
+ return parseFloat(x.toString());
34
+ }
35
+ function $370ea7ef3413c03a$export$80abf1cbcc3918e4(hashData, centerPosition) {
36
+ const { x: x = centerPosition?.lng ?? 0, y: y = centerPosition?.lat ?? 0, z: // Different default for zoom depending on whether we have a marker
37
+ z = centerPosition != null ? 7 : 2, a: a = 0, e: e = 0 } = hashData;
38
+ const lng = $370ea7ef3413c03a$var$_fmt(x);
39
+ const lat = $370ea7ef3413c03a$var$_fmt(y);
40
+ let altitude = null;
41
+ let zoom = null;
42
+ const _z = z.toString();
43
+ if (_z.endsWith("km")) altitude = $370ea7ef3413c03a$var$_fmt(_z.substring(0, _z.length - 2)) * 1000;
44
+ else if (_z.endsWith("m")) altitude = $370ea7ef3413c03a$var$_fmt(_z.substring(0, _z.length - 1));
45
+ else zoom = $370ea7ef3413c03a$var$_fmt(z);
46
+ const bearing = $370ea7ef3413c03a$var$_fmt(a);
47
+ const pitch = $370ea7ef3413c03a$var$_fmt(e);
48
+ let target = undefined;
49
+ if (bearing == 0 && pitch == 0 && zoom != null) target = {
50
+ lat: lat,
51
+ lng: lng,
52
+ zoom: zoom
53
+ };
54
+ return {
55
+ camera: {
56
+ lng: $370ea7ef3413c03a$var$_fmt(x),
57
+ lat: $370ea7ef3413c03a$var$_fmt(y),
58
+ altitude: altitude,
59
+ bearing: $370ea7ef3413c03a$var$_fmt(a),
60
+ pitch: $370ea7ef3413c03a$var$_fmt(e)
61
+ },
62
+ target: target
63
+ };
64
+ }
65
+
66
+
67
+ //# sourceMappingURL=hash-string.62e84f08.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;AAgBO,SAAS,0CACd,IAAwB,EACxB,WAA+B;IAE/B,MAAM,MAAM,aAAa;IACzB,IAAI,OAAO,MAAM;IACjB,MAAM,OAAO,YAAY,MAAM,EAAE;IAEjC,KAAK,CAAC,GAAG,CAAA,GAAA,oDAAsB,EAAE,IAAI,GAAG,EAAE;IAC1C,KAAK,CAAC,GAAG,CAAA,GAAA,oDAAsB,EAAE,IAAI,GAAG,EAAE;IAE1C,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,MAChD,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAG,EAAE;SACT,IAAI,IAAI,QAAQ,IAAI;QACzB,IAAI,IAAI,QAAQ,GAAG,MACjB,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAG,EAAE,IAAI,QAAQ,GAAG,QAAQ;aAErC,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE,IAAI,QAAQ,IAAI;;IAGpC,IAAI,IAAI,OAAO,IAAI,GAAG;QACpB,IAAI,KAAK,IAAI,OAAO;QACpB,IAAI,KAAK,GAAG,MAAM;QAClB,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE;IAClB;IACA,IAAI,IAAI,KAAK,IAAI,GACf,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE,IAAI,KAAK;AAE7B;AAEA,SAAS,2BAAK,CAA6B;IACzC,IAAI,MAAM,OAAO,CAAC,IAChB,IAAI,CAAC,CAAC,EAAE;IAEV,OAAO,WAAW,EAAE,QAAQ;AAC9B;AAEO,SAAS,0CACd,QAA6B,EAC7B,cAA6B;IAE7B,MAAM,KACJ,IAAI,gBAAgB,OAAO,MAC3B,IAAI,gBAAgB,OAAO,MAC3B,mEAAmE;IACnE,IAAI,kBAAkB,OAAO,IAAI,MACjC,IAAI,MACJ,IAAI,GACL,GAAG;IAEJ,MAAM,MAAM,2BAAK;IACjB,MAAM,MAAM,2BAAK;IAEjB,IAAI,WAAW;IACf,IAAI,OAAO;IACX,MAAM,KAAK,EAAE,QAAQ;IACrB,IAAI,GAAG,QAAQ,CAAC,OACd,WAAW,2BAAK,GAAG,SAAS,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM;SAC7C,IAAI,GAAG,QAAQ,CAAC,MACrB,WAAW,2BAAK,GAAG,SAAS,CAAC,GAAG,GAAG,MAAM,GAAG;SAE5C,OAAO,2BAAK;IAEd,MAAM,UAAU,2BAAK;IACrB,MAAM,QAAQ,2BAAK;IAEnB,IAAI,SAAS;IACb,IAAI,WAAW,KAAK,SAAS,KAAK,QAAQ,MACxC,SAAS;aACP;aACA;cACA;IACF;IAGF,OAAO;QACL,QAAQ;YACN,KAAK,2BAAK;YACV,KAAK,2BAAK;sBACV;YACA,SAAS,2BAAK;YACd,OAAO,2BAAK;QACd;gBACA;IACF;AACF","sources":["packages/map-interface/src/location-info/hash-string.ts"],"sourcesContent":["import {\n LatLng,\n MapPosition,\n formatCoordForZoomLevel,\n} from \"@macrostrat/mapbox-utils\";\nimport { ParsedQuery } from \"query-string\";\nimport { fmt1, fmt2, fmtInt } from \"./utils\";\n\ninterface LocationHashParams {\n x?: string;\n y?: string;\n z?: string;\n a?: string;\n e?: string;\n}\n\nexport function applyMapPositionToHash(\n args: LocationHashParams,\n mapPosition: MapPosition | null\n) {\n const pos = mapPosition?.camera;\n if (pos == null) return;\n const zoom = mapPosition.target?.zoom;\n\n args.x = formatCoordForZoomLevel(pos.lng, zoom);\n args.y = formatCoordForZoomLevel(pos.lat, zoom);\n\n if (pos.bearing == 0 && pos.pitch == 0 && zoom != null) {\n args.z = fmt1(zoom);\n } else if (pos.altitude != null) {\n if (pos.altitude > 5000) {\n args.z = fmt2(pos.altitude / 1000) + \"km\";\n } else {\n args.z = fmtInt(pos.altitude) + \"m\";\n }\n }\n if (pos.bearing != 0) {\n let az = pos.bearing;\n if (az < 0) az += 360;\n args.a = fmtInt(az);\n }\n if (pos.pitch != 0) {\n args.e = fmtInt(pos.pitch);\n }\n}\n\nfunction _fmt(x: string | number | string[]) {\n if (Array.isArray(x)) {\n x = x[0];\n }\n return parseFloat(x.toString());\n}\n\nexport function getMapPositionForHash(\n hashData: ParsedQuery<string>,\n centerPosition: LatLng | null\n): MapPosition {\n const {\n x = centerPosition?.lng ?? 0,\n y = centerPosition?.lat ?? 0,\n // Different default for zoom depending on whether we have a marker\n z = centerPosition != null ? 7 : 2,\n a = 0,\n e = 0,\n } = hashData;\n\n const lng = _fmt(x);\n const lat = _fmt(y);\n\n let altitude = null;\n let zoom = null;\n const _z = z.toString();\n if (_z.endsWith(\"km\")) {\n altitude = _fmt(_z.substring(0, _z.length - 2)) * 1000;\n } else if (_z.endsWith(\"m\")) {\n altitude = _fmt(_z.substring(0, _z.length - 1));\n } else {\n zoom = _fmt(z);\n }\n const bearing = _fmt(a);\n const pitch = _fmt(e);\n\n let target = undefined;\n if (bearing == 0 && pitch == 0 && zoom != null) {\n target = {\n lat,\n lng,\n zoom,\n };\n }\n\n return {\n camera: {\n lng: _fmt(x),\n lat: _fmt(y),\n altitude,\n bearing: _fmt(a),\n pitch: _fmt(e),\n },\n target,\n };\n}\n"],"names":[],"version":3,"file":"hash-string.62e84f08.js.map"}