@leafygreen-ui/hooks
Version:
LeafyGreen UI Kit Custom Hooks
3 lines (2 loc) • 10.7 kB
JavaScript
!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"),require("@leafygreen-ui/tokens")):"function"==typeof define&&define.amd?define(["exports","react","lodash/debounce","@leafygreen-ui/lib","lodash/isEqual","lodash/isUndefined","@leafygreen-ui/tokens"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["@leafygreen-ui/hooks"]={},e.React,e["/debounce"],e.leafyGreenLib,e["/isEqual"],e["/isUndefined"],e.leafyGreenTokens)}(this,function(e,n,t,r,o,u,i){"use strict";function a(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 l=c(n),f=a(t),s=a(o),d=a(u);function v(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function p(e,n,t){return(n=function(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+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function y(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 b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?y(Object(t),!0).forEach(function(n){p(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function g(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,o,u,i,a=[],c=!0,l=!1;try{if(u=(t=t.call(e)).next,0===n);else for(;!(c=(r=u.call(t)).done)&&(a.push(r.value),a.length!==n);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(l)throw o}}return a}}(e,n)||w(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 h(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||w(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 m(e){return m="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},m(e)}function w(e,n){if(e){if("string"==typeof e)return v(e,n);var t={}.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)?v(e,n):void 0}}function E(){var e=g(n.useState("undefined"==typeof window),2),t=e[0],r=e[1];return n.useEffect(function(){r(!1)},[]),t}function S(){return{width:window.innerWidth,height:window.innerHeight}}function O(){var e=E(),t=g(n.useState(e?null:S()),2),r=t[0],o=t[1];return n.useEffect(function(){var e=f.default(function(){return o(S())},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=O();if(t&&e&&e.current){var r=e.current.getBoundingClientRect(),o=r.top,u=r.bottom;return Math.max(t.height-u,o)-n}};function P(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.options,u=r.enabled,i=void 0===u||u,a=r.dependencies,c=void 0===a?[i,e]:a,l=r.element,f=n.useRef(function(){});n.useEffect(function(){f.current=t},[t]),n.useEffect(function(){if(!1!==i){if("once"===i||!0===i){var n=function(e){f.current(e)},t=b(b({},o),{},{once:"once"===i});return(null!=l?l:document).addEventListener(e,n,t),function(){(null!=l?l:document).removeEventListener(e,n,t)}}console.error("Received value of type ".concat(m(i)," for property `enabled`. Expected a boolean."))}},c)}var k=function(e,t,o){var u=n.useMemo(function(){return!d.default(e)},[]),i=g(n.useState(d.default(e)?o:e),2),a=i[0],c=i[1],l=n.useMemo(function(){return u?e:a},[u,a,e]);return n.useEffect(function(){d.default(e)&&d.default(o)&&r.consoleOnce.error("Warning: `useControlled` hook is being used without a value or initialValue. If using an input, this will cause a React warning when an input changes. Please decide between using a controlled or uncontrolled element, and provide either a controlledValue or initialValue to `useControlled`")},[e,o]),{isControlled:u,value:l,updateValue:function(e){if(u){var n="function"==typeof e?e(l):e;null==t||t(n)}else"function"==typeof e?c(function(n){var r=e(n);return null==t||t(r),r}):(c(e),null==t||t(e))},setUncontrolledValue:c}};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,o=t.deps,u=void 0===o?[]:o,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(h(u)))}var A=0;var M=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,o=t.current,u=o.scrollTop;(n>o.offsetHeight||n<u)&&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]:{enabled:!0,allowPropagation:!1},o="boolean"==typeof t?{enabled:t,allowPropagation:!1}:t,u=o.enabled,i=o.allowPropagation;function a(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}"boolean"==typeof t&&r.consoleOnce.warn("useBackdropClick: The 'enabled' boolean argument is deprecated. Please use the 'options' object argument instead."),P("mousedown",function(e){a(e)||i||(e.preventDefault(),e.stopPropagation())},{enabled:u}),P("click",function(n){a(n)||(i||n.stopPropagation(),e(n))},{options:{capture:!0},enabled:u})},e.useControlled=k,e.useControlledValue=function(e,n,t){var o=k(e,void 0,t),u=o.isControlled,i=o.value,a=o.setUncontrolledValue,c=function(e){null==n||n(e),u||a(e.target.value)};return{isControlled:u,value:i,handleChange:c,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);c(t)}}}},e.useDynamicRefs=function(e){var n=null==e?void 0:e.prefix;return l.useMemo(function(){var e=function(e){return function(n){if(n){if(e.get(n))return e.get(n);var t=l.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.useFirstRender=function(e){var t=n.useRef(!0);return n.useEffect(function(){t.current&&(t.current=!1,null==e||e())},[e]),t.current},e.useForceRerender=function(){var e=g(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,o=g(n.useState(t),2),u=o[0],i=o[1];return n.useEffect(function(){null==u&&i(A+=1)},[u,r]),t||"".concat(null!=r?r:"lg","-").concat(u)}({id:e.id,prefix:t})},e.useIsomorphicLayoutEffect=M,e.useMergeRefs=function(e){return l.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.useMobile=function(){var e=O();return{isMobileSize:!(null==e||!e.width)&&e.width<=i.breakpoints.Tablet}},e.useMutationObserver=function(e,t,r){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u=g(n.useState(),2),i=u[0],a=u[1];return n.useEffect(function(){if(o){var n=new MutationObserver(function(){a(r.apply(void 0,arguments))});return e&&n.observe(e,t),function(){return n.disconnect()}}},[e,t,r,o]),i},e.useObjectDependency=function(e){var t=n.useRef();return void 0!==t.current&&s.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,o=void 0===r?3e4:r,u=t.immediate,i=void 0===u||u,a=t.enabled,c=void 0===a||a,l=n.useRef(),f=function(){var e=function(){return"visible"===document.visibilityState},t=g(n.useState(!0),2),r=t[0],o=t[1];return n.useEffect(function(){o(e)},[]),P("visibilitychange",function(){o(e)}),r}()&&c;n.useEffect(function(){l.current=e}),n.useEffect(function(){var e;if(f)return i?r():n(),t;function n(){t(),e=setTimeout(r,o)}function t(){clearTimeout(e)}function r(){var e;Promise.resolve(null===(e=l.current)||void 0===e?void 0:e.call(l)).finally(n)}},[o,i,f])},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=g(n.useState(e),2),r=t[0],o=t[1],u=n.useRef(r);return[r,n.useCallback(function(e){o(e),u.current=e},[o]),n.useCallback(function(){return u.current},[])]},e.useValidation=function(e){var t=g(n.useState(!1),2),r=t[0],o=t[1];return d.default(e)||"function"!=typeof e?{onBlur:function(){},onChange:function(){}}:{onBlur:function(n){o(!0),null==e||e(n.target.value)},onChange:function(n){r&&(null==e||e(n.target.value))}}},e.useViewportSize=O});
//# sourceMappingURL=index.js.map