beauty-scroll-container
Version:
A react component that provider a beauty scroll container
10 lines (8 loc) • 5.34 kB
JavaScript
/**
* Bundle of beauty-scroll-container
* Generated: 2022-05-09
* Version: 1.1.2
* License: MIT
* Author: 2631541504@qq.com
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e=e||self).BeautyScrollContainer=t(e.React)}(this,function(e){"use strict";var l="default"in e?e.default:e;function s(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}function o(t,e){var r,o=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,r)),o}function n(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?o(Object(r),!0).forEach(function(e){s(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function a(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(o){return function(){var e,t,r=c(o);return e=function(){if("undefined"!=typeof Reflect&&Reflect.construct&&!Reflect.construct.sham){if("function"==typeof Proxy)return 1;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),1}catch(e){return}}}()?(e=c(this).constructor,Reflect.construct(r,arguments,e)):r.apply(this,arguments),r=this,!(t=e)||"object"!==i(t)&&"function"!=typeof t?u(r):t}}(function(e){function i(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o,n=typeof r;if("string"==n||"number"==n)e.push(r);else if(Array.isArray(r))!r.length||(o=i.apply(null,r))&&e.push(o);else if("object"==n)if(r.toString===Object.prototype.toString)for(var c in r)a.call(r,c)&&r[c]&&e.push(c);else e.push(r.toString())}}return e.join(" ")}var a;a={}.hasOwnProperty,e.exports?e.exports=i.default=i:window.classNames=i})(t={exports:{}});var t,h=t.exports;return function(e){var t=i;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e);var r,c=p(i);function i(){var a,e=this,t=i;if(!(e instanceof t))throw new TypeError("Cannot call a class as a function");for(var r=arguments.length,o=new Array(r),n=0;n<r;n++)o[n]=arguments[n];return s(u(a=c.call.apply(c,[this].concat(o))),"ref",l.createRef()),s(u(a),"state",{preProps:a.props,hScrollable:!1,vScrollable:!1,reachLeft:!0,reachRight:!0,reachTop:!0,reachBottom:!0}),s(u(a),"removeListener",function(){return null}),s(u(a),"updateState",function(){var e=a.ref.current,t=e.clientWidth,r=e.scrollWidth,o=e.clientHeight,n=e.scrollHeight,c=e.scrollTop,i=e.scrollLeft;a.setState(function(){return{hScrollable:t<r,vScrollable:o<n,reachLeft:i<=1,reachRight:r-t<=i,reachTop:c<=1,reachBottom:n-o<=c}})}),a}return t=i,e=[{key:"getDerivedStateFromProps",value:function(e,t){return n(n({},t),{},{preProps:e})}}],(r=[{key:"componentDidMount",value:function(){var e,t=this,r=(this.updateState(),this.ref.current);r.addEventListener("scroll",this.updateState),window.addEventListener("resize",this.updateState),"undefined"!=typeof MutationObserver?((e=new MutationObserver(this.updateState)).observe(r,{attributes:!0,childList:!0,subtree:!0}),this.removeListener=function(){e.disconnect(),r.removeEventListener("scroll",t.updateState),window.removeEventListener("resize",t.updateState)}):this.removeListener=function(){r.removeEventListener("scroll",t.updateState),window.removeEventListener("resize",t.updateState)}}},{key:"componentWillUnmount",value:function(){this.removeListener()}},{key:"render",value:function(){var t=this;return l.createElement("div",{className:h("beauty-scroll-container",{"beauty-scroll-horizontal-scrollable":this.state.hScrollable,"beauty-scroll-vertical-scrollable":this.state.vScrollable,"beauty-scroll-reach-left":this.state.reachLeft,"beauty-scroll-reach-right":this.state.reachRight,"beauty-scroll-reach-top":this.state.reachTop,"beauty-scroll-reach-bottom":this.state.reachBottom},this.props.className),style:this.props.style},l.createElement("div",{className:h("beauty-scroll-content",this.props.contentClassName),style:this.props.contentStyle,ref:this.ref},this.props.children),["left","right","top","bottom"].map(function(e){return l.createElement("div",{key:e,className:"beauty-scroll-indicator beauty-scroll-indicator-".concat(e),style:{color:t.props.indicatorColor||"#0002"}})}))}}])&&a(t.prototype,r),e&&a(t,e),i}(e.PureComponent)});