UNPKG

@macrostrat/column-components

Version:

React rendering primitives for stratigraphic columns

45 lines (44 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const d3Scale = require("d3-scale"); const h = require("@macrostrat/hyper"); const layout = require("./context/layout.cjs"); const _interopDefault = (e) => e && e.__esModule ? e : { default: e }; const h__default = /* @__PURE__ */ _interopDefault(h); const grainSizes = ["ms", "s", "vf", "f", "m", "c", "vc", "p"]; const createGrainsizeScale = function(range) { const scale = d3Scale.scaleLinear().domain([0, grainSizes.length - 1]).range(range); const tickPositions = grainSizes.map((d, i) => scale(i)); return d3Scale.scaleOrdinal().domain(grainSizes).range(tickPositions); }; function GrainsizeAxis({ height = 20 }) { const { grainsizeScale: gs, pixelHeight } = layout.useColumnLayout(); if (gs == null) { throw "GrainsizeAxis must be a child of a GrainsizeScaleProvider"; } const sizes = gs.domain(); let strlen = sizes.reduce((acc, d) => acc + d.length, 0) / sizes.length; let className = ""; if (strlen > 2) { className = "rotated"; } return h__default.default( "g.grainsize.axis", { className }, sizes.map((d) => { return h__default.default("g.tick", { transform: `translate(${gs(d)} 0)`, key: d }, [ h__default.default("text.top", { y: 0 }, d), h__default.default( "text.bottom", { y: pixelHeight, style: { transformOrigin: `0 ${pixelHeight}px` } }, d ), h__default.default("line", { y1: 0, x1: 0, x2: 0, y2: pixelHeight }) ]); }) ); } exports.GrainsizeAxis = GrainsizeAxis; exports.createGrainsizeScale = createGrainsizeScale; exports.grainSizes = grainSizes; //# sourceMappingURL=grainsize.cjs.map