@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 3.17 kB
JavaScript
import{useContext as t}from"react";import e from"@macrostrat/hyper";import i from"classnames";import o from"react-svg-textures";var n=globalThis,r={},s={},l=n.parcelRequire94c2;null==l&&((l=function(t){if(t in r)return r[t].exports;if(t in s){var e=s[t];delete s[t];var i={id:t,exports:{}};return r[t]=i,e.call(i.exports,i,i.exports),i.exports}var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(t,e){s[t]=e},n.parcelRequire94c2=l),l.register;var a=l("ig5HY"),u=l("aVUB5"),d={};d=l("daZiC").getBundleURL("cbaBG")+"patterns.58a423e0.js",l("daZiC").getBundleURL("cbaBG");let c=o.Lines,h={"dolomite-limestone":641,lime_mudstone:627,sandstone:607,siltstone:616,"dolomitic siltstone":616,shale:620,limestone:627,dolomite:642,conglomerate:602,"dolomite-mudstone":642,mudstone:620,"sandy-dolomite":645,quartzite:702},m=function(t){if(null==t)return null;let e=t.fgdc_pattern??h[t.pattern]??t.pattern;return null==e?null:`${e}`},p=function(t){let{bottom:e,top:i}=t;return i<e&&([i,e]=[e,i]),[e,i]};function f(i){let{division:o,padWidth:n=!1,key:r,width:s,...l}=i,a=t(u.ColumnContext).scale,[d,c]=p(o),h=a(c),m=0;n&&(m-=5,s+=10);let f=a(d)-h;return null==r&&(r=o.id),e("rect",{x:m,y:h,width:s,height:f,key:r,...l})}class v extends a.UUIDComponent{static #t=this.contextType=u.ColumnLayoutContext;render(){let{divisions:t,width:i}=this.context,o=`url(#${this.UUID}-covered)`,n=t.filter(t=>t.covered);return e("g.covered-overlay",{},[e("defs",[e(c,{id:`${this.UUID}-covered`,size:9,strokeWidth:3,stroke:"rgba(0,0,0,0.5)"})]),e("g.main",n.map(t=>e(f,{division:t,width:i,fill:o})))])}}let g=function(i){let{resolveID:o,divisions:n,UUID:r,scalePattern:s}=i;return null==s&&(s=()=>1),null==n&&({divisions:n}=t(u.ColumnContext)),e("defs",n.map(t=>o(t)).filter((t,e,i)=>i.indexOf(t)===e).map(function(t,i){if(-1===t)return null;let o=100;return null!=s&&(o*=s(t)),e(d.GeologicPattern,{key:i,prefix:r,id:t,width:o,height:o})}))};class D extends a.UUIDComponent{static #t=this.contextType=u.ColumnLayoutContext;static #e=this.defaultProps={resolveID:m,minimumHeight:0};constructor(t){super(t),this.constructLithologyDivisions=this.constructLithologyDivisions.bind(this),this.renderEach=this.renderEach.bind(this)}constructLithologyDivisions(){let t,e;let{divisions:i}=this.context,{resolveID:o,minimumHeight:n}=this.props,r=[];for(t of Array.from(i)){let i=r.length-1;if(e=o(t),-1===i){r.push({...t,patternID:e});continue}let n=e===o(r[i]);null==e||n?r[i].top=t.top:r.push({...t,patternID:e})}if(n>0){let e=[];for(let i=0;i<r.length;i++)if((t=r[i]).top-t.bottom<n&&null!=r[i+1]){var s;r[i+1].bottom=t.bottom,null==r[s=i+1].patternID&&(r[s].patternID=o(t))}else e.push(t);return e}return r}renderEach(t){let{width:o}=this.context,n=i({definite:t.definite_boundary,covered:t.covered},"lithology"),r=`url(#${this.UUID}-${t.patternID})`;return -1===t.patternID&&(r="transparent"),e(f,{width:o,division:t,className:n,fill:r})}render(){let t=this.constructLithologyDivisions(),{resolveID:i}=this.props;return e("g.lithology",[e(g,{divisions:t,resolveID:i,UUID:this.UUID}),e("g",t.map(this.renderEach))])}}
//# sourceMappingURL=lithology.9e1142de.js.map