@macrostrat/map-interface 1.5.2 → 1.5.4
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 +15 -0
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/map-interface.0154f76c.js +36 -0
- package/dist/cjs/map-interface.0154f76c.js.map +1 -0
- package/dist/cjs/map-interface.1faa2839.js +14 -0
- package/dist/cjs/map-interface.1faa2839.js.map +1 -0
- package/dist/cjs/map-interface.1fdaaaf6.js +135 -0
- package/dist/cjs/map-interface.1fdaaaf6.js.map +1 -0
- package/dist/cjs/{map-interface.744b121c.js → map-interface.23d5c62c.js} +3 -4
- package/dist/cjs/map-interface.23d5c62c.js.map +1 -0
- package/dist/cjs/map-interface.2401af7a.js +59 -0
- package/dist/cjs/map-interface.2401af7a.js.map +1 -0
- package/dist/cjs/map-interface.24a1c14e.js +46 -0
- package/dist/cjs/map-interface.24a1c14e.js.map +1 -0
- package/dist/cjs/map-interface.2a4a5470.js +34 -0
- package/dist/cjs/map-interface.2a4a5470.js.map +1 -0
- package/dist/cjs/{map-interface.71259cf9.css → map-interface.368b346c.css} +10 -10
- package/dist/{esm/map-interface.409f6268.js.map → cjs/map-interface.368b346c.css.map} +1 -1
- package/dist/cjs/map-interface.3bcda63a.js +66 -0
- package/dist/cjs/map-interface.3bcda63a.js.map +1 -0
- package/dist/cjs/map-interface.441d3b83.css +69 -0
- package/dist/cjs/map-interface.441d3b83.css.map +1 -0
- package/dist/cjs/map-interface.5a4f4529.js +38 -0
- package/dist/cjs/map-interface.5a4f4529.js.map +1 -0
- package/dist/cjs/{map-interface.1bfa8ff4.css → map-interface.633d24e6.css} +5 -5
- package/dist/cjs/map-interface.633d24e6.css.map +1 -0
- package/dist/cjs/{map-interface.4264e7e1.js → map-interface.71e61c74.js} +19 -19
- package/dist/cjs/map-interface.71e61c74.js.map +1 -0
- package/dist/cjs/{map-interface.84080d80.js → map-interface.b15c1893.js} +10 -10
- package/dist/cjs/map-interface.b15c1893.js.map +1 -0
- package/dist/cjs/map-interface.ce2c83fa.js +17 -0
- package/dist/cjs/map-interface.ce2c83fa.js.map +1 -0
- package/dist/cjs/map-interface.e109c93a.js +100 -0
- package/dist/cjs/map-interface.e109c93a.js.map +1 -0
- package/dist/cjs/map-interface.e53278ff.js +390 -0
- package/dist/cjs/map-interface.e53278ff.js.map +1 -0
- package/dist/cjs/map-interface.f4227aaa.js +123 -0
- package/dist/cjs/map-interface.f4227aaa.js.map +1 -0
- package/dist/cjs/map-interface.f9611285.js +32 -0
- package/dist/cjs/map-interface.f9611285.js.map +1 -0
- package/dist/esm/index.d.ts +39 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/map-interface.00ecf2ee.js +56 -0
- package/dist/esm/map-interface.00ecf2ee.js.map +1 -0
- package/dist/esm/map-interface.021cf79b.js +18 -0
- package/dist/esm/map-interface.021cf79b.js.map +1 -0
- package/dist/esm/map-interface.13e6d768.js +130 -0
- package/dist/esm/map-interface.13e6d768.js.map +1 -0
- package/dist/esm/{map-interface.b7a0dc07.js → map-interface.316fd76a.js} +8 -8
- package/dist/esm/map-interface.316fd76a.js.map +1 -0
- package/dist/esm/{map-interface.2daa72f9.js → map-interface.578a7505.js} +3 -4
- package/dist/esm/map-interface.578a7505.js.map +1 -0
- package/dist/esm/map-interface.59896194.js +37 -0
- package/dist/esm/map-interface.59896194.js.map +1 -0
- package/dist/esm/map-interface.70d6a7ff.js +16 -0
- package/dist/esm/map-interface.70d6a7ff.js.map +1 -0
- package/dist/esm/map-interface.767fdc4a.js +64 -0
- package/dist/esm/map-interface.767fdc4a.js.map +1 -0
- package/dist/esm/map-interface.7ea8a1e0.js +40 -0
- package/dist/esm/map-interface.7ea8a1e0.js.map +1 -0
- package/dist/esm/map-interface.9fac5fa6.js +50 -0
- package/dist/esm/map-interface.9fac5fa6.js.map +1 -0
- package/dist/esm/map-interface.b97aca89.js +25 -0
- package/dist/esm/map-interface.b97aca89.js.map +1 -0
- package/dist/esm/map-interface.bdef07d2.js +34 -0
- package/dist/esm/map-interface.bdef07d2.js.map +1 -0
- package/dist/esm/map-interface.c1d19ef4.js +114 -0
- package/dist/esm/map-interface.c1d19ef4.js.map +1 -0
- package/dist/esm/map-interface.cfc9c190.js +15 -0
- package/dist/esm/map-interface.cfc9c190.js.map +1 -0
- package/dist/esm/map-interface.f51caacc.js +385 -0
- package/dist/esm/map-interface.f51caacc.js.map +1 -0
- package/dist/esm/map-interface.fb96fb7e.js +94 -0
- package/dist/esm/map-interface.fb96fb7e.js.map +1 -0
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/map-interface.206d8dd9.js +2 -0
- package/dist/node/map-interface.206d8dd9.js.map +1 -0
- package/dist/node/map-interface.432dd2f9.js +2 -0
- package/dist/node/map-interface.432dd2f9.js.map +1 -0
- package/dist/node/map-interface.48262cbb.js +2 -0
- package/dist/node/map-interface.48262cbb.js.map +1 -0
- package/dist/node/map-interface.82397845.js +2 -0
- package/dist/node/map-interface.82397845.js.map +1 -0
- package/dist/node/map-interface.8881e38a.js +2 -0
- package/dist/node/map-interface.8881e38a.js.map +1 -0
- package/dist/node/map-interface.9317d050.js +2 -0
- package/dist/node/map-interface.9317d050.js.map +1 -0
- package/dist/node/map-interface.9b24efb8.js +2 -0
- package/dist/node/map-interface.9b24efb8.js.map +1 -0
- package/dist/node/map-interface.9e6751ac.js +2 -0
- package/dist/node/map-interface.9e6751ac.js.map +1 -0
- package/dist/node/map-interface.a1252092.css +2 -0
- package/dist/node/map-interface.a1252092.css.map +1 -0
- package/dist/node/map-interface.a8a16138.js +2 -0
- package/dist/node/map-interface.a8a16138.js.map +1 -0
- package/dist/node/{map-interface.fcb95c23.js → map-interface.a8be0cba.js} +2 -2
- package/dist/node/map-interface.a8be0cba.js.map +1 -0
- package/dist/node/map-interface.aa4d45ff.js +2 -0
- package/dist/node/map-interface.aa4d45ff.js.map +1 -0
- package/dist/node/map-interface.ae3d2d83.js +2 -0
- package/dist/node/map-interface.ae3d2d83.js.map +1 -0
- package/dist/node/map-interface.c5c0ad06.js +2 -0
- package/dist/node/map-interface.c5c0ad06.js.map +1 -0
- package/dist/node/map-interface.d22d91e9.css +2 -0
- package/dist/node/map-interface.d22d91e9.css.map +1 -0
- package/dist/node/map-interface.d5eba479.css +2 -0
- package/dist/node/map-interface.d5eba479.css.map +1 -0
- package/dist/node/map-interface.e8790ed0.js +2 -0
- package/dist/node/map-interface.e8790ed0.js.map +1 -0
- package/dist/node/map-interface.f413c362.js +2 -0
- package/dist/node/map-interface.f413c362.js.map +1 -0
- package/dist/node/map-interface.fdd35e74.js +2 -0
- package/dist/node/map-interface.fdd35e74.js.map +1 -0
- package/package.json +2 -2
- package/src/index.ts +1 -1
- package/src/location-details/fetch.ts +57 -0
- package/src/{map-panel/components/info-drawer → location-details}/fossil-collections/collections.tsx +1 -2
- package/src/{map-panel/components/info-drawer → location-details}/fossil-collections/index.ts +1 -1
- package/src/location-details/index.ts +5 -0
- package/src/{map-panel/components → location-details}/info-blocks.ts +7 -5
- package/src/location-details/location-details.stories.ts +104 -0
- package/src/{map-panel/components/info-drawer → location-details}/macrostrat-linked.ts +31 -22
- package/src/{map-panel/components/info-drawer → location-details}/physiography.ts +8 -7
- package/src/{map-panel/components/info-drawer → location-details}/reg-strat.ts +26 -7
- package/src/{map-panel → location-details}/utils/fossils.ts +0 -2
- package/src/{map-panel/components/info-drawer → location-details}/xdd-panel/Journal.tsx +3 -1
- package/src/{map-panel/components/info-drawer → location-details}/xdd-panel/index.ts +18 -2
- package/dist/cjs/map-interface.02835ba5.js +0 -46
- package/dist/cjs/map-interface.02835ba5.js.map +0 -1
- package/dist/cjs/map-interface.07a195a5.js +0 -14
- package/dist/cjs/map-interface.07a195a5.js.map +0 -1
- package/dist/cjs/map-interface.0f2392a0.css +0 -64
- package/dist/cjs/map-interface.0f2392a0.css.map +0 -1
- package/dist/cjs/map-interface.141c7329.js +0 -58
- package/dist/cjs/map-interface.141c7329.js.map +0 -1
- package/dist/cjs/map-interface.1be58b40.css +0 -69
- package/dist/cjs/map-interface.1be58b40.css.map +0 -1
- package/dist/cjs/map-interface.1bfa8ff4.css.map +0 -1
- package/dist/cjs/map-interface.4264e7e1.js.map +0 -1
- package/dist/cjs/map-interface.533a7323.js +0 -113
- package/dist/cjs/map-interface.533a7323.js.map +0 -1
- package/dist/cjs/map-interface.58c87b08.js +0 -29
- package/dist/cjs/map-interface.58c87b08.js.map +0 -1
- package/dist/cjs/map-interface.5c8f9bde.js +0 -24
- package/dist/cjs/map-interface.5c8f9bde.js.map +0 -1
- package/dist/cjs/map-interface.5f0bd31b.js +0 -141
- package/dist/cjs/map-interface.5f0bd31b.js.map +0 -1
- package/dist/cjs/map-interface.71259cf9.css.map +0 -1
- package/dist/cjs/map-interface.727092bc.js +0 -381
- package/dist/cjs/map-interface.727092bc.js.map +0 -1
- package/dist/cjs/map-interface.744b121c.js.map +0 -1
- package/dist/cjs/map-interface.84080d80.js.map +0 -1
- package/dist/cjs/map-interface.937c0b90.js +0 -60
- package/dist/cjs/map-interface.937c0b90.js.map +0 -1
- package/dist/cjs/map-interface.9893b047.js +0 -38
- package/dist/cjs/map-interface.9893b047.js.map +0 -1
- package/dist/cjs/map-interface.b6e70f1b.js +0 -98
- package/dist/cjs/map-interface.b6e70f1b.js.map +0 -1
- package/dist/cjs/map-interface.d8e62b02.js +0 -17
- package/dist/cjs/map-interface.d8e62b02.js.map +0 -1
- package/dist/cjs/map-interface.ee59fc6e.js +0 -32
- package/dist/cjs/map-interface.ee59fc6e.js.map +0 -1
- package/dist/cjs/map-interface.fba5cf13.js +0 -136
- package/dist/cjs/map-interface.fba5cf13.js.map +0 -1
- package/dist/cjs/map-interface.fd9ad74c.js +0 -34
- package/dist/cjs/map-interface.fd9ad74c.js.map +0 -1
- package/dist/cjs/map-interface.ff2231f5.js +0 -37
- package/dist/cjs/map-interface.ff2231f5.js.map +0 -1
- package/dist/esm/map-interface.15ee4b90.js +0 -16
- package/dist/esm/map-interface.15ee4b90.js.map +0 -1
- package/dist/esm/map-interface.17a0e9a0.js +0 -51
- package/dist/esm/map-interface.17a0e9a0.js.map +0 -1
- package/dist/esm/map-interface.20193fc6.js +0 -92
- package/dist/esm/map-interface.20193fc6.js.map +0 -1
- package/dist/esm/map-interface.2daa72f9.js.map +0 -1
- package/dist/esm/map-interface.36bab86c.js +0 -31
- package/dist/esm/map-interface.36bab86c.js.map +0 -1
- package/dist/esm/map-interface.409f6268.js +0 -34
- package/dist/esm/map-interface.6981dd47.js +0 -131
- package/dist/esm/map-interface.6981dd47.js.map +0 -1
- package/dist/esm/map-interface.69a566f3.js +0 -25
- package/dist/esm/map-interface.69a566f3.js.map +0 -1
- package/dist/esm/map-interface.6c0f5044.js +0 -376
- package/dist/esm/map-interface.6c0f5044.js.map +0 -1
- package/dist/esm/map-interface.6c44beb8.js +0 -49
- package/dist/esm/map-interface.6c44beb8.js.map +0 -1
- package/dist/esm/map-interface.70fdf48a.js +0 -64
- package/dist/esm/map-interface.70fdf48a.js.map +0 -1
- package/dist/esm/map-interface.9123f5c8.js +0 -104
- package/dist/esm/map-interface.9123f5c8.js.map +0 -1
- package/dist/esm/map-interface.a0ea0c86.js +0 -18
- package/dist/esm/map-interface.a0ea0c86.js.map +0 -1
- package/dist/esm/map-interface.b7a0dc07.js.map +0 -1
- package/dist/esm/map-interface.b965dc94.js +0 -40
- package/dist/esm/map-interface.b965dc94.js.map +0 -1
- package/dist/esm/map-interface.ba2faf2f.js +0 -7
- package/dist/esm/map-interface.ba2faf2f.js.map +0 -1
- package/dist/esm/map-interface.ce6edbfa.js +0 -37
- package/dist/esm/map-interface.ce6edbfa.js.map +0 -1
- package/dist/esm/map-interface.d86c2fc5.js +0 -32
- package/dist/esm/map-interface.d86c2fc5.js.map +0 -1
- package/dist/esm/map-interface.e5607033.js +0 -136
- package/dist/esm/map-interface.e5607033.js.map +0 -1
- package/dist/node/map-interface.01fee32b.js +0 -2
- package/dist/node/map-interface.01fee32b.js.map +0 -1
- package/dist/node/map-interface.0755d245.css +0 -2
- package/dist/node/map-interface.0755d245.css.map +0 -1
- package/dist/node/map-interface.2c94d421.js +0 -2
- package/dist/node/map-interface.2c94d421.js.map +0 -1
- package/dist/node/map-interface.2dde967a.js +0 -2
- package/dist/node/map-interface.2dde967a.js.map +0 -1
- package/dist/node/map-interface.4dfbbb99.css +0 -2
- package/dist/node/map-interface.4dfbbb99.css.map +0 -1
- package/dist/node/map-interface.4e422f5e.js +0 -2
- package/dist/node/map-interface.4e422f5e.js.map +0 -1
- package/dist/node/map-interface.5fbb81b1.js +0 -2
- package/dist/node/map-interface.5fbb81b1.js.map +0 -1
- package/dist/node/map-interface.791d22a7.css +0 -2
- package/dist/node/map-interface.791d22a7.css.map +0 -1
- package/dist/node/map-interface.7963263e.js +0 -2
- package/dist/node/map-interface.7963263e.js.map +0 -1
- package/dist/node/map-interface.995ff472.js +0 -2
- package/dist/node/map-interface.995ff472.js.map +0 -1
- package/dist/node/map-interface.bbeeb59c.js +0 -2
- package/dist/node/map-interface.bbeeb59c.js.map +0 -1
- package/dist/node/map-interface.bf061b97.js +0 -2
- package/dist/node/map-interface.bf061b97.js.map +0 -1
- package/dist/node/map-interface.c3275c05.js +0 -2
- package/dist/node/map-interface.c3275c05.js.map +0 -1
- package/dist/node/map-interface.c8139e21.js +0 -2
- package/dist/node/map-interface.c8139e21.js.map +0 -1
- package/dist/node/map-interface.ca6e8916.js +0 -2
- package/dist/node/map-interface.ca6e8916.js.map +0 -1
- package/dist/node/map-interface.d430c066.css +0 -2
- package/dist/node/map-interface.d430c066.css.map +0 -1
- package/dist/node/map-interface.d4cd446a.js +0 -2
- package/dist/node/map-interface.d4cd446a.js.map +0 -1
- package/dist/node/map-interface.ecfe462b.js +0 -2
- package/dist/node/map-interface.ecfe462b.js.map +0 -1
- package/dist/node/map-interface.ee63d11f.js +0 -2
- package/dist/node/map-interface.ee63d11f.js.map +0 -1
- package/dist/node/map-interface.f42969c3.js +0 -2
- package/dist/node/map-interface.f42969c3.js.map +0 -1
- package/dist/node/map-interface.fbe01b07.js +0 -2
- package/dist/node/map-interface.fbe01b07.js.map +0 -1
- package/dist/node/map-interface.fcb95c23.js.map +0 -1
- package/dist/node/map-interface.fecb181b.js +0 -2
- package/dist/node/map-interface.fecb181b.js.map +0 -1
- package/src/map-panel/components/buttons.module.styl +0 -5
- package/src/map-panel/components/buttons.ts +0 -56
- package/src/map-panel/components/card.module.styl +0 -43
- package/src/map-panel/components/closeable-card.ts +0 -64
- package/src/map-panel/components/docs.module.styl +0 -93
- package/src/map-panel/components/docs.ts +0 -92
- package/src/map-panel/components/info-drawer/index.ts +0 -152
- package/src/map-panel/components/transitions/index.ts +0 -24
- package/src/map-panel/components/transitions/main.module.styl +0 -55
- package/src/map-panel/index.ts +0 -1
- /package/src/{map-panel/components/info-drawer → location-details}/fossil-collections/main.module.sass +0 -0
- /package/src/{map-panel/components → location-details}/info-blocks.module.styl +0 -0
- /package/src/{map-panel/components/info-drawer → location-details}/main.module.styl +0 -0
- /package/src/{map-panel → location-details}/utils/formatting.ts +0 -0
- /package/src/{map-panel → location-details}/utils/index.ts +0 -0
- /package/src/{map-panel/components/info-drawer → location-details}/xdd-panel/Article.tsx +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["<anon>","packages/map-interface/src/location-details/utils/fossils.ts"],"sourcesContent":["function $415bccba1a7f9434$export$9355c61f37d969f4(data) {\n let occurrenceTree = {\n phyla: []\n };\n let rankMap = {\n 25: \"unranked\",\n 23: \"kingdom\",\n 22: \"subkingdom\",\n 21: \"superphylum\",\n 20: \"phylum\",\n 19: \"subphylum\",\n 18: \"superclass\",\n 17: \"class\",\n 16: \"subclass\",\n 15: \"infraclass\",\n 14: \"superorder\",\n 13: \"order\",\n 12: \"suborder\",\n 11: \"infraorder\",\n 10: \"superfamily\",\n 9: \"family\",\n 8: \"subfamily\",\n 7: \"tribe\",\n 6: \"subtribe\",\n 5: \"genus\",\n 4: \"subgenus\",\n 3: \"species\",\n 2: \"subspecies\"\n };\n function getIndex(data, term, property) {\n for(let i = 0, len = data.length; i < len; i++){\n if (data[i][property] === term) return i;\n }\n return -1;\n }\n data.forEach((d)=>{\n // Some preprocessing\n d.rank = d.rnk ? rankMap[d.rnk] : d.idr ? rankMap[d.idr] : \"Unknown\";\n d.italics = d.rnk < 6 ? \"italics\" : \"\";\n if (typeof d.tna === \"undefined\") d.tna = d.idn;\n d.old_name = d.tna.split(\" \")[0] != d.idg ? d.tna : \"\";\n d.url = d.rank === \"species\" ? d.idg + \" \" + d.ids : d.tid ? d.tid.split(\":\")[1] > 0 ? d.idg : \"\" : \"\";\n // If it has a genus name...\n if (d.idg) {\n let genusRes = d.rsg ? d.rsg + \" \" : \"\";\n let speciesRes = d.rss ? \" \" + d.rss + \" \" : \" \";\n d.genusRes = genusRes;\n // If it's a species...\n if (d.rank === \"species\") {\n d.display_name1 = d.tna;\n d.display_name2 = d.tna != d.idg + \" \" + d.ids ? \"(\" + d.tna + \")\" : \"\";\n d.display_name3 = \"\";\n } else {\n d.display_name1 = d.idg;\n d.display_name2 = speciesRes;\n d.display_name3 = d.ids;\n }\n } else {\n d.display_name1 = d.tna;\n d.display_name2 = \"\";\n }\n // Find unique phyla\n let phyla = [];\n for(let i = 0; i < occurrenceTree.phyla.length; i++)phyla.push(occurrenceTree.phyla[i].phylum);\n if (phyla.indexOf(d.phl) < 0) {\n let newPhylum = {\n phylum: d.phl,\n classes: []\n };\n occurrenceTree.phyla.push(newPhylum);\n }\n // Find unique phylum/class combinations\n let phyla_classes = [];\n for(let i = 0; i < occurrenceTree.phyla.length; i++)for(let j = 0; j < occurrenceTree.phyla[i].classes.length; j++)phyla_classes.push(occurrenceTree.phyla[i].phylum + \"-\" + occurrenceTree.phyla[i].classes[j].nameClass);\n if (phyla_classes.indexOf(d.phl + \"-\" + d.cll) < 0) {\n let newClass = {\n nameClass: d.cll,\n families: []\n };\n let phylumIndex = getIndex(occurrenceTree.phyla, d.phl, \"phylum\");\n occurrenceTree.phyla[phylumIndex][\"classes\"].push(newClass);\n }\n // Find unique phylum/class/family combinations\n let phyla_class_family = [];\n for(let i = 0; i < occurrenceTree.phyla.length; i++){\n for(let j = 0; j < occurrenceTree.phyla[i].classes.length; j++)for(let k = 0; k < occurrenceTree.phyla[i].classes[j].families.length; k++)phyla_class_family.push(occurrenceTree.phyla[i].phylum + \"-\" + occurrenceTree.phyla[i].classes[j].nameClass + \"-\" + occurrenceTree.phyla[i].classes[j].families[k].family);\n }\n if (phyla_class_family.indexOf(d.phl + \"-\" + d.cll + \"-\" + d.fml) < 0) {\n let newFamily = {\n family: d.fml,\n genera: []\n };\n let phylumIndex = getIndex(occurrenceTree.phyla, d.phl, \"phylum\");\n let classIndex = getIndex(occurrenceTree.phyla[phylumIndex].classes, d.cll, \"nameClass\");\n occurrenceTree.phyla[phylumIndex].classes[classIndex][\"families\"].push(newFamily);\n }\n // Place genera into the right phylum/class/family\n let phylumIndex = getIndex(occurrenceTree.phyla, d.phl, \"phylum\");\n let classIndex = getIndex(occurrenceTree.phyla[phylumIndex].classes, d.cll, \"nameClass\");\n let familyIndex = getIndex(occurrenceTree.phyla[phylumIndex].classes[classIndex].families, d.fml, \"family\");\n occurrenceTree.phyla[phylumIndex].classes[classIndex].families[familyIndex].genera.push(d);\n });\n for(let i = 0; i < occurrenceTree.phyla.length; i++){\n let undefinedClassIndex;\n for(let j = 0; j < occurrenceTree.phyla[i].classes.length; j++){\n let undefinedFamilyIndex;\n for(let k = 0; k < occurrenceTree.phyla[i].classes[j].families.length; k++)if (typeof occurrenceTree.phyla[i].classes[j].families[k].family === \"undefined\") {\n undefinedFamilyIndex = k;\n occurrenceTree.phyla[i].classes[j].families[k].family = (typeof occurrenceTree.phyla[i].classes[j].nameClass, \"Miscellaneous unranked taxa\");\n occurrenceTree.phyla[i].classes[j].families[k].noFamily = true;\n }\n if (typeof undefinedFamilyIndex != \"undefined\") occurrenceTree.phyla[i].classes[j].families.push(occurrenceTree.phyla[i].classes[j].families.splice(undefinedFamilyIndex, 1)[0]);\n if (typeof occurrenceTree.phyla[i].classes[j].nameClass === \"undefined\") {\n undefinedFamilyIndex = j;\n occurrenceTree.phyla[i].classes[j].nameClass = (typeof occurrenceTree.phyla[i].phylum, \"Miscellaneous unranked taxa\");\n occurrenceTree.phyla[i].classes[j].noClass = true;\n }\n }\n if (typeof undefinedClassIndex != \"undefined\") occurrenceTree.phyla[i].classes.push(occurrenceTree.phyla[i].classes.splice(undefinedClassIndex, 1)[0]);\n if (typeof occurrenceTree.phyla[i].phylum === \"undefined\") {\n occurrenceTree.phyla[i].phylum = \"Unranked taxa\";\n occurrenceTree.phyla[i].unranked = true;\n }\n }\n return occurrenceTree;\n}\n\n\n//# sourceMappingURL=map-interface.fdd35e74.js.map\n","export function makeOccurrenceTree(data) {\n let occurrenceTree = { phyla: [] };\n let rankMap = {\n 25: \"unranked\",\n 23: \"kingdom\",\n 22: \"subkingdom\",\n 21: \"superphylum\",\n 20: \"phylum\",\n 19: \"subphylum\",\n 18: \"superclass\",\n 17: \"class\",\n 16: \"subclass\",\n 15: \"infraclass\",\n 14: \"superorder\",\n 13: \"order\",\n 12: \"suborder\",\n 11: \"infraorder\",\n 10: \"superfamily\",\n 9: \"family\",\n 8: \"subfamily\",\n 7: \"tribe\",\n 6: \"subtribe\",\n 5: \"genus\",\n 4: \"subgenus\",\n 3: \"species\",\n 2: \"subspecies\",\n };\n\n function getIndex(data, term, property) {\n for (let i = 0, len = data.length; i < len; i++) {\n if (data[i][property] === term) return i;\n }\n return -1;\n }\n\n data.forEach((d) => {\n // Some preprocessing\n d.rank = d.rnk ? rankMap[d.rnk] : d.idr ? rankMap[d.idr] : \"Unknown\";\n d.italics = d.rnk < 6 ? \"italics\" : \"\";\n if (typeof d.tna === \"undefined\") {\n d.tna = d.idn;\n }\n d.old_name = d.tna.split(\" \")[0] != d.idg ? d.tna : \"\";\n d.url =\n d.rank === \"species\"\n ? d.idg + \" \" + d.ids\n : d.tid\n ? d.tid.split(\":\")[1] > 0\n ? d.idg\n : \"\"\n : \"\";\n\n // If it has a genus name...\n if (d.idg) {\n let genusRes = d.rsg ? d.rsg + \" \" : \"\";\n let speciesRes = d.rss ? \" \" + d.rss + \" \" : \" \";\n d.genusRes = genusRes;\n // If it's a species...\n if (d.rank === \"species\") {\n d.display_name1 = d.tna;\n d.display_name2 = d.tna != d.idg + \" \" + d.ids ? \"(\" + d.tna + \")\" : \"\";\n d.display_name3 = \"\";\n } else {\n d.display_name1 = d.idg;\n d.display_name2 = speciesRes;\n d.display_name3 = d.ids;\n }\n } else {\n d.display_name1 = d.tna;\n d.display_name2 = \"\";\n }\n\n // Find unique phyla\n let phyla = [];\n for (let i = 0; i < occurrenceTree.phyla.length; i++) {\n phyla.push(occurrenceTree.phyla[i].phylum);\n }\n\n if (phyla.indexOf(d.phl) < 0) {\n let newPhylum = { phylum: d.phl, classes: [] };\n occurrenceTree.phyla.push(newPhylum);\n }\n\n // Find unique phylum/class combinations\n let phyla_classes = [];\n for (let i = 0; i < occurrenceTree.phyla.length; i++) {\n for (let j = 0; j < occurrenceTree.phyla[i].classes.length; j++) {\n phyla_classes.push(\n occurrenceTree.phyla[i].phylum +\n \"-\" +\n occurrenceTree.phyla[i].classes[j].nameClass,\n );\n }\n }\n\n if (phyla_classes.indexOf(d.phl + \"-\" + d.cll) < 0) {\n let newClass = { nameClass: d.cll, families: [] };\n let phylumIndex = getIndex(occurrenceTree.phyla, d.phl, \"phylum\");\n occurrenceTree.phyla[phylumIndex][\"classes\"].push(newClass);\n }\n\n // Find unique phylum/class/family combinations\n let phyla_class_family = [];\n for (let i = 0; i < occurrenceTree.phyla.length; i++) {\n for (let j = 0; j < occurrenceTree.phyla[i].classes.length; j++) {\n for (\n let k = 0;\n k < occurrenceTree.phyla[i].classes[j].families.length;\n k++\n ) {\n phyla_class_family.push(\n occurrenceTree.phyla[i].phylum +\n \"-\" +\n occurrenceTree.phyla[i].classes[j].nameClass +\n \"-\" +\n occurrenceTree.phyla[i].classes[j].families[k].family,\n );\n }\n }\n }\n\n if (phyla_class_family.indexOf(d.phl + \"-\" + d.cll + \"-\" + d.fml) < 0) {\n let newFamily = { family: d.fml, genera: [] };\n let phylumIndex = getIndex(occurrenceTree.phyla, d.phl, \"phylum\");\n let classIndex = getIndex(\n occurrenceTree.phyla[phylumIndex].classes,\n d.cll,\n \"nameClass\",\n );\n occurrenceTree.phyla[phylumIndex].classes[classIndex][\"families\"].push(\n newFamily,\n );\n }\n\n // Place genera into the right phylum/class/family\n let phylumIndex = getIndex(occurrenceTree.phyla, d.phl, \"phylum\");\n let classIndex = getIndex(\n occurrenceTree.phyla[phylumIndex].classes,\n d.cll,\n \"nameClass\",\n );\n let familyIndex = getIndex(\n occurrenceTree.phyla[phylumIndex].classes[classIndex].families,\n d.fml,\n \"family\",\n );\n occurrenceTree.phyla[phylumIndex].classes[classIndex].families[\n familyIndex\n ].genera.push(d);\n });\n\n for (let i = 0; i < occurrenceTree.phyla.length; i++) {\n let undefinedClassIndex;\n for (let j = 0; j < occurrenceTree.phyla[i].classes.length; j++) {\n let undefinedFamilyIndex;\n for (\n let k = 0;\n k < occurrenceTree.phyla[i].classes[j].families.length;\n k++\n ) {\n if (\n typeof occurrenceTree.phyla[i].classes[j].families[k].family ===\n \"undefined\"\n ) {\n undefinedFamilyIndex = k;\n occurrenceTree.phyla[i].classes[j].families[k].family =\n \"Miscellaneous \" +\n (typeof occurrenceTree.phyla[i].classes[j].nameClass ===\n \"undefined\")\n ? \"Miscellaneous unranked taxa\"\n : occurrenceTree.phyla[i].classes[j].nameClass;\n occurrenceTree.phyla[i].classes[j].families[k].noFamily = true;\n }\n }\n\n if (typeof undefinedFamilyIndex != \"undefined\") {\n occurrenceTree.phyla[i].classes[j].families.push(\n occurrenceTree.phyla[i].classes[j].families.splice(\n undefinedFamilyIndex,\n 1,\n )[0],\n );\n }\n\n if (typeof occurrenceTree.phyla[i].classes[j].nameClass === \"undefined\") {\n undefinedFamilyIndex = j;\n occurrenceTree.phyla[i].classes[j].nameClass =\n \"Miscellaneous \" +\n (typeof occurrenceTree.phyla[i].phylum === \"undefined\")\n ? \"Miscellaneous unranked taxa\"\n : occurrenceTree.phyla[i].phylum;\n occurrenceTree.phyla[i].classes[j].noClass = true;\n }\n }\n\n if (typeof undefinedClassIndex != \"undefined\") {\n occurrenceTree.phyla[i].classes.push(\n occurrenceTree.phyla[i].classes.splice(undefinedClassIndex, 1)[0],\n );\n }\n\n if (typeof occurrenceTree.phyla[i].phylum === \"undefined\") {\n occurrenceTree.phyla[i].phylum = \"Unranked taxa\";\n occurrenceTree.phyla[i].unranked = true;\n }\n }\n\n return occurrenceTree;\n}\n"],"names":["$415bccba1a7f9434$export$9355c61f37d969f4","data","occurrenceTree","phyla","rankMap","getIndex","term","property","i","len","length","forEach","d","rank","rnk","idr","italics","tna","idn","old_name","split","idg","url","ids","tid","genusRes","rsg","speciesRes","rss","display_name1","display_name2","display_name3","push","phylum","indexOf","phl","newPhylum","classes","phyla_classes","j","nameClass","cll","newClass","families","phylumIndex","phyla_class_family","k","family","fml","newFamily","genera","classIndex","familyIndex","undefinedClassIndex","undefinedFamilyIndex","noFamily","splice","noClass","unranked"],"version":3,"file":"map-interface.fdd35e74.js.map","sourceRoot":"../../../../"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@macrostrat/map-interface",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"description": "Map interface for Macrostrat",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"@macrostrat/color-utils": "^1.1.1",
|
|
13
13
|
"@macrostrat/data-components": "^0.2.0",
|
|
14
14
|
"@macrostrat/hyper": "^3.0.6",
|
|
15
|
-
"@macrostrat/map-interface": "1.5.
|
|
15
|
+
"@macrostrat/map-interface": "1.5.4",
|
|
16
16
|
"@macrostrat/mapbox-react": "^2.6.2",
|
|
17
17
|
"@macrostrat/mapbox-utils": "^1.6.0",
|
|
18
18
|
"@macrostrat/ui-components": "^4.4.4",
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { useAPIResult } from "@macrostrat/ui-components";
|
|
2
|
+
|
|
3
|
+
const apiV2Prefix = `https://dev.macrostrat.org/api/v2`;
|
|
4
|
+
const gddDomain = `https://xdd.wisc.edu`;
|
|
5
|
+
const paleobioDomain = `https://paleobiodb.org`;
|
|
6
|
+
|
|
7
|
+
export function fetchMapInfo(lng, lat, z) {
|
|
8
|
+
return useAPIResult(`${apiV2Prefix}/mobile/map_query_v2`, {
|
|
9
|
+
lng,
|
|
10
|
+
lat,
|
|
11
|
+
z,
|
|
12
|
+
})?.success?.data;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function fetchColumnInfo(lng, lat) {
|
|
16
|
+
return useAPIResult(`${apiV2Prefix}/columns`, {
|
|
17
|
+
lat,
|
|
18
|
+
lng,
|
|
19
|
+
response: "long",
|
|
20
|
+
})?.success?.data?.[0];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function fetchXddInfo(stratNames) {
|
|
24
|
+
return useAPIResult(`${gddDomain}/api/v1/snippets`, {
|
|
25
|
+
article_limit: 20,
|
|
26
|
+
term: stratNames?.map((d) => d.rank_name).join(","),
|
|
27
|
+
})?.success?.data;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function fetchFossilInfo(lng, lat) {
|
|
31
|
+
const collectionResponse = useAPIResult(
|
|
32
|
+
`${paleobioDomain}/data1.2/colls/list.json?lngmin=${lng - 0.1}&lngmax=${lng + 0.1}&latmin=${lat - 0.1}&latmax=${lat + 0.1}`,
|
|
33
|
+
)?.records;
|
|
34
|
+
|
|
35
|
+
const occurrences = useAPIResult(
|
|
36
|
+
`${paleobioDomain}/data1.2/occs/list.json?lngmin=${lng - 0.1}&lngmax=${lng + 0.1}&latmin=${lat - 0.1}&latmax=${lat + 0.1}`,
|
|
37
|
+
)?.records;
|
|
38
|
+
|
|
39
|
+
if (!collectionResponse || !occurrences) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
try {
|
|
44
|
+
return collectionResponse.map((col) => {
|
|
45
|
+
col.occurrences = [];
|
|
46
|
+
occurrences.forEach((occ) => {
|
|
47
|
+
if (occ.cid === col.oid) {
|
|
48
|
+
col.occurrences.push(occ);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return col;
|
|
52
|
+
});
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.log(error);
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
}
|
package/src/{map-panel/components/info-drawer → location-details}/fossil-collections/collections.tsx
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Tabs, Tab } from "@blueprintjs/core";
|
|
3
|
-
import { makeOccurrenceTree } from "
|
|
3
|
+
import { makeOccurrenceTree } from "../utils";
|
|
4
4
|
import hyper from "@macrostrat/hyper";
|
|
5
5
|
import styles from "./main.module.sass";
|
|
6
6
|
const h = hyper.styled(styles);
|
|
@@ -14,7 +14,6 @@ export default function PBDBCollections({ data }) {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
function FossilCollection({ col }) {
|
|
17
|
-
console.log("FossilCollection", col);
|
|
18
17
|
let occurrenceTree = makeOccurrenceTree(col.occurrences);
|
|
19
18
|
return h(
|
|
20
19
|
"div.fossil-collection",
|
package/src/{map-panel/components/info-drawer → location-details}/fossil-collections/index.ts
RENAMED
|
@@ -3,7 +3,7 @@ import { ExpansionPanel } from "@macrostrat/map-interface";
|
|
|
3
3
|
import PBDBCollections from "./collections";
|
|
4
4
|
|
|
5
5
|
export function FossilCollections(props) {
|
|
6
|
-
const { data, expanded } = props;
|
|
6
|
+
const { data, expanded = false } = props;
|
|
7
7
|
|
|
8
8
|
if (!data || data.length <= 0) {
|
|
9
9
|
return null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import hyper from "@macrostrat/hyper";
|
|
2
|
-
import { hexToRgb } from "
|
|
2
|
+
import { hexToRgb } from "./utils";
|
|
3
3
|
import styles from "./info-blocks.module.styl";
|
|
4
4
|
import { useDarkMode } from "@macrostrat/ui-components";
|
|
5
5
|
import chroma from "chroma-js";
|
|
@@ -15,14 +15,14 @@ function getColor(color, darkenAmount) {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
function IntervalChip(props) {
|
|
18
|
-
const { interval, className } = props;
|
|
18
|
+
const { interval, className, intervalURL } = props;
|
|
19
19
|
const darkMode = useDarkMode();
|
|
20
20
|
const darkenAmount = darkMode.isEnabled ? 2 : 0;
|
|
21
21
|
|
|
22
22
|
return h(
|
|
23
23
|
"a.chip-link",
|
|
24
24
|
{
|
|
25
|
-
href:
|
|
25
|
+
href: `${intervalURL}/${interval.int_id}`,
|
|
26
26
|
},
|
|
27
27
|
h(
|
|
28
28
|
"div.chip.age-chip",
|
|
@@ -49,12 +49,14 @@ function Age({ age }) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function AgeChip(props) {
|
|
52
|
-
const { t_int, b_int } = props;
|
|
52
|
+
const { t_int, b_int, intervalURL } = props;
|
|
53
|
+
|
|
53
54
|
return h("div.age-chip-container", [
|
|
54
|
-
h(IntervalChip, { interval: b_int }),
|
|
55
|
+
h(IntervalChip, { interval: b_int, intervalURL }),
|
|
55
56
|
h.if(b_int.int_id != props.t_int.int_id)(IntervalChip, {
|
|
56
57
|
interval: t_int,
|
|
57
58
|
className: "age-chip-t-int",
|
|
59
|
+
intervalURL,
|
|
58
60
|
}),
|
|
59
61
|
]);
|
|
60
62
|
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ComponentMeta } from "@storybook/react-vite";
|
|
2
|
+
import h from "@macrostrat/hyper";
|
|
3
|
+
import { RegionalStratigraphy } from "./reg-strat";
|
|
4
|
+
import { Physiography } from "./physiography";
|
|
5
|
+
import { MacrostratLinkedData } from "./macrostrat-linked";
|
|
6
|
+
import { XddExpansion } from "./xdd-panel";
|
|
7
|
+
import {
|
|
8
|
+
fetchMapInfo,
|
|
9
|
+
fetchColumnInfo,
|
|
10
|
+
fetchXddInfo,
|
|
11
|
+
fetchFossilInfo,
|
|
12
|
+
} from "./fetch";
|
|
13
|
+
import { FossilCollections } from "./fossil-collections";
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
title: "Map interface/Location panel details",
|
|
17
|
+
// More on argTypes: https://storybook.js.org/docs/react/api/argtypes
|
|
18
|
+
args: {},
|
|
19
|
+
} as ComponentMeta<any>;
|
|
20
|
+
|
|
21
|
+
const lat = 44.60085563149249;
|
|
22
|
+
const lng = -96.16783150353609;
|
|
23
|
+
const zoom = 3.9392171056922325;
|
|
24
|
+
|
|
25
|
+
export function RegionalStratigraphyExample() {
|
|
26
|
+
const mapInfo = fetchMapInfo(lng, lat, zoom);
|
|
27
|
+
const columnInfo = fetchColumnInfo(lng, lat);
|
|
28
|
+
|
|
29
|
+
if (!mapInfo || !mapInfo.mapData) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return h(RegionalStratigraphy, {
|
|
34
|
+
mapInfo,
|
|
35
|
+
columnInfo,
|
|
36
|
+
columnURL: "https://dev.macrostrat.org/columns/",
|
|
37
|
+
expanded: true,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function PhysiographyExample() {
|
|
42
|
+
const mapInfo = fetchMapInfo(lng, lat, zoom);
|
|
43
|
+
|
|
44
|
+
if (!mapInfo) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return h(Physiography, {
|
|
49
|
+
mapInfo,
|
|
50
|
+
expanded: true,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function MacrostratLinkedDataExample() {
|
|
55
|
+
const mapInfo = fetchMapInfo(lng, lat, zoom);
|
|
56
|
+
|
|
57
|
+
if (!mapInfo) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const source =
|
|
62
|
+
mapInfo && mapInfo?.mapData && mapInfo?.mapData.length
|
|
63
|
+
? mapInfo?.mapData[0]
|
|
64
|
+
: {
|
|
65
|
+
name: null,
|
|
66
|
+
descrip: null,
|
|
67
|
+
comments: null,
|
|
68
|
+
liths: [],
|
|
69
|
+
b_int: {},
|
|
70
|
+
t_int: {},
|
|
71
|
+
ref: {},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
return h(MacrostratLinkedData, {
|
|
75
|
+
mapInfo,
|
|
76
|
+
source,
|
|
77
|
+
stratNameURL: "https://dev.macrostrat.org/lex/strat-names",
|
|
78
|
+
environmentURL: "https://dev.macrostrat.org/lex/environments",
|
|
79
|
+
intervalURL: "https://dev.macrostrat.org/lex/intervals",
|
|
80
|
+
lithologyURL: "https://dev.macrostrat.org/lex/lithologies",
|
|
81
|
+
expanded: true,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function xddInfoExample() {
|
|
86
|
+
const mapInfo = fetchMapInfo(lng, lat, zoom);
|
|
87
|
+
const xddInfo = fetchXddInfo(mapInfo?.mapData?.[0]?.macrostrat?.strat_names);
|
|
88
|
+
|
|
89
|
+
if (!xddInfo) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return h(XddExpansion, { xddInfo, expanded: true, nestedExpanded: true });
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export function FossilsExample() {
|
|
97
|
+
const fossilInfo = fetchFossilInfo(-89.3938453, 43.0735407);
|
|
98
|
+
|
|
99
|
+
if (!fossilInfo) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return h(FossilCollections, { data: fossilInfo, expanded: true });
|
|
104
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import hyper from "@macrostrat/hyper";
|
|
2
|
-
import { AgeChip, AttrChip } from "../info-blocks";
|
|
3
2
|
import {
|
|
4
3
|
ExpansionPanel,
|
|
5
4
|
ExpandableDetailsPanel,
|
|
@@ -10,11 +9,20 @@ import { scaleLinear } from "@visx/scale";
|
|
|
10
9
|
import { AxisBottom } from "@visx/axis";
|
|
11
10
|
import chroma from "chroma-js";
|
|
12
11
|
import { LithologyList } from "@macrostrat/data-components";
|
|
12
|
+
import { AttrChip, AgeChip } from "./info-blocks";
|
|
13
13
|
|
|
14
14
|
const h = hyper.styled(styles);
|
|
15
15
|
|
|
16
|
-
function MacrostratLinkedData(props) {
|
|
17
|
-
const {
|
|
16
|
+
export function MacrostratLinkedData(props) {
|
|
17
|
+
const {
|
|
18
|
+
mapInfo,
|
|
19
|
+
source,
|
|
20
|
+
stratNameURL,
|
|
21
|
+
environmentURL,
|
|
22
|
+
intervalURL,
|
|
23
|
+
lithologyURL,
|
|
24
|
+
expanded = true,
|
|
25
|
+
} = props;
|
|
18
26
|
|
|
19
27
|
if (!mapInfo.mapData[0]) return h("div");
|
|
20
28
|
|
|
@@ -24,17 +32,17 @@ function MacrostratLinkedData(props) {
|
|
|
24
32
|
className: "regional-panel",
|
|
25
33
|
title: "Macrostrat-linked data",
|
|
26
34
|
helpText: "via Macrostrat",
|
|
27
|
-
expanded
|
|
35
|
+
expanded,
|
|
28
36
|
},
|
|
29
37
|
[
|
|
30
38
|
h("div", { classes: expansionPanelDetailClasses }, [
|
|
31
|
-
h(MatchBasis, { source }),
|
|
32
|
-
h(AgeInformation, { mapInfo, source }),
|
|
39
|
+
h(MatchBasis, { source, stratNameURL }),
|
|
40
|
+
h(AgeInformation, { mapInfo, source, intervalURL }),
|
|
33
41
|
h(Thickness, { source }),
|
|
34
42
|
h(MinorFossilCollections, { source }),
|
|
35
43
|
h(FossilOccs, { source }),
|
|
36
|
-
h(LithsAndClasses, { source }),
|
|
37
|
-
h(Environments, { source }),
|
|
44
|
+
h(LithsAndClasses, { source, lithologyURL }),
|
|
45
|
+
h(Environments, { source, environmentURL }),
|
|
38
46
|
h(Economy, { source }),
|
|
39
47
|
]),
|
|
40
48
|
],
|
|
@@ -46,22 +54,23 @@ const expansionPanelDetailClasses = {
|
|
|
46
54
|
};
|
|
47
55
|
|
|
48
56
|
function AgeInformation(props) {
|
|
49
|
-
const { source, mapInfo } = props;
|
|
57
|
+
const { source, mapInfo, intervalURL } = props;
|
|
50
58
|
const { macrostrat } = source;
|
|
51
59
|
|
|
52
|
-
if (!macrostrat?.b_age) return h(MapAgeRenderer, { mapInfo });
|
|
60
|
+
if (!macrostrat?.b_age) return h(MapAgeRenderer, { mapInfo, intervalURL });
|
|
53
61
|
|
|
54
|
-
return h(MacrostratAgeInfo, { macrostrat, mapInfo });
|
|
62
|
+
return h(MacrostratAgeInfo, { macrostrat, mapInfo, intervalURL });
|
|
55
63
|
}
|
|
56
64
|
|
|
57
65
|
function MapAgeRenderer(props) {
|
|
58
|
-
const { mapInfo, ...rest } = props;
|
|
66
|
+
const { mapInfo, intervalURL, ...rest } = props;
|
|
59
67
|
return h(
|
|
60
68
|
DescribedAgeInfo,
|
|
61
69
|
{
|
|
62
70
|
ageElement: h(AgeChip, {
|
|
63
71
|
b_int: mapInfo.mapData[0].b_int,
|
|
64
72
|
t_int: mapInfo.mapData[0].t_int,
|
|
73
|
+
intervalURL,
|
|
65
74
|
}),
|
|
66
75
|
},
|
|
67
76
|
"Based on geologic map description.",
|
|
@@ -131,7 +140,7 @@ function AgeRefinementBar({ scale, data, color, label = null }) {
|
|
|
131
140
|
);
|
|
132
141
|
}
|
|
133
142
|
|
|
134
|
-
function AgeRefinementPlot({ macrostrat, mapInfo }) {
|
|
143
|
+
function AgeRefinementPlot({ macrostrat, mapInfo, intervalURL }) {
|
|
135
144
|
// Plot the amount by which the age was refined
|
|
136
145
|
|
|
137
146
|
const mapData = mapInfo.mapData[0];
|
|
@@ -168,7 +177,7 @@ function AgeRefinementPlot({ macrostrat, mapInfo }) {
|
|
|
168
177
|
]);
|
|
169
178
|
}
|
|
170
179
|
|
|
171
|
-
function MacrostratAgeInfoCore({ macrostrat }) {
|
|
180
|
+
function MacrostratAgeInfoCore({ macrostrat, intervalURL }) {
|
|
172
181
|
const { b_age, t_age, b_int, t_int } = macrostrat;
|
|
173
182
|
|
|
174
183
|
if (!b_age) return null;
|
|
@@ -183,6 +192,7 @@ function MacrostratAgeInfoCore({ macrostrat }) {
|
|
|
183
192
|
ageElement: h(AgeChip, {
|
|
184
193
|
b_int: { ...b_int, int_name: age, b_age, t_age },
|
|
185
194
|
t_int: { ...b_int, int_name: age, b_age, t_age },
|
|
195
|
+
intervalURL,
|
|
186
196
|
}),
|
|
187
197
|
},
|
|
188
198
|
"Refined using the Macrostrat age model.",
|
|
@@ -198,7 +208,7 @@ function MacrostratAgeInfo(props) {
|
|
|
198
208
|
}
|
|
199
209
|
|
|
200
210
|
function MatchBasis(props) {
|
|
201
|
-
const { source } = props;
|
|
211
|
+
const { source, stratNameURL } = props;
|
|
202
212
|
if (!source.macrostrat?.strat_names) return null;
|
|
203
213
|
|
|
204
214
|
return h(
|
|
@@ -218,7 +228,7 @@ function MatchBasis(props) {
|
|
|
218
228
|
h(
|
|
219
229
|
"a.externalLink",
|
|
220
230
|
{
|
|
221
|
-
href: "/
|
|
231
|
+
href: stratNameURL + "/" + name.strat_name_id,
|
|
222
232
|
key: i,
|
|
223
233
|
},
|
|
224
234
|
[name.rank_name],
|
|
@@ -288,7 +298,7 @@ function LithTypes(props) {
|
|
|
288
298
|
}
|
|
289
299
|
|
|
290
300
|
function LithsAndClasses(props) {
|
|
291
|
-
const { source } = props;
|
|
301
|
+
const { source, lithologyURL } = props;
|
|
292
302
|
const { macrostrat } = source;
|
|
293
303
|
const { liths = null, lith_types = null } = macrostrat;
|
|
294
304
|
|
|
@@ -312,7 +322,7 @@ function LithsAndClasses(props) {
|
|
|
312
322
|
h(LithologyList, {
|
|
313
323
|
lithologies,
|
|
314
324
|
onClickItem: (e, lith) => {
|
|
315
|
-
window.open("/
|
|
325
|
+
window.open(lithologyURL + "/" + lith.lith_id, "_self");
|
|
316
326
|
},
|
|
317
327
|
}),
|
|
318
328
|
]),
|
|
@@ -327,7 +337,7 @@ function EnvironTypes(props) {
|
|
|
327
337
|
}
|
|
328
338
|
|
|
329
339
|
function Environments(props) {
|
|
330
|
-
const { source } = props;
|
|
340
|
+
const { source, environmentURL } = props;
|
|
331
341
|
const { macrostrat } = source;
|
|
332
342
|
const { environs = null, environ_types = null } = macrostrat;
|
|
333
343
|
|
|
@@ -351,7 +361,8 @@ function Environments(props) {
|
|
|
351
361
|
h(LithologyList, {
|
|
352
362
|
lithologies,
|
|
353
363
|
onClickItem: (e, environ) => {
|
|
354
|
-
|
|
364
|
+
console.log("environ", environmentURL);
|
|
365
|
+
window.open(environmentURL + "/" + environ.environ_id, "_self");
|
|
355
366
|
},
|
|
356
367
|
}),
|
|
357
368
|
]),
|
|
@@ -395,5 +406,3 @@ function Economy(props) {
|
|
|
395
406
|
]),
|
|
396
407
|
);
|
|
397
408
|
}
|
|
398
|
-
|
|
399
|
-
export { MacrostratLinkedData };
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import h from "@macrostrat/hyper";
|
|
2
2
|
import { ExpansionPanel } from "@macrostrat/map-interface";
|
|
3
3
|
|
|
4
|
-
function Physiography(props) {
|
|
5
|
-
const { mapInfo } = props;
|
|
6
|
-
|
|
4
|
+
export function Physiography(props) {
|
|
5
|
+
const { mapInfo, expanded = true } = props;
|
|
6
|
+
|
|
7
|
+
if (!mapInfo || !mapInfo.regions) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
7
10
|
|
|
8
|
-
|
|
11
|
+
const { regions } = mapInfo;
|
|
9
12
|
|
|
10
13
|
return h.if(regions.length > 0)(
|
|
11
14
|
ExpansionPanel,
|
|
12
15
|
{
|
|
13
16
|
classes: { root: "regional-panel" },
|
|
14
17
|
title: "Physiography",
|
|
15
|
-
expanded
|
|
18
|
+
expanded,
|
|
16
19
|
},
|
|
17
20
|
[
|
|
18
21
|
regions.map((region, i) => {
|
|
@@ -25,5 +28,3 @@ function Physiography(props) {
|
|
|
25
28
|
],
|
|
26
29
|
);
|
|
27
30
|
}
|
|
28
|
-
|
|
29
|
-
export { Physiography };
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
import h from "@macrostrat/hyper";
|
|
2
2
|
import { ExpansionPanel } from "@macrostrat/map-interface";
|
|
3
|
-
import { addCommas } from "
|
|
3
|
+
import { addCommas } from "./utils";
|
|
4
|
+
|
|
5
|
+
export function RegionalStratigraphy({
|
|
6
|
+
mapInfo,
|
|
7
|
+
columnInfo,
|
|
8
|
+
columnURL,
|
|
9
|
+
expanded = true,
|
|
10
|
+
}) {
|
|
11
|
+
if (!mapInfo || !mapInfo.mapData) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return RegionalStratigraphyInner({
|
|
16
|
+
mapInfo,
|
|
17
|
+
columnInfo,
|
|
18
|
+
columnURL,
|
|
19
|
+
expanded,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function RegionalStratigraphyInner(props) {
|
|
24
|
+
const { mapInfo, columnInfo, columnURL, expanded } = props;
|
|
4
25
|
|
|
5
|
-
export function RegionalStratigraphy(props) {
|
|
6
|
-
const { mapInfo, columnInfo } = props;
|
|
7
26
|
if (mapInfo?.mapData == null || !columnInfo) return null;
|
|
8
27
|
|
|
9
28
|
return h(
|
|
@@ -11,15 +30,15 @@ export function RegionalStratigraphy(props) {
|
|
|
11
30
|
{
|
|
12
31
|
classes: { root: "regional-panel" },
|
|
13
32
|
title: "Regional stratigraphy",
|
|
14
|
-
expanded
|
|
33
|
+
expanded,
|
|
15
34
|
},
|
|
16
|
-
[h.if(columnInfo != null)(ColumnData, { columnInfo })],
|
|
35
|
+
[h.if(columnInfo != null)(ColumnData, { columnInfo, columnURL })],
|
|
17
36
|
);
|
|
18
37
|
}
|
|
19
38
|
|
|
20
|
-
function ColumnData({ columnInfo }) {
|
|
39
|
+
function ColumnData({ columnInfo, columnURL }) {
|
|
21
40
|
return h("div.column-data", [
|
|
22
|
-
h("a", { href: "/
|
|
41
|
+
h("a", { href: columnURL + "/" + columnInfo.col_id }, "View column page"),
|
|
23
42
|
h(MapAttribute, {
|
|
24
43
|
label: "Name: ",
|
|
25
44
|
content: [columnInfo.col_name],
|
|
@@ -23,11 +23,12 @@ type JournalProps = {
|
|
|
23
23
|
articles: XDDSnippet[];
|
|
24
24
|
name: string;
|
|
25
25
|
publisher: string;
|
|
26
|
+
nestedExpanded?: boolean;
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
// Still up for review
|
|
29
30
|
function Journal_(props: JournalProps) {
|
|
30
|
-
const { articles, name, publisher } = props;
|
|
31
|
+
const { articles, name, publisher, nestedExpanded } = props;
|
|
31
32
|
|
|
32
33
|
const helpText = articles[0].pubname;
|
|
33
34
|
|
|
@@ -36,6 +37,7 @@ function Journal_(props: JournalProps) {
|
|
|
36
37
|
{
|
|
37
38
|
title: name,
|
|
38
39
|
helpText: publisher,
|
|
40
|
+
expanded: nestedExpanded,
|
|
39
41
|
},
|
|
40
42
|
[
|
|
41
43
|
articles.map((article, i) => {
|
|
@@ -16,17 +16,31 @@ export interface XDDSnippet {
|
|
|
16
16
|
highlight: string[];
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export function XddExpansion({
|
|
19
|
+
export function XddExpansion({
|
|
20
|
+
xddInfo,
|
|
21
|
+
expanded = false,
|
|
22
|
+
nestedExpanded = true,
|
|
23
|
+
}) {
|
|
20
24
|
return h(xDDPanelCore, {
|
|
21
25
|
className: "regional-panel",
|
|
22
26
|
data: xddInfo,
|
|
23
27
|
isFetching: xddInfo == undefined || xddInfo.length === 0,
|
|
28
|
+
expanded,
|
|
29
|
+
nestedExpanded,
|
|
24
30
|
});
|
|
25
31
|
}
|
|
26
32
|
|
|
27
|
-
export function xDDPanelCore({
|
|
33
|
+
export function xDDPanelCore({
|
|
34
|
+
isFetching,
|
|
35
|
+
data: xddInfo,
|
|
36
|
+
expanded,
|
|
37
|
+
nestedExpanded,
|
|
38
|
+
...rest
|
|
39
|
+
}) {
|
|
28
40
|
const groupedData = groupSnippetsByJournal(xddInfo);
|
|
29
41
|
|
|
42
|
+
console.log("expanded", expanded);
|
|
43
|
+
|
|
30
44
|
return h(
|
|
31
45
|
ExpansionPanel,
|
|
32
46
|
{
|
|
@@ -34,12 +48,14 @@ export function xDDPanelCore({ isFetching, data: xddInfo, ...rest }) {
|
|
|
34
48
|
title: "Primary literature",
|
|
35
49
|
helpText: "via xDD",
|
|
36
50
|
...rest,
|
|
51
|
+
expanded,
|
|
37
52
|
},
|
|
38
53
|
[
|
|
39
54
|
h.if(isFetching)(Spinner),
|
|
40
55
|
h.if(!isFetching && xddInfo.length > 0)([
|
|
41
56
|
Array.from(groupedData.entries())?.map(([journal, snippets]) => {
|
|
42
57
|
return h(Journal, {
|
|
58
|
+
nestedExpanded,
|
|
43
59
|
name: journal,
|
|
44
60
|
articles: snippets,
|
|
45
61
|
publisher: snippets[0].publisher,
|