@macrostrat/map-interface 1.5.6 → 1.6.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 (158) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cjs/index.js +5 -5
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/{map-interface.603b61b2.js → map-interface.11056b04.js} +2 -2
  5. package/dist/cjs/{map-interface.603b61b2.js.map → map-interface.11056b04.js.map} +1 -1
  6. package/dist/cjs/{map-interface.f4227aaa.js → map-interface.12e5d744.js} +2 -2
  7. package/dist/cjs/{map-interface.f4227aaa.js.map → map-interface.12e5d744.js.map} +1 -1
  8. package/dist/cjs/map-interface.225c9340.js +71 -0
  9. package/dist/cjs/map-interface.225c9340.js.map +1 -0
  10. package/dist/cjs/map-interface.3ca778c5.js +57 -0
  11. package/dist/cjs/map-interface.3ca778c5.js.map +1 -0
  12. package/dist/cjs/map-interface.4267aa3a.js +68 -0
  13. package/dist/cjs/map-interface.4267aa3a.js.map +1 -0
  14. package/dist/cjs/{map-interface.b15c1893.js → map-interface.46d1c77b.js} +3 -9
  15. package/dist/cjs/map-interface.46d1c77b.js.map +1 -0
  16. package/dist/cjs/{map-interface.dcbd3874.js → map-interface.4a3d9662.js} +4 -4
  17. package/dist/cjs/map-interface.4a3d9662.js.map +1 -0
  18. package/dist/cjs/{map-interface.10d442f4.js → map-interface.67001b26.js} +2 -2
  19. package/dist/cjs/{map-interface.10d442f4.js.map → map-interface.67001b26.js.map} +1 -1
  20. package/dist/cjs/{map-interface.9277efa8.js → map-interface.69b2e2a9.js} +2 -2
  21. package/dist/cjs/{map-interface.9277efa8.js.map → map-interface.69b2e2a9.js.map} +1 -1
  22. package/dist/cjs/{map-interface.3bcda63a.js → map-interface.7170f35e.js} +3 -4
  23. package/dist/cjs/map-interface.7170f35e.js.map +1 -0
  24. package/dist/cjs/{map-interface.e109c93a.js → map-interface.8d67cc21.js} +2 -2
  25. package/dist/cjs/{map-interface.e109c93a.js.map → map-interface.8d67cc21.js.map} +1 -1
  26. package/dist/cjs/{map-interface.3bc4f731.js → map-interface.a3c2552f.js} +2 -2
  27. package/dist/cjs/{map-interface.3bc4f731.js.map → map-interface.a3c2552f.js.map} +1 -1
  28. package/dist/cjs/{map-interface.28d1a6b7.js → map-interface.a960d638.js} +2 -2
  29. package/dist/cjs/{map-interface.28d1a6b7.js.map → map-interface.a960d638.js.map} +1 -1
  30. package/dist/cjs/{map-interface.4e156c8b.js → map-interface.c5061c96.js} +5 -5
  31. package/dist/cjs/{map-interface.4e156c8b.js.map → map-interface.c5061c96.js.map} +1 -1
  32. package/dist/cjs/map-interface.cf6c9a68.js.map +1 -1
  33. package/dist/cjs/{map-interface.1fdaaaf6.js → map-interface.e74ded77.js} +2 -2
  34. package/dist/cjs/{map-interface.1fdaaaf6.js.map → map-interface.e74ded77.js.map} +1 -1
  35. package/dist/cjs/{map-interface.ce2c83fa.js → map-interface.e975d65c.js} +7 -1
  36. package/dist/cjs/map-interface.e975d65c.js.map +1 -0
  37. package/dist/esm/index.d.ts +10 -41
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js +5 -5
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/{map-interface.0b030247.js → map-interface.1d38872e.js} +2 -2
  42. package/dist/esm/{map-interface.0b030247.js.map → map-interface.1d38872e.js.map} +1 -1
  43. package/dist/esm/map-interface.2350f590.js +48 -0
  44. package/dist/esm/map-interface.2350f590.js.map +1 -0
  45. package/dist/esm/{map-interface.ec2278ab.js → map-interface.2892a5fb.js} +2 -2
  46. package/dist/esm/{map-interface.ec2278ab.js.map → map-interface.2892a5fb.js.map} +1 -1
  47. package/dist/esm/{map-interface.90d9023c.js → map-interface.557de808.js} +2 -2
  48. package/dist/esm/{map-interface.90d9023c.js.map → map-interface.557de808.js.map} +1 -1
  49. package/dist/esm/map-interface.64c62ba1.js +62 -0
  50. package/dist/esm/map-interface.64c62ba1.js.map +1 -0
  51. package/dist/esm/{map-interface.316fd76a.js → map-interface.672c2e0b.js} +2 -8
  52. package/dist/esm/map-interface.672c2e0b.js.map +1 -0
  53. package/dist/esm/{map-interface.54ccd41f.js → map-interface.6e65dcaf.js} +2 -2
  54. package/dist/esm/{map-interface.54ccd41f.js.map → map-interface.6e65dcaf.js.map} +1 -1
  55. package/dist/esm/{map-interface.fb96fb7e.js → map-interface.72b1bfba.js} +2 -2
  56. package/dist/esm/{map-interface.fb96fb7e.js.map → map-interface.72b1bfba.js.map} +1 -1
  57. package/dist/esm/{map-interface.c1d19ef4.js → map-interface.9152234b.js} +6 -6
  58. package/dist/esm/{map-interface.c1d19ef4.js.map → map-interface.9152234b.js.map} +1 -1
  59. package/dist/esm/{map-interface.e7e34e41.js → map-interface.a03a7a23.js} +2 -2
  60. package/dist/esm/{map-interface.e7e34e41.js.map → map-interface.a03a7a23.js.map} +1 -1
  61. package/dist/esm/{map-interface.00ecf2ee.js → map-interface.a8c94450.js} +3 -4
  62. package/dist/esm/map-interface.a8c94450.js.map +1 -0
  63. package/dist/esm/map-interface.c2a61cbf.js +62 -0
  64. package/dist/esm/map-interface.c2a61cbf.js.map +1 -0
  65. package/dist/esm/{map-interface.13e6d768.js → map-interface.c52c2fec.js} +2 -2
  66. package/dist/esm/{map-interface.13e6d768.js.map → map-interface.c52c2fec.js.map} +1 -1
  67. package/dist/esm/{map-interface.e20a9bac.js → map-interface.e418553b.js} +4 -4
  68. package/dist/esm/map-interface.e418553b.js.map +1 -0
  69. package/dist/esm/{map-interface.da91ba86.js → map-interface.e63d862d.js} +5 -5
  70. package/dist/esm/{map-interface.da91ba86.js.map → map-interface.e63d862d.js.map} +1 -1
  71. package/dist/esm/map-interface.f7b8bdb7.js.map +1 -1
  72. package/dist/node/index.js +1 -1
  73. package/dist/node/index.js.map +1 -1
  74. package/dist/node/{map-interface.bde5650a.js → map-interface.0e71fd95.js} +2 -2
  75. package/dist/node/{map-interface.bde5650a.js.map → map-interface.0e71fd95.js.map} +1 -1
  76. package/dist/node/{map-interface.432dd2f9.js → map-interface.254e457a.js} +2 -2
  77. package/dist/node/{map-interface.432dd2f9.js.map → map-interface.254e457a.js.map} +1 -1
  78. package/dist/node/map-interface.33b7734a.js.map +1 -1
  79. package/dist/node/map-interface.41e916d1.js +2 -0
  80. package/dist/node/map-interface.41e916d1.js.map +1 -0
  81. package/dist/node/{map-interface.6184dc0f.js → map-interface.4b4f8fdf.js} +2 -2
  82. package/dist/node/{map-interface.6184dc0f.js.map → map-interface.4b4f8fdf.js.map} +1 -1
  83. package/dist/node/{map-interface.8881e38a.js → map-interface.4df6e2c7.js} +2 -2
  84. package/dist/node/{map-interface.8881e38a.js.map → map-interface.4df6e2c7.js.map} +1 -1
  85. package/dist/node/map-interface.5736d6f8.js +2 -0
  86. package/dist/node/map-interface.5736d6f8.js.map +1 -0
  87. package/dist/node/map-interface.593e09ed.js +2 -0
  88. package/dist/node/map-interface.593e09ed.js.map +1 -0
  89. package/dist/node/{map-interface.ce86a010.js → map-interface.6314eef1.js} +2 -2
  90. package/dist/node/{map-interface.ce86a010.js.map → map-interface.6314eef1.js.map} +1 -1
  91. package/dist/node/{map-interface.8ac14ae0.js → map-interface.78e05655.js} +2 -2
  92. package/dist/node/{map-interface.8ac14ae0.js.map → map-interface.78e05655.js.map} +1 -1
  93. package/dist/node/map-interface.9824c03a.js +2 -0
  94. package/dist/node/map-interface.9824c03a.js.map +1 -0
  95. package/dist/node/{map-interface.2542fda9.js → map-interface.b0e1ad1b.js} +2 -2
  96. package/dist/node/{map-interface.2542fda9.js.map → map-interface.b0e1ad1b.js.map} +1 -1
  97. package/dist/node/{map-interface.aa4d45ff.js → map-interface.b33fab5e.js} +2 -2
  98. package/dist/node/map-interface.b33fab5e.js.map +1 -0
  99. package/dist/node/{map-interface.7e13bea8.js → map-interface.bf86da7c.js} +2 -2
  100. package/dist/node/{map-interface.7e13bea8.js.map → map-interface.bf86da7c.js.map} +1 -1
  101. package/dist/node/{map-interface.82397845.js → map-interface.e7598785.js} +2 -2
  102. package/dist/node/{map-interface.82397845.js.map → map-interface.e7598785.js.map} +1 -1
  103. package/dist/node/map-interface.f13f7aeb.js +2 -0
  104. package/dist/node/map-interface.f13f7aeb.js.map +1 -0
  105. package/package.json +8 -8
  106. package/src/{location-info/hash-string.ts → hash-string.ts} +4 -1
  107. package/src/helpers.ts +0 -2
  108. package/src/index.ts +1 -1
  109. package/src/location-details/utils/index.ts +0 -7
  110. package/src/location-details/xdd-panel/article.ts +67 -0
  111. package/src/location-details/xdd-panel/index.ts +2 -17
  112. package/src/location-details/xdd-panel/{Journal.tsx → journal.ts} +15 -5
  113. package/src/location-panel/header.ts +1 -1
  114. package/dist/cjs/map-interface.2401af7a.js +0 -59
  115. package/dist/cjs/map-interface.2401af7a.js.map +0 -1
  116. package/dist/cjs/map-interface.3bcda63a.js.map +0 -1
  117. package/dist/cjs/map-interface.64823b7c.js +0 -129
  118. package/dist/cjs/map-interface.64823b7c.js.map +0 -1
  119. package/dist/cjs/map-interface.71e61c74.js +0 -73
  120. package/dist/cjs/map-interface.71e61c74.js.map +0 -1
  121. package/dist/cjs/map-interface.860fcb7e.js +0 -67
  122. package/dist/cjs/map-interface.860fcb7e.js.map +0 -1
  123. package/dist/cjs/map-interface.b15c1893.js.map +0 -1
  124. package/dist/cjs/map-interface.ce2c83fa.js.map +0 -1
  125. package/dist/cjs/map-interface.dcbd3874.js.map +0 -1
  126. package/dist/cjs/map-interface.dfaad4a1.js +0 -36
  127. package/dist/cjs/map-interface.dfaad4a1.js.map +0 -1
  128. package/dist/esm/map-interface.00ecf2ee.js.map +0 -1
  129. package/dist/esm/map-interface.316fd76a.js.map +0 -1
  130. package/dist/esm/map-interface.3ef9d0ae.js +0 -99
  131. package/dist/esm/map-interface.3ef9d0ae.js.map +0 -1
  132. package/dist/esm/map-interface.767fdc4a.js +0 -64
  133. package/dist/esm/map-interface.767fdc4a.js.map +0 -1
  134. package/dist/esm/map-interface.9fac5fa6.js +0 -50
  135. package/dist/esm/map-interface.9fac5fa6.js.map +0 -1
  136. package/dist/esm/map-interface.c4fa120d.js +0 -28
  137. package/dist/esm/map-interface.c4fa120d.js.map +0 -1
  138. package/dist/esm/map-interface.e20a9bac.js.map +0 -1
  139. package/dist/esm/map-interface.e50c290f.js +0 -61
  140. package/dist/esm/map-interface.e50c290f.js.map +0 -1
  141. package/dist/node/map-interface.42a4b05a.js +0 -2
  142. package/dist/node/map-interface.42a4b05a.js.map +0 -1
  143. package/dist/node/map-interface.48262cbb.js +0 -2
  144. package/dist/node/map-interface.48262cbb.js.map +0 -1
  145. package/dist/node/map-interface.56b5b2ee.js +0 -2
  146. package/dist/node/map-interface.56b5b2ee.js.map +0 -1
  147. package/dist/node/map-interface.9e6751ac.js +0 -2
  148. package/dist/node/map-interface.9e6751ac.js.map +0 -1
  149. package/dist/node/map-interface.a8be0cba.js +0 -2
  150. package/dist/node/map-interface.a8be0cba.js.map +0 -1
  151. package/dist/node/map-interface.aa4d45ff.js.map +0 -1
  152. package/dist/node/map-interface.d92b296e.js +0 -2
  153. package/dist/node/map-interface.d92b296e.js.map +0 -1
  154. package/dist/node/map-interface.e0032d67.js +0 -2
  155. package/dist/node/map-interface.e0032d67.js.map +0 -1
  156. package/src/location-details/xdd-panel/Article.tsx +0 -69
  157. package/src/location-info/index.ts +0 -100
  158. package/src/location-info/utils.ts +0 -24
