@macrostrat/map-interface 2.0.2 → 2.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 +12 -0
- package/dist/dev/vector-tile-features.cjs +3 -3
- package/dist/dev/vector-tile-features.cjs.map +1 -1
- package/dist/dev/vector-tile-features.js +1 -1
- package/dist/dev/vector-tile-features.js.map +1 -1
- package/dist/index.cjs +6 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -13
- package/dist/index.js.map +1 -1
- package/dist/location-details/index.d.ts +0 -1
- package/dist/location-details/info-blocks.cjs +0 -22
- package/dist/location-details/info-blocks.cjs.map +1 -1
- package/dist/location-details/info-blocks.js +0 -22
- package/dist/location-details/info-blocks.js.map +1 -1
- package/dist/location-details/macrostrat-linked.cjs +82 -129
- package/dist/location-details/macrostrat-linked.cjs.map +1 -1
- package/dist/location-details/macrostrat-linked.js +29 -75
- package/dist/location-details/macrostrat-linked.js.map +1 -1
- package/dist/location-details/physiography.cjs +2 -2
- package/dist/location-details/physiography.cjs.map +1 -1
- package/dist/location-details/physiography.js +1 -1
- package/dist/location-details/physiography.js.map +1 -1
- package/dist/location-details/reg-strat.cjs +2 -2
- package/dist/location-details/reg-strat.cjs.map +1 -1
- package/dist/location-details/reg-strat.js +1 -1
- package/dist/location-details/reg-strat.js.map +1 -1
- package/dist/map-interface.css +43 -215
- package/dist/map-view.cjs +6 -9
- package/dist/map-view.cjs.map +1 -1
- package/dist/map-view.d.ts +1 -1
- package/dist/map-view.js +7 -10
- package/dist/map-view.js.map +1 -1
- package/package.json +3 -4
- package/src/dev/vector-tile-features.ts +1 -1
- package/src/index.ts +0 -1
- package/src/location-details/index.ts +0 -1
- package/src/location-details/macrostrat-linked.ts +29 -81
- package/src/location-details/main.module.sass +0 -1
- package/src/location-details/physiography.ts +1 -1
- package/src/location-details/reg-strat.ts +1 -1
- package/src/map-view.ts +11 -8
- package/dist/expansion-panel/headers.cjs +0 -22
- package/dist/expansion-panel/headers.cjs.map +0 -1
- package/dist/expansion-panel/headers.d.ts +0 -1
- package/dist/expansion-panel/headers.js +0 -20
- package/dist/expansion-panel/headers.js.map +0 -1
- package/dist/expansion-panel/index.cjs +0 -128
- package/dist/expansion-panel/index.cjs.map +0 -1
- package/dist/expansion-panel/index.d.ts +0 -18
- package/dist/expansion-panel/index.js +0 -125
- package/dist/expansion-panel/index.js.map +0 -1
- package/dist/expansion-panel/main.module.sass.cjs +0 -32
- package/dist/expansion-panel/main.module.sass.cjs.map +0 -1
- package/dist/expansion-panel/main.module.sass.js +0 -30
- package/dist/expansion-panel/main.module.sass.js.map +0 -1
- package/dist/location-details/fetch.d.ts +0 -4
- package/dist/location-details/utils/index.cjs +0 -15
- package/dist/location-details/utils/index.cjs.map +0 -1
- package/dist/location-details/utils/index.js +0 -15
- package/dist/location-details/utils/index.js.map +0 -1
- package/dist/location-details/xdd-panel/article.cjs +0 -64
- package/dist/location-details/xdd-panel/article.cjs.map +0 -1
- package/dist/location-details/xdd-panel/article.d.ts +0 -1
- package/dist/location-details/xdd-panel/article.js +0 -62
- package/dist/location-details/xdd-panel/article.js.map +0 -1
- package/dist/location-details/xdd-panel/index.cjs +0 -71
- package/dist/location-details/xdd-panel/index.cjs.map +0 -1
- package/dist/location-details/xdd-panel/index.d.ts +0 -18
- package/dist/location-details/xdd-panel/index.js +0 -69
- package/dist/location-details/xdd-panel/index.js.map +0 -1
- package/dist/location-details/xdd-panel/journal.cjs +0 -27
- package/dist/location-details/xdd-panel/journal.cjs.map +0 -1
- package/dist/location-details/xdd-panel/journal.d.ts +0 -20
- package/dist/location-details/xdd-panel/journal.js +0 -25
- package/dist/location-details/xdd-panel/journal.js.map +0 -1
- package/src/expansion-panel/headers.ts +0 -18
- package/src/expansion-panel/index.ts +0 -135
- package/src/expansion-panel/main.module.sass +0 -157
- package/src/location-details/fetch.ts +0 -57
- package/src/location-details/location-details.stories.ts +0 -92
- package/src/location-details/xdd-panel/article.ts +0 -67
- package/src/location-details/xdd-panel/index.ts +0 -70
- package/src/location-details/xdd-panel/journal.ts +0 -60
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const mapInterface = require("@macrostrat/map-interface");
|
|
5
|
-
const main_module = require("./main.module.sass.cjs");
|
|
3
|
+
const dataComponents = require("@macrostrat/data-components");
|
|
6
4
|
const scale = require("@visx/scale");
|
|
7
5
|
const axis = require("@visx/axis");
|
|
8
6
|
const chroma = require("chroma-js");
|
|
9
|
-
const dataComponents = require("@macrostrat/data-components");
|
|
10
7
|
const infoBlocks = require("./info-blocks.cjs");
|
|
8
|
+
const main_module = require("./main.module.sass.cjs");
|
|
11
9
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
12
|
-
const h__default = /* @__PURE__ */ _interopDefault(h$1);
|
|
13
10
|
const chroma__default = /* @__PURE__ */ _interopDefault(chroma);
|
|
14
|
-
const h = h__default.default.styled(main_module.default);
|
|
15
11
|
function MacrostratLinkedData(props) {
|
|
16
12
|
const {
|
|
17
13
|
mapInfo,
|
|
@@ -23,8 +19,8 @@ function MacrostratLinkedData(props) {
|
|
|
23
19
|
expanded = true
|
|
24
20
|
} = props;
|
|
25
21
|
if (!mapInfo.mapData[0]) return null;
|
|
26
|
-
return
|
|
27
|
-
|
|
22
|
+
return main_module.default(
|
|
23
|
+
dataComponents.ExpansionPanel,
|
|
28
24
|
{
|
|
29
25
|
className: "regional-panel",
|
|
30
26
|
title: "Macrostrat-linked data",
|
|
@@ -32,15 +28,14 @@ function MacrostratLinkedData(props) {
|
|
|
32
28
|
expanded
|
|
33
29
|
},
|
|
34
30
|
[
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
h(Economy, { source })
|
|
31
|
+
main_module.default("div", { classes: expansionPanelDetailClasses }, [
|
|
32
|
+
main_module.default(MatchBasis, { source, stratNameURL }),
|
|
33
|
+
main_module.default(AgeInformation, { mapInfo, source, intervalURL }),
|
|
34
|
+
main_module.default(Thickness, { source }),
|
|
35
|
+
main_module.default(MinorFossilCollections, { source }),
|
|
36
|
+
main_module.default(FossilOccs, { source }),
|
|
37
|
+
main_module.default(LithsAndClasses, { source, lithologyURL }),
|
|
38
|
+
main_module.default(Environments, { source, environmentURL })
|
|
44
39
|
])
|
|
45
40
|
]
|
|
46
41
|
);
|
|
@@ -51,15 +46,15 @@ const expansionPanelDetailClasses = {
|
|
|
51
46
|
function AgeInformation(props) {
|
|
52
47
|
const { source, mapInfo, intervalURL } = props;
|
|
53
48
|
const { macrostrat } = source;
|
|
54
|
-
if (!macrostrat?.b_age) return
|
|
55
|
-
return
|
|
49
|
+
if (!macrostrat?.b_age) return main_module.default(MapAgeRenderer, { mapInfo, intervalURL });
|
|
50
|
+
return main_module.default(MacrostratAgeInfo, { macrostrat, mapInfo, intervalURL });
|
|
56
51
|
}
|
|
57
52
|
function MapAgeRenderer(props) {
|
|
58
53
|
const { mapInfo, intervalURL, ...rest } = props;
|
|
59
|
-
return
|
|
54
|
+
return main_module.default(
|
|
60
55
|
DescribedAgeInfo,
|
|
61
56
|
{
|
|
62
|
-
ageElement:
|
|
57
|
+
ageElement: main_module.default(infoBlocks.AgeChip, {
|
|
63
58
|
b_int: mapInfo.mapData[0].b_int,
|
|
64
59
|
t_int: mapInfo.mapData[0].t_int,
|
|
65
60
|
intervalURL
|
|
@@ -70,10 +65,10 @@ function MapAgeRenderer(props) {
|
|
|
70
65
|
}
|
|
71
66
|
function DescribedAgeInfo(props) {
|
|
72
67
|
const { ageElement, children, className } = props;
|
|
73
|
-
return
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
68
|
+
return main_module.default("div.described-age.macrostrast-detail", [
|
|
69
|
+
main_module.default("div.expansion-summary-title", "Age"),
|
|
70
|
+
main_module.default("div.age-chips", null, ageElement),
|
|
71
|
+
main_module.default("div.description", children)
|
|
77
72
|
]);
|
|
78
73
|
}
|
|
79
74
|
function AgeRefinementBar({ scale: scale2, data, color, label = null }) {
|
|
@@ -95,7 +90,7 @@ function AgeRefinementBar({ scale: scale2, data, color, label = null }) {
|
|
|
95
90
|
textAlign = "end";
|
|
96
91
|
}
|
|
97
92
|
}
|
|
98
|
-
return
|
|
93
|
+
return main_module.default(
|
|
99
94
|
"div.age-refinement-bar",
|
|
100
95
|
{
|
|
101
96
|
style: {
|
|
@@ -107,7 +102,7 @@ function AgeRefinementBar({ scale: scale2, data, color, label = null }) {
|
|
|
107
102
|
position: "relative"
|
|
108
103
|
}
|
|
109
104
|
},
|
|
110
|
-
|
|
105
|
+
main_module.default(
|
|
111
106
|
"div.age-refinement-bar-label",
|
|
112
107
|
{
|
|
113
108
|
style: {
|
|
@@ -130,20 +125,20 @@ function AgeRefinementPlot({ macrostrat, mapInfo, intervalURL }) {
|
|
|
130
125
|
domain: [1.02 * b_age, t_age * 0.98],
|
|
131
126
|
range: [20, 360]
|
|
132
127
|
});
|
|
133
|
-
return
|
|
134
|
-
|
|
128
|
+
return main_module.default("div.age-refinement-plot", [
|
|
129
|
+
main_module.default(AgeRefinementBar, {
|
|
135
130
|
scale: scale$1,
|
|
136
131
|
data: macrostrat,
|
|
137
132
|
label: "Macrostrat age model"
|
|
138
133
|
}),
|
|
139
|
-
|
|
134
|
+
main_module.default(AgeRefinementBar, {
|
|
140
135
|
scale: scale$1,
|
|
141
136
|
data: mapData,
|
|
142
137
|
label: "Map legend"
|
|
143
138
|
}),
|
|
144
139
|
// Age axis
|
|
145
|
-
|
|
146
|
-
|
|
140
|
+
main_module.default("svg", { width: "100%", height: "40px" }, [
|
|
141
|
+
main_module.default(axis.AxisBottom, {
|
|
147
142
|
scale: scale$1,
|
|
148
143
|
numTicks: 5,
|
|
149
144
|
top: 1,
|
|
@@ -160,10 +155,10 @@ function MacrostratAgeInfoCore({ macrostrat, intervalURL }) {
|
|
|
160
155
|
if (b_int.int_id !== t_int.int_id) {
|
|
161
156
|
age += ` - ${t_int.int_name}`;
|
|
162
157
|
}
|
|
163
|
-
return
|
|
158
|
+
return main_module.default(
|
|
164
159
|
DescribedAgeInfo,
|
|
165
160
|
{
|
|
166
|
-
ageElement:
|
|
161
|
+
ageElement: main_module.default(infoBlocks.AgeChip, {
|
|
167
162
|
b_int: { ...b_int, int_name: age, b_age, t_age },
|
|
168
163
|
t_int: { ...b_int, int_name: age, b_age, t_age },
|
|
169
164
|
intervalURL
|
|
@@ -173,50 +168,48 @@ function MacrostratAgeInfoCore({ macrostrat, intervalURL }) {
|
|
|
173
168
|
);
|
|
174
169
|
}
|
|
175
170
|
function MacrostratAgeInfo(props) {
|
|
176
|
-
return
|
|
177
|
-
|
|
178
|
-
{ headerElement:
|
|
179
|
-
|
|
171
|
+
return main_module.default(
|
|
172
|
+
dataComponents.ExpandableDetailsPanel,
|
|
173
|
+
{ headerElement: main_module.default(MacrostratAgeInfoCore, props) },
|
|
174
|
+
main_module.default(AgeRefinementPlot, props)
|
|
180
175
|
);
|
|
181
176
|
}
|
|
182
177
|
function MatchBasis(props) {
|
|
183
178
|
const { source, stratNameURL } = props;
|
|
184
179
|
if (!source.macrostrat?.strat_names) return null;
|
|
185
|
-
return
|
|
186
|
-
|
|
180
|
+
return main_module.default(
|
|
181
|
+
dataComponents.ExpandableDetailsPanel,
|
|
187
182
|
{
|
|
188
183
|
className: "macrostrat-unit",
|
|
189
|
-
headerElement:
|
|
190
|
-
|
|
191
|
-
|
|
184
|
+
headerElement: main_module.default([
|
|
185
|
+
main_module.default("h3", source.macrostrat.strat_names[0].rank_name),
|
|
186
|
+
main_module.default("div.description", "Matched stratigraphic unit")
|
|
192
187
|
])
|
|
193
188
|
},
|
|
194
|
-
|
|
195
|
-
source.macrostrat.strat_names
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
})
|
|
209
|
-
])
|
|
189
|
+
source.macrostrat.strat_names?.map((name, i) => {
|
|
190
|
+
let lastElement = i == source.macrostrat.strat_names.length - 1;
|
|
191
|
+
return main_module.default("span", { key: i }, [
|
|
192
|
+
main_module.default(
|
|
193
|
+
"a.externalLink",
|
|
194
|
+
{
|
|
195
|
+
href: stratNameURL + "/" + name.strat_name_id,
|
|
196
|
+
key: i
|
|
197
|
+
},
|
|
198
|
+
[name.rank_name]
|
|
199
|
+
),
|
|
200
|
+
main_module.default.if(!lastElement)([", "])
|
|
201
|
+
]);
|
|
202
|
+
})
|
|
210
203
|
);
|
|
211
204
|
}
|
|
212
205
|
function Thickness(props) {
|
|
213
206
|
const { source } = props;
|
|
214
|
-
if (!source.macrostrat.max_thick) return
|
|
215
|
-
return
|
|
207
|
+
if (!source.macrostrat.max_thick) return main_module.default("div");
|
|
208
|
+
return main_module.default.if(source.macrostrat && source.macrostrat.max_thick)(
|
|
216
209
|
"div.macrostrat-detail",
|
|
217
210
|
[
|
|
218
|
-
|
|
219
|
-
|
|
211
|
+
main_module.default("div.expansion-summary-title", "Thickness"),
|
|
212
|
+
main_module.default("div", [
|
|
220
213
|
source.macrostrat.min_min_thick,
|
|
221
214
|
" - ",
|
|
222
215
|
source.macrostrat.max_thick,
|
|
@@ -228,12 +221,12 @@ function Thickness(props) {
|
|
|
228
221
|
function MinorFossilCollections(props) {
|
|
229
222
|
const { source } = props;
|
|
230
223
|
const { macrostrat } = source;
|
|
231
|
-
if (!macrostrat.pbdb_collections) return
|
|
232
|
-
return
|
|
224
|
+
if (!macrostrat.pbdb_collections) return main_module.default("div");
|
|
225
|
+
return main_module.default.if(macrostrat && macrostrat.pbdb_collections)(
|
|
233
226
|
"div.macrostrat-detail",
|
|
234
227
|
[
|
|
235
|
-
|
|
236
|
-
|
|
228
|
+
main_module.default("div.expansion-summary-title", "Fossil collections"),
|
|
229
|
+
main_module.default("div", [macrostrat.pbdb_collections])
|
|
237
230
|
]
|
|
238
231
|
);
|
|
239
232
|
}
|
|
@@ -241,17 +234,17 @@ function FossilOccs(props) {
|
|
|
241
234
|
const { source } = props;
|
|
242
235
|
const { macrostrat } = source;
|
|
243
236
|
if (!macrostrat?.pbdb_occs) return null;
|
|
244
|
-
return
|
|
245
|
-
|
|
246
|
-
|
|
237
|
+
return main_module.default("div.macrostrat-detail", [
|
|
238
|
+
main_module.default("div.expansion-summary-title", "Fossil occurrences"),
|
|
239
|
+
main_module.default("div", [macrostrat.pbdb_occs])
|
|
247
240
|
]);
|
|
248
241
|
}
|
|
249
242
|
function LithTypes(props) {
|
|
250
243
|
const { lith_types } = props;
|
|
251
|
-
return
|
|
244
|
+
return main_module.default.if(lith_types && lith_types.length > 0)(
|
|
252
245
|
"div.lithologies.lithology-types",
|
|
253
246
|
[
|
|
254
|
-
|
|
247
|
+
main_module.default(dataComponents.LithologyList, {
|
|
255
248
|
lithologies: lith_types
|
|
256
249
|
})
|
|
257
250
|
]
|
|
@@ -269,25 +262,24 @@ function LithsAndClasses(props) {
|
|
|
269
262
|
color: lith.color || "#000000"
|
|
270
263
|
};
|
|
271
264
|
});
|
|
272
|
-
return
|
|
273
|
-
|
|
265
|
+
return main_module.default(
|
|
266
|
+
dataComponents.ExpandableDetailsPanel,
|
|
274
267
|
{
|
|
275
268
|
title: "Lithology",
|
|
276
|
-
value:
|
|
269
|
+
value: main_module.default(LithTypes, { lith_types })
|
|
277
270
|
},
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
])
|
|
271
|
+
main_module.default(dataComponents.LithologyList, {
|
|
272
|
+
label: "Matched lithologies",
|
|
273
|
+
lithologies,
|
|
274
|
+
onClickItem: (e, lith) => {
|
|
275
|
+
window.open(lithologyURL + "/" + lith.lith_id, "_self");
|
|
276
|
+
}
|
|
277
|
+
})
|
|
286
278
|
);
|
|
287
279
|
}
|
|
288
280
|
function EnvironTypes(props) {
|
|
289
281
|
const { environ_types } = props;
|
|
290
|
-
return
|
|
282
|
+
return main_module.default.if(environ_types && environ_types.length > 0)(dataComponents.LithologyList, {
|
|
291
283
|
lithologies: environ_types?.filter((e) => e.name != "")
|
|
292
284
|
});
|
|
293
285
|
}
|
|
@@ -303,55 +295,16 @@ function Environments(props) {
|
|
|
303
295
|
color: environ.color || "#000000"
|
|
304
296
|
};
|
|
305
297
|
});
|
|
306
|
-
return
|
|
307
|
-
|
|
298
|
+
return main_module.default(
|
|
299
|
+
dataComponents.ExpandableDetailsPanel,
|
|
308
300
|
{
|
|
309
301
|
title: "Environment",
|
|
310
|
-
value:
|
|
302
|
+
value: main_module.default(EnvironTypes, { environ_types })
|
|
311
303
|
},
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
onClickItem: (e, environ) => {
|
|
316
|
-
console.log("environ", environmentURL);
|
|
317
|
-
window.open(environmentURL + "/" + environ.environ_id, "_self");
|
|
318
|
-
}
|
|
319
|
-
})
|
|
320
|
-
])
|
|
321
|
-
);
|
|
322
|
-
}
|
|
323
|
-
function EconType(props) {
|
|
324
|
-
const { econ_types } = props;
|
|
325
|
-
return h.if(econ_types && econ_types.length > 0)("div", [
|
|
326
|
-
econ_types?.map((econClass, i) => {
|
|
327
|
-
return h(infoBlocks.AttrChip, {
|
|
328
|
-
key: i,
|
|
329
|
-
name: econClass.name,
|
|
330
|
-
color: econClass.color
|
|
331
|
-
});
|
|
304
|
+
main_module.default(dataComponents.LithologyList, {
|
|
305
|
+
label: "Matched environments",
|
|
306
|
+
lithologies
|
|
332
307
|
})
|
|
333
|
-
]);
|
|
334
|
-
}
|
|
335
|
-
function Economy(props) {
|
|
336
|
-
const { source } = props;
|
|
337
|
-
const { macrostrat } = source;
|
|
338
|
-
const { econs = null, econ_types = null } = macrostrat;
|
|
339
|
-
if (!econs) return h("div");
|
|
340
|
-
return h.if(econs && econs.length > 0)(
|
|
341
|
-
mapInterface.ExpandableDetailsPanel,
|
|
342
|
-
{
|
|
343
|
-
title: "Economy ",
|
|
344
|
-
value: h(EconType, { econ_types })
|
|
345
|
-
},
|
|
346
|
-
h(mapInterface.ExpansionBody, { title: "Matched economic attributes" }, [
|
|
347
|
-
econs?.map((econ, i) => {
|
|
348
|
-
return h(infoBlocks.AttrChip, {
|
|
349
|
-
key: i,
|
|
350
|
-
name: econ.econ,
|
|
351
|
-
color: econ.color
|
|
352
|
-
});
|
|
353
|
-
})
|
|
354
|
-
])
|
|
355
308
|
);
|
|
356
309
|
}
|
|
357
310
|
exports.MacrostratLinkedData = MacrostratLinkedData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macrostrat-linked.cjs","sources":["../../src/location-details/macrostrat-linked.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n ExpansionPanel,\n ExpandableDetailsPanel,\n ExpansionBody,\n} from \"@macrostrat/map-interface\";\nimport styles from \"./main.module.sass\";\nimport { scaleLinear } from \"@visx/scale\";\nimport { AxisBottom } from \"@visx/axis\";\nimport chroma from \"chroma-js\";\nimport { LithologyList } from \"@macrostrat/data-components\";\nimport { AttrChip, AgeChip } from \"./info-blocks\";\n\nconst h = hyper.styled(styles);\n\nexport function MacrostratLinkedData(props) {\n const {\n mapInfo,\n source,\n stratNameURL,\n environmentURL,\n intervalURL,\n lithologyURL,\n expanded = true,\n } = props;\n\n if (!mapInfo.mapData[0]) return null;\n\n return h(\n ExpansionPanel,\n {\n className: \"regional-panel\",\n title: \"Macrostrat-linked data\",\n helpText: \"via Macrostrat\",\n expanded,\n },\n [\n h(\"div\", { classes: expansionPanelDetailClasses }, [\n h(MatchBasis, { source, stratNameURL }),\n h(AgeInformation, { mapInfo, source, intervalURL }),\n h(Thickness, { source }),\n h(MinorFossilCollections, { source }),\n h(FossilOccs, { source }),\n h(LithsAndClasses, { source, lithologyURL }),\n h(Environments, { source, environmentURL }),\n h(Economy, { source }),\n ]),\n ],\n );\n}\n\nconst expansionPanelDetailClasses = {\n root: \"expansion-panel-detail\",\n};\n\nfunction AgeInformation(props) {\n const { source, mapInfo, intervalURL } = props;\n const { macrostrat } = source;\n\n if (!macrostrat?.b_age) return h(MapAgeRenderer, { mapInfo, intervalURL });\n\n return h(MacrostratAgeInfo, { macrostrat, mapInfo, intervalURL });\n}\n\nfunction MapAgeRenderer(props) {\n const { mapInfo, intervalURL, ...rest } = props;\n return h(\n DescribedAgeInfo,\n {\n ageElement: h(AgeChip, {\n b_int: mapInfo.mapData[0].b_int,\n t_int: mapInfo.mapData[0].t_int,\n intervalURL,\n }),\n },\n \"Based on geologic map description.\",\n );\n}\n\nfunction DescribedAgeInfo(props) {\n const { ageElement, children, className } = props;\n\n return h(\"div.described-age.macrostrast-detail\", [\n h(\"div.expansion-summary-title\", \"Age\"),\n h(\"div.age-chips\", null, ageElement),\n h(\"div.description\", children),\n ]);\n}\n\nfunction AgeRefinementBar({ scale, data, color, label = null }) {\n const { b_int, t_int } = data;\n const b_age = data.b_age ?? b_int.b_age;\n const t_age = data.t_age ?? t_int.t_age;\n const backgroundColor = color ?? b_int.color;\n const accentColor = chroma(backgroundColor).darken(0.5).hex();\n const labelColor = chroma(backgroundColor).darken(2).hex();\n\n const left = scale(b_age);\n const width = scale(t_age) - scale(b_age);\n\n let labelTranslate = 5;\n let textAlign = \"start\";\n\n // Adjust label placement\n\n if (width < 100) {\n if (left < 100) {\n labelTranslate = width + 5;\n } else {\n labelTranslate = -305;\n textAlign = \"end\";\n }\n }\n\n return h(\n \"div.age-refinement-bar\",\n {\n style: {\n marginLeft: `${left}px`,\n width: `${width}px`,\n height: \"18px\",\n backgroundColor,\n border: `2px solid ${accentColor}`,\n position: \"relative\",\n },\n },\n h(\n \"div.age-refinement-bar-label\",\n {\n style: {\n transform: `translateX(${labelTranslate}px)`,\n color: labelColor,\n fontSize: \"10px\",\n width: 300,\n textAlign,\n },\n },\n label,\n ),\n );\n}\n\nfunction AgeRefinementPlot({ macrostrat, mapInfo, intervalURL }) {\n // Plot the amount by which the age was refined\n\n const mapData = mapInfo.mapData[0];\n const b_age = Math.max(mapData.b_int.b_age, macrostrat.b_age);\n const t_age = Math.min(mapData.t_int.t_age, macrostrat.t_age);\n\n const scale = scaleLinear({\n domain: [1.02 * b_age, t_age * 0.98],\n range: [20, 360],\n });\n\n // use visx to plot the age refinement\n return h(\"div.age-refinement-plot\", [\n h(AgeRefinementBar, {\n scale,\n data: macrostrat,\n label: \"Macrostrat age model\",\n }),\n h(AgeRefinementBar, {\n scale,\n data: mapData,\n label: \"Map legend\",\n }),\n // Age axis\n h(\"svg\", { width: \"100%\", height: \"40px\" }, [\n h(AxisBottom, {\n scale,\n numTicks: 5,\n top: 1,\n left: 0,\n label: \"Age (Ma)\",\n }),\n ]),\n ]);\n}\n\nfunction MacrostratAgeInfoCore({ macrostrat, intervalURL }) {\n const { b_age, t_age, b_int, t_int } = macrostrat;\n\n if (!b_age) return null;\n\n let age = b_int.int_name;\n if (b_int.int_id !== t_int.int_id) {\n age += ` - ${t_int.int_name}`;\n }\n return h(\n DescribedAgeInfo,\n {\n ageElement: h(AgeChip, {\n b_int: { ...b_int, int_name: age, b_age, t_age },\n t_int: { ...b_int, int_name: age, b_age, t_age },\n intervalURL,\n }),\n },\n \"Refined using the Macrostrat age model.\",\n );\n}\n\nfunction MacrostratAgeInfo(props) {\n return h(\n ExpandableDetailsPanel,\n { headerElement: h(MacrostratAgeInfoCore, props) },\n h(ExpansionBody, { title: \"Age refinement\" }, h(AgeRefinementPlot, props)),\n );\n}\n\nfunction MatchBasis(props) {\n const { source, stratNameURL } = props;\n if (!source.macrostrat?.strat_names) return null;\n\n return h(\n ExpandableDetailsPanel,\n {\n className: \"macrostrat-unit\",\n headerElement: h([\n h(\"h3\", source.macrostrat.strat_names[0].rank_name),\n h(\"div.description\", \"Matched stratigraphic unit\"),\n ]),\n },\n h(ExpansionBody, { title: \"All matched names\" }, [\n source.macrostrat.strat_names?.map((name, i) => {\n let lastElement: boolean =\n i == source.macrostrat.strat_names.length - 1;\n return h(\"span\", { key: i }, [\n h(\n \"a.externalLink\",\n {\n href: stratNameURL + \"/\" + name.strat_name_id,\n key: i,\n },\n [name.rank_name],\n ),\n h.if(!lastElement)([\", \"]),\n ]);\n }),\n ]),\n );\n}\n\nfunction Thickness(props) {\n const { source } = props;\n if (!source.macrostrat.max_thick) return h(\"div\");\n\n return h.if(source.macrostrat && source.macrostrat.max_thick)(\n \"div.macrostrat-detail\",\n [\n h(\"div.expansion-summary-title\", \"Thickness\"),\n h(\"div\", [\n source.macrostrat.min_min_thick,\n \" - \",\n source.macrostrat.max_thick,\n \"m\",\n ]),\n ],\n );\n}\n\nfunction MinorFossilCollections(props) {\n const { source } = props;\n const { macrostrat } = source;\n if (!macrostrat.pbdb_collections) return h(\"div\");\n\n return h.if(macrostrat && macrostrat.pbdb_collections)(\n \"div.macrostrat-detail\",\n [\n h(\"div.expansion-summary-title\", \"Fossil collections\"),\n h(\"div\", [macrostrat.pbdb_collections]),\n ],\n );\n}\n\nfunction FossilOccs(props) {\n const { source } = props;\n const { macrostrat } = source;\n\n if (!macrostrat?.pbdb_occs) return null;\n\n return h(\"div.macrostrat-detail\", [\n h(\"div.expansion-summary-title\", \"Fossil occurrences\"),\n h(\"div\", [macrostrat.pbdb_occs]),\n ]);\n}\n\nfunction LithTypes(props) {\n const { lith_types } = props;\n\n return h.if(lith_types && lith_types.length > 0)(\n \"div.lithologies.lithology-types\",\n [\n h(LithologyList, {\n lithologies: lith_types,\n }),\n ],\n );\n}\n\nfunction LithsAndClasses(props) {\n const { source, lithologyURL } = props;\n const { macrostrat } = source;\n const { liths = null, lith_types = null } = macrostrat;\n\n if (!liths || liths.length == 0) return null;\n\n const lithologies = liths?.map((lith) => {\n return {\n ...lith,\n name: lith.lith,\n color: lith.color || \"#000000\",\n };\n });\n\n return h(\n ExpandableDetailsPanel,\n {\n title: \"Lithology\",\n value: h(LithTypes, { lith_types }),\n },\n h(ExpansionBody, { title: \"Matched lithologies\" }, [\n h(LithologyList, {\n lithologies,\n onClickItem: (e, lith) => {\n window.open(lithologyURL + \"/\" + lith.lith_id, \"_self\");\n },\n }),\n ]),\n );\n}\n\nfunction EnvironTypes(props) {\n const { environ_types } = props;\n return h.if(environ_types && environ_types.length > 0)(LithologyList, {\n lithologies: environ_types?.filter((e) => e.name != \"\"),\n });\n}\n\nfunction Environments(props) {\n const { source, environmentURL } = props;\n const { macrostrat } = source;\n const { environs = null, environ_types = null } = macrostrat;\n\n if (!environs || environs.length == 0) return null;\n\n const lithologies = environs?.map((environ) => {\n return {\n ...environ,\n name: environ.environ,\n color: environ.color || \"#000000\",\n };\n });\n\n return h(\n ExpandableDetailsPanel,\n {\n title: \"Environment\",\n value: h(EnvironTypes, { environ_types }),\n },\n h(ExpansionBody, { title: \"Matched environments\" }, [\n h(LithologyList, {\n lithologies,\n onClickItem: (e, environ) => {\n console.log(\"environ\", environmentURL);\n window.open(environmentURL + \"/\" + environ.environ_id, \"_self\");\n },\n }),\n ]),\n );\n}\n\nfunction EconType(props) {\n const { econ_types } = props;\n\n return h.if(econ_types && econ_types.length > 0)(\"div\", [\n econ_types?.map((econClass, i) => {\n return h(AttrChip, {\n key: i,\n name: econClass.name,\n color: econClass.color,\n });\n }),\n ]);\n}\n\nfunction Economy(props) {\n const { source } = props;\n const { macrostrat } = source;\n const { econs = null, econ_types = null } = macrostrat;\n if (!econs) return h(\"div\");\n\n return h.if(econs && econs.length > 0)(\n ExpandableDetailsPanel,\n {\n title: \"Economy \",\n value: h(EconType, { econ_types }),\n },\n h(ExpansionBody, { title: \"Matched economic attributes\" }, [\n econs?.map((econ, i) => {\n return h(AttrChip, {\n key: i,\n name: econ.econ,\n color: econ.color,\n });\n }),\n ]),\n );\n}\n"],"names":["hyper","styles","ExpansionPanel","AgeChip","scale","chroma","scaleLinear","AxisBottom","ExpandableDetailsPanel","ExpansionBody","LithologyList","AttrChip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"macrostrat-linked.cjs","sources":["../../src/location-details/macrostrat-linked.ts"],"sourcesContent":["import {\n ExpansionPanel,\n ExpandableDetailsPanel,\n LithologyList,\n} from \"@macrostrat/data-components\";\nimport { scaleLinear } from \"@visx/scale\";\nimport { AxisBottom } from \"@visx/axis\";\nimport chroma from \"chroma-js\";\nimport { AgeChip } from \"./info-blocks\";\nimport h from \"./main.module.sass\";\n\nexport function MacrostratLinkedData(props) {\n const {\n mapInfo,\n source,\n stratNameURL,\n environmentURL,\n intervalURL,\n lithologyURL,\n expanded = true,\n } = props;\n\n if (!mapInfo.mapData[0]) return null;\n\n return h(\n ExpansionPanel,\n {\n className: \"regional-panel\",\n title: \"Macrostrat-linked data\",\n helpText: \"via Macrostrat\",\n expanded,\n },\n [\n h(\"div\", { classes: expansionPanelDetailClasses }, [\n h(MatchBasis, { source, stratNameURL }),\n h(AgeInformation, { mapInfo, source, intervalURL }),\n h(Thickness, { source }),\n h(MinorFossilCollections, { source }),\n h(FossilOccs, { source }),\n h(LithsAndClasses, { source, lithologyURL }),\n h(Environments, { source, environmentURL }),\n ]),\n ],\n );\n}\n\nconst expansionPanelDetailClasses = {\n root: \"expansion-panel-detail\",\n};\n\nfunction AgeInformation(props) {\n const { source, mapInfo, intervalURL } = props;\n const { macrostrat } = source;\n\n if (!macrostrat?.b_age) return h(MapAgeRenderer, { mapInfo, intervalURL });\n\n return h(MacrostratAgeInfo, { macrostrat, mapInfo, intervalURL });\n}\n\nfunction MapAgeRenderer(props) {\n const { mapInfo, intervalURL, ...rest } = props;\n return h(\n DescribedAgeInfo,\n {\n ageElement: h(AgeChip, {\n b_int: mapInfo.mapData[0].b_int,\n t_int: mapInfo.mapData[0].t_int,\n intervalURL,\n }),\n },\n \"Based on geologic map description.\",\n );\n}\n\nfunction DescribedAgeInfo(props) {\n const { ageElement, children, className } = props;\n\n return h(\"div.described-age.macrostrast-detail\", [\n h(\"div.expansion-summary-title\", \"Age\"),\n h(\"div.age-chips\", null, ageElement),\n h(\"div.description\", children),\n ]);\n}\n\nfunction AgeRefinementBar({ scale, data, color, label = null }) {\n const { b_int, t_int } = data;\n const b_age = data.b_age ?? b_int.b_age;\n const t_age = data.t_age ?? t_int.t_age;\n const backgroundColor = color ?? b_int.color;\n const accentColor = chroma(backgroundColor).darken(0.5).hex();\n const labelColor = chroma(backgroundColor).darken(2).hex();\n\n const left = scale(b_age);\n const width = scale(t_age) - scale(b_age);\n\n let labelTranslate = 5;\n let textAlign = \"start\";\n\n // Adjust label placement\n\n if (width < 100) {\n if (left < 100) {\n labelTranslate = width + 5;\n } else {\n labelTranslate = -305;\n textAlign = \"end\";\n }\n }\n\n return h(\n \"div.age-refinement-bar\",\n {\n style: {\n marginLeft: `${left}px`,\n width: `${width}px`,\n height: \"18px\",\n backgroundColor,\n border: `2px solid ${accentColor}`,\n position: \"relative\",\n },\n },\n h(\n \"div.age-refinement-bar-label\",\n {\n style: {\n transform: `translateX(${labelTranslate}px)`,\n color: labelColor,\n fontSize: \"10px\",\n width: 300,\n textAlign,\n },\n },\n label,\n ),\n );\n}\n\nfunction AgeRefinementPlot({ macrostrat, mapInfo, intervalURL }) {\n // Plot the amount by which the age was refined\n\n const mapData = mapInfo.mapData[0];\n const b_age = Math.max(mapData.b_int.b_age, macrostrat.b_age);\n const t_age = Math.min(mapData.t_int.t_age, macrostrat.t_age);\n\n const scale = scaleLinear({\n domain: [1.02 * b_age, t_age * 0.98],\n range: [20, 360],\n });\n\n // use visx to plot the age refinement\n return h(\"div.age-refinement-plot\", [\n h(AgeRefinementBar, {\n scale,\n data: macrostrat,\n label: \"Macrostrat age model\",\n }),\n h(AgeRefinementBar, {\n scale,\n data: mapData,\n label: \"Map legend\",\n }),\n // Age axis\n h(\"svg\", { width: \"100%\", height: \"40px\" }, [\n h(AxisBottom, {\n scale,\n numTicks: 5,\n top: 1,\n left: 0,\n label: \"Age (Ma)\",\n }),\n ]),\n ]);\n}\n\nfunction MacrostratAgeInfoCore({ macrostrat, intervalURL }) {\n const { b_age, t_age, b_int, t_int } = macrostrat;\n\n if (!b_age) return null;\n\n let age = b_int.int_name;\n if (b_int.int_id !== t_int.int_id) {\n age += ` - ${t_int.int_name}`;\n }\n return h(\n DescribedAgeInfo,\n {\n ageElement: h(AgeChip, {\n b_int: { ...b_int, int_name: age, b_age, t_age },\n t_int: { ...b_int, int_name: age, b_age, t_age },\n intervalURL,\n }),\n },\n \"Refined using the Macrostrat age model.\",\n );\n}\n\nfunction MacrostratAgeInfo(props) {\n return h(\n ExpandableDetailsPanel,\n { headerElement: h(MacrostratAgeInfoCore, props) },\n h(AgeRefinementPlot, props),\n );\n}\n\nfunction MatchBasis(props) {\n const { source, stratNameURL } = props;\n if (!source.macrostrat?.strat_names) return null;\n\n return h(\n ExpandableDetailsPanel,\n {\n className: \"macrostrat-unit\",\n headerElement: h([\n h(\"h3\", source.macrostrat.strat_names[0].rank_name),\n h(\"div.description\", \"Matched stratigraphic unit\"),\n ]),\n },\n source.macrostrat.strat_names?.map((name, i) => {\n let lastElement: boolean = i == source.macrostrat.strat_names.length - 1;\n return h(\"span\", { key: i }, [\n h(\n \"a.externalLink\",\n {\n href: stratNameURL + \"/\" + name.strat_name_id,\n key: i,\n },\n [name.rank_name],\n ),\n h.if(!lastElement)([\", \"]),\n ]);\n }),\n );\n}\n\nfunction Thickness(props) {\n const { source } = props;\n if (!source.macrostrat.max_thick) return h(\"div\");\n\n return h.if(source.macrostrat && source.macrostrat.max_thick)(\n \"div.macrostrat-detail\",\n [\n h(\"div.expansion-summary-title\", \"Thickness\"),\n h(\"div\", [\n source.macrostrat.min_min_thick,\n \" - \",\n source.macrostrat.max_thick,\n \"m\",\n ]),\n ],\n );\n}\n\nfunction MinorFossilCollections(props) {\n const { source } = props;\n const { macrostrat } = source;\n if (!macrostrat.pbdb_collections) return h(\"div\");\n\n return h.if(macrostrat && macrostrat.pbdb_collections)(\n \"div.macrostrat-detail\",\n [\n h(\"div.expansion-summary-title\", \"Fossil collections\"),\n h(\"div\", [macrostrat.pbdb_collections]),\n ],\n );\n}\n\nfunction FossilOccs(props) {\n const { source } = props;\n const { macrostrat } = source;\n\n if (!macrostrat?.pbdb_occs) return null;\n\n return h(\"div.macrostrat-detail\", [\n h(\"div.expansion-summary-title\", \"Fossil occurrences\"),\n h(\"div\", [macrostrat.pbdb_occs]),\n ]);\n}\n\nfunction LithTypes(props) {\n const { lith_types } = props;\n\n return h.if(lith_types && lith_types.length > 0)(\n \"div.lithologies.lithology-types\",\n [\n h(LithologyList, {\n lithologies: lith_types,\n }),\n ],\n );\n}\n\nfunction LithsAndClasses(props) {\n const { source, lithologyURL } = props;\n const { macrostrat } = source;\n const { liths = null, lith_types = null } = macrostrat;\n\n if (!liths || liths.length == 0) return null;\n\n const lithologies = liths?.map((lith) => {\n return {\n ...lith,\n name: lith.lith,\n color: lith.color || \"#000000\",\n };\n });\n\n return h(\n ExpandableDetailsPanel,\n {\n title: \"Lithology\",\n value: h(LithTypes, { lith_types }),\n },\n h(LithologyList, {\n label: \"Matched lithologies\",\n lithologies,\n onClickItem: (e, lith) => {\n window.open(lithologyURL + \"/\" + lith.lith_id, \"_self\");\n },\n }),\n );\n}\n\nfunction EnvironTypes(props) {\n const { environ_types } = props;\n return h.if(environ_types && environ_types.length > 0)(LithologyList, {\n lithologies: environ_types?.filter((e) => e.name != \"\"),\n });\n}\n\nfunction Environments(props) {\n const { source, environmentURL } = props;\n const { macrostrat } = source;\n const { environs = null, environ_types = null } = macrostrat;\n\n if (!environs || environs.length == 0) return null;\n\n const lithologies = environs?.map((environ) => {\n return {\n ...environ,\n name: environ.environ,\n color: environ.color || \"#000000\",\n };\n });\n\n return h(\n ExpandableDetailsPanel,\n {\n title: \"Environment\",\n value: h(EnvironTypes, { environ_types }),\n },\n h(LithologyList, {\n label: \"Matched environments\",\n lithologies,\n }),\n );\n}\n"],"names":["h","ExpansionPanel","AgeChip","scale","chroma","scaleLinear","AxisBottom","ExpandableDetailsPanel","LithologyList"],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ExpansionPanel, ExpandableDetailsPanel, ExpansionBody } from "@macrostrat/map-interface";
|
|
3
|
-
import h$2 from "./main.module.sass.js";
|
|
1
|
+
import { ExpansionPanel, ExpandableDetailsPanel, LithologyList } from "@macrostrat/data-components";
|
|
4
2
|
import { scaleLinear } from "@visx/scale";
|
|
5
3
|
import { AxisBottom } from "@visx/axis";
|
|
6
4
|
import chroma from "chroma-js";
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
const h = h$1.styled(h$2);
|
|
5
|
+
import { AgeChip } from "./info-blocks.js";
|
|
6
|
+
import h from "./main.module.sass.js";
|
|
10
7
|
function MacrostratLinkedData(props) {
|
|
11
8
|
const {
|
|
12
9
|
mapInfo,
|
|
@@ -34,8 +31,7 @@ function MacrostratLinkedData(props) {
|
|
|
34
31
|
h(MinorFossilCollections, { source }),
|
|
35
32
|
h(FossilOccs, { source }),
|
|
36
33
|
h(LithsAndClasses, { source, lithologyURL }),
|
|
37
|
-
h(Environments, { source, environmentURL })
|
|
38
|
-
h(Economy, { source })
|
|
34
|
+
h(Environments, { source, environmentURL })
|
|
39
35
|
])
|
|
40
36
|
]
|
|
41
37
|
);
|
|
@@ -171,7 +167,7 @@ function MacrostratAgeInfo(props) {
|
|
|
171
167
|
return h(
|
|
172
168
|
ExpandableDetailsPanel,
|
|
173
169
|
{ headerElement: h(MacrostratAgeInfoCore, props) },
|
|
174
|
-
h(
|
|
170
|
+
h(AgeRefinementPlot, props)
|
|
175
171
|
);
|
|
176
172
|
}
|
|
177
173
|
function MatchBasis(props) {
|
|
@@ -186,22 +182,20 @@ function MatchBasis(props) {
|
|
|
186
182
|
h("div.description", "Matched stratigraphic unit")
|
|
187
183
|
])
|
|
188
184
|
},
|
|
189
|
-
|
|
190
|
-
source.macrostrat.strat_names
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
})
|
|
204
|
-
])
|
|
185
|
+
source.macrostrat.strat_names?.map((name, i) => {
|
|
186
|
+
let lastElement = i == source.macrostrat.strat_names.length - 1;
|
|
187
|
+
return h("span", { key: i }, [
|
|
188
|
+
h(
|
|
189
|
+
"a.externalLink",
|
|
190
|
+
{
|
|
191
|
+
href: stratNameURL + "/" + name.strat_name_id,
|
|
192
|
+
key: i
|
|
193
|
+
},
|
|
194
|
+
[name.rank_name]
|
|
195
|
+
),
|
|
196
|
+
h.if(!lastElement)([", "])
|
|
197
|
+
]);
|
|
198
|
+
})
|
|
205
199
|
);
|
|
206
200
|
}
|
|
207
201
|
function Thickness(props) {
|
|
@@ -270,14 +264,13 @@ function LithsAndClasses(props) {
|
|
|
270
264
|
title: "Lithology",
|
|
271
265
|
value: h(LithTypes, { lith_types })
|
|
272
266
|
},
|
|
273
|
-
h(
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
])
|
|
267
|
+
h(LithologyList, {
|
|
268
|
+
label: "Matched lithologies",
|
|
269
|
+
lithologies,
|
|
270
|
+
onClickItem: (e, lith) => {
|
|
271
|
+
window.open(lithologyURL + "/" + lith.lith_id, "_self");
|
|
272
|
+
}
|
|
273
|
+
})
|
|
281
274
|
);
|
|
282
275
|
}
|
|
283
276
|
function EnvironTypes(props) {
|
|
@@ -304,49 +297,10 @@ function Environments(props) {
|
|
|
304
297
|
title: "Environment",
|
|
305
298
|
value: h(EnvironTypes, { environ_types })
|
|
306
299
|
},
|
|
307
|
-
h(
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
onClickItem: (e, environ) => {
|
|
311
|
-
console.log("environ", environmentURL);
|
|
312
|
-
window.open(environmentURL + "/" + environ.environ_id, "_self");
|
|
313
|
-
}
|
|
314
|
-
})
|
|
315
|
-
])
|
|
316
|
-
);
|
|
317
|
-
}
|
|
318
|
-
function EconType(props) {
|
|
319
|
-
const { econ_types } = props;
|
|
320
|
-
return h.if(econ_types && econ_types.length > 0)("div", [
|
|
321
|
-
econ_types?.map((econClass, i) => {
|
|
322
|
-
return h(AttrChip, {
|
|
323
|
-
key: i,
|
|
324
|
-
name: econClass.name,
|
|
325
|
-
color: econClass.color
|
|
326
|
-
});
|
|
300
|
+
h(LithologyList, {
|
|
301
|
+
label: "Matched environments",
|
|
302
|
+
lithologies
|
|
327
303
|
})
|
|
328
|
-
]);
|
|
329
|
-
}
|
|
330
|
-
function Economy(props) {
|
|
331
|
-
const { source } = props;
|
|
332
|
-
const { macrostrat } = source;
|
|
333
|
-
const { econs = null, econ_types = null } = macrostrat;
|
|
334
|
-
if (!econs) return h("div");
|
|
335
|
-
return h.if(econs && econs.length > 0)(
|
|
336
|
-
ExpandableDetailsPanel,
|
|
337
|
-
{
|
|
338
|
-
title: "Economy ",
|
|
339
|
-
value: h(EconType, { econ_types })
|
|
340
|
-
},
|
|
341
|
-
h(ExpansionBody, { title: "Matched economic attributes" }, [
|
|
342
|
-
econs?.map((econ, i) => {
|
|
343
|
-
return h(AttrChip, {
|
|
344
|
-
key: i,
|
|
345
|
-
name: econ.econ,
|
|
346
|
-
color: econ.color
|
|
347
|
-
});
|
|
348
|
-
})
|
|
349
|
-
])
|
|
350
304
|
);
|
|
351
305
|
}
|
|
352
306
|
export {
|