@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
3 lines (2 loc) • 1.99 kB
JavaScript
import"./column-components.298cc9f3.js";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,l={},i={},s=n.parcelRequirea149;null==s&&((s=function(t){if(t in l)return l[t].exports;if(t in i){var e=i[t];delete i[t];var o={id:t,exports:{}};return l[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){i[t]=e},n.parcelRequirea149=s),s.register,Object.defineProperty({},"ColumnScroller",{get:()=>p,set:void 0,enumerable:!0,configurable:!0});var a=s("aVUB5");let c=function(t,e){let o={},r={};for(let n in e){let l=e[n];t.includes(n)?o[n]=l:r[n]=l}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:l,...i}=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)}}export{p as ColumnScroller};
//# sourceMappingURL=column-components.c709c904.js.map