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