@@ -1,129 +0,0 @@
1
- var $bf943af2b72f182b$exports = require("./map-interface.dfaad4a1.js");
2
- var $370ea7ef3413c03a$exports = require("./map-interface.860fcb7e.js");
3
- var $eMimP$macrostrathyper = require("@macrostrat/hyper");
4
- var $eMimP$macrostratmapboxutils = require("@macrostrat/mapbox-utils");
5
- var $eMimP$mapboxgl = require("mapbox-gl");
6
-
7
-
8
- function $parcel$interopDefault(a) {
9
- return a && a.__esModule ? a.default : a;
10
- }
11
-
12
- function $parcel$exportWildcard(dest, source) {
13
- Object.keys(source).forEach(function(key) {
14
- if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {
15
- return;
16
- }
17
-
18
- Object.defineProperty(dest, key, {
19
- enumerable: true,
20
- get: function get() {
21
- return source[key];
22
- }
23
- });
24
- });
25
-
26
- return dest;
27
- }
28
-
29
- function $parcel$export(e, n, v, s) {
30
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
31
- }
32
-
33
- $parcel$export(module.exports, "ValueWithUnit", () => $860d9939f7032c69$export$716098b85fd0efdf);
34
- $parcel$export(module.exports, "DegreeCoord", () => $860d9939f7032c69$export$af8082af0bea3eb1);
35
- $parcel$export(module.exports, "LngLatCoords", () => $860d9939f7032c69$export$f195b3550849e560);
36
- $parcel$export(module.exports, "Elevation", () => $860d9939f7032c69$export$58bfb4f6ec5aa58d);
37
-
38
-
39
-
40
-
41
-
42
- function $860d9939f7032c69$export$716098b85fd0efdf(props) {
43
- const { value: value, unit: unit } = props;
44
- return (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("span.value-with-unit", [
45
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("span.value", [
46
- value
47
- ]),
48
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("span.spacer", [
49
- " "
50
- ]),
51
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("span.unit", [
52
- unit
53
- ])
54
- ]);
55
- }
56
- function $860d9939f7032c69$export$af8082af0bea3eb1(props) {
57
- const { value: value, labels: labels, precision: precision = 3, format: format = (0, $bf943af2b72f182b$exports.formatValue) } = props;
58
- const direction = value < 0 ? labels[1] : labels[0];
59
- return (0, ($parcel$interopDefault($eMimP$macrostrathyper)))($860d9939f7032c69$export$716098b85fd0efdf, {
60
- value: format(Math.abs(value), precision) + "\xb0",
61
- unit: direction
62
- });
63
- }
64
- function $860d9939f7032c69$export$f195b3550849e560(props) {
65
- /** Formatted geographic coordinates */ const { position: position, className: className, precision: precision, zoom: zoom } = props;
66
- let { format: format } = props;
67
- if (position == null) return null;
68
- let lat;
69
- let lng;
70
- if (Array.isArray(position)) [lng, lat] = position;
71
- else if (position instanceof (0, $eMimP$mapboxgl.LngLat)) [lng, lat] = position.toArray();
72
- else if ("lng" in position) {
73
- lat = position.lat;
74
- lng = position.lng;
75
- } else if ("lon" in position) {
76
- lat = position.lat;
77
- lng = position.lon;
78
- }
79
- if (zoom != null && format == null && precision == null) format = (val, _)=>(0, $eMimP$macrostratmapboxutils.formatCoordForZoomLevel)(val, zoom);
80
- return (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("div.lnglat-container", {
81
- className: className
82
- }, [
83
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("span.lnglat", [
84
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))($860d9939f7032c69$export$af8082af0bea3eb1, {
85
- value: lat,
86
- labels: [
87
- "N",
88
- "S"
89
- ],
90
- precision: precision,
91
- format: format
92
- }),
93
- ", ",
94
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))($860d9939f7032c69$export$af8082af0bea3eb1, {
95
- value: (0, $eMimP$macrostratmapboxutils.normalizeLng)(lng),
96
- labels: [
97
- "E",
98
- "W"
99
- ],
100
- precision: precision,
101
- format: format
102
- })
103
- ])
104
- ]);
105
- }
106
- function $860d9939f7032c69$export$58bfb4f6ec5aa58d(props) {
107
- /** Renders an elevation value in meters and a parenthetical conversion to feet. */ const { elevation: elevation, className: className, includeFeet: includeFeet = true } = props;
108
- if (elevation == null) return null;
109
- return (0, ($parcel$interopDefault($eMimP$macrostrathyper)))("div.elevation", {
110
- className: className
111
- }, [
112
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))($860d9939f7032c69$export$716098b85fd0efdf, {
113
- value: elevation,
114
- unit: "m"
115
- }),
116
- (0, ($parcel$interopDefault($eMimP$macrostrathyper))).if(includeFeet)("span.secondary", [
117
- " (",
118
- (0, ($parcel$interopDefault($eMimP$macrostrathyper)))($860d9939f7032c69$export$716098b85fd0efdf, {
119
- value: (0, $eMimP$macrostratmapboxutils.metersToFeet)(elevation),
120
- unit: "ft"
121
- }),
122
- ")"
123
- ])
124
- ]);
125
- }
126
- $parcel$exportWildcard(module.exports, $370ea7ef3413c03a$exports);
127
-
128
-
129
- //# sourceMappingURL=map-interface.64823b7c.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,SAAS,0CAAc,KAAK;IACjC,MAAM,SAAE,KAAK,QAAE,IAAI,EAAE,GAAG;IACxB,OAAO,CAAA,GAAA,gDAAA,EAAE,wBAAwB;QAC/B,CAAA,GAAA,gDAAA,EAAE,cAAc;YAAC;SAAM;QACvB,CAAA,GAAA,gDAAA,EAAE,eAAe;YAAC;SAAI;QACtB,CAAA,GAAA,gDAAA,EAAE,aAAa;YAAC;SAAK;KACtB;AACH;AAEO,SAAS,0CAAY,KAAK;IAC/B,MAAM,SAAE,KAAK,UAAE,MAAM,aAAE,YAAY,WAAG,SAAS,CAAA,GAAA,qCAAU,GAAG,GAAG;IAC/D,MAAM,YAAY,QAAQ,IAAI,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;IAEnD,OAAO,CAAA,GAAA,gDAAA,EAAE,2CAAe;QACtB,OAAO,OAAO,KAAK,GAAG,CAAC,QAAQ,aAAa;QAC5C,MAAM;IACR;AACF;AAcO,SAAS,0CAAa,KAAkB;IAC7C,qCAAqC,GACrC,MAAM,YAAE,QAAQ,aAAE,SAAS,aAAE,SAAS,QAAE,IAAI,EAAE,GAAG;IACjD,IAAI,UAAE,MAAM,EAAE,GAAG;IACjB,IAAI,YAAY,MACd,OAAO;IAGT,IAAI;IACJ,IAAI;IACJ,IAAI,MAAM,OAAO,CAAC,WAChB,CAAC,KAAK,IAAI,GAAG;SACR,IAAI,oBAAoB,CAAA,GAAA,sBAAK,GAClC,CAAC,KAAK,IAAI,GAAG,SAAS,OAAO;SACxB,IAAI,SAAS,UAAU;QAC5B,MAAM,SAAS,GAAG;QAClB,MAAM,SAAS,GAAG;IACpB,OAAO,IAAI,SAAS,UAAU;QAC5B,MAAM,SAAS,GAAG;QAClB,MAAM,SAAS,GAAG;IACpB;IAEA,IAAI,QAAQ,QAAQ,UAAU,QAAQ,aAAa,MACjD,SAAS,CAAC,KAAK,IAAM,CAAA,GAAA,oDAAsB,EAAE,KAAK;IAGpD,OAAO,CAAA,GAAA,gDAAA,EAAE,wBAAwB;mBAAE;IAAU,GAAG;QAC9C,CAAA,GAAA,gDAAA,EAAE,eAAe;YACf,CAAA,GAAA,gDAAA,EAAE,2CAAa;gBACb,OAAO;gBACP,QAAQ;oBAAC;oBAAK;iBAAI;2BAClB;wBACA;YACF;YACA;YACA,CAAA,GAAA,gDAAA,EAAE,2CAAa;gBACb,OAAO,CAAA,GAAA,yCAAW,EAAE;gBACpB,QAAQ;oBAAC;oBAAK;iBAAI;2BAClB;wBACA;YACF;SACD;KACF;AACH;AAEO,SAAS,0CAAU,KAAK;IAC7B,iFAAiF,GACjF,MAAM,aAAE,SAAS,aAAE,SAAS,eAAE,cAAc,MAAM,GAAG;IACrD,IAAI,aAAa,MAAM,OAAO;IAC9B,OAAO,CAAA,GAAA,gDAAA,EAAE,iBAAiB;mBAAE;IAAU,GAAG;QACvC,CAAA,GAAA,gDAAA,EAAE,2CAAe;YAAE,OAAO;YAAW,MAAM;QAAI;QAC/C,CAAA,GAAA,gDAAA,EAAE,EAAE,CAAC,aAAa,kBAAkB;YAClC;YACA,CAAA,GAAA,gDAAA,EAAE,2CAAe;gBAAE,OAAO,CAAA,GAAA,yCAAW,EAAE;gBAAY,MAAM;YAAK;YAC9D;SACD;KACF;AACH","sources":["packages/map-interface/src/location-info/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n formatCoordForZoomLevel,\n metersToFeet,\n normalizeLng,\n} from \"@macrostrat/mapbox-utils\";\nimport { formatValue } from \"./utils\";\nimport { LngLat } from \"mapbox-gl\";\n\nexport * from \"./hash-string\";\n\nexport function ValueWithUnit(props) {\n const { value, unit } = props;\n return h(\"span.value-with-unit\", [\n h(\"span.value\", [value]),\n h(\"span.spacer\", [\" \"]),\n h(\"span.unit\", [unit]),\n ]);\n}\n\nexport function DegreeCoord(props) {\n const { value, labels, precision = 3, format = formatValue } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n\n return h(ValueWithUnit, {\n value: format(Math.abs(value), precision) + \"°\",\n unit: direction,\n });\n}\n\nexport interface LngLatProps {\n /** Map position */\n position: mapboxgl.LngLatLike | null;\n className?: string;\n /** Zoom level (used to infer coordinate rounding if provided) */\n zoom?: number;\n /** Number of decimal places to round coordinates to */\n precision?: number;\n /** Function to format coordinates */\n format?: (val: number, precision: number) => string;\n}\n\nexport function LngLatCoords(props: LngLatProps) {\n /** Formatted geographic coordinates */\n const { position, className, precision, zoom } = props;\n let { format } = props;\n if (position == null) {\n return null;\n }\n\n let lat: number;\n let lng: number;\n if (Array.isArray(position)) {\n [lng, lat] = position;\n } else if (position instanceof LngLat) {\n [lng, lat] = position.toArray();\n } else if (\"lng\" in position) {\n lat = position.lat;\n lng = position.lng;\n } else if (\"lon\" in position) {\n lat = position.lat;\n lng = position.lon;\n }\n\n if (zoom != null && format == null && precision == null) {\n format = (val, _) => formatCoordForZoomLevel(val, zoom);\n }\n\n return h(\"div.lnglat-container\", { className }, [\n h(\"span.lnglat\", [\n h(DegreeCoord, {\n value: lat,\n labels: [\"N\", \"S\"],\n precision,\n format,\n }),\n \", \",\n h(DegreeCoord, {\n value: normalizeLng(lng),\n labels: [\"E\", \"W\"],\n precision,\n format,\n }),\n ]),\n ]);\n}\n\nexport function Elevation(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */\n const { elevation, className, includeFeet = true } = props;\n if (elevation == null) return null;\n return h(\"div.elevation\", { className }, [\n h(ValueWithUnit, { value: elevation, unit: \"m\" }),\n h.if(includeFeet)(\"span.secondary\", [\n \" (\",\n h(ValueWithUnit, { value: metersToFeet(elevation), unit: \"ft\" }),\n \")\",\n ]),\n ]);\n}\n"],"names":[],"version":3,"file":"map-interface.64823b7c.js.map"}
@@ -1,73 +0,0 @@
1
- var $hNipK$react = require("react");
2
- var $hNipK$blueprintjscore = require("@blueprintjs/core");
3
- var $hNipK$macrostratuicomponents = require("@macrostrat/ui-components");
4
- var $hNipK$macrostrathyper = require("@macrostrat/hyper");
5
-
6
-
7
- function $parcel$interopDefault(a) {
8
- return a && a.__esModule ? a.default : a;
9
- }
10
-
11
- function $parcel$export(e, n, v, s) {
12
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
13
- }
14
-
15
- $parcel$export(module.exports, "default", () => $7c4fdba98d56d7b3$export$2e2bcd8739ae039);
16
-
17
-
18
-
19
-
20
- function $7c4fdba98d56d7b3$var$Article(props) {
21
- const [expanded, setExpanded] = (0, $hNipK$react.useState)(false);
22
- const { data: data } = props;
23
- const toggleExpand = ()=>{
24
- setExpanded(!expanded);
25
- };
26
- // Attempt to pull out only the year and not the whole date
27
- let year;
28
- try {
29
- year = data.coverDate ? data.coverDate.match(/\d{4}/)[0] : "";
30
- } catch (e) {
31
- year = "";
32
- }
33
- const authors = data?.authors?.split("; ") ?? [];
34
- const authorList = authors.length > 0 ? (0, ($parcel$interopDefault($hNipK$macrostrathyper)))((0, $hNipK$macrostratuicomponents.AuthorList), {
35
- names: authors
36
- }) : "Unknown";
37
- const iconName = expanded ? "chevron-up" : "chevron-down";
38
- return /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("div", {
39
- className: "article"
40
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("div", {
41
- className: "article-title"
42
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("p", {
43
- className: "article-author"
44
- }, authorList, ", ", year.length ? " " + year + ". " : ""), /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("a", {
45
- href: data.URL,
46
- target: "_blank",
47
- className: "title-link"
48
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("strong", null, data.title, ".")), /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("span", null, /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement((0, $hNipK$blueprintjscore.Button), {
49
- onClick: toggleExpand,
50
- minimal: true,
51
- rightIcon: iconName,
52
- className: "flat-btn"
53
- }))), /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement((0, $hNipK$blueprintjscore.Collapse), {
54
- isOpen: expanded
55
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("span", {
56
- className: expanded ? "" : "hidden"
57
- }, /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("div", {
58
- className: "quotes"
59
- }, data.highlight.map((snippet, si)=>{
60
- let text = snippet;
61
- return /*#__PURE__*/ (0, ($parcel$interopDefault($hNipK$react))).createElement("p", {
62
- className: "gdd-snippet",
63
- key: si,
64
- dangerouslySetInnerHTML: {
65
- __html: `...${snippet}...`
66
- }
67
- });
68
- })))));
69
- }
70
- var $7c4fdba98d56d7b3$export$2e2bcd8739ae039 = $7c4fdba98d56d7b3$var$Article;
71
-
72
-
73
- //# sourceMappingURL=map-interface.71e61c74.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;AAKA,SAAS,8BAAQ,KAAK;IACpB,MAAM,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,qBAAO,EAAE;IACzC,MAAM,QAAE,IAAI,EAAE,GAAG;IAEjB,MAAM,eAAe;QACnB,YAAY,CAAC;IACf;IAEA,2DAA2D;IAC3D,IAAI;IACJ,IAAI;QACF,OAAO,KAAK,SAAS,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG;IAC7D,EAAE,OAAO,GAAG;QACV,OAAO;IACT;IAEA,MAAM,UAAU,MAAM,SAAS,MAAM,SAAS,EAAE;IAEhD,MAAM,aACJ,QAAQ,MAAM,GAAG,IAAI,CAAA,GAAA,gDAAA,EAAE,CAAA,GAAA,wCAAS,GAAG;QAAE,OAAO;IAAQ,KAAK;IAE3D,MAAM,WAAW,WAAW,eAAe;IAE3C,qBACE,0DAAC;QAAI,WAAU;qBACb,0DAAC;QAAI,WAAU;qBACb,0DAAC;QAAE,WAAU;OACV,YAAW,MAAG,KAAK,MAAM,GAAG,MAAM,OAAO,OAAO,mBAEnD,0DAAC;QAAE,MAAM,KAAK,GAAG;QAAE,QAAO;QAAS,WAAU;qBAC3C,0DAAC,gBAAQ,KAAK,KAAK,EAAC,qBAGtB,0DAAC,4BACC,0DAAC,CAAA,GAAA,6BAAK;QACJ,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAU;wBAIhB,0DAAC,CAAA,GAAA,+BAAO;QAAE,QAAQ;qBAChB,0DAAC;QAAK,WAAW,WAAW,KAAK;qBAC/B,0DAAC;QAAI,WAAU;OACZ,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS;QAC5B,IAAI,OAAO;QAEX,qBACE,0DAAC;YACC,WAAU;YACV,KAAK;YACL,yBAAyB;gBAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC;YAAC;;IAG5D;AAMZ;IAEA,2CAAe","sources":["packages/map-interface/src/location-details/xdd-panel/Article.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Collapse, Button } from \"@blueprintjs/core\";\nimport { AuthorList } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nfunction Article(props) {\n const [expanded, setExpanded] = useState(false);\n const { data } = props;\n\n const toggleExpand = () => {\n setExpanded(!expanded);\n };\n\n // Attempt to pull out only the year and not the whole date\n let year;\n try {\n year = data.coverDate ? data.coverDate.match(/\\d{4}/)[0] : \"\";\n } catch (e) {\n year = \"\";\n }\n\n const authors = data?.authors?.split(\"; \") ?? [];\n\n const authorList =\n authors.length > 0 ? h(AuthorList, { names: authors }) : \"Unknown\";\n\n const iconName = expanded ? \"chevron-up\" : \"chevron-down\";\n\n return (\n <div className=\"article\">\n <div className=\"article-title\">\n <p className=\"article-author\">\n {authorList}, {year.length ? \" \" + year + \". \" : \"\"}\n </p>\n <a href={data.URL} target=\"_blank\" className=\"title-link\">\n <strong>{data.title}.</strong>\n </a>\n\n <span>\n <Button\n onClick={toggleExpand}\n minimal={true}\n rightIcon={iconName}\n className=\"flat-btn\"\n ></Button>\n </span>\n </div>\n <Collapse isOpen={expanded}>\n <span className={expanded ? \"\" : \"hidden\"}>\n <div className=\"quotes\">\n {data.highlight.map((snippet, si) => {\n let text = snippet;\n\n return (\n <p\n className=\"gdd-snippet\"\n key={si}\n dangerouslySetInnerHTML={{ __html: `...${snippet}...` }}\n ></p>\n );\n })}\n </div>\n </span>\n </Collapse>\n </div>\n );\n}\n\nexport default Article;\n"],"names":[],"version":3,"file":"map-interface.71e61c74.js.map"}
@@ -1,67 +0,0 @@
1
- var $bf943af2b72f182b$exports = require("./map-interface.dfaad4a1.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=map-interface.860fcb7e.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;AAgBO,SAAS,0CACd,IAAwB,EACxB,WAA+B;IAE/B,MAAM,MAAM,aAAa;IACzB,IAAI,OAAO,MAAM;IACjB,MAAM,OAAO,YAAY,MAAM,EAAE;IAEjC,KAAK,CAAC,GAAG,CAAA,GAAA,oDAAsB,EAAE,IAAI,GAAG,EAAE;IAC1C,KAAK,CAAC,GAAG,CAAA,GAAA,oDAAsB,EAAE,IAAI,GAAG,EAAE;IAE1C,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,MAChD,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAG,EAAE;SACT,IAAI,IAAI,QAAQ,IAAI;QACzB,IAAI,IAAI,QAAQ,GAAG,MACjB,KAAK,CAAC,GAAG,CAAA,GAAA,8BAAG,EAAE,IAAI,QAAQ,GAAG,QAAQ;aAErC,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE,IAAI,QAAQ,IAAI;;IAGpC,IAAI,IAAI,OAAO,IAAI,GAAG;QACpB,IAAI,KAAK,IAAI,OAAO;QACpB,IAAI,KAAK,GAAG,MAAM;QAClB,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE;IAClB;IACA,IAAI,IAAI,KAAK,IAAI,GACf,KAAK,CAAC,GAAG,CAAA,GAAA,gCAAK,EAAE,IAAI,KAAK;AAE7B;AAEA,SAAS,2BAAK,CAA6B;IACzC,IAAI,MAAM,OAAO,CAAC,IAChB,IAAI,CAAC,CAAC,EAAE;IAEV,OAAO,WAAW,EAAE,QAAQ;AAC9B;AAEO,SAAS,0CACd,QAA6B,EAC7B,cAA6B;IAE7B,MAAM,KACJ,IAAI,gBAAgB,OAAO,MAC3B,IAAI,gBAAgB,OAAO,MAC3B,mEAAmE;IACnE,IAAI,kBAAkB,OAAO,IAAI,MACjC,IAAI,MACJ,IAAI,GACL,GAAG;IAEJ,MAAM,MAAM,2BAAK;IACjB,MAAM,MAAM,2BAAK;IAEjB,IAAI,WAAW;IACf,IAAI,OAAO;IACX,MAAM,KAAK,EAAE,QAAQ;IACrB,IAAI,GAAG,QAAQ,CAAC,OACd,WAAW,2BAAK,GAAG,SAAS,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM;SAC7C,IAAI,GAAG,QAAQ,CAAC,MACrB,WAAW,2BAAK,GAAG,SAAS,CAAC,GAAG,GAAG,MAAM,GAAG;SAE5C,OAAO,2BAAK;IAEd,MAAM,UAAU,2BAAK;IACrB,MAAM,QAAQ,2BAAK;IAEnB,IAAI,SAAS;IACb,IAAI,WAAW,KAAK,SAAS,KAAK,QAAQ,MACxC,SAAS;aACP;aACA;cACA;IACF;IAGF,OAAO;QACL,QAAQ;YACN,KAAK,2BAAK;YACV,KAAK,2BAAK;sBACV;YACA,SAAS,2BAAK;YACd,OAAO,2BAAK;QACd;gBACA;IACF;AACF","sources":["packages/map-interface/src/location-info/hash-string.ts"],"sourcesContent":["import {\n LatLng,\n MapPosition,\n formatCoordForZoomLevel,\n} from \"@macrostrat/mapbox-utils\";\nimport { ParsedQuery } from \"query-string\";\nimport { fmt1, fmt2, fmtInt } from \"./utils\";\n\ninterface LocationHashParams {\n x?: string;\n y?: string;\n z?: string;\n a?: string;\n e?: string;\n}\n\nexport function applyMapPositionToHash(\n args: LocationHashParams,\n mapPosition: MapPosition | null,\n) {\n const pos = mapPosition?.camera;\n if (pos == null) return;\n const zoom = mapPosition.target?.zoom;\n\n args.x = formatCoordForZoomLevel(pos.lng, zoom);\n args.y = formatCoordForZoomLevel(pos.lat, zoom);\n\n if (pos.bearing == 0 && pos.pitch == 0 && zoom != null) {\n args.z = fmt1(zoom);\n } else if (pos.altitude != null) {\n if (pos.altitude > 5000) {\n args.z = fmt2(pos.altitude / 1000) + \"km\";\n } else {\n args.z = fmtInt(pos.altitude) + \"m\";\n }\n }\n if (pos.bearing != 0) {\n let az = pos.bearing;\n if (az < 0) az += 360;\n args.a = fmtInt(az);\n }\n if (pos.pitch != 0) {\n args.e = fmtInt(pos.pitch);\n }\n}\n\nfunction _fmt(x: string | number | string[]) {\n if (Array.isArray(x)) {\n x = x[0];\n }\n return parseFloat(x.toString());\n}\n\nexport function getMapPositionForHash(\n hashData: ParsedQuery<string>,\n centerPosition: LatLng | null,\n): MapPosition {\n const {\n x = centerPosition?.lng ?? 0,\n y = centerPosition?.lat ?? 0,\n // Different default for zoom depending on whether we have a marker\n z = centerPosition != null ? 7 : 2,\n a = 0,\n e = 0,\n } = hashData;\n\n const lng = _fmt(x);\n const lat = _fmt(y);\n\n let altitude = null;\n let zoom = null;\n const _z = z.toString();\n if (_z.endsWith(\"km\")) {\n altitude = _fmt(_z.substring(0, _z.length - 2)) * 1000;\n } else if (_z.endsWith(\"m\")) {\n altitude = _fmt(_z.substring(0, _z.length - 1));\n } else {\n zoom = _fmt(z);\n }\n const bearing = _fmt(a);\n const pitch = _fmt(e);\n\n let target = undefined;\n if (bearing == 0 && pitch == 0 && zoom != null) {\n target = {\n lat,\n lng,\n zoom,\n };\n }\n\n return {\n camera: {\n lng: _fmt(x),\n lat: _fmt(y),\n altitude,\n bearing: _fmt(a),\n pitch: _fmt(e),\n },\n target,\n };\n}\n"],"names":[],"version":3,"file":"map-interface.860fcb7e.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/map-interface/src/location-details/utils/index.ts"],"sourcesContent":["export const addCommas = (x) => {\n x = parseInt(x);\n var parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return parts.join(\".\");\n};\n\nexport const sum = (data, prop) => {\n if (!data || !data.length) {\n return [];\n }\n return data\n .map((d) => {\n return d[prop];\n })\n .reduce((a, b) => {\n return a + b;\n }, 0);\n};\n\nexport const hexToRgb = (hex, opacity) => {\n if (!hex) {\n return \"rgba(0,0,0,0.3)\";\n }\n hex = hex.replace(\"#\", \"\");\n let bigint = parseInt(hex, 16);\n let r = (bigint >> 16) & 255;\n let g = (bigint >> 8) & 255;\n let b = bigint & 255;\n return `rgba(${r},${g},${b},${opacity || 0.8})`;\n};\n\nexport type TimescaleDivision = {\n name: string;\n abbrev: string;\n t_age: number;\n b_age: number;\n color: string;\n};\n\nexport const timescale: TimescaleDivision[] = [\n { name: \"Quaternary\", abbrev: \"Q\", t_age: 0, b_age: 2.588, color: \"#F9F97F\" },\n {\n name: \"Neogene\",\n abbrev: \"Ng\",\n t_age: 2.588,\n b_age: 23.03,\n color: \"#FFE619\",\n },\n {\n name: \"Paleogene\",\n abbrev: \"Pg\",\n t_age: 23.03,\n b_age: 66,\n color: \"#FD9A52\",\n },\n { name: \"Cretaceous\", abbrev: \"K\", t_age: 66, b_age: 145, color: \"#7FC64E\" },\n { name: \"Jurassic\", abbrev: \"J\", t_age: 145, b_age: 201.3, color: \"#34B2C9\" },\n {\n name: \"Triassic\",\n abbrev: \"Tr\",\n t_age: 201.3,\n b_age: 252.17,\n color: \"#812B92\",\n },\n {\n name: \"Permian\",\n abbrev: \"P\",\n t_age: 252.17,\n b_age: 298.9,\n color: \"#F04028\",\n },\n {\n name: \"Carboniferous\",\n abbrev: \"C\",\n t_age: 298.9,\n b_age: 358.9,\n color: \"#67A599\",\n },\n {\n name: \"Devonian\",\n abbrev: \"D\",\n t_age: 358.9,\n b_age: 419.2,\n color: \"#CB8C37\",\n },\n {\n name: \"Silurian\",\n abbrev: \"S\",\n t_age: 419.2,\n b_age: 443.8,\n color: \"#B3E1B6\",\n },\n {\n name: \"Ordovician\",\n abbrev: \"O\",\n t_age: 443.8,\n b_age: 485.4,\n color: \"#009270\",\n },\n {\n name: \"Cambrian\",\n abbrev: \"Cm\",\n t_age: 485.4,\n b_age: 541,\n color: \"#7FA056\",\n },\n { name: \"Ediacaran\", abbrev: \"E\", t_age: 541, b_age: 635, color: \"#FFC3E1\" },\n {\n name: \"Cryogenian\",\n abbrev: \"Cr\",\n t_age: 635,\n b_age: 720,\n color: \"#FFAFD7\",\n },\n { name: \"Tonian\", abbrev: \"T\", t_age: 720, b_age: 1000, color: \"#FFA5D2\" },\n { name: \"Stenian\", abbrev: \"St\", t_age: 1000, b_age: 1200, color: \"#FFA5D2\" },\n {\n name: \"Ectasian\",\n abbrev: \"Ec\",\n t_age: 1200,\n b_age: 1400,\n color: \"#FF98CC\",\n },\n {\n name: \"Calymmian\",\n abbrev: \"Ca\",\n t_age: 1400,\n b_age: 1600,\n color: \"#FF8BC5\",\n },\n {\n name: \"Statherian\",\n abbrev: \"St\",\n t_age: 1600,\n b_age: 1800,\n color: \"#EE93C1\",\n },\n {\n name: \"Orosirian\",\n abbrev: \"Or\",\n t_age: 1800,\n b_age: 2050,\n color: \"#E874AF\",\n },\n { name: \"Rhyacian\", abbrev: \"R\", t_age: 2050, b_age: 2300, color: \"#EB84B8\" },\n {\n name: \"Siderian\",\n abbrev: \"Sd\",\n t_age: 2300,\n b_age: 2500,\n color: \"#E874AF\",\n },\n];\n\nexport * from \"./fossils\";\nexport * from \"./formatting\";\n"],"names":[],"version":3,"file":"map-interface.b15c1893.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;AAEO,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAS,CAAA,GAAA,sBAAK,EAAE;AAEtB,MAAM,4CAAY,CAAC;IACxB,IAAI,SAAS;IACb,IAAI,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC/B,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,yBAAyB;IACrD,OAAO,MAAM,IAAI,CAAC;AACpB","sources":["packages/map-interface/src/location-details/utils/formatting.ts"],"sourcesContent":["import { format } from \"d3-format\";\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport const addCommas = (x) => {\n x = parseInt(x);\n var parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return parts.join(\".\");\n};\n"],"names":[],"version":3,"file":"map-interface.ce2c83fa.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AAE5B,SAAS,qCAAe,YAAE,QAAQ,UAAE,MAAM,gBAAE,eAAe,OAAO;IAChE,MAAM,aAAa,CAAA,GAAA,0CAAY,EAAE;IAEjC,MAAM,oBAAoB,CAAA,GAAA,uCAAS,EAAE,eAAe;IAEpD,OAAO,wBAAE,yBAAyB;QAChC,wBAAE,CAAA,GAAA,gDAAkB,GAAG;YAAE,UAAU;oBAAU;wBAAQ;QAAW,GAAG,EAAE;QACrE,wBAAE,EAAE,CAAC,qBAAqB,YAAY,MAAM,sCAAgB;YAC1D,UAAU;QACZ;KACD;AACH;AAEA,SAAS,qCAAe,YAAE,QAAQ,YAAE,QAAQ,WAAE,OAAO,EAAE,GAAG,MAAM;IAC9D,MAAM,UAAU,CAAA,GAAA,wCAAS;IAEzB,IAAI,UAAU,CAAC,WAAW,CAAC;IAC3B,IAAI,YAAY,MACd,WAAW,CAAC,IAAI,EAAE,UAAU;IAE9B,WAAW;IAEX,OAAO,wBACL,CAAA,GAAA,6BAAK,GACL;QACE,WAAW;QACX,WAAW,wBAAE,CAAA,GAAA,2BAAG,GAAG;YAAE,MAAM;YAAQ,MAAM;QAAG;QAC5C,SAAS;QACT,OAAO;QACP;YACE,UAAU,SAAS,CAAC,SAAS,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CACtD;gBACE,SAAS,KAAK;6BACZ;oBACA,QAAQ;oBACR,MAAM;oBACN,SAAS;gBACX;gBACA;YACF,GACA;gBACE,SAAS,KAAK;oBACZ,SAAS;oBACT,QAAQ;oBACR,MAAM;oBACN,SAAS;gBACX;YACF;QAEJ;QACA,GAAG,IAAI;IACT,GACA,YAAY;AAEhB;AAcO,SAAS,0CAAiB,KAA4B;IAC3D,MAAM,WACJ,OAAO,YACP,QAAQ,UACR,MAAM,QACN,OAAO,cACP,SAAS,0BACT,sBAAsB,eACtB,cAAc,iBACd,QAAQ,aACR,SAAS,EACV,GAAG;IAEJ,IAAI,aAAa;IACjB,IAAI,UAAU,QAAQ,YAAY,MAChC,aAAa,wBAAE,sCAAgB;kBAC7B;gBACA;QACA,cAAc;IAChB;IAGF,OAAO,wBACL,gCACA;QACE,WAAW,CAAA,GAAA,2CAAS,EAAE,WAAW;YAAE,gBAAgB;QAAY;IACjE,GACA;QACE;QACA;QACA,wBAAE;QACF,wBAAE,EAAE,CAAC,YAAY,MAAM,CAAA,GAAA,sCAAW,GAAG;sBACnC;kBACA;YACA,WAAW;QACb;QACA,wBAAE,EAAE,CAAC,aAAa,MAAM,CAAA,GAAA,mCAAQ,GAAG;uBACjC;YACA,WAAW;QACb;QACA,wBAAE,EAAE,CAAC,WAAW,MAAM,CAAA,GAAA,6BAAK,GAAG;YAC5B,SAAS;YACT,MAAM;YACN,SAAS;QACX;KACD;AAEL","sources":["packages/map-interface/src/location-panel/header.ts"],"sourcesContent":["import { Icon, Button } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useToaster } from \"@macrostrat/ui-components\";\nimport { LngLatCoords, Elevation } from \"../location-info\";\nimport { LocationFocusButton, useFocusState } from \"@macrostrat/mapbox-react\";\nimport classNames from \"classnames\";\nimport type { ReactNode } from \"react\";\nimport type { LngLatBounds, LngLatLike } from \"mapbox-gl\";\nimport { isCentered } from \"@macrostrat/mapbox-utils\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position, bounds, showCopyLink = false }) {\n const focusState = useFocusState(position);\n\n const copyLinkIsVisible = isCentered(focusState) && showCopyLink;\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, bounds, focusState }, []),\n h.if(copyLinkIsVisible && position != null)(CopyLinkButton, {\n itemName: \"position\",\n }),\n ]);\n}\n\nfunction CopyLinkButton({ itemName, children, onClick, ...rest }) {\n const toaster = useToaster();\n\n let message = `Copied link`;\n if (itemName != null) {\n message += ` to ${itemName}`;\n }\n message += \"!\";\n\n return h(\n Button,\n {\n className: \"copy-link-button\",\n rightIcon: h(Icon, { icon: \"link\", size: 12 }),\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(window.location.href).then(\n () => {\n toaster?.show({\n message,\n intent: \"success\",\n icon: \"clipboard\",\n timeout: 1000,\n });\n onClick?.();\n },\n () => {\n toaster?.show({\n message: \"Failed to copy link\",\n intent: \"danger\",\n icon: \"error\",\n timeout: 1000,\n });\n },\n );\n },\n ...rest,\n },\n children ?? \"Copy link\",\n );\n}\n\nexport interface InfoDrawerHeaderProps {\n onClose?: () => void;\n position?: LngLatLike;\n zoom?: number;\n elevation?: number;\n showCopyPositionButton?: boolean;\n bounds?: LngLatBounds;\n fixedHeight?: boolean;\n children?: ReactNode;\n className?: string;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const {\n onClose,\n position,\n bounds,\n zoom = 7,\n elevation,\n showCopyPositionButton,\n fixedHeight = false,\n children,\n className,\n } = props;\n\n let leftButton = null;\n if (bounds != null || position != null) {\n leftButton = h(PositionButton, {\n position,\n bounds,\n showCopyLink: showCopyPositionButton,\n });\n }\n\n return h(\n \"header.location-panel-header\",\n {\n className: classNames(className, { \"fixed-height\": fixedHeight }),\n },\n [\n leftButton,\n children,\n h(\"div.spacer\"),\n h.if(position != null)(LngLatCoords, {\n position,\n zoom,\n className: \"infodrawer-header-item\",\n }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h.if(onClose != null)(Button, {\n minimal: true,\n icon: \"cross\",\n onClick: onClose,\n }),\n ],\n );\n}\n"],"names":[],"version":3,"file":"map-interface.dcbd3874.js.map"}
@@ -1,36 +0,0 @@
1
- var $b7B0P$d3format = require("d3-format");
2
-
3
-
4
- function $parcel$export(e, n, v, s) {
5
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
6
- }
7
-
8
- $parcel$export(module.exports, "fmt2", () => $bf943af2b72f182b$export$4c173b1b2f78faf7);
9
- $parcel$export(module.exports, "fmt1", () => $bf943af2b72f182b$export$e54bbd2c33d17485);
10
- $parcel$export(module.exports, "fmtInt", () => $bf943af2b72f182b$export$bc135f63e2f56fd4);
11
- $parcel$export(module.exports, "formatValue", () => $bf943af2b72f182b$export$7c4d25c0c3217d8c);
12
-
13
- const $bf943af2b72f182b$export$97c1b10e131a836d = (0, $b7B0P$d3format.format)(".4~f");
14
- const $bf943af2b72f182b$export$b1cb0f7fb990b3ea = (0, $b7B0P$d3format.format)(".3~f");
15
- const $bf943af2b72f182b$export$4c173b1b2f78faf7 = (0, $b7B0P$d3format.format)(".2~f");
16
- const $bf943af2b72f182b$export$e54bbd2c33d17485 = (0, $b7B0P$d3format.format)(".1~f");
17
- const $bf943af2b72f182b$export$bc135f63e2f56fd4 = (0, $b7B0P$d3format.format)(".0f");
18
- function $bf943af2b72f182b$export$7c4d25c0c3217d8c(val, precision = 0) {
19
- switch(precision){
20
- case 4:
21
- return $bf943af2b72f182b$export$97c1b10e131a836d(val);
22
- case 3:
23
- return $bf943af2b72f182b$export$b1cb0f7fb990b3ea(val);
24
- case 2:
25
- return $bf943af2b72f182b$export$4c173b1b2f78faf7(val);
26
- case 1:
27
- return $bf943af2b72f182b$export$e54bbd2c33d17485(val);
28
- case 0:
29
- return $bf943af2b72f182b$export$bc135f63e2f56fd4(val);
30
- default:
31
- return $bf943af2b72f182b$export$97c1b10e131a836d(val);
32
- }
33
- }
34
-
35
-
36
- //# sourceMappingURL=map-interface.dfaad4a1.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;AAEO,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAO,CAAA,GAAA,sBAAK,EAAE;AACpB,MAAM,4CAAS,CAAA,GAAA,sBAAK,EAAE;AAEtB,SAAS,0CAAY,GAAW,EAAE,YAAoB,CAAC;IAC5D,OAAQ;QACN,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAK;QACd,KAAK;YACH,OAAO,0CAAO;QAChB;YACE,OAAO,0CAAK;IAChB;AACF","sources":["packages/map-interface/src/location-info/utils.ts"],"sourcesContent":["import { format } from \"d3-format\";\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n"],"names":[],"version":3,"file":"map-interface.dfaad4a1.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;AAkBO,SAAS,0CAAa,WAC3B,OAAO,YACP,WAAW,uBACX,iBAAiB,MAClB;IACC,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAc;QACrB,WAAW;QACX,MAAM;QACN,YAAY,WAAW,aAAa,QAAQ,MAAM,KAAK;kBACvD;wBACA;IACF;AACF;AAEO,SAAS,0CAAa,cAC3B,UAAU,EACV,MAAM,OAAO,YACb,QAAQ,kBACR,cAAc,EACd,GAAG,MACJ;IACC,MAAM,cAAc,6CAAuB;IAE3C,QAAQ,GAAG,CAAC,YAAY;IAExB,OAAO,CAAA,GAAA,sBAAA,EACL,CAAA,GAAA,qBAAa,GACb;QACE,WAAW;QACX,OAAO;QACP,UAAU;QACV,GAAG,IAAI;kBACP;IACF,GACA;QACE,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,YAAY,CAAA,GAAA,cAAM;QACvB,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,CAAC,cAAc,QAAQ,MAAM,GAAG,GAAG;YACtC,MAAM,IAAI,CAAC,YAAY,OAAO,KAAK,IAAI,CAAC,CAAC,SAAS,SAAS;gBACzD,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,wCAAM,GAAG;oCAChB;oBACA,MAAM;oBACN,UAAU;oBACV,WAAW,QAAQ,CAAC,EAAE,CAAC,SAAS;oBAChC,KAAK;gBACP;YACF;SACD;KACF;AAEL;AAEA,SAAS,6CACP,QAAsB;IAEtB,MAAM,WAAW,IAAI;IACrB,IAAI,CAAC,YAAY,SAAS,MAAM,KAAK,GACnC,OAAO;IAET,KAAK,IAAI,WAAW,SAAU;QAC5B,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG;QAC7B,IAAI,CAAC,SAAS,GAAG,CAAC,UAChB,SAAS,GAAG,CAAC,SAAS,EAAE;QAE1B,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC;IAC7B;IACA,OAAO;AACT","sources":["packages/map-interface/src/location-details/xdd-panel/index.ts"],"sourcesContent":["import { Spinner } from \"@blueprintjs/core\";\nimport h from \"@macrostrat/hyper\";\nimport Journal from \"./Journal\";\nimport { ExpansionPanel } from \"@macrostrat/map-interface\";\n\nexport interface XDDSnippet {\n pubname: string;\n publisher: string;\n _gddid: string;\n title: string;\n doi: string;\n coverDate: string;\n URL: string;\n authors: string;\n hits: number;\n highlight: string[];\n}\n\nexport function XddExpansion({\n xddInfo,\n expanded = false,\n nestedExpanded = true,\n}) {\n return h(xDDPanelCore, {\n className: \"regional-panel\",\n data: xddInfo,\n isFetching: xddInfo == undefined || xddInfo.length === 0,\n expanded,\n nestedExpanded,\n });\n}\n\nexport function xDDPanelCore({\n isFetching,\n data: xddInfo,\n expanded,\n nestedExpanded,\n ...rest\n}) {\n const groupedData = groupSnippetsByJournal(xddInfo);\n\n console.log(\"expanded\", expanded);\n\n return h(\n ExpansionPanel,\n {\n className: \"regional-panel\",\n title: \"Primary literature\",\n helpText: \"via xDD\",\n ...rest,\n expanded,\n },\n [\n h.if(isFetching)(Spinner),\n h.if(!isFetching && xddInfo.length > 0)([\n Array.from(groupedData.entries())?.map(([journal, snippets]) => {\n return h(Journal, {\n nestedExpanded,\n name: journal,\n articles: snippets,\n publisher: snippets[0].publisher,\n key: journal,\n });\n }),\n ]),\n ],\n );\n}\n\nfunction groupSnippetsByJournal(\n snippets: XDDSnippet[],\n): Map<string, XDDSnippet[]> {\n const journals = new Map<string, XDDSnippet[]>();\n if (!snippets || snippets.length === 0) {\n return journals;\n }\n for (let snippet of snippets) {\n const { pubname: journal } = snippet;\n if (!journals.has(journal)) {\n journals.set(journal, []);\n }\n journals.get(journal).push(snippet);\n }\n return journals;\n}\n"],"names":[],"version":3,"file":"map-interface.00ecf2ee.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;AAAO,MAAM,4CAAY,CAAC;IACxB,IAAI,SAAS;IACb,IAAI,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC/B,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,yBAAyB;IACrD,OAAO,MAAM,IAAI,CAAC;AACpB;AAEO,MAAM,4CAAM,CAAC,MAAM;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,EACvB,OAAO,EAAE;IAEX,OAAO,KACJ,GAAG,CAAC,CAAC;QACJ,OAAO,CAAC,CAAC,KAAK;IAChB,GACC,MAAM,CAAC,CAAC,GAAG;QACV,OAAO,IAAI;IACb,GAAG;AACP;AAEO,MAAM,4CAAW,CAAC,KAAK;IAC5B,IAAI,CAAC,KACH,OAAO;IAET,MAAM,IAAI,OAAO,CAAC,KAAK;IACvB,IAAI,SAAS,SAAS,KAAK;IAC3B,IAAI,IAAI,AAAC,UAAU,KAAM;IACzB,IAAI,IAAI,AAAC,UAAU,IAAK;IACxB,IAAI,IAAI,SAAS;IACjB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;AACjD;AAUO,MAAM,4CAAiC;IAC5C;QAAE,MAAM;QAAc,QAAQ;QAAK,OAAO;QAAG,OAAO;QAAO,OAAO;IAAU;IAC5E;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QAAE,MAAM;QAAc,QAAQ;QAAK,OAAO;QAAI,OAAO;QAAK,OAAO;IAAU;IAC3E;QAAE,MAAM;QAAY,QAAQ;QAAK,OAAO;QAAK,OAAO;QAAO,OAAO;IAAU;IAC5E;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QAAE,MAAM;QAAa,QAAQ;QAAK,OAAO;QAAK,OAAO;QAAK,OAAO;IAAU;IAC3E;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QAAE,MAAM;QAAU,QAAQ;QAAK,OAAO;QAAK,OAAO;QAAM,OAAO;IAAU;IACzE;QAAE,MAAM;QAAW,QAAQ;QAAM,OAAO;QAAM,OAAO;QAAM,OAAO;IAAU;IAC5E;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;IACA;QAAE,MAAM;QAAY,QAAQ;QAAK,OAAO;QAAM,OAAO;QAAM,OAAO;IAAU;IAC5E;QACE,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;IACT;CACD","sources":["packages/map-interface/src/location-details/utils/index.ts"],"sourcesContent":["export const addCommas = (x) => {\n x = parseInt(x);\n var parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n return parts.join(\".\");\n};\n\nexport const sum = (data, prop) => {\n if (!data || !data.length) {\n return [];\n }\n return data\n .map((d) => {\n return d[prop];\n })\n .reduce((a, b) => {\n return a + b;\n }, 0);\n};\n\nexport const hexToRgb = (hex, opacity) => {\n if (!hex) {\n return \"rgba(0,0,0,0.3)\";\n }\n hex = hex.replace(\"#\", \"\");\n let bigint = parseInt(hex, 16);\n let r = (bigint >> 16) & 255;\n let g = (bigint >> 8) & 255;\n let b = bigint & 255;\n return `rgba(${r},${g},${b},${opacity || 0.8})`;\n};\n\nexport type TimescaleDivision = {\n name: string;\n abbrev: string;\n t_age: number;\n b_age: number;\n color: string;\n};\n\nexport const timescale: TimescaleDivision[] = [\n { name: \"Quaternary\", abbrev: \"Q\", t_age: 0, b_age: 2.588, color: \"#F9F97F\" },\n {\n name: \"Neogene\",\n abbrev: \"Ng\",\n t_age: 2.588,\n b_age: 23.03,\n color: \"#FFE619\",\n },\n {\n name: \"Paleogene\",\n abbrev: \"Pg\",\n t_age: 23.03,\n b_age: 66,\n color: \"#FD9A52\",\n },\n { name: \"Cretaceous\", abbrev: \"K\", t_age: 66, b_age: 145, color: \"#7FC64E\" },\n { name: \"Jurassic\", abbrev: \"J\", t_age: 145, b_age: 201.3, color: \"#34B2C9\" },\n {\n name: \"Triassic\",\n abbrev: \"Tr\",\n t_age: 201.3,\n b_age: 252.17,\n color: \"#812B92\",\n },\n {\n name: \"Permian\",\n abbrev: \"P\",\n t_age: 252.17,\n b_age: 298.9,\n color: \"#F04028\",\n },\n {\n name: \"Carboniferous\",\n abbrev: \"C\",\n t_age: 298.9,\n b_age: 358.9,\n color: \"#67A599\",\n },\n {\n name: \"Devonian\",\n abbrev: \"D\",\n t_age: 358.9,\n b_age: 419.2,\n color: \"#CB8C37\",\n },\n {\n name: \"Silurian\",\n abbrev: \"S\",\n t_age: 419.2,\n b_age: 443.8,\n color: \"#B3E1B6\",\n },\n {\n name: \"Ordovician\",\n abbrev: \"O\",\n t_age: 443.8,\n b_age: 485.4,\n color: \"#009270\",\n },\n {\n name: \"Cambrian\",\n abbrev: \"Cm\",\n t_age: 485.4,\n b_age: 541,\n color: \"#7FA056\",\n },\n { name: \"Ediacaran\", abbrev: \"E\", t_age: 541, b_age: 635, color: \"#FFC3E1\" },\n {\n name: \"Cryogenian\",\n abbrev: \"Cr\",\n t_age: 635,\n b_age: 720,\n color: \"#FFAFD7\",\n },\n { name: \"Tonian\", abbrev: \"T\", t_age: 720, b_age: 1000, color: \"#FFA5D2\" },\n { name: \"Stenian\", abbrev: \"St\", t_age: 1000, b_age: 1200, color: \"#FFA5D2\" },\n {\n name: \"Ectasian\",\n abbrev: \"Ec\",\n t_age: 1200,\n b_age: 1400,\n color: \"#FF98CC\",\n },\n {\n name: \"Calymmian\",\n abbrev: \"Ca\",\n t_age: 1400,\n b_age: 1600,\n color: \"#FF8BC5\",\n },\n {\n name: \"Statherian\",\n abbrev: \"St\",\n t_age: 1600,\n b_age: 1800,\n color: \"#EE93C1\",\n },\n {\n name: \"Orosirian\",\n abbrev: \"Or\",\n t_age: 1800,\n b_age: 2050,\n color: \"#E874AF\",\n },\n { name: \"Rhyacian\", abbrev: \"R\", t_age: 2050, b_age: 2300, color: \"#EB84B8\" },\n {\n name: \"Siderian\",\n abbrev: \"Sd\",\n t_age: 2300,\n b_age: 2500,\n color: \"#E874AF\",\n },\n];\n\nexport * from \"./fossils\";\nexport * from \"./formatting\";\n"],"names":[],"version":3,"file":"map-interface.316fd76a.js.map"}
@@ -1,99 +0,0 @@
1
- import {formatValue as $3e1bd09be8f70c4c$export$7c4d25c0c3217d8c} from "./map-interface.c4fa120d.js";
2
- import {applyMapPositionToHash as $bb5f34705d9c44bc$export$8391d1abb505ffb3, getMapPositionForHash as $bb5f34705d9c44bc$export$80abf1cbcc3918e4} from "./map-interface.e50c290f.js";
3
- import $2Lirf$macrostrathyper from "@macrostrat/hyper";
4
- import {formatCoordForZoomLevel as $2Lirf$formatCoordForZoomLevel, normalizeLng as $2Lirf$normalizeLng, metersToFeet as $2Lirf$metersToFeet} from "@macrostrat/mapbox-utils";
5
- import {LngLat as $2Lirf$LngLat} from "mapbox-gl";
6
-
7
-
8
-
9
-
10
-
11
-
12
- function $4fae2d573d730db8$export$716098b85fd0efdf(props) {
13
- const { value: value, unit: unit } = props;
14
- return (0, $2Lirf$macrostrathyper)("span.value-with-unit", [
15
- (0, $2Lirf$macrostrathyper)("span.value", [
16
- value
17
- ]),
18
- (0, $2Lirf$macrostrathyper)("span.spacer", [
19
- " "
20
- ]),
21
- (0, $2Lirf$macrostrathyper)("span.unit", [
22
- unit
23
- ])
24
- ]);
25
- }
26
- function $4fae2d573d730db8$export$af8082af0bea3eb1(props) {
27
- const { value: value, labels: labels, precision: precision = 3, format: format = (0, $3e1bd09be8f70c4c$export$7c4d25c0c3217d8c) } = props;
28
- const direction = value < 0 ? labels[1] : labels[0];
29
- return (0, $2Lirf$macrostrathyper)($4fae2d573d730db8$export$716098b85fd0efdf, {
30
- value: format(Math.abs(value), precision) + "\xb0",
31
- unit: direction
32
- });
33
- }
34
- function $4fae2d573d730db8$export$f195b3550849e560(props) {
35
- /** Formatted geographic coordinates */ const { position: position, className: className, precision: precision, zoom: zoom } = props;
36
- let { format: format } = props;
37
- if (position == null) return null;
38
- let lat;
39
- let lng;
40
- if (Array.isArray(position)) [lng, lat] = position;
41
- else if (position instanceof (0, $2Lirf$LngLat)) [lng, lat] = position.toArray();
42
- else if ("lng" in position) {
43
- lat = position.lat;
44
- lng = position.lng;
45
- } else if ("lon" in position) {
46
- lat = position.lat;
47
- lng = position.lon;
48
- }
49
- if (zoom != null && format == null && precision == null) format = (val, _)=>(0, $2Lirf$formatCoordForZoomLevel)(val, zoom);
50
- return (0, $2Lirf$macrostrathyper)("div.lnglat-container", {
51
- className: className
52
- }, [
53
- (0, $2Lirf$macrostrathyper)("span.lnglat", [
54
- (0, $2Lirf$macrostrathyper)($4fae2d573d730db8$export$af8082af0bea3eb1, {
55
- value: lat,
56
- labels: [
57
- "N",
58
- "S"
59
- ],
60
- precision: precision,
61
- format: format
62
- }),
63
- ", ",
64
- (0, $2Lirf$macrostrathyper)($4fae2d573d730db8$export$af8082af0bea3eb1, {
65
- value: (0, $2Lirf$normalizeLng)(lng),
66
- labels: [
67
- "E",
68
- "W"
69
- ],
70
- precision: precision,
71
- format: format
72
- })
73
- ])
74
- ]);
75
- }
76
- function $4fae2d573d730db8$export$58bfb4f6ec5aa58d(props) {
77
- /** Renders an elevation value in meters and a parenthetical conversion to feet. */ const { elevation: elevation, className: className, includeFeet: includeFeet = true } = props;
78
- if (elevation == null) return null;
79
- return (0, $2Lirf$macrostrathyper)("div.elevation", {
80
- className: className
81
- }, [
82
- (0, $2Lirf$macrostrathyper)($4fae2d573d730db8$export$716098b85fd0efdf, {
83
- value: elevation,
84
- unit: "m"
85
- }),
86
- (0, $2Lirf$macrostrathyper).if(includeFeet)("span.secondary", [
87
- " (",
88
- (0, $2Lirf$macrostrathyper)($4fae2d573d730db8$export$716098b85fd0efdf, {
89
- value: (0, $2Lirf$metersToFeet)(elevation),
90
- unit: "ft"
91
- }),
92
- ")"
93
- ])
94
- ]);
95
- }
96
-
97
-
98
- export {$4fae2d573d730db8$export$716098b85fd0efdf as ValueWithUnit, $4fae2d573d730db8$export$af8082af0bea3eb1 as DegreeCoord, $4fae2d573d730db8$export$f195b3550849e560 as LngLatCoords, $4fae2d573d730db8$export$58bfb4f6ec5aa58d as Elevation, $bb5f34705d9c44bc$export$8391d1abb505ffb3 as applyMapPositionToHash, $bb5f34705d9c44bc$export$80abf1cbcc3918e4 as getMapPositionForHash};
99
- //# sourceMappingURL=map-interface.3ef9d0ae.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;AAWO,SAAS,0CAAc,KAAK;IACjC,MAAM,SAAE,KAAK,QAAE,IAAI,EAAE,GAAG;IACxB,OAAO,CAAA,GAAA,sBAAA,EAAE,wBAAwB;QAC/B,CAAA,GAAA,sBAAA,EAAE,cAAc;YAAC;SAAM;QACvB,CAAA,GAAA,sBAAA,EAAE,eAAe;YAAC;SAAI;QACtB,CAAA,GAAA,sBAAA,EAAE,aAAa;YAAC;SAAK;KACtB;AACH;AAEO,SAAS,0CAAY,KAAK;IAC/B,MAAM,SAAE,KAAK,UAAE,MAAM,aAAE,YAAY,WAAG,SAAS,CAAA,GAAA,yCAAU,GAAG,GAAG;IAC/D,MAAM,YAAY,QAAQ,IAAI,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;IAEnD,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAe;QACtB,OAAO,OAAO,KAAK,GAAG,CAAC,QAAQ,aAAa;QAC5C,MAAM;IACR;AACF;AAcO,SAAS,0CAAa,KAAkB;IAC7C,qCAAqC,GACrC,MAAM,YAAE,QAAQ,aAAE,SAAS,aAAE,SAAS,QAAE,IAAI,EAAE,GAAG;IACjD,IAAI,UAAE,MAAM,EAAE,GAAG;IACjB,IAAI,YAAY,MACd,OAAO;IAGT,IAAI;IACJ,IAAI;IACJ,IAAI,MAAM,OAAO,CAAC,WAChB,CAAC,KAAK,IAAI,GAAG;SACR,IAAI,oBAAoB,CAAA,GAAA,aAAK,GAClC,CAAC,KAAK,IAAI,GAAG,SAAS,OAAO;SACxB,IAAI,SAAS,UAAU;QAC5B,MAAM,SAAS,GAAG;QAClB,MAAM,SAAS,GAAG;IACpB,OAAO,IAAI,SAAS,UAAU;QAC5B,MAAM,SAAS,GAAG;QAClB,MAAM,SAAS,GAAG;IACpB;IAEA,IAAI,QAAQ,QAAQ,UAAU,QAAQ,aAAa,MACjD,SAAS,CAAC,KAAK,IAAM,CAAA,GAAA,8BAAsB,EAAE,KAAK;IAGpD,OAAO,CAAA,GAAA,sBAAA,EAAE,wBAAwB;mBAAE;IAAU,GAAG;QAC9C,CAAA,GAAA,sBAAA,EAAE,eAAe;YACf,CAAA,GAAA,sBAAA,EAAE,2CAAa;gBACb,OAAO;gBACP,QAAQ;oBAAC;oBAAK;iBAAI;2BAClB;wBACA;YACF;YACA;YACA,CAAA,GAAA,sBAAA,EAAE,2CAAa;gBACb,OAAO,CAAA,GAAA,mBAAW,EAAE;gBACpB,QAAQ;oBAAC;oBAAK;iBAAI;2BAClB;wBACA;YACF;SACD;KACF;AACH;AAEO,SAAS,0CAAU,KAAK;IAC7B,iFAAiF,GACjF,MAAM,aAAE,SAAS,aAAE,SAAS,eAAE,cAAc,MAAM,GAAG;IACrD,IAAI,aAAa,MAAM,OAAO;IAC9B,OAAO,CAAA,GAAA,sBAAA,EAAE,iBAAiB;mBAAE;IAAU,GAAG;QACvC,CAAA,GAAA,sBAAA,EAAE,2CAAe;YAAE,OAAO;YAAW,MAAM;QAAI;QAC/C,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,aAAa,kBAAkB;YAClC;YACA,CAAA,GAAA,sBAAA,EAAE,2CAAe;gBAAE,OAAO,CAAA,GAAA,mBAAW,EAAE;gBAAY,MAAM;YAAK;YAC9D;SACD;KACF;AACH","sources":["packages/map-interface/src/location-info/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n formatCoordForZoomLevel,\n metersToFeet,\n normalizeLng,\n} from \"@macrostrat/mapbox-utils\";\nimport { formatValue } from \"./utils\";\nimport { LngLat } from \"mapbox-gl\";\n\nexport * from \"./hash-string\";\n\nexport function ValueWithUnit(props) {\n const { value, unit } = props;\n return h(\"span.value-with-unit\", [\n h(\"span.value\", [value]),\n h(\"span.spacer\", [\" \"]),\n h(\"span.unit\", [unit]),\n ]);\n}\n\nexport function DegreeCoord(props) {\n const { value, labels, precision = 3, format = formatValue } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n\n return h(ValueWithUnit, {\n value: format(Math.abs(value), precision) + \"°\",\n unit: direction,\n });\n}\n\nexport interface LngLatProps {\n /** Map position */\n position: mapboxgl.LngLatLike | null;\n className?: string;\n /** Zoom level (used to infer coordinate rounding if provided) */\n zoom?: number;\n /** Number of decimal places to round coordinates to */\n precision?: number;\n /** Function to format coordinates */\n format?: (val: number, precision: number) => string;\n}\n\nexport function LngLatCoords(props: LngLatProps) {\n /** Formatted geographic coordinates */\n const { position, className, precision, zoom } = props;\n let { format } = props;\n if (position == null) {\n return null;\n }\n\n let lat: number;\n let lng: number;\n if (Array.isArray(position)) {\n [lng, lat] = position;\n } else if (position instanceof LngLat) {\n [lng, lat] = position.toArray();\n } else if (\"lng\" in position) {\n lat = position.lat;\n lng = position.lng;\n } else if (\"lon\" in position) {\n lat = position.lat;\n lng = position.lon;\n }\n\n if (zoom != null && format == null && precision == null) {\n format = (val, _) => formatCoordForZoomLevel(val, zoom);\n }\n\n return h(\"div.lnglat-container\", { className }, [\n h(\"span.lnglat\", [\n h(DegreeCoord, {\n value: lat,\n labels: [\"N\", \"S\"],\n precision,\n format,\n }),\n \", \",\n h(DegreeCoord, {\n value: normalizeLng(lng),\n labels: [\"E\", \"W\"],\n precision,\n format,\n }),\n ]),\n ]);\n}\n\nexport function Elevation(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */\n const { elevation, className, includeFeet = true } = props;\n if (elevation == null) return null;\n return h(\"div.elevation\", { className }, [\n h(ValueWithUnit, { value: elevation, unit: \"m\" }),\n h.if(includeFeet)(\"span.secondary\", [\n \" (\",\n h(ValueWithUnit, { value: metersToFeet(elevation), unit: \"ft\" }),\n \")\",\n ]),\n ]);\n}\n"],"names":[],"version":3,"file":"map-interface.3ef9d0ae.js.map"}
@@ -1,64 +0,0 @@
1
- import $jc9RV$react, {useState as $jc9RV$useState} from "react";
2
- import {Button as $jc9RV$Button, Collapse as $jc9RV$Collapse} from "@blueprintjs/core";
3
- import {AuthorList as $jc9RV$AuthorList} from "@macrostrat/ui-components";
4
- import $jc9RV$macrostrathyper from "@macrostrat/hyper";
5
-
6
-
7
-
8
-
9
-
10
- function $a335d16e994fabd4$var$Article(props) {
11
- const [expanded, setExpanded] = (0, $jc9RV$useState)(false);
12
- const { data: data } = props;
13
- const toggleExpand = ()=>{
14
- setExpanded(!expanded);
15
- };
16
- // Attempt to pull out only the year and not the whole date
17
- let year;
18
- try {
19
- year = data.coverDate ? data.coverDate.match(/\d{4}/)[0] : "";
20
- } catch (e) {
21
- year = "";
22
- }
23
- const authors = data?.authors?.split("; ") ?? [];
24
- const authorList = authors.length > 0 ? (0, $jc9RV$macrostrathyper)((0, $jc9RV$AuthorList), {
25
- names: authors
26
- }) : "Unknown";
27
- const iconName = expanded ? "chevron-up" : "chevron-down";
28
- return /*#__PURE__*/ (0, $jc9RV$react).createElement("div", {
29
- className: "article"
30
- }, /*#__PURE__*/ (0, $jc9RV$react).createElement("div", {
31
- className: "article-title"
32
- }, /*#__PURE__*/ (0, $jc9RV$react).createElement("p", {
33
- className: "article-author"
34
- }, authorList, ", ", year.length ? " " + year + ". " : ""), /*#__PURE__*/ (0, $jc9RV$react).createElement("a", {
35
- href: data.URL,
36
- target: "_blank",
37
- className: "title-link"
38
- }, /*#__PURE__*/ (0, $jc9RV$react).createElement("strong", null, data.title, ".")), /*#__PURE__*/ (0, $jc9RV$react).createElement("span", null, /*#__PURE__*/ (0, $jc9RV$react).createElement((0, $jc9RV$Button), {
39
- onClick: toggleExpand,
40
- minimal: true,
41
- rightIcon: iconName,
42
- className: "flat-btn"
43
- }))), /*#__PURE__*/ (0, $jc9RV$react).createElement((0, $jc9RV$Collapse), {
44
- isOpen: expanded
45
- }, /*#__PURE__*/ (0, $jc9RV$react).createElement("span", {
46
- className: expanded ? "" : "hidden"
47
- }, /*#__PURE__*/ (0, $jc9RV$react).createElement("div", {
48
- className: "quotes"
49
- }, data.highlight.map((snippet, si)=>{
50
- let text = snippet;
51
- return /*#__PURE__*/ (0, $jc9RV$react).createElement("p", {
52
- className: "gdd-snippet",
53
- key: si,
54
- dangerouslySetInnerHTML: {
55
- __html: `...${snippet}...`
56
- }
57
- });
58
- })))));
59
- }
60
- var $a335d16e994fabd4$export$2e2bcd8739ae039 = $a335d16e994fabd4$var$Article;
61
-
62
-
63
- export {$a335d16e994fabd4$export$2e2bcd8739ae039 as default};
64
- //# sourceMappingURL=map-interface.767fdc4a.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;AAKA,SAAS,8BAAQ,KAAK;IACpB,MAAM,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,eAAO,EAAE;IACzC,MAAM,QAAE,IAAI,EAAE,GAAG;IAEjB,MAAM,eAAe;QACnB,YAAY,CAAC;IACf;IAEA,2DAA2D;IAC3D,IAAI;IACJ,IAAI;QACF,OAAO,KAAK,SAAS,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG;IAC7D,EAAE,OAAO,GAAG;QACV,OAAO;IACT;IAEA,MAAM,UAAU,MAAM,SAAS,MAAM,SAAS,EAAE;IAEhD,MAAM,aACJ,QAAQ,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,iBAAS,GAAG;QAAE,OAAO;IAAQ,KAAK;IAE3D,MAAM,WAAW,WAAW,eAAe;IAE3C,qBACE,gCAAC;QAAI,WAAU;qBACb,gCAAC;QAAI,WAAU;qBACb,gCAAC;QAAE,WAAU;OACV,YAAW,MAAG,KAAK,MAAM,GAAG,MAAM,OAAO,OAAO,mBAEnD,gCAAC;QAAE,MAAM,KAAK,GAAG;QAAE,QAAO;QAAS,WAAU;qBAC3C,gCAAC,gBAAQ,KAAK,KAAK,EAAC,qBAGtB,gCAAC,4BACC,gCAAC,CAAA,GAAA,aAAK;QACJ,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAU;wBAIhB,gCAAC,CAAA,GAAA,eAAO;QAAE,QAAQ;qBAChB,gCAAC;QAAK,WAAW,WAAW,KAAK;qBAC/B,gCAAC;QAAI,WAAU;OACZ,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS;QAC5B,IAAI,OAAO;QAEX,qBACE,gCAAC;YACC,WAAU;YACV,KAAK;YACL,yBAAyB;gBAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC;YAAC;;IAG5D;AAMZ;IAEA,2CAAe","sources":["packages/map-interface/src/location-details/xdd-panel/Article.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Collapse, Button } from \"@blueprintjs/core\";\nimport { AuthorList } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nfunction Article(props) {\n const [expanded, setExpanded] = useState(false);\n const { data } = props;\n\n const toggleExpand = () => {\n setExpanded(!expanded);\n };\n\n // Attempt to pull out only the year and not the whole date\n let year;\n try {\n year = data.coverDate ? data.coverDate.match(/\\d{4}/)[0] : \"\";\n } catch (e) {\n year = \"\";\n }\n\n const authors = data?.authors?.split(\"; \") ?? [];\n\n const authorList =\n authors.length > 0 ? h(AuthorList, { names: authors }) : \"Unknown\";\n\n const iconName = expanded ? \"chevron-up\" : \"chevron-down\";\n\n return (\n <div className=\"article\">\n <div className=\"article-title\">\n <p className=\"article-author\">\n {authorList}, {year.length ? \" \" + year + \". \" : \"\"}\n </p>\n <a href={data.URL} target=\"_blank\" className=\"title-link\">\n <strong>{data.title}.</strong>\n </a>\n\n <span>\n <Button\n onClick={toggleExpand}\n minimal={true}\n rightIcon={iconName}\n className=\"flat-btn\"\n ></Button>\n </span>\n </div>\n <Collapse isOpen={expanded}>\n <span className={expanded ? \"\" : \"hidden\"}>\n <div className=\"quotes\">\n {data.highlight.map((snippet, si) => {\n let text = snippet;\n\n return (\n <p\n className=\"gdd-snippet\"\n key={si}\n dangerouslySetInnerHTML={{ __html: `...${snippet}...` }}\n ></p>\n );\n })}\n </div>\n </span>\n </Collapse>\n </div>\n );\n}\n\nexport default Article;\n"],"names":[],"version":3,"file":"map-interface.767fdc4a.js.map"}