@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 2.22 kB
JavaScript
import{useContext as t,Component as e}from"react";import s from"@macrostrat/hyper";import r from"classnames";var o=globalThis,i={},l={},n=o.parcelRequire94c2;null==n&&((n=function(t){if(t in i)return i[t].exports;if(t in l){var e=l[t];delete l[t];var s={id:t,exports:{}};return i[t]=s,e.call(s.exports,s,s.exports),s.exports}var r=Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(t,e){l[t]=e},o.parcelRequire94c2=n),n.register;var a=n("aVUB5"),m=n("ig5HY");let c={"Hummocky cross-stratified":"hcs.svg","Trough cross-stratified":"tcs.svg","Dessication cracks":"dessication-cracks.svg",Ooids:"ooids.svg","Domal stromatolites":"domal-stromatolites.svg","Digitate stromatolites":"digitate-stromatolites.svg"},h=function(e){let{symbol:r,width:o,height:i,UUID:l}=e,{resolveSymbol:n}=t(a.AssetPathContext),m=`${l}-${r}`,h={width:o},d=n(c[r]);return s("symbol",{id:m,key:m,...h},[s("image",{href:d,x:0,y:0,...h})])},d=function(t){let{patterns:e,...r}=t,o=[];return s("defs",e.map(function(t){let{symbol:e}=t;return o.includes(e)?null:(o.push(e),s(h,{symbol:e,...r}))}))};class u extends m.UUIDComponent{constructor(t){super(t),this.renderSymbol=this.renderSymbol.bind(this)}static #t=this.contextType=a.ColumnContext;static #e=this.defaultProps={width:30,left:0};render(){let{scale:t,pixelHeight:e,zoom:r}=this.context,{left:o,width:i}=this.props,{symbols:l}=this.props,n=l.filter((t,e,s)=>s.indexOf(t)===e),a=null;return null!=o&&(a=`translate(${o})`),l=l.filter(t=>t.symbol_min_zoom<r).map(this.renderSymbol),s("g.symbol-column",{transform:a},[s(d,{width:i,patterns:n,UUID:this.UUID}),s("rect.symbol-column-area",{width:i,height:e}),s("g.symbols",l)])}renderSymbol(t){let{scale:e,pixelHeight:o}=this.context,{symbol:i,id:l,height:n}=t,a=r({symbol:i},"symbol"),{width:m}=this.props,c=e(n)-m/2;return c<0||c>o?null:s("use",{className:a,y:c,x:0,width:m,xlinkHref:`#${this.UUID}-${i}`,key:l})}}class p extends e{static #t=this.contextType=a.AssetPathContext;render(){let{resolveSymbol:t}=this.context,e=[];for(let r in c){let o=c[r],i=s("div",{key:r},[s("img",{src:t(o)}),s("span.label",r)]);e.push(i)}return s("div.symbol-legend",e)}}
//# sourceMappingURL=symbol-column.172bbe85.js.map