@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 2.36 kB
JavaScript
import{scaleLinear as e}from"d3-scale";import{createElement as t}from"react";import r from"@macrostrat/hyper";import{path as l}from"d3-path";var n=globalThis,i={},o={},s=n.parcelRequire94c2;null==s&&((s=function(e){if(e in i)return i[e].exports;if(e in o){var t=o[e];delete o[e];var r={id:e,exports:{}};return i[e]=r,t.call(r.exports,r,r.exports),r.exports}var l=Error("Cannot find module '"+e+"'");throw l.code="MODULE_NOT_FOUND",l}).register=function(e,t){o[e]=t},n.parcelRequire94c2=s),s.register;var a=s("aVUB5"),u=s("ig5HY");class f extends u.UUIDComponent{constructor(e){super(e),this.renderSurfaces=this.renderSurfaces.bind(this)}static #e=this.contextType=a.ColumnContext;static #t=this.defaultProps={offsetLeft:-90,lineWidth:50,order:2};render(){let{offsetLeft:n,lineWidth:i,order:o,orders:s,minOrder:a,maxOrder:u}=this.props,{scale:f,zoom:h,divisions:c}=this.context;null==s&&null!=a&&null!=u&&(s=function e(t,r){return t===r?[t]:[t,...e(t+1,r)]}(a,u));let[p,d]=f.range();null==s&&null!=o&&(s=[o]),s.reverse();let m=l(),g=function(t,r,l,n=5,i=2){let o=e().domain([0,n]).range([t,r]);m.lineTo(t,l);for(let e=0,t=0<=n;t?e<n:e>n;t?e++:e--){let t=o(e),r=l;e%2==1&&(r+=i),m.lineTo(t,r)}return m.lineTo(r,l)};return m.moveTo(-i,0),g(-i,i,p-d,16,3),g(i,-i,0,16,3),m.closePath(),r("g.triangle-bars",{},[r("defs",[t("clipPath",{id:this.UUID},[r("path",{d:m.toString(),key:this.UUID+"-path"})])]),s.map(this.renderSurfaces)])}renderSurfaces(e,t){let n,i;let{scale:o,zoom:s,divisions:a}=this.context,{offsetLeft:u,lineWidth:f}=this.props;if(!a.length)return null;let h=f/2,c=[];for(i=0;i<a.length;i++){let{surface_type:t,surface_order:r}=n=a[i];if(null==t||null==r||!(r<=e))continue;let l=o(n.bottom);if("mfs"===t&&c.push(["mfs",l]),"sb"===t){if(0===c.length){c.push(["sb",l]);continue}let e=c.length-1;"sb"===c[e][0]?c[e][1]=l:c.push(["sb",l])}}if(!c.length)return null;let p=l(),d=null,m=null;for(i=0;i<c.length;i++){let e=c[i];"mfs"===e[0]&&null!=d&&(p.moveTo(0,d[1]),null!=m?(p.lineTo(h,m[1]),p.lineTo(0,e[1]),p.lineTo(-h,m[1])):(p.lineTo(h,e[1]),p.lineTo(-h,e[1])),p.closePath(),m=null,d=null),"mfs"===e[0]?d=e:"sb"===e[0]&&(m=e)}return r(`g.level-${e}`,{clipPath:`url(#${this.UUID})`,transform:`translate(${-f*(2+t)+(u+2*f+5)})`,key:this.UUID+"-"+e},[r("path",{d:p.toString(),key:this.UUID+"-"+e})])}}
//# sourceMappingURL=flooding-surface.f02d3f37.js.map