@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 2.49 kB
JavaScript
import"./column-components.c99e8555.js";import{scaleLinear as e,scaleOrdinal as a}from"d3-scale";import{createContext as r,useContext as i,Component as t,useMemo as n,useCallback as o}from"react";import s from"@macrostrat/hyper";function l(e,a,r,i){Object.defineProperty(e,a,{get:r,set:i,enumerable:!0,configurable:!0})}var c=globalThis,u={},d={},m=c.parcelRequirea149;null==m&&((m=function(e){if(e in u)return u[e].exports;if(e in d){var a=d[e];delete d[e];var r={id:e,exports:{}};return u[e]=r,a.call(r.exports,r,r.exports),r.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,a){d[e]=a},c.parcelRequirea149=m),m.register;var g={};l(g,"ColumnLayoutContext",()=>f),l(g,"ColumnLayoutProvider",()=>x),l(g,"CrossAxisLayoutProvider",()=>h),l(g,"GrainsizeLayoutProvider",()=>v),l(g,"useColumnLayout",()=>b);var p=m("hdAJm");let f=r({scale:e(),scaleClamped:e().clamp(!0),width:0,divisions:[],grainSizes:[],grainsizeScale:e=>40,xScale:null,widthForDivision:e=>0,pixelsPerMeter:1,zoom:1});function x({children:e,width:a,grainSizes:r=[],grainsizeScale:t=e=>40,xScale:n}){let o=i(p.ColumnContext);return s(f.Provider,{value:{...o,width:a,grainSizes:r,grainsizeScale:t,xScale:n,widthForDivision:e=>a}},e)}class h extends t{static #e=this.contextType=p.ColumnContext;render(){let{domain:a,range:r,width:i,children:t}=this.props;null==r&&(r=[0,i]);let n=e().domain(a).range(r);return s(x,{...this.context,xScale:n,width:i,children:t})}}function v({width:r,grainSizes:i=["ms","s","vf","f","m","c","vc","p"],grainsizeScaleStart:t=50,grainsizeScaleRange:l,tickPositions:c,children:u}){null==l&&console.warn("GrainsizeLayoutProvider: grainsizeScaleStart and width are deprecated in favor of grainsizeScaleRange"),l??(l=[t,r]);let d=(0,p.useColumnDivisions)(),m=n(()=>{let r=e().domain([0,i.length-1]).range(l);return c??(c=i.map((e,a)=>r(a))),a().domain(i).range(c)},[i,l,c]),g=o(e=>{let a=d.indexOf(e);for(;a>0;){let{grainsize:e}=d[a];if(null!=e)return e;a-=1}},[d]),f=o(e=>null==e?r:m(g(e)),[g,m,r]);return s(x,{width:r,grainSizes:i,grainsizeScale:m,grainsizeScaleStart:t,grainsizeScaleRange:l,grainsizeForDivision:g,widthForDivision:f},u)}function b(){let e=i(f);if(null==e)throw Error("useColumnLayout must be used within a ColumnLayoutProvider");return e}export{f as ColumnLayoutContext,x as ColumnLayoutProvider,h as CrossAxisLayoutProvider,v as GrainsizeLayoutProvider,b as useColumnLayout};
//# sourceMappingURL=column-components.2accf00b.js.map