@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 1.82 kB
JavaScript
import{Component as t}from"react";import{findDOMNode as e}from"react-dom";import o from"ui-box";import r from"@macrostrat/hyper";var n=globalThis,i={},l={},s=n.parcelRequire94c2;null==s&&((s=function(t){if(t in i)return i[t].exports;if(t in l){var e=l[t];delete l[t];var o={id:t,exports:{}};return i[t]=o,e.call(o.exports,o,o.exports),o.exports}var r=Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(t,e){l[t]=e},n.parcelRequire94c2=s),s.register;var a=s("aVUB5");let c=function(t,e){let o={},r={};for(let n in e){let i=e[n];t.includes(n)?o[n]=i:r[n]=i}return[o,r]};class p extends t{constructor(t){super(t),this.scrollTo=this.scrollTo.bind(this)}static #t=this.defaultProps={animated:!0,alignment:"center",onScrolled:t=>console.log(`Scrolled to ${t} m`),scrollContainer:()=>document.querySelector(".panel-container")};static #e=this.contextType=a.ColumnContext;render(){let[t,e]=c(["scrollToHeight","alignment","animated","onScrolled","paddingTop","scrollContainer"],this.props),{pixelHeight:n}=this.context;return r(o,{height:n,position:"absolute",...e})}scrollTo(t,o={}){let r=e(this),{animated:n,alignment:i,...l}=o;null==n&&(n=!1);let{paddingTop:s}=this.props,{scale:a}=this.context,c=a(t),{top:p}=r.getBoundingClientRect();r=this.props.scrollContainer();let d=c+p+s,m=window.innerHeight;return"center"===this.props.alignment?d-=m/2:"bottom"===this.props.alignment&&(d-=m),r.scrollTop=d}componentDidMount(){let{scrollToHeight:t,alignment:e}=this.props;if(null!=t)return this.scrollTo(t,{alignment:e,animated:!1}),this.props.onScrolled(t)}componentDidUpdate(t){let{scrollToHeight:e,animated:o,alignment:r}=this.props;if(null!=e&&t.scrollToHeight!==e)return this.scrollTo(e,{alignment:r,animated:o}),this.props.onScrolled(e)}}
//# sourceMappingURL=scroll-box.d7abcdfb.js.map