primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ 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.28 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.hooks=function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=n(t),c=function(e){var t=u.useRef(void 0);return u.useEffect((function(){t.current=e})),t.current},o=function(e){return u.useEffect((function(){return e}),[])},i=function(e){var t=e.target,n=void 0===t?"document":t,i=e.type,l=e.listener,a=e.options,f=e.when,s=void 0===f||f,v=u.useRef(null),d=u.useRef(null),g=c(a),m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r.ObjectUtils.isNotEmpty(e.target)&&(y(),(e.when||s)&&(v.current=r.DomHandler.getTargetElement(e.target))),!d.current&&v.current&&(d.current=function(e){return l&&l(e)},v.current.addEventListener(i,d.current,a))},y=function(){d.current&&(v.current.removeEventListener(i,d.current,a),d.current=null)};return u.useEffect((function(){s?v.current=r.DomHandler.getTargetElement(n):(y(),v.current=null)}),[n,s]),u.useEffect((function(){!d.current||d.current===l&&g===a||(y(),s&&m())}),[l,a]),o((function(){y()})),[m,y]};function l(e){if(Array.isArray(e))return e}function a(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,u,c=[],o=!0,i=!1;try{for(r=r.call(e);!(o=(n=r.next()).done)&&(c.push(n.value),!t||c.length!==t);o=!0);}catch(e){i=!0,u=e}finally{try{o||null==r.return||r.return()}finally{if(i)throw u}}return c}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function s(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}function v(){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 d(e,t){return l(e)||a(e,t)||s(e,t)||v()}var g=function(e){var t=e.target,n=e.listener,i=e.options,l=e.when,a=void 0===l||l,f=u.useRef(null),s=u.useRef(null),v=u.useRef([]),d=c(i),g=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(r.ObjectUtils.isNotEmpty(e.target)&&(m(),(e.when||a)&&(f.current=r.DomHandler.getTargetElement(e.target))),!s.current&&f.current){var t=v.current=r.DomHandler.getScrollableParents(f.current);s.current=function(e){return n&&n(e)},t.forEach((function(e){return e.addEventListener("scroll",s.current,i)}))}},m=function(){s.current&&(v.current.forEach((function(e){return e.removeEventListener("scroll",s.current,i)})),s.current=null)};return u.useEffect((function(){a?f.current=r.DomHandler.getTargetElement(t):(m(),f.current=null)}),[t,a]),u.useEffect((function(){!s.current||s.current===n&&d===i||(m(),a&&g())}),[n,i]),o((function(){m()})),[g,m]},m=function(e){return i({target:"window",type:"resize",listener:e.listener})},y=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"local",n="undefined"!=typeof window,c=i({target:"window",type:"storage",listener:function(e){var n="local"===r?window.localStorage:window.sessionStorage;e.storageArea===n&&e.key===t&&g(e.newValue||void 0)}}),o=d(c,2),l=o[0],a=o[1],f=u.useState((function(){if(!n)return e;try{var u="local"===r?window.localStorage.getItem(t):window.sessionStorage.getItem(t);return u?JSON.parse(u):e}catch(t){return e}})),s=d(f,2),v=s[0],g=s[1],m=function(e){try{var u=e instanceof Function?e(v):e;if(g(u),n){var c=JSON.stringify(u);"local"===r?window.localStorage.setItem(t,c):window.sessionStorage.setItem(t,c)}}catch(e){throw new Error("PrimeReact useStorage: Failed to serialize the value at key: ".concat(t))}};return u.useEffect((function(){return l(),function(){return a()}}),[]),[v,m]};return e.useEventListener=i,e.useInterval=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=u.useRef(null),c=u.useRef(null),i=u.useCallback((function(){return clearInterval(n.current)}),[n.current]);return u.useEffect((function(){c.current=e})),u.useEffect((function(){if(r)return n.current=setInterval((function(){c.current()}),t),i;i()}),[t,r]),o((function(){i()})),[i]},e.useLocalStorage=function(e,t){return y(e,t,"local")},e.useMountEffect=function(e){return u.useEffect(e,[])},e.useOverlayListener=function(e){var t=e.target,n=e.overlay,c=e.listener,l=e.when,a=void 0===l||l,f=u.useRef(null),s=u.useRef(null),v=d(i({type:"click",listener:function(e){c&&c(e,{type:"outside",valid:3!==e.which&&O(e)})}}),2),y=v[0],E=v[1],h=d(m({listener:function(e){c&&c(e,{type:"resize",valid:!r.DomHandler.isTouchDevice()})}}),2),w=h[0],p=h[1],S=d(g({target:f,listener:function(e){c&&c(e,{type:"scroll",valid:!0})}}),2),b=S[0],R=S[1],O=function(e){return f.current&&!(f.current.isSameNode(e.target)||f.current.contains(e.target)||s.current&&s.current.contains(e.target))},j=function(){E(),p(),R()};return u.useEffect((function(){a?(f.current=r.DomHandler.getTargetElement(t),s.current=r.DomHandler.getTargetElement(n)):(j(),f.current=s.current=null)}),[t,n,a]),u.useEffect((function(){j()}),[a]),o((function(){j()})),[function(){y(),w(),b()},j]},e.useOverlayScrollListener=g,e.usePrevious=c,e.useResizeListener=m,e.useSessionStorage=function(e,t){return y(e,t,"session")},e.useStorage=y,e.useTimeout=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=u.useRef(null),c=u.useRef(null),i=u.useCallback((function(){return clearTimeout(n.current)}),[n.current]);return u.useEffect((function(){c.current=e})),u.useEffect((function(){if(r)return n.current=setTimeout((function(){c.current()}),t),i;i()}),[t,r]),o((function(){i()})),[i]},e.useUnmountEffect=o,e.useUpdateEffect=function(e,t){var r=u.useRef(!1);return u.useEffect((function(){if(r.current)return e&&e();r.current=!0}),t)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.utils);