primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 6.37 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/csstransition"),o=require("primereact/hooks"),i=require("primereact/icons/chevronup"),l=require("primereact/ripple"),c=require("primereact/utils");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=s(e),p=a(t);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function y(e){return y="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},y(e)}function m(e,t){if("object"!==y(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function b(e){var t=m(e,"string");return"symbol"===y(t)?t:String(t)}function d(e){if(Array.isArray(e))return e}function v(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,l,c=[],a=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{if(!a&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw o}}return c}}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function w(e,t){return d(e)||v(e,t)||O(e,t)||h()}var j=n.ComponentBase.extend({defaultProps:{__TYPE:"ScrollTop",target:"window",threshold:400,icon:null,behavior:"smooth",className:null,style:null,transitionOptions:null,onShow:null,onHide:null,children:void 0},css:{classes:{root:function(e){return c.classNames("p-scrolltop p-link p-component",{"p-scrolltop-sticky":"window"!==e.props.target})},icon:"p-scrolltop-icon",transition:"p-scrolltop"},styles:"\n@layer primereact {\n .p-scrolltop {\n position: fixed;\n bottom: 20px;\n right: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .p-scrolltop-sticky {\n position: sticky;\n }\n \n .p-scrolltop-sticky.p-link {\n margin-left: auto;\n }\n \n .p-scrolltop-helper {\n display: none;\n }\n \n .p-scrolltop-enter {\n opacity: 0;\n }\n \n .p-scrolltop-enter-active {\n opacity: 1;\n transition: opacity .15s;\n }\n \n .p-scrolltop-exit {\n opacity: 1;\n }\n \n .p-scrolltop-exit-active {\n opacity: 0;\n transition: opacity .15s;\n }\n}\n"}});function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){var r,o,i;r=e,i=n[t],(o=b(o=t))in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var E=u.memo(u.forwardRef((function(e,a){var s=w(u.useState(!1),2),y=s[0],m=s[1],b=o.useMergeProps(),d=u.useContext(t.PrimeReactContext),v=j.getProps(e,d),g=j.setMetaData({props:v,state:{visible:y}}),O=g.ptm,h=g.cx;n.useHandleStyle(j.css.styles,g.isUnstyled,{name:"scrolltop"});var S=u.useRef(null),E=u.useRef(null),P="parent"===v.target,I=w(o.useEventListener({target:function(){return E.current&&E.current.parentElement},type:"scroll",listener:function(e){k(e.currentTarget.scrollTop)}}),1)[0],T=w(o.useEventListener({target:"window",type:"scroll",listener:function(e){e&&k(c.DomHandler.getWindowScrollTop())}}),1)[0],k=function(e){m(e>v.threshold)};u.useImperativeHandle(a,(function(){return{props:v,getElement:function(){return elementRef.current}}})),u.useEffect((function(){"window"===v.target?T():"parent"===v.target&&I()}),[]),o.useUnmountEffect((function(){c.ZIndexUtils.clear(S.current)}));var N=b({className:h("icon")},O("icon")),q=c.IconUtils.getJSXIcon(v.icon||u.createElement(i.ChevronUpIcon,N),x({},N),{props:v}),U=t.localeOption("aria")?t.localeOption("aria").scrollTop:void 0,C=b({ref:S,type:"button",className:c.classNames(v.className,h("root")),style:v.style,onClick:function(){("window"===v.target?window:E.current.parentElement).scroll({top:0,behavior:v.behavior})},"aria-label":U},j.getOtherProps(v),O("root")),D=b({classNames:h("transition"),in:y,timeout:{enter:150,exit:150},options:v.transitionOptions,unmountOnExit:!0,onEnter:function(){c.ZIndexUtils.set("overlay",S.current,d&&d.autoZIndex||p.default.autoZIndex,d&&d.zIndex.overlay||p.default.zIndex.overlay)},onEntered:function(){v.onShow&&v.onShow()},onExited:function(){c.ZIndexUtils.clear(S.current),v.onHide&&v.onHide()}},O("transition"));return u.createElement(u.Fragment,null,u.createElement(r.CSSTransition,f({nodeRef:S},D),u.createElement("button",C,q,u.createElement(l.Ripple,null))),P&&u.createElement("span",{ref:E,className:"p-scrolltop-helper"}))})));E.displayName="ScrollTop",exports.ScrollTop=E;
;