@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 1.34 kB
JavaScript
import{scaleLinear as e}from"d3-scale";import r,{createContext as o,useMemo as t,useContext as i}from"react";import s from"@macrostrat/hyper";function a(e,r,o,t){Object.defineProperty(e,r,{get:o,set:t,enumerable:!0,configurable:!0})}var n,l={};a(l,"ColumnAxisType",()=>d),a(l,"ColumnContext",()=>f),a(l,"ColumnProvider",()=>c),a(l,"useColumn",()=>u),a(l,"useColumnDivisions",()=>m);var d=((n=d||{}).AGE="age",n.HEIGHT="height",n.DEPTH="depth",n.ORDINAL="ordinal",n);let f=o({scale:e(),divisions:[],scaleClamped:e().clamp(!0),pixelsPerMeter:1,zoom:1});function c(o){let{children:i,pixelsPerMeter:a=20,zoom:n=1,height:l,range:d,divisions:c=[],width:u=150,axisType:m="height",...p}=o,x=JSON.stringify(p),C=r.useRef(null);x!==C.current&&(C.current=x,Object.keys(p).length>0&&console.warn("Passing extra properties to ColumnProvider is deprecated:",p));let h=t(()=>{null!=d?l=Math.abs(d[1]-d[0]):d=[0,l];let r=l*a*n,o=e().domain(d).range([r,0]),t=o.copy().clamp(!0);return{pixelsPerMeter:a,pixelHeight:r,zoom:n,range:d,height:l,scale:o,scaleClamped:t,divisions:c,width:u,axisType:m,...p}},[m,l,a,d,n,c,u,C.current]);return s(f.Provider,{value:h},i)}let u=()=>i(f),m=()=>i(f).divisions;export{d as ColumnAxisType,f as ColumnContext,c as ColumnProvider,u as useColumn,m as useColumnDivisions};
//# sourceMappingURL=column-components.a4a6bcb9.js.map