@macrostrat/column-views 2.4.2 → 2.4.3
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 +4 -0
- package/dist/esm/{column-views.1b5bf0c6.js → column-views.0b3c0d18.js} +5 -2
- package/dist/esm/column-views.0b3c0d18.js.map +1 -0
- package/dist/esm/{column-views.88b2418b.js → column-views.0ed9da35.js} +3 -3
- package/dist/esm/{column-views.88b2418b.js.map → column-views.0ed9da35.js.map} +1 -1
- package/dist/esm/{column-views.82eb5026.js → column-views.0faf79a9.js} +3 -3
- package/dist/esm/{column-views.82eb5026.js.map → column-views.0faf79a9.js.map} +1 -1
- package/dist/esm/{column-views.8ce33ec6.js → column-views.19539293.js} +2 -2
- package/dist/esm/{column-views.8ce33ec6.js.map → column-views.19539293.js.map} +1 -1
- package/dist/esm/{column-views.ce5251f7.js → column-views.1af3ec1f.js} +2 -2
- package/dist/esm/{column-views.ce5251f7.js.map → column-views.1af3ec1f.js.map} +1 -1
- package/dist/esm/{column-views.1ef55568.js → column-views.2a0010a3.js} +3 -3
- package/dist/esm/{column-views.1ef55568.js.map → column-views.2a0010a3.js.map} +1 -1
- package/dist/esm/{column-views.f35c4621.js → column-views.334c3947.js} +2 -2
- package/dist/esm/{column-views.f35c4621.js.map → column-views.334c3947.js.map} +1 -1
- package/dist/esm/{column-views.c93b63db.js → column-views.337b40a2.js} +3 -3
- package/dist/esm/{column-views.c93b63db.js.map → column-views.337b40a2.js.map} +1 -1
- package/dist/esm/{column-views.633c42a3.js → column-views.33d35a44.js} +25 -3
- package/dist/esm/column-views.33d35a44.js.map +1 -0
- package/dist/esm/{column-views.c1e507e6.js → column-views.362aae9a.js} +2 -2
- package/dist/esm/{column-views.c1e507e6.js.map → column-views.362aae9a.js.map} +1 -1
- package/dist/esm/{column-views.083fb787.js → column-views.4252a555.js} +5 -5
- package/dist/esm/{column-views.083fb787.js.map → column-views.4252a555.js.map} +1 -1
- package/dist/esm/{column-views.99cb1c41.js → column-views.45c70ba4.js} +3 -3
- package/dist/esm/{column-views.99cb1c41.js.map → column-views.45c70ba4.js.map} +1 -1
- package/dist/esm/{column-views.40d3688c.js → column-views.47b7d9ca.js} +2 -2
- package/dist/esm/{column-views.40d3688c.js.map → column-views.47b7d9ca.js.map} +1 -1
- package/dist/esm/{column-views.b4e1236d.js → column-views.47ca059d.js} +3 -3
- package/dist/esm/column-views.47ca059d.js.map +1 -0
- package/dist/esm/{column-views.3090f246.js → column-views.636d6553.js} +2 -2
- package/dist/esm/{column-views.3090f246.js.map → column-views.636d6553.js.map} +1 -1
- package/dist/esm/{column-views.a94e99a2.js → column-views.64f6ddd3.js} +2 -2
- package/dist/esm/{column-views.a94e99a2.js.map → column-views.64f6ddd3.js.map} +1 -1
- package/dist/esm/{column-views.88436022.js → column-views.6519a353.js} +2 -2
- package/dist/esm/{column-views.88436022.js.map → column-views.6519a353.js.map} +1 -1
- package/dist/esm/{column-views.18655508.js → column-views.6cff6659.js} +4 -4
- package/dist/esm/{column-views.18655508.js.map → column-views.6cff6659.js.map} +1 -1
- package/dist/esm/{column-views.fedccce9.js → column-views.70387120.js} +2 -2
- package/dist/esm/{column-views.fedccce9.js.map → column-views.70387120.js.map} +1 -1
- package/dist/esm/{column-views.3ae8f23d.js → column-views.74837922.js} +2 -2
- package/dist/esm/{column-views.3ae8f23d.js.map → column-views.74837922.js.map} +1 -1
- package/dist/esm/{column-views.e885211d.js → column-views.7bfb4318.js} +2 -2
- package/dist/esm/{column-views.e885211d.js.map → column-views.7bfb4318.js.map} +1 -1
- package/dist/esm/{column-views.f56e604d.js → column-views.7dc53f1b.js} +4 -4
- package/dist/esm/{column-views.f56e604d.js.map → column-views.7dc53f1b.js.map} +1 -1
- package/dist/esm/{column-views.ab2cc6cb.js → column-views.85df21ec.js} +11 -10
- package/dist/esm/column-views.85df21ec.js.map +1 -0
- package/dist/esm/{column-views.4e9b8594.js → column-views.87c589b7.js} +2 -2
- package/dist/esm/{column-views.4e9b8594.js.map → column-views.87c589b7.js.map} +1 -1
- package/dist/esm/{column-views.77322764.js → column-views.8da2b857.js} +2 -2
- package/dist/esm/{column-views.77322764.js.map → column-views.8da2b857.js.map} +1 -1
- package/dist/esm/{column-views.b957dc19.js → column-views.8fb37de7.js} +2 -2
- package/dist/esm/{column-views.b957dc19.js.map → column-views.8fb37de7.js.map} +1 -1
- package/dist/esm/{column-views.d4e50f74.js → column-views.905ddea0.js} +3 -3
- package/dist/esm/{column-views.d4e50f74.js.map → column-views.905ddea0.js.map} +1 -1
- package/dist/esm/{column-views.91c18fe3.js → column-views.9512c5d5.js} +10 -10
- package/dist/esm/{column-views.91c18fe3.js.map → column-views.9512c5d5.js.map} +1 -1
- package/dist/esm/{column-views.85d57d04.js → column-views.9905b91c.js} +4 -4
- package/dist/esm/{column-views.85d57d04.js.map → column-views.9905b91c.js.map} +1 -1
- package/dist/esm/{column-views.275ba52b.js → column-views.a4f394fe.js} +2 -2
- package/dist/esm/{column-views.275ba52b.js.map → column-views.a4f394fe.js.map} +1 -1
- package/dist/esm/{column-views.dd2d5a6d.js → column-views.b2142cd8.js} +5 -5
- package/dist/esm/{column-views.dd2d5a6d.js.map → column-views.b2142cd8.js.map} +1 -1
- package/dist/esm/{column-views.6f0d4f3a.js → column-views.b7cf0da2.js} +2 -2
- package/dist/esm/{column-views.6f0d4f3a.js.map → column-views.b7cf0da2.js.map} +1 -1
- package/dist/esm/{column-views.af4278f0.js → column-views.b88d4bbe.js} +3 -3
- package/dist/esm/{column-views.af4278f0.js.map → column-views.b88d4bbe.js.map} +1 -1
- package/dist/esm/{column-views.5ec7294d.js → column-views.c750a6df.js} +3 -3
- package/dist/esm/{column-views.5ec7294d.js.map → column-views.c750a6df.js.map} +1 -1
- package/dist/esm/{column-views.fc4860bd.js → column-views.cb1cc9f2.js} +4 -4
- package/dist/esm/{column-views.fc4860bd.js.map → column-views.cb1cc9f2.js.map} +1 -1
- package/dist/esm/{column-views.f904e6d7.js → column-views.ce000969.js} +3 -3
- package/dist/esm/{column-views.f904e6d7.js.map → column-views.ce000969.js.map} +1 -1
- package/dist/esm/{column-views.ee2fd38f.js → column-views.d7740949.js} +3 -3
- package/dist/esm/{column-views.ee2fd38f.js.map → column-views.d7740949.js.map} +1 -1
- package/dist/esm/{column-views.088a0274.js → column-views.d7e6bf67.js} +2 -2
- package/dist/esm/{column-views.088a0274.js.map → column-views.d7e6bf67.js.map} +1 -1
- package/dist/esm/{column-views.e6882667.js → column-views.dac0a3bb.js} +5 -5
- package/dist/esm/{column-views.e6882667.js.map → column-views.dac0a3bb.js.map} +1 -1
- package/dist/esm/{column-views.11353c2c.js → column-views.e13a0a76.js} +4 -4
- package/dist/esm/{column-views.11353c2c.js.map → column-views.e13a0a76.js.map} +1 -1
- package/dist/esm/{column-views.5e830e7c.js → column-views.ea08f667.js} +8 -8
- package/dist/esm/{column-views.5e830e7c.js.map → column-views.ea08f667.js.map} +1 -1
- package/dist/esm/{column-views.bc83a85d.js → column-views.fe42d2fc.js} +2 -2
- package/dist/esm/{column-views.bc83a85d.js.map → column-views.fe42d2fc.js.map} +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -11
- package/dist/node/column-views.048fdcaf.js +2 -0
- package/dist/node/column-views.048fdcaf.js.map +1 -0
- package/dist/node/{column-views.796fc1de.js → column-views.04a72b35.js} +2 -2
- package/dist/node/{column-views.796fc1de.js.map → column-views.04a72b35.js.map} +1 -1
- package/dist/node/{column-views.94c8ce3e.js → column-views.0619e2da.js} +2 -2
- package/dist/node/{column-views.94c8ce3e.js.map → column-views.0619e2da.js.map} +1 -1
- package/dist/node/{column-views.66663668.js → column-views.0af5912d.js} +2 -2
- package/dist/node/{column-views.66663668.js.map → column-views.0af5912d.js.map} +1 -1
- package/dist/node/{column-views.eecdc727.js → column-views.0d254fd3.js} +2 -2
- package/dist/node/{column-views.eecdc727.js.map → column-views.0d254fd3.js.map} +1 -1
- package/dist/node/{column-views.54f7a243.js → column-views.109cb0c8.js} +2 -2
- package/dist/node/{column-views.54f7a243.js.map → column-views.109cb0c8.js.map} +1 -1
- package/dist/node/{column-views.f4063bc8.js → column-views.15b5cecc.js} +2 -2
- package/dist/node/{column-views.f4063bc8.js.map → column-views.15b5cecc.js.map} +1 -1
- package/dist/node/{column-views.6f0cb059.js → column-views.183745c0.js} +2 -2
- package/dist/node/{column-views.6f0cb059.js.map → column-views.183745c0.js.map} +1 -1
- package/dist/node/{column-views.080781ca.js → column-views.2e2158f5.js} +2 -2
- package/dist/node/{column-views.080781ca.js.map → column-views.2e2158f5.js.map} +1 -1
- package/dist/node/{column-views.f93b4175.js → column-views.306acd3f.js} +2 -2
- package/dist/node/{column-views.f93b4175.js.map → column-views.306acd3f.js.map} +1 -1
- package/dist/node/{column-views.0818254f.js → column-views.31153f29.js} +2 -2
- package/dist/node/{column-views.0818254f.js.map → column-views.31153f29.js.map} +1 -1
- package/dist/node/{column-views.6051e986.js → column-views.31da008b.js} +2 -2
- package/dist/node/{column-views.6051e986.js.map → column-views.31da008b.js.map} +1 -1
- package/dist/node/column-views.40e758b3.js +2 -0
- package/dist/node/column-views.40e758b3.js.map +1 -0
- package/dist/node/{column-views.ffbffec7.js → column-views.4a28d695.js} +2 -2
- package/dist/node/{column-views.ffbffec7.js.map → column-views.4a28d695.js.map} +1 -1
- package/dist/node/{column-views.d30231cb.js → column-views.5987bc26.js} +2 -2
- package/dist/node/{column-views.d30231cb.js.map → column-views.5987bc26.js.map} +1 -1
- package/dist/node/{column-views.784bac2a.js → column-views.5bb858c9.js} +2 -2
- package/dist/node/{column-views.784bac2a.js.map → column-views.5bb858c9.js.map} +1 -1
- package/dist/node/{column-views.fe7a5452.js → column-views.5cbada24.js} +2 -2
- package/dist/node/{column-views.fe7a5452.js.map → column-views.5cbada24.js.map} +1 -1
- package/dist/node/{column-views.8c00beb4.js → column-views.5fcd2be6.js} +2 -2
- package/dist/node/{column-views.8c00beb4.js.map → column-views.5fcd2be6.js.map} +1 -1
- package/dist/node/{column-views.bdf05ed4.js → column-views.78b2d234.js} +2 -2
- package/dist/node/{column-views.bdf05ed4.js.map → column-views.78b2d234.js.map} +1 -1
- package/dist/node/{column-views.5908556a.js → column-views.8bee789c.js} +2 -2
- package/dist/node/{column-views.5908556a.js.map → column-views.8bee789c.js.map} +1 -1
- package/dist/node/{column-views.18e86c2d.js → column-views.90c36c0b.js} +2 -2
- package/dist/node/{column-views.18e86c2d.js.map → column-views.90c36c0b.js.map} +1 -1
- package/dist/node/{column-views.87d31e0a.js → column-views.a2476e39.js} +2 -2
- package/dist/node/{column-views.87d31e0a.js.map → column-views.a2476e39.js.map} +1 -1
- package/dist/node/{column-views.39b71a38.js → column-views.a8f5ee28.js} +2 -2
- package/dist/node/{column-views.39b71a38.js.map → column-views.a8f5ee28.js.map} +1 -1
- package/dist/node/{column-views.5f3f8ccf.js → column-views.ad60c02f.js} +2 -2
- package/dist/node/{column-views.5f3f8ccf.js.map → column-views.ad60c02f.js.map} +1 -1
- package/dist/node/{column-views.72c3c6e7.js → column-views.add5e42b.js} +2 -2
- package/dist/node/{column-views.72c3c6e7.js.map → column-views.add5e42b.js.map} +1 -1
- package/dist/node/{column-views.4d8fc443.js → column-views.aff55599.js} +2 -2
- package/dist/node/{column-views.4d8fc443.js.map → column-views.aff55599.js.map} +1 -1
- package/dist/node/{column-views.4d573ded.js → column-views.b2e5f823.js} +2 -2
- package/dist/node/{column-views.4d573ded.js.map → column-views.b2e5f823.js.map} +1 -1
- package/dist/node/{column-views.64fc40d6.js → column-views.b57e5e6e.js} +2 -2
- package/dist/node/{column-views.64fc40d6.js.map → column-views.b57e5e6e.js.map} +1 -1
- package/dist/node/{column-views.a596b1f5.js → column-views.ba9108fe.js} +2 -2
- package/dist/node/column-views.ba9108fe.js.map +1 -0
- package/dist/node/{column-views.b6613ab0.js → column-views.c16a19fb.js} +2 -2
- package/dist/node/{column-views.b6613ab0.js.map → column-views.c16a19fb.js.map} +1 -1
- package/dist/node/{column-views.74fcfb9c.js → column-views.c3097d9a.js} +2 -2
- package/dist/node/{column-views.74fcfb9c.js.map → column-views.c3097d9a.js.map} +1 -1
- package/dist/node/{column-views.fa5ee6de.js → column-views.c4c15e2b.js} +2 -2
- package/dist/node/{column-views.fa5ee6de.js.map → column-views.c4c15e2b.js.map} +1 -1
- package/dist/node/{column-views.58b336f1.js → column-views.c651b684.js} +2 -2
- package/dist/node/{column-views.58b336f1.js.map → column-views.c651b684.js.map} +1 -1
- package/dist/node/{column-views.447008d0.js → column-views.cf41a6d7.js} +2 -2
- package/dist/node/{column-views.447008d0.js.map → column-views.cf41a6d7.js.map} +1 -1
- package/dist/node/{column-views.5fd6e11a.js → column-views.d22bf15c.js} +2 -2
- package/dist/node/{column-views.5fd6e11a.js.map → column-views.d22bf15c.js.map} +1 -1
- package/dist/node/{column-views.5c02450b.js → column-views.d737de1e.js} +2 -2
- package/dist/node/{column-views.5c02450b.js.map → column-views.d737de1e.js.map} +1 -1
- package/dist/node/{column-views.0d48f51d.js → column-views.da902c44.js} +2 -2
- package/dist/node/{column-views.0d48f51d.js.map → column-views.da902c44.js.map} +1 -1
- package/dist/node/{column-views.003e0c17.js → column-views.e0e20136.js} +2 -2
- package/dist/node/{column-views.003e0c17.js.map → column-views.e0e20136.js.map} +1 -1
- package/dist/node/{column-views.7e895e1a.js → column-views.ec0087a2.js} +2 -2
- package/dist/node/{column-views.7e895e1a.js.map → column-views.ec0087a2.js.map} +1 -1
- package/dist/node/{column-views.375529b1.js → column-views.f2e82230.js} +2 -2
- package/dist/node/{column-views.375529b1.js.map → column-views.f2e82230.js.map} +1 -1
- package/dist/node/{column-views.d86e6c7d.js → column-views.fb3ed7cc.js} +2 -2
- package/dist/node/{column-views.d86e6c7d.js.map → column-views.fb3ed7cc.js.map} +1 -1
- package/dist/node/column-views.fcb243a2.js +2 -0
- package/dist/node/column-views.fcb243a2.js.map +1 -0
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +1 -1
- package/src/correlation-chart/stories/correlation-chart.stories.ts +1 -24
- package/src/correlation-chart/stories/utils.ts +24 -0
- package/src/maps/_shared/styles.ts +12 -2
- package/src/maps/column-navigation/mapbox/index.ts +1 -0
- package/src/prepare-units/composite-scale.ts +9 -1
- package/src/prepare-units/helpers.ts +2 -2
- package/src/unit-details/panel.ts +15 -7
- package/dist/esm/column-views.1b5bf0c6.js.map +0 -1
- package/dist/esm/column-views.633c42a3.js.map +0 -1
- package/dist/esm/column-views.ab2cc6cb.js.map +0 -1
- package/dist/esm/column-views.b4e1236d.js.map +0 -1
- package/dist/node/column-views.021a6961.js +0 -2
- package/dist/node/column-views.021a6961.js.map +0 -1
- package/dist/node/column-views.139b0855.js +0 -2
- package/dist/node/column-views.139b0855.js.map +0 -1
- package/dist/node/column-views.5e73411d.js +0 -2
- package/dist/node/column-views.5e73411d.js.map +0 -1
- package/dist/node/column-views.a596b1f5.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["<anon>","packages/column-views/src/prepare-units/composite-scale.ts"],"sourcesContent":["import \"./column-views.dbb4a46b.js\";\nimport \"./column-views.5a9331a9.js\";\nimport \"./column-views.7f9c7448.js\";\nimport {ColumnAxisType as $d6XP3$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {scaleLinear as $d6XP3$scaleLinear} from \"d3-scale\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\n\nvar $dcPBY = parcelRequire(\"dcPBY\");\n\nvar $76iYI = parcelRequire(\"76iYI\");\nfunction $8054a162cb094378$export$e7184dd8bb3302ed(inputScales, unconformityHeight) {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */ let totalHeight = unconformityHeight / 2;\n let lastSectionTopHeight = 0;\n const packages2 = [];\n for (const group of inputScales){\n const { domain: domain, scale: scale } = group;\n const [b_age, t_age] = domain;\n const key = `package-${b_age}-${t_age}`;\n packages2.push({\n ...$8054a162cb094378$export$d6235b492bceb8c5(group, totalHeight),\n key: key,\n offset: totalHeight,\n // Unconformity height above this particular section\n paddingTop: totalHeight - lastSectionTopHeight\n });\n const pixelHeight = Math.abs(scale(b_age) - scale(t_age));\n lastSectionTopHeight = totalHeight + pixelHeight;\n totalHeight = lastSectionTopHeight + unconformityHeight;\n }\n totalHeight += unconformityHeight / 2;\n return {\n totalHeight: totalHeight,\n sections: packages2\n };\n}\nfunction $8054a162cb094378$export$67442a0f5bef147b(sections, unconformityHeight) {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */ const sectionScales = sections.map((d)=>d.scaleInfo);\n const { totalHeight: totalHeight, sections: packages } = $8054a162cb094378$export$e7184dd8bb3302ed(sectionScales, unconformityHeight);\n // This could perhaps be simplified.\n const sections1 = [];\n for(const i in sections){\n const group = sections[i];\n const scaleInfo = packages[i];\n sections1.push({\n ...group,\n key: scaleInfo.key,\n scaleInfo: scaleInfo\n });\n }\n return {\n totalHeight: totalHeight,\n sections: sections1\n };\n}\nfunction $8054a162cb094378$export$7d3f3129a1a4b84e(sections, opts) {\n return sections.map((group)=>{\n return $8054a162cb094378$var$addScaleToSection(group, opts);\n });\n}\nfunction $8054a162cb094378$var$addScaleToSection(group, opts) {\n const { t_age: t_age, b_age: b_age, t_pos: t_pos, b_pos: b_pos, units: units } = group;\n let _range = null;\n // if t_age and b_age are set for a group, use them to define the range...\n if (opts.axisType == (0, $d6XP3$ColumnAxisType).AGE) _range = [\n b_age,\n t_age\n ];\n else _range = [\n b_pos,\n t_pos\n ];\n const scaleInfo = $8054a162cb094378$var$buildSectionScale(units, {\n ...opts,\n domain: _range\n });\n return {\n ...group,\n scaleInfo: scaleInfo\n };\n}\nfunction $8054a162cb094378$var$buildSectionScale(data, opts) {\n const { targetUnitHeight: targetUnitHeight = 20, minPixelScale: minPixelScale = 0.2, axisType: axisType, minSectionHeight: minSectionHeight, scale: scale, hybridScale: hybridScale } = opts;\n const domain = opts.domain ?? $8054a162cb094378$var$findSectionHeightRange(data, axisType);\n const dAge = Math.abs(domain[0] - domain[1]);\n let _pixelScale = opts.pixelScale;\n let pixelHeight;\n if (hybridScale != null) {\n /** In an equidistant surfaces scale, we want to determine the heights of surfaces\n * and then distribute units evenly between them.\n * This is somewhat like an ordinal scale\n */ if (hybridScale.type === (0, $76iYI.HybridScaleType).EquidistantSurfaces) _pixelScale ?? (_pixelScale = targetUnitHeight);\n return (0, $dcPBY.buildHybridScale)(hybridScale, data, domain, {\n pixelOffset: 0,\n pixelScale: _pixelScale\n });\n }\n if (scale == null) {\n if (_pixelScale == null) {\n const avgAgeRange = $8054a162cb094378$var$findAverageUnitHeight(data, axisType);\n // Get pixel height necessary to render average unit at target height\n _pixelScale = Math.max(targetUnitHeight / avgAgeRange, minPixelScale);\n // OLD METHOD that cares about overall section height vs. individual unit height\n // 0.2 pixel per myr is the floor scale\n //const targetHeight = targetUnitHeight * data.length;\n // 1 pixel per myr is the floor scale\n //_pixelScale = Math.max(targetHeight / dAge, minPixelScale);\n }\n let height = dAge * _pixelScale;\n // If height is less than minSectionHeight, set it to minSectionHeight\n const _minSectionHeight = minSectionHeight ?? targetUnitHeight ?? 0;\n pixelHeight = Math.max(height, _minSectionHeight);\n _pixelScale = pixelHeight / dAge;\n } else // If a scale is provided, use it to compute pixel height\n pixelHeight = Math.abs(scale(domain[0]) - scale(domain[1]));\n return $8054a162cb094378$export$d6235b492bceb8c5({\n scale: scale,\n domain: domain,\n pixelHeight: pixelHeight,\n pixelScale: _pixelScale\n }, 0);\n}\nfunction $8054a162cb094378$export$d6235b492bceb8c5(def, offset = 0) {\n /** Build a section scale */ // Domain should be oriented from bottom to top, but scale is oriented from top to bottom\n const { domain: domain, pixelScale: pixelScale, pixelHeight: pixelHeight, scale: scale, heightScale: heightScale } = def;\n if (scale == null && pixelScale == null) throw new Error(\"Either scale or pixelScale must be provided\");\n let _scale;\n if (scale == null) _scale = (0, $d6XP3$scaleLinear)().domain([\n domain[1],\n domain[0]\n ]).range([\n offset,\n pixelHeight + offset\n ]);\n else {\n const domain0 = scale.domain();\n const range0 = scale.range();\n _scale = scale.copy().domain(domain0).range(range0.map((d)=>d + offset));\n }\n _scale.clamp();\n let _heightScale = null;\n if (heightScale != null) {\n // Adjust height scale as well\n const range0 = scale.range();\n _heightScale = heightScale.copy().range(range0.map((d)=>d + offset));\n _heightScale.clamp();\n }\n return {\n domain: domain,\n pixelScale: pixelScale,\n pixelHeight: pixelHeight,\n scale: _scale,\n // Internal details for hybrid scales. TODO: improve this\n heightScale: _heightScale\n };\n}\nfunction $8054a162cb094378$var$findSectionHeightRange(data, axisType) {\n if (axisType == null) throw new Error(\"Axis type is not set\");\n if (axisType === (0, $d6XP3$ColumnAxisType).AGE) {\n const t_age = Math.min(...data.map((d)=>d.t_age));\n const b_age = Math.max(...data.map((d)=>d.b_age));\n return [\n b_age,\n t_age\n ];\n } else if (axisType == (0, $d6XP3$ColumnAxisType).DEPTH || axisType == (0, $d6XP3$ColumnAxisType).ORDINAL) {\n const t_pos = Math.min(...data.map((d)=>d.t_pos));\n const b_pos = Math.max(...data.map((d)=>d.b_pos));\n return [\n b_pos,\n t_pos\n ];\n } else if (axisType == (0, $d6XP3$ColumnAxisType).HEIGHT) {\n const t_pos = Math.max(...data.map((d)=>d.t_pos));\n const b_pos = Math.min(...data.map((d)=>d.b_pos));\n return [\n b_pos,\n t_pos\n ];\n }\n}\nfunction $8054a162cb094378$var$findAverageUnitHeight(data, axisType) {\n const unitHeights = data.map((d)=>{\n const [b_pos, t_pos] = (0, $iWhRv.getUnitHeightRange)(d, axisType);\n return Math.abs(b_pos - t_pos);\n });\n return unitHeights.reduce((a, b)=>a + b, 0) / unitHeights.length;\n}\nfunction $8054a162cb094378$export$3ada7641926a616d(sections, interpolateUnconformities = false) {\n /** Create a scale that works across multiple packages */ const scales = [];\n let lastScale = null;\n for (const section of sections){\n const _scale = section.scaleInfo.scale.copy().clamp(true);\n scales.push(_scale);\n if (lastScale != null && interpolateUnconformities) {\n // Add a new scale that interpolates between lastScale and _scale\n const lastDomain = lastScale.domain();\n const lastRange = lastScale.range();\n const currentDomain = _scale.domain();\n const currentRange = _scale.range();\n const interpScale = (0, $d6XP3$scaleLinear)().domain([\n lastDomain[lastDomain.length - 1],\n currentDomain[0]\n ]).range([\n lastRange[lastRange.length - 1],\n currentRange[0]\n ]).clamp(true);\n scales.push(interpScale);\n }\n lastScale = _scale;\n }\n const scale = (age)=>{\n for (const s of scales){\n const domain = s.domain();\n if (age >= domain[0] && age <= domain[domain.length - 1]) return s(age);\n }\n return null;\n };\n scale.copy = ()=>{\n return $8054a162cb094378$export$3ada7641926a616d(sections, interpolateUnconformities);\n };\n scale.domain = ()=>{\n /** Return the domain of the scale */ const vals = sections.flatMap((d)=>d.scaleInfo.domain);\n if (vals[0] < vals[vals.length - 1]) // age axes\n return [\n Math.min(...vals),\n Math.max(...vals)\n ];\n // Normal axes like height\n return [\n Math.max(...vals),\n Math.min(...vals)\n ];\n };\n scale.invert = (pixelHeight)=>{\n /** Invert the scale to get the age at a given pixel height */ // Iterate through the sections to find the correct one\n for (const scale of scales){\n const range = scale.range();\n if (pixelHeight > Math.min(...range) && pixelHeight <= Math.max(...range)) {\n console.log(\"Inverting scale at pixel height\", pixelHeight);\n return scale.invert(pixelHeight);\n }\n }\n return null;\n };\n scale.clamp = (clamp)=>{\n /** Clamp all constituent scales */ for (const s of scales)s.clamp(clamp);\n };\n return scale;\n}\nfunction $8054a162cb094378$export$edbf01b435c75274(sections, threshold, opts) {\n const newSections = [];\n let currentSection = null;\n for (const nextSection of sections){\n if (currentSection == null) {\n currentSection = nextSection;\n continue;\n }\n let heights;\n let pxHeights;\n if (opts.axisType !== (0, $d6XP3$ColumnAxisType).AGE) heights = [\n nextSection.t_pos,\n currentSection.b_pos\n ];\n else heights = [\n nextSection.t_age,\n currentSection.b_age\n ];\n const _diff = (vals)=>{\n return Math.abs(vals[0] - vals[1]);\n };\n pxHeights = [\n _diff(heights.map(nextSection.scaleInfo.scale)),\n _diff(heights.map(currentSection.scaleInfo.scale))\n ];\n const pxHeight = Math.min(...pxHeights);\n if (pxHeight < threshold) {\n let t_pos;\n let b_pos;\n if (opts.axisType == (0, $d6XP3$ColumnAxisType).AGE || opts.axisType == (0, $d6XP3$ColumnAxisType).DEPTH) {\n t_pos = Math.min(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.max(currentSection.b_pos, nextSection.b_pos);\n } else {\n t_pos = Math.max(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.min(currentSection.b_pos, nextSection.b_pos);\n }\n // We need to merge the sections\n const compositeSection0 = {\n units: [\n ...currentSection.units,\n ...nextSection.units\n ],\n section_id: [\n ...(0, $iWhRv.ensureArray)(currentSection.section_id),\n ...(0, $iWhRv.ensureArray)(nextSection.section_id)\n ],\n t_age: Math.min(currentSection.t_age, nextSection.t_age),\n b_age: Math.max(currentSection.b_age, nextSection.b_age),\n t_pos: t_pos,\n b_pos: b_pos\n };\n currentSection = $8054a162cb094378$var$addScaleToSection(compositeSection0, opts);\n } else {\n // We need to keep the section\n newSections.push(currentSection);\n currentSection = nextSection;\n }\n }\n if (currentSection != null) newSections.push(currentSection);\n return newSections;\n}\n\n\nexport {$8054a162cb094378$export$e7184dd8bb3302ed as buildCompositeScaleInfo, $8054a162cb094378$export$d6235b492bceb8c5 as createPackageScale, $8054a162cb094378$export$67442a0f5bef147b as finalizeSectionHeights, $8054a162cb094378$export$7d3f3129a1a4b84e as computeSectionHeights, $8054a162cb094378$export$3ada7641926a616d as createCompositeScale, $8054a162cb094378$export$edbf01b435c75274 as collapseUnconformitiesByPixelHeight};\n//# sourceMappingURL=column-views.a596b1f5.js.map\n","import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { ensureArray, getUnitHeightRange } from \"./utils\";\nimport { ScaleContinuousNumeric, scaleLinear } from \"d3-scale\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { buildHybridScale } from \"./dynamic-scales\";\nimport { ExtUnit, HybridScaleType, SectionInfo } from \"./types\";\nimport type {\n ColumnScaleOptions,\n CompositeColumnData,\n CompositeScaleData,\n PackageLayoutData,\n PackageScaleInfo,\n PackageScaleLayoutData,\n SectionScaleOptions,\n} from \"./types\";\n\n// Composite scale information augmented with units in each package\n\nexport function buildCompositeScaleInfo(\n inputScales: PackageScaleInfo[],\n unconformityHeight: number,\n): CompositeScaleData {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */\n\n let totalHeight = unconformityHeight / 2;\n let lastSectionTopHeight = 0;\n\n const packages2: PackageScaleLayoutData[] = [];\n for (const group of inputScales) {\n const { domain, scale } = group;\n const [b_age, t_age] = domain;\n const key = `package-${b_age}-${t_age}`;\n\n packages2.push({\n ...createPackageScale(group, totalHeight),\n key,\n offset: totalHeight,\n // Unconformity height above this particular section\n paddingTop: totalHeight - lastSectionTopHeight,\n });\n\n const pixelHeight = Math.abs(scale(b_age) - scale(t_age));\n lastSectionTopHeight = totalHeight + pixelHeight;\n totalHeight = lastSectionTopHeight + unconformityHeight;\n }\n totalHeight += unconformityHeight / 2;\n return {\n totalHeight,\n sections: packages2,\n };\n}\n\nexport function finalizeSectionHeights<T extends UnitLong>(\n sections: SectionInfoWithScale<T>[],\n unconformityHeight: number,\n): CompositeColumnData<T> {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */\n\n const sectionScales = sections.map((d) => d.scaleInfo);\n\n const { totalHeight, sections: packages } = buildCompositeScaleInfo(\n sectionScales,\n unconformityHeight,\n );\n\n // This could perhaps be simplified.\n const sections1: PackageLayoutData<T>[] = [];\n for (const i in sections) {\n const group = sections[i];\n const scaleInfo = packages[i];\n sections1.push({\n ...group,\n key: scaleInfo.key,\n scaleInfo,\n });\n }\n return {\n totalHeight,\n sections: sections1,\n };\n}\n\nexport interface SectionInfoWithScale<\n T extends UnitLong = ExtUnit,\n> extends SectionInfo<T> {\n scaleInfo: PackageScaleInfo;\n}\n\nexport function computeSectionHeights<T extends UnitLong>(\n sections: SectionInfo<T>[],\n opts: ColumnScaleOptions,\n): SectionInfoWithScale<T>[] {\n return sections.map((group) => {\n return addScaleToSection<T>(group, opts);\n });\n}\n\nfunction addScaleToSection<T extends UnitLong = ExtUnit>(\n group: SectionInfo<T>,\n opts: ColumnScaleOptions,\n): SectionInfoWithScale<T> {\n const { t_age, b_age, t_pos, b_pos, units } = group;\n let _range = null;\n // if t_age and b_age are set for a group, use them to define the range...\n if (opts.axisType == ColumnAxisType.AGE) {\n _range = [b_age, t_age];\n } else {\n _range = [b_pos, t_pos];\n }\n\n const scaleInfo = buildSectionScale<T>(units, {\n ...opts,\n domain: _range,\n });\n\n return {\n ...group,\n scaleInfo,\n };\n}\n\nfunction buildSectionScale<T extends UnitLong>(\n data: T[],\n opts: SectionScaleOptions,\n): PackageScaleInfo {\n const {\n targetUnitHeight = 20,\n minPixelScale = 0.2,\n axisType,\n minSectionHeight,\n scale,\n hybridScale,\n } = opts;\n const domain = opts.domain ?? findSectionHeightRange(data, axisType);\n\n const dAge = Math.abs(domain[0] - domain[1]);\n\n let _pixelScale = opts.pixelScale;\n let pixelHeight: number;\n\n if (hybridScale != null) {\n /** In an equidistant surfaces scale, we want to determine the heights of surfaces\n * and then distribute units evenly between them.\n * This is somewhat like an ordinal scale\n */\n if (hybridScale.type === HybridScaleType.EquidistantSurfaces) {\n _pixelScale ??= targetUnitHeight;\n }\n\n return buildHybridScale(hybridScale, data, domain, {\n pixelOffset: 0,\n pixelScale: _pixelScale,\n });\n }\n\n if (scale == null) {\n if (_pixelScale == null) {\n const avgAgeRange = findAverageUnitHeight(data, axisType);\n // Get pixel height necessary to render average unit at target height\n _pixelScale = Math.max(targetUnitHeight / avgAgeRange, minPixelScale);\n\n // OLD METHOD that cares about overall section height vs. individual unit height\n // 0.2 pixel per myr is the floor scale\n //const targetHeight = targetUnitHeight * data.length;\n // 1 pixel per myr is the floor scale\n //_pixelScale = Math.max(targetHeight / dAge, minPixelScale);\n }\n\n let height = dAge * _pixelScale;\n // If height is less than minSectionHeight, set it to minSectionHeight\n const _minSectionHeight = minSectionHeight ?? targetUnitHeight ?? 0;\n pixelHeight = Math.max(height, _minSectionHeight);\n _pixelScale = pixelHeight / dAge;\n } else {\n // If a scale is provided, use it to compute pixel height\n pixelHeight = Math.abs(scale(domain[0]) - scale(domain[1]));\n }\n\n return createPackageScale(\n { scale, domain, pixelHeight, pixelScale: _pixelScale },\n 0,\n );\n}\n\nexport function createPackageScale(\n def: PackageScaleInfo,\n offset: number = 0,\n): PackageScaleInfo {\n /** Build a section scale */\n // Domain should be oriented from bottom to top, but scale is oriented from top to bottom\n const { domain, pixelScale, pixelHeight, scale, heightScale } = def;\n\n if (scale == null && pixelScale == null) {\n throw new Error(\"Either scale or pixelScale must be provided\");\n }\n\n let _scale: ScaleContinuousNumeric<number, number>;\n if (scale == null) {\n _scale = scaleLinear()\n .domain([domain[1], domain[0]])\n .range([offset, pixelHeight + offset]);\n } else {\n const domain0 = scale.domain();\n const range0 = scale.range();\n _scale = scale\n .copy()\n .domain(domain0)\n .range(range0.map((d) => d + offset));\n }\n\n _scale.clamp();\n\n let _heightScale = null;\n if (heightScale != null) {\n // Adjust height scale as well\n const range0 = scale.range();\n _heightScale = heightScale.copy().range(range0.map((d) => d + offset));\n _heightScale.clamp();\n }\n\n return {\n domain,\n pixelScale,\n pixelHeight,\n scale: _scale,\n // Internal details for hybrid scales. TODO: improve this\n heightScale: _heightScale,\n };\n}\n\nfunction findSectionHeightRange(\n data: UnitLong[],\n axisType: ColumnAxisType,\n): [number, number] {\n if (axisType == null) {\n throw new Error(\"Axis type is not set\");\n }\n if (axisType === ColumnAxisType.AGE) {\n const t_age = Math.min(...data.map((d) => d.t_age));\n const b_age = Math.max(...data.map((d) => d.b_age));\n return [b_age, t_age];\n } else if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.ORDINAL\n ) {\n const t_pos = Math.min(...data.map((d) => d.t_pos));\n const b_pos = Math.max(...data.map((d) => d.b_pos));\n return [b_pos, t_pos];\n } else if (axisType == ColumnAxisType.HEIGHT) {\n const t_pos = Math.max(...data.map((d) => d.t_pos));\n const b_pos = Math.min(...data.map((d) => d.b_pos));\n return [b_pos, t_pos];\n }\n}\n\nfunction findAverageUnitHeight(\n data: UnitLong[],\n axisType: ColumnAxisType,\n): number {\n const unitHeights = data.map((d) => {\n const [b_pos, t_pos] = getUnitHeightRange(d, axisType);\n return Math.abs(b_pos - t_pos);\n });\n return unitHeights.reduce((a, b) => a + b, 0) / unitHeights.length;\n}\n\nexport interface CompositeColumnScale {\n (age: number): number | null;\n copy(): CompositeColumnScale;\n domain(): [number, number];\n invert(pixelHeight: number): number | null;\n clamp(clamp: boolean): void;\n}\n\nexport function createCompositeScale(\n sections: PackageLayoutData[],\n interpolateUnconformities: boolean = false,\n): CompositeColumnScale {\n /** Create a scale that works across multiple packages */\n\n const scales: ScaleContinuousNumeric<number, number>[] = [];\n\n let lastScale: ScaleContinuousNumeric<number, number> | null = null;\n for (const section of sections) {\n const _scale = section.scaleInfo.scale.copy().clamp(true);\n scales.push(_scale);\n if (lastScale != null && interpolateUnconformities) {\n // Add a new scale that interpolates between lastScale and _scale\n const lastDomain = lastScale.domain();\n const lastRange = lastScale.range();\n const currentDomain = _scale.domain();\n const currentRange = _scale.range();\n\n const interpScale = scaleLinear()\n .domain([lastDomain[lastDomain.length - 1], currentDomain[0]])\n .range([lastRange[lastRange.length - 1], currentRange[0]])\n .clamp(true);\n scales.push(interpScale);\n }\n lastScale = _scale;\n }\n\n const scale: CompositeColumnScale = (age) => {\n for (const s of scales) {\n const domain = s.domain();\n if (age >= domain[0] && age <= domain[domain.length - 1]) {\n return s(age);\n }\n }\n return null;\n };\n\n scale.copy = () => {\n return createCompositeScale(sections, interpolateUnconformities);\n };\n\n scale.domain = () => {\n /** Return the domain of the scale */\n const vals = sections.flatMap((d) => d.scaleInfo.domain);\n if (vals[0] < vals[vals.length - 1]) {\n // age axes\n return [Math.min(...vals), Math.max(...vals)];\n }\n // Normal axes like height\n return [Math.max(...vals), Math.min(...vals)];\n };\n\n scale.invert = (pixelHeight) => {\n /** Invert the scale to get the age at a given pixel height */\n // Iterate through the sections to find the correct one\n for (const scale of scales) {\n const range = scale.range();\n if (\n pixelHeight > Math.min(...range) &&\n pixelHeight <= Math.max(...range)\n ) {\n console.log(\"Inverting scale at pixel height\", pixelHeight);\n return scale.invert(pixelHeight);\n }\n }\n return null;\n };\n\n scale.clamp = (clamp: boolean) => {\n /** Clamp all constituent scales */\n for (const s of scales) {\n s.clamp(clamp);\n }\n };\n\n return scale;\n}\n\n/** Collapse sections separated by unconformities that are smaller than a given pixel height. */\nexport function collapseUnconformitiesByPixelHeight<T extends UnitLong>(\n sections: SectionInfoWithScale<T>[],\n threshold: number,\n opts: ColumnScaleOptions,\n): SectionInfoWithScale<T>[] {\n const newSections = [];\n let currentSection: SectionInfoWithScale<T> | null = null;\n for (const nextSection of sections) {\n if (currentSection == null) {\n currentSection = nextSection;\n continue;\n }\n let heights: [number, number];\n let pxHeights: [number, number];\n if (opts.axisType !== ColumnAxisType.AGE) {\n heights = [nextSection.t_pos, currentSection.b_pos];\n } else {\n heights = [nextSection.t_age, currentSection.b_age];\n }\n\n const _diff = (vals: number[]) => {\n return Math.abs(vals[0] - vals[1]);\n };\n\n pxHeights = [\n _diff(heights.map(nextSection.scaleInfo.scale)),\n _diff(heights.map(currentSection.scaleInfo.scale)),\n ];\n\n const pxHeight = Math.min(...pxHeights);\n\n if (pxHeight < threshold) {\n let t_pos: number;\n let b_pos: number;\n if (\n opts.axisType == ColumnAxisType.AGE ||\n opts.axisType == ColumnAxisType.DEPTH\n ) {\n t_pos = Math.min(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.max(currentSection.b_pos, nextSection.b_pos);\n } else {\n t_pos = Math.max(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.min(currentSection.b_pos, nextSection.b_pos);\n }\n\n // We need to merge the sections\n const compositeSection0: SectionInfo<T> = {\n units: [...currentSection.units, ...nextSection.units],\n section_id: [\n ...ensureArray(currentSection.section_id),\n ...ensureArray(nextSection.section_id),\n ],\n t_age: Math.min(currentSection.t_age, nextSection.t_age),\n b_age: Math.max(currentSection.b_age, nextSection.b_age),\n t_pos,\n b_pos,\n };\n\n currentSection = addScaleToSection(compositeSection0, opts);\n } else {\n // We need to keep the section\n newSections.push(currentSection);\n currentSection = nextSection;\n }\n }\n if (currentSection != null) {\n newSections.push(currentSection);\n }\n\n return newSections;\n}\n"],"names":["ColumnAxisType","$d6XP3$ColumnAxisType","scaleLinear","$d6XP3$scaleLinear","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$iWhRv","$dcPBY","$76iYI","$8054a162cb094378$export$e7184dd8bb3302ed","inputScales","unconformityHeight","totalHeight","lastSectionTopHeight","packages2","group","domain","scale","b_age","t_age","key","push","$8054a162cb094378$export$d6235b492bceb8c5","offset","paddingTop","Math","abs","sections","$8054a162cb094378$export$67442a0f5bef147b","packages","map","d","scaleInfo","sections1","i","$8054a162cb094378$export$7d3f3129a1a4b84e","opts","$8054a162cb094378$var$addScaleToSection","t_pos","b_pos","units","_range","axisType","AGE","$8054a162cb094378$var$buildSectionScale","data","pixelHeight","targetUnitHeight","minPixelScale","minSectionHeight","hybridScale","$8054a162cb094378$var$findSectionHeightRange","min","max","DEPTH","ORDINAL","HEIGHT","dAge","_pixelScale","pixelScale","type","HybridScaleType","EquidistantSurfaces","buildHybridScale","pixelOffset","$8054a162cb094378$var$findAverageUnitHeight","unitHeights","getUnitHeightRange","reduce","a","b","length","def","_scale","heightScale","range","domain0","range0","copy","clamp","_heightScale","$8054a162cb094378$export$3ada7641926a616d","interpolateUnconformities","scales","lastScale","section","lastDomain","lastRange","currentDomain","currentRange","interpScale","age","s","vals","flatMap","invert","console","log","$8054a162cb094378$export$edbf01b435c75274","threshold","newSections","currentSection","nextSection","heights","_diff","pxHeight","section_id","ensureArray","buildCompositeScaleInfo","createPackageScale","finalizeSectionHeights","computeSectionHeights","createCompositeScale","collapseUnconformitiesByPixelHeight"],"version":3,"file":"column-views.a596b1f5.js.map","sourceRoot":"../../../../"}
|