UNPKG

@leafygreen-ui/hooks

Version:
3 lines (2 loc) 9.78 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("lodash/debounce"),require("@leafygreen-ui/lib"),require("lodash/isEqual"),require("lodash/isUndefined")):"function"==typeof define&&define.amd?define(["exports","react","lodash/debounce","@leafygreen-ui/lib","lodash/isEqual","lodash/isUndefined"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["@leafygreen-ui/hooks"]={},e.React,e["/debounce"],e["@leafygreen-ui/lib"],e["/isEqual"],e["/isUndefined"])}(this,(function(e,n,t,r,u,o){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&"object"==typeof e&&"default"in e)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var a=c(n),f=i(t),l=i(u),s=i(o);function d(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function v(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?d(Object(t),!0).forEach((function(n){b(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function p(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof n?n:n+""}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 b(e,n,t){return(n=p(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function h(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,u,o,i,c=[],a=!0,f=!1;try{if(o=(t=t.call(e)).next,0===n);else for(;!(a=(r=o.call(t)).done)&&(c.push(r.value),c.length!==n);a=!0);}catch(e){f=!0,u=e}finally{try{if(!a&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(f)throw u}}return c}}(e,n)||g(e,n)||function(){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 m(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,n){if(e){if("string"==typeof e)return w(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?w(e,n):void 0}}function w(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function E(){var e=h(n.useState("undefined"==typeof window),2),t=e[0],r=e[1];return n.useEffect((function(){r(!1)}),[]),t}function O(){return{width:window.innerWidth,height:window.innerHeight}}function S(){var e=E(),t=h(n.useState(e?null:O()),2),r=t[0],u=t[1];return n.useEffect((function(){var e=f.default((function(){return u(O())}),100);return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}),[]),r}var j=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,t=S();if(t&&e&&e.current){var r=e.current.getBoundingClientRect(),u=r.top,o=r.bottom;return Math.max(t.height-o,u)-n}};function P(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=r.options,o=r.enabled,i=void 0===o||o,c=r.dependencies,a=void 0===c?[i,e]:c,f=r.element,l=n.useRef((function(){}));n.useEffect((function(){l.current=t}),[t]),n.useEffect((function(){if(!1!==i){if("once"===i||!0===i){var n=function(e){l.current(e)},t=v(v({},u),{},{once:"once"===i});return(null!=f?f:document).addEventListener(e,n,t),function(){(null!=f?f:document).removeEventListener(e,n,t)}}console.error("Received value of type ".concat(y(i)," for property `enabled`. Expected a boolean."))}}),a)}var C=function(e,n){return P("keydown",(function(n){return function(e,n){27===e.keyCode&&(e.stopImmediatePropagation(),n())}(n,e)}),n)};function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.initialValue,u=t.deps,o=void 0===u?[]:u,i=n.useRef(r);return n.useMemo((function(){return{get current(){return i.current},set current(n){i.current=n,e(n)}}}),[e,i].concat(m(o)))}var k=0;var A=function(){return("undefined"==typeof window?n.useEffect:n.useLayoutEffect).apply(void 0,arguments)};e.useAutoScroll=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;n.useEffect((function(){if(e&&e.current&&t&&t.current){var n=e.current.offsetTop,u=t.current,o=u.scrollTop;(n>u.offsetHeight||n<o)&&t.current.scrollTo({top:n-r,behavior:"smooth"})}}),[t,e,r])},e.useAvailableSpace=j,e.useBackdropClick=function(e,n){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];function r(e){var t,r=e.target;return Array.isArray(n)?n.some((function(e){var n;return null===(n=e.current)||void 0===n?void 0:n.contains(r)})):(null===(t=n.current)||void 0===t?void 0:t.contains(r))||!1}P("mousedown",(function(e){r(e)||(e.preventDefault(),e.stopPropagation())}),{enabled:t}),P("click",(function(n){r(n)||(n.stopPropagation(),e())}),{options:{capture:!0},enabled:t})},e.useControlledValue=function(e,t,u){var o=n.useMemo((function(){return!s.default(e)}),[]),i=h(n.useState(u),2),c=i[0],a=i[1],f=function(e){null==t||t(e),o||a(e.target.value)};return n.useEffect((function(){s.default(e)&&s.default(u)&&r.consoleOnce.error("Warning: `useControlledValue` hook is being used without a value or initialValue. This will cause a React warning when the input changes. Please decide between using a controlled or uncontrolled input element, and provide either a controlledValue or initialValue to `useControlledValue`")}),[e,u]),{isControlled:o,value:o?e:c,handleChange:f,setUncontrolledValue:a,updateValue:function(e,n){if(n.current){n.current.value=e;var t=r.createSyntheticEvent(new Event("change",{cancelable:!0,bubbles:!0}),n.current);f(t)}}}},e.useDynamicRefs=function(e){var n=null==e?void 0:e.prefix;return a.useMemo((function(){var e=function(e){return function(n){if(n){if(e.get(n))return e.get(n);var t=a.createRef();return e.set(n,t),t}r.consoleOnce.error("`useDynamicRefs`: Cannot get ref without key")}}(new Map);return e}),n?[n]:[])},e.useEscapeKey=C,e.useEventListener=P,e.useForceRerender=function(){var e=h(n.useState({}),2)[1];return n.useCallback((function(){return e({})}),[])},e.useForwardedRef=function(e,t){var r=n.useCallback((function(e,n){Array.isArray(e)?e.forEach(r):"function"==typeof e?e(n):e&&(e.current=n)}),[]);return R(n.useCallback((function(n){return r(e,n)}),[e,r]),{initialValue:t})},e.useIdAllocator=function(e){var t=e.prefix;return function(e){var t=e.id,r=e.prefix,u=h(n.useState(t),2),o=u[0],i=u[1];return n.useEffect((function(){null==o&&i(k+=1)}),[o,r]),t||"".concat(null!=r?r:"lg","-").concat(o)}({id:e.id,prefix:t})},e.useIsomorphicLayoutEffect=A,e.useMergeRefs=function(e){return a.useMemo((function(){return e.every((function(e){return null==e}))?null:function(n){e.forEach((function(e){"function"==typeof e?e(n):null!=e&&(e.current=n)}))}}),e)},e.useMutationObserver=function(e,t,r){var u=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=h(n.useState(),2),i=o[0],c=o[1];return n.useEffect((function(){if(u){var n=new MutationObserver((function(){c(r.apply(void 0,arguments))}));return e&&n.observe(e,t),function(){return n.disconnect()}}}),[e,t,r,u]),i},e.useObjectDependency=function(e){var t=n.useRef();return void 0!==t.current&&l.default(t.current,e)||(t.current=e),t.current},e.useObservedRef=R,e.usePoller=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.interval,u=void 0===r?3e4:r,o=t.immediate,i=void 0===o||o,c=t.enabled,a=void 0===c||c,f=n.useRef(),l=function(){var e=function(){return"visible"===document.visibilityState},t=h(n.useState(!0),2),r=t[0],u=t[1];return n.useEffect((function(){u(e)}),[]),P("visibilitychange",(function(){u(e)})),r}()&&a;n.useEffect((function(){f.current=e})),n.useEffect((function(){var e;if(l)return i?r():n(),t;function n(){t(),e=setTimeout(r,u)}function t(){clearTimeout(e)}function r(){var e;Promise.resolve(null===(e=f.current)||void 0===e?void 0:e.call(f)).finally(n)}}),[u,i,l])},e.usePrevious=function(e){var t=n.useRef();return n.useEffect((function(){t.current=e})),t.current},e.useSsrCheck=E,e.useStateRef=function(e){var t=h(n.useState(e),2),r=t[0],u=t[1],o=n.useRef(r);return[r,n.useCallback((function(e){u(e),o.current=e}),[u]),n.useCallback((function(){return o.current}),[])]},e.useValidation=function(e){var t=h(n.useState(!1),2),r=t[0],u=t[1];return s.default(e)||"function"!=typeof e?{onBlur:function(){},onChange:function(){}}:{onBlur:function(n){u(!0),null==e||e(n.target.value)},onChange:function(n){r&&(null==e||e(n.target.value))}}},e.useViewportSize=S})); //# sourceMappingURL=index.js.map