UNPKG

rooks

Version:

Essential React custom hooks ⚓ to super charge your components!

3 lines (2 loc) 36.5 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).rooks={},e.React)}(this,(function(e,n){"use strict";var t=function(){return t=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var u in n=arguments[t])Object.prototype.hasOwnProperty.call(n,u)&&(e[u]=n[u]);return e},t.apply(this,arguments)};function r(e,n,t,r){return new(t||(t=Promise))((function(u,o){function i(e){try{a(r.next(e))}catch(e){o(e)}}function c(e){try{a(r.throw(e))}catch(e){o(e)}}function a(e){var n;e.done?u(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,c)}a((r=r.apply(e,n||[])).next())}))}function u(e,n){var t,r,u,o,i={label:0,sent:function(){if(1&u[0])throw u[1];return u[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,r&&(u=2&o[0]?r.return:o[0]?r.throw||((u=r.return)&&u.call(r),0):r.next)&&!(u=u.call(r,o[1])).done)return u;switch(r=0,u&&(o=[2&o[0],u.value]),o[0]){case 0:case 1:u=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(u=i.trys,(u=u.length>0&&u[u.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!u||o[1]>u[0]&&o[1]<u[3])){i.label=o[1];break}if(6===o[0]&&i.label<u[1]){i.label=u[1],u=o;break}if(u&&i.label<u[2]){i.label=u[2],i.ops.push(o);break}u[2]&&i.ops.pop(),i.trys.pop();continue}o=n.call(e,i)}catch(e){o=[6,e],r=0}finally{t=u=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,c])}}}function o(e,n,t){if(t||2===arguments.length)for(var r,u=0,o=n.length;u<o;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return e.concat(r||Array.prototype.slice.call(n))}var i="undefined"==typeof window?n.useEffect:n.useLayoutEffect;function c(e,t){void 0===t&&(t=!1);var r=t?i:n.useEffect,u=n.useRef(e);return r((function(){u.current=e})),u}var a=function(){var e=n.useRef(!1),t=n.useCallback((function(){return e.current}),[]);return n.useEffect((function(){return e.current=!0,function(){e.current=!1}}),[]),t};function l(e){n.useEffect((function(){"function"==typeof e&&e()}),[])}var s=function(){},f={attributes:!0,characterData:!0,childList:!0,subtree:!0};function d(e,t,r){void 0===r&&(r=f),n.useEffect((function(){if(e.current){var n=new MutationObserver(t);return n.observe(e.current,r),function(){n.disconnect()}}return s}),[t,r,e])}function v(e,n){"function"==typeof e?e(n):null!=e&&(e.current=n)}function w(e,t){return n.useMemo((function(){return null===e&&null===t?null:function(n){v(e,n),v(t,n)}}),[e,t])}var h={attributes:!0,characterData:!0,childList:!0,subtree:!0};function m(e,t){void 0===t&&(t=h);var r=n.useState(null),u=r[0],o=r[1];return n.useEffect((function(){if(u){var n=new MutationObserver(e);return n.observe(u,t),function(){n.disconnect()}}return s}),[u,e,t]),[n.useCallback((function(e){o(e)}),[])]}function g(e,t,r,u){void 0===t&&(t=0),void 0===r&&(r=!0),void 0===u&&(u=!1);var o=n.useRef();function i(){var e;null===(e=o.current)||void 0===e||e.call(o)}n.useEffect((function(){o.current=e})),n.useEffect((function(){if(r){u&&i();var e=window.setInterval(i,t);return function(){window.clearInterval(e)}}return s}),[r,t,u])}var p=/^\s+|\s+$/g,b=/^[-+]0x[0-9a-f]+$/i,y=/^0b[01]+$/i,E=/^0o[0-7]+$/i,k=parseInt,S="object"==typeof global&&global&&global.Object===Object&&global,C="object"==typeof self&&self&&self.Object===Object&&self,x=S||C||Function("return this")(),L=Object.prototype.toString,R=Math.max,O=Math.min,F=function(){return x.Date.now()};function M(e){var n=typeof e;return!!e&&("object"==n||"function"==n)}function T(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==L.call(e)}(e))return NaN;if(M(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=M(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(p,"");var t=y.test(e);return t||E.test(e)?k(e.slice(2),t?2:8):b.test(e)?NaN:+e}var W=function(e,n,t){var r,u,o,i,c,a,l=0,s=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function v(n){var t=r,o=u;return r=u=void 0,l=n,i=e.apply(o,t)}function w(e){return l=e,c=setTimeout(m,n),s?v(e):i}function h(e){var t=e-a;return void 0===a||t>=n||t<0||f&&e-l>=o}function m(){var e=F();if(h(e))return g(e);c=setTimeout(m,function(e){var t=n-(e-a);return f?O(t,o-(e-l)):t}(e))}function g(e){return c=void 0,d&&r?v(e):(r=u=void 0,i)}function p(){var e=F(),t=h(e);if(r=arguments,u=this,a=e,t){if(void 0===c)return w(a);if(f)return c=setTimeout(m,n),v(a)}return void 0===c&&(c=setTimeout(m,n)),i}return n=T(n)||0,M(t)&&(s=!!t.leading,o=(f="maxWait"in t)?R(T(t.maxWait)||0,n):o,d="trailing"in t?!!t.trailing:d),p.cancel=function(){void 0!==c&&clearTimeout(c),l=0,r=a=u=c=void 0},p.flush=function(){return void 0===c?i:g(F())},p};function j(e,t,r){var u=n.useCallback((function(e){return W(e,t,r)}),[t,r]),o=n.useRef(u(e));return n.useEffect((function(){o.current=u(e)}),[e,u]),o.current}function D(e){n.useEffect((function(){return e}),[])}function I(e,t){var r=n.useRef(!1),u=n.useMemo((function(){return void 0===t||Array.isArray(t)?(Array.isArray(t)&&0===t.length&&console.warn("Using [] as the second argument makes useDidUpdate a noop. The second argument should either be `undefined` or an array of length greater than 0."),t):[t]}),[t]);n.useEffect((function(){r.current&&e()}),u),l((function(){r.current=!0})),D((function(){r.current=!1}))}var A={initializeWithNull:!1};function Y(e){var n=c(e);return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];"function"==typeof n.current&&n.current.apply(n,e)}}var q="production"!==process.env.NODE_ENV,z=function(){};if(q){z=function(e,n){e||function(e){var n="Warning: ".concat(e);"undefined"!=typeof console&&console.error(n);try{throw new Error(n)}catch(e){}}(n)}}function X(e,t,r,u,o,c){void 0===u&&(u={}),void 0===o&&(o=!0),void 0===c&&(c=!1);var a=Y(r);(c?i:n.useEffect)((function(){return z(void 0!==e,"[useGlobalObjectEventListener]: Cannot attach event handlers to undefined."),void 0!==e&&o?(e.addEventListener(t,a,u),function(){e.removeEventListener(t,a,u)}):function(){}}),[t,u])}function N(e,n,t){void 0===n&&(n=!0),void 0===t&&(t=!1),X(global.window,"resize",e,{passive:!0},n,t)}function B(e,n,t){void 0===n&&(n=!0),void 0===t&&(t=!1),X(global.window,"scroll",e,{passive:!0},n,t)}var P=[void 0,null,null];function H(e,n,t,r){void 0===t&&(t={}),void 0===r&&(r=!1),X(global.document,e,n,t,!0,r)}function V(){var e=n.useState(null),t=e[0],r=e[1];return[n.useCallback((function(e){r(e)}),[]),t]}var U=function(){},J={element:void 0,exit:U,isEnabled:!1,isFullscreen:!1,onChange:U,onError:U,request:U,toggle:U};function G(){z(!1,"Using onChange and onError from the return value is deprecated and \n will be removed in the next major version. \n Please use it with arguments instead. \n For eg: useFullscreen({onChange: function() {}, onError: function(){}})\n ")}var K={enableHighAccuracy:!1,maximumAge:0,timeout:Number.POSITIVE_INFINITY,when:!0},$={};var _={root:null,rootMargin:"0px 0px 0px 0px",threshold:[0,1]};var Q={root:null,rootMargin:"0px 0px 0px 0px",threshold:[0,1]};var Z=function(e,n){return e.key===n||e.code===n||e.keyCode===n||e.which===n||e.charCode===n},ee={eventTypes:["keydown"],when:!0};function ne(e,r,u){var o=n.useMemo((function(){return Array.isArray(e)?e:[e]}),[e]),i=n.useMemo((function(){return t(t({},ee),u)}),[u]),c=i.when,a=i.eventTypes,l=n.useRef(r),f=i.target;n.useEffect((function(){l.current=r}));var d=n.useCallback((function(e){o.some((function(n){return Z(e,n)}))&&l.current(e)}),[o]);n.useEffect((function(){if(c&&"undefined"!=typeof window){if(!f){for(var e=0,n=a;e<n.length;e++){o=n[e];window.addEventListener(o,d)}return function(){for(var e=0,n=a;e<n.length;e++){var t=n[e];window.removeEventListener(t,d)}}}var t=f.current;if(t){for(var r=0,u=a;r<u.length;r++){var o=u[r];t.addEventListener(o,d)}return function(){for(var e=0,n=a;e<n.length;e++){var r=n[e];t.removeEventListener(r,d)}}}}return s}),[c,a,o,f,r,d])}var te={eventTypes:["keydown"],when:!0};var re={continuous:!1,when:!0};function ue(e,n){var t=function(e){var n;if("undefined"==typeof localStorage)return null;var t=null!==(n=localStorage.getItem(e))&&void 0!==n?n:"null";try{return JSON.parse(t)}catch(e){console.error(e)}return t}(e);return null===t?n:t}function oe(e,n){"function"==typeof e?e(n):null!=e&&(e.current=n)}var ie={clientX:null,clientY:null,movementX:null,movementY:null,offsetX:null,offsetY:null,pageX:null,pageY:null,screenX:null,screenY:null,x:null,y:null};function ce(e,n){Object.values(n).every((function(e){return void 0!==e}))?console.warn("".concat(e,". Expected either ").concat(Object.keys(n).join(" or ")," to be provided. However all were provided")):Object.values(n).every((function(e){return void 0===e}))&&console.warn("".concat(e,". ").concat(Object.keys(n).join(" , ")," are all undefined."))}function ae(e,n,t,r){void 0===t&&(t={}),void 0===r&&(r=!1),X(global.window,e,n,t,!0,r)}function le(){return"undefined"!=typeof navigator?navigator.language:null}for(var se=function(e){var n={exports:{}};return e(n,n.exports),n.exports}((function(e){(function(){var n,t,r,u,o,i;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(e.exports=function(){return(n()-o)/1e6},t=process.hrtime,u=(n=function(){var e;return 1e9*(e=t())[0]+e[1]})(),i=1e9*process.uptime(),o=u-i):Date.now?(e.exports=function(){return Date.now()-r},r=Date.now()):(e.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)})),fe="undefined"==typeof window?global:window,de=["moz","webkit"],ve="AnimationFrame",we=fe["request"+ve],he=fe["cancel"+ve]||fe["cancelRequest"+ve],me=0;!we&&me<de.length;me++)we=fe[de[me]+"Request"+ve],he=fe[de[me]+"Cancel"+ve]||fe[de[me]+"CancelRequest"+ve];if(!we||!he){var ge=0,pe=0,be=[];we=function(e){if(0===be.length){var n=se(),t=Math.max(0,16.666666666666668-(n-ge));ge=t+n,setTimeout((function(){var e=be.slice(0);be.length=0;for(var n=0;n<e.length;n++)if(!e[n].cancelled)try{e[n].callback(ge)}catch(e){setTimeout((function(){throw e}),0)}}),Math.round(t))}return be.push({handle:++pe,callback:e,cancelled:!1}),pe},he=function(e){for(var n=0;n<be.length;n++)be[n].handle===e&&(be[n].cancelled=!0)}}var ye=function(e){return we.call(fe,e)};ye.cancel=function(){he.apply(fe,arguments)},ye.polyfill=function(e){e||(e=fe),e.requestAnimationFrame=we,e.cancelAnimationFrame=he};var Ee={box:"content-box"};function ke(e,n){Object.values(n).every((function(e){return void 0!==e}))?console.warn("".concat(e,". Expected either ").concat(Object.keys(n).join(" or ")," to be provided. However all were provided")):Object.values(n).every((function(e){return void 0===e}))&&console.warn("".concat(e,". ").concat(Object.keys(n).join(" , ")," are all undefined."))}function Se(e,n){var t=function(e){var n;if("undefined"==typeof sessionStorage)return null;var t=null!==(n=sessionStorage.getItem(e))&&void 0!==n?n:"null";try{return JSON.parse(t)}catch(e){console.error(e)}return t}(e);return null===t?n:t}var Ce=function(e){return!e};var xe={maxSize:100};function Le(){return"undefined"==typeof window?{scrollX:0,scrollY:0}:{scrollX:window.scrollX||window.pageXOffset,scrollY:window.scrollY||window.pageYOffset}}var Re={innerHeight:null,innerWidth:null,outerHeight:null,outerWidth:null};function Oe(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,outerHeight:window.outerHeight,outerWidth:window.outerWidth}}e.useArrayState=function(e){void 0===e&&(e=[]);var t=n.useState(e),r=t[0],u=t[1],i=n.useCallback((function(e){u(o(o([],r,!0),[e],!1))}),[r]),c=n.useCallback((function(){u(r.slice(0,r.length-1))}),[r]),a=n.useCallback((function(){u([])}),[]),l=n.useCallback((function(e){u(o([e],r,!0))}),[r]),s=n.useCallback((function(){u(r.slice(1))}),[r]),f=n.useCallback((function(){u(o([],r,!0).reverse())}),[r]),d=n.useCallback((function(e){u(o(o([],r,!0),e,!0))}),[r]),v=n.useCallback((function(e,n,t){u(o([],r,!0).fill(e,n,t))}),[r]),w=n.useMemo((function(){return{push:i,pop:c,clear:a,unshift:l,shift:s,reverse:f,concat:d,fill:v}}),[i,c,a,l,s,f,d,v]);return n.useMemo((function(){return[r,w]}),[r,w])},e.useAsyncEffect=function(e,t,i){var l=this,s=n.useRef(0),f=a(),d=c(e),v=n.useCallback((function(){return r(l,void 0,void 0,(function(){var e,n;return u(this,(function(t){switch(t.label){case 0:e=++s.current,n=function(){return f()&&e===s.current},t.label=1;case 1:return t.trys.push([1,3,,4]),[4,d.current(n)];case 2:return[2,t.sent()];case 3:throw t.sent();case 4:return[2]}}))}))}),o([f],t,!0));n.useEffect((function(){var e;return v().then((function(n){e=n})),function(){null==i||i(e)}}),[v,i])},e.useBoundingclientrect=function(e){var t=n.useState(null),r=t[0],u=t[1],o=n.useCallback((function(){u(e.current?e.current.getBoundingClientRect():null)}),[e]);return l((function(){o()})),d(e,o),r},e.useBoundingclientrectRef=function(){var e=n.useState(null),t=e[0],r=e[1],u=n.useState(null),o=u[0],i=u[1],c=n.useCallback((function(){r(o?o.getBoundingClientRect():null)}),[o]);return n.useEffect((function(){c()}),[c]),[w(n.useCallback((function(e){i(e)}),[]),m(c)[0]),t,c]},e.useCountdown=function(e,t){void 0===t&&(t={});var r=t.interval,u=void 0===r?1e3:r,o=t.onDown,i=t.onEnd,c=n.useState((function(){return new Date})),a=c[0],l=c[1],s=e.getTime()-a.getTime(),f=s>0?Math.ceil(s/u):0;return g((function(){var n=new Date;if(n>e)return i&&i(n),void l(e);o&&o(s,n);l(n)}),f?u:void 0,!0,!0),f},e.useCounter=function(e){var t=n.useState(e),r=t[0],u=t[1],o=n.useCallback((function(e){u((function(n){return n+e}))}),[]),i=n.useCallback((function(e){o(-e)}),[o]),c=n.useCallback((function(){o(1)}),[o]),a=n.useCallback((function(){o(-1)}),[o]),l=n.useCallback((function(){u(e)}),[e]);return{decrement:a,decrementBy:i,increment:c,incrementBy:o,reset:l,value:r}},e.useDebounce=j,e.useDebouncedValue=function(e,t,r){void 0===r&&(r={});var u=Object.assign({},A,r).initializeWithNull,o=n.useState(u?null:e),i=o[0],c=o[1],a=j(c,t);return l((function(){u&&a(e)})),I((function(){a(e)}),[e]),[i,c]},e.useDidMount=l,e.useDidUpdate=I,e.useDimensionsRef=function(e){var t=void 0===e?{}:e,r=t.updateOnScroll,u=void 0===r||r,o=t.updateOnResize,i=void 0===o||o,c=n.useState(null),a=c[0],l=c[1],s=n.useState(null),f=s[0],d=s[1],v=n.useCallback((function(e){d(e)}),[]),w=n.useCallback((function(){window.requestAnimationFrame((function(){f&&l(function(e){var n=e.getBoundingClientRect();return{bottom:n.bottom,height:n.height,left:n.left,right:n.right,top:n.top,width:n.width,x:n.left,y:n.top}}(f))}))}),[f]);return n.useLayoutEffect((function(){w()}),[w]),N((function(){w()}),i,!0),B((function(){w()}),u,!0),"undefined"==typeof window?(console.warn("useDimensionsRef: window is undefined."),P):[v,a,f]},e.useDocumentEventListener=H,e.useEffectOnceWhen=function(e,t){void 0===t&&(t=!0);var r=n.useRef(!1),u=n.useRef(e);n.useEffect((function(){u.current=e})),n.useEffect((function(){t&&!r.current&&(u.current(),r.current=!0)}),[t])},e.useEventListenerRef=function(e,t,r,u){void 0===r&&(r={}),void 0===u&&(u=!1);var o=V(),c=o[0],a=o[1],l=Y(t);return(u?i:n.useEffect)((function(){return(null==a?void 0:a.addEventListener)?(a.addEventListener(e,l,r),function(){a.removeEventListener(e,l,r)}):s}),[a,e,r]),c},e.useFocus=function(e){var t=e.onBlur,r=e.onFocus,u=e.onFocusChange,o=n.useCallback((function(e){e.target===e.currentTarget&&(t&&t(e),u&&u(!1))}),[t,u]);return{focusProps:{onFocus:n.useCallback((function(e){e.target===e.currentTarget&&(r&&r(e),u&&u(!0))}),[u,r]),onBlur:o}}},e.useFocusWithin=function(e){var t=e.onBlurWithin,r=e.onFocusWithin,u=e.onFocusWithinChange,o=n.useRef({isFocusWithin:!1}),i=n.useCallback((function(e){o.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(o.current.isFocusWithin=!1,t&&t(e),u&&u(!1))}),[t,u]);return{focusWithinProps:{onFocus:n.useCallback((function(e){o.current.isFocusWithin||(r&&r(e),u&&u(!0),o.current.isFocusWithin=!0)}),[r,u]),onBlur:i}}},e.useForkRef=w,e.useFreshRef=c,e.useFreshTick=Y,e.useFullscreen=function(e){var t=this;void 0===e&&(e={});var o=e.onChange,i=e.onError,c=e.requestFullscreenOptions,a=void 0===c?{}:c,l=function(){for(var e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n={},t=0,r=e;t<r.length;t++){var u=r[t];if(u&&u[1]in document)for(var o=0,i=u.entries();o<i.length;o++){var c=i[o],a=c[0];c[1],n[e[0][a]]=u[a]}}return n}(),s=n.useState(Boolean(document[l.fullscreenElement])),f=s[0],d=s[1],v=n.useState(document[l.fullscreenElement]),w=v[0],h=v[1],m=n.useCallback((function(e){return r(t,void 0,void 0,(function(){var n;return u(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,(null!=e?e:document.documentElement)[l.requestFullscreen](a)];case 1:return[2,t.sent()];case 2:return n=t.sent(),console.log(n),[3,3];case 3:return[2]}}))}))}),[l.requestFullscreen,a]),g=n.useCallback((function(){return r(t,void 0,void 0,(function(){var e;return u(this,(function(n){switch(n.label){case 0:if(!w)return[3,4];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,document[l.exitFullscreen]()];case 2:return[2,n.sent()];case 3:return e=n.sent(),console.warn(e),[3,4];case 4:return[2]}}))}))}),[w,l.exitFullscreen]),p=n.useCallback((function(e){return w?g():e?m(e):null}),[w,g,m]),b=n.useRef(U),y=n.useRef(U),E=n.useCallback((function(e){return G(),b.current=e}),[]),k=n.useCallback((function(e){return G(),y.current=e}),[]);return H(l.fullscreenchange,(function(e){var n=document[l.fullscreenElement],t=Boolean(n);t?(d(!0),h(n)):(d(!1),h(null)),null==o||o.call(document,e,t),b.current.call(document,e,t)})),H(l.fullscreenerror,(function(e){null==i||i.call(document,e),y.current.call(document,e)})),"undefined"==typeof window?(console.warn("useFullscreen: window is undefined."),J):{element:w,exit:g,isEnabled:Boolean(document[l.fullscreenEnabled]),isFullscreen:f,onChange:E,onError:k,request:m,toggle:p}},e.useGeolocation=function(e){void 0===e&&(e=K);var t=n.useState(null),o=t[0],i=t[1],c=e.when,l=e.enableHighAccuracy,s=e.timeout,f=e.maximumAge,d=a();return n.useEffect((function(){c&&function(){r(this,void 0,void 0,(function(){var e,n;return u(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,(r={enableHighAccuracy:l,maximumAge:f,timeout:s,when:c},new Promise((function(e,n){navigator.geolocation?navigator.geolocation.getCurrentPosition((function(n){var t=n.coords,r=t.latitude,u=t.longitude;e({isError:!1,lat:r,lng:u,message:""})}),(function(e){n({isError:!0,message:e.message})}),r):n({isError:!0,message:"Geolocation is not supported for this Browser/OS."})})))];case 1:return e=t.sent(),d()&&i(e),[3,3];case 2:return n=t.sent(),d()&&i(n),[3,3];case 3:return[2]}var r}))}))}()}),[c,l,s,f,d]),o},e.useGetIsMounted=a,e.useInViewRef=function(e,t){void 0===e&&(e=function(){}),void 0===t&&(t=Q);var r=t.root,u=void 0===r?null:r,o=t.rootMargin,i=t.threshold,c=n.useState(null),a=c[0],l=c[1],f=n.useState(!1),d=f[0],v=f[1];return n.useEffect((function(){if(a){var n=new IntersectionObserver((function(n,t){for(var r=0,u=n;r<u.length;r++){var o=u[r].isIntersecting;v(o)}e(n,t)}),t);return n.observe(a),function(){n.disconnect()}}return s}),[a,e,u,o,i,t]),[n.useCallback((function(e){l(e)}),[]),d]},e.useInput=function(e,t){void 0===e&&(e=""),void 0===t&&(t=$);var r=n.useState(e),u=r[0],o=r[1],i=n.useCallback((function(e){var n=e.target.value,r=!0;"function"==typeof t.validate&&(r=t.validate(n,u)),r&&o(n)}),[t,u]);return n.useEffect((function(){o(e)}),[e]),{onChange:i,value:u}},e.useIntersectionObserverRef=function(e,t){void 0===t&&(t=_);var r=t.root,u=void 0===r?null:r,o=t.rootMargin,i=t.threshold,c=n.useState(null),a=c[0],l=c[1];return n.useEffect((function(){if(a&&e){var n=new IntersectionObserver(e,t);return n.observe(a),function(){n.disconnect()}}return s}),[a,e,u,o,i,t]),[n.useCallback((function(e){l(e)}),[])]},e.useIntervalWhen=g,e.useIsomorphicEffect=i,e.useKey=ne,e.useKeyBindings=function(e,n){for(var t in e)ne(t,e[t],n)},e.useKeyRef=function(e,r,u){var o=n.useState(null),i=o[0],c=o[1],a=n.useCallback((function(e){c(e)}),[]),l=n.useMemo((function(){return Array.isArray(e)?e:[e]}),[e]),f=n.useMemo((function(){return t(t({},te),u)}),[u]),d=f.when,v=f.eventTypes,w=n.useRef(r);n.useEffect((function(){w.current=r}));var h=n.useCallback((function(e){l.some((function(n){return Z(e,n)}))&&w.current(e)}),[l]);return n.useEffect((function(){if(d&&i){for(var e=0,n=v;e<n.length;e++){var t=n[e];i.addEventListener(t,h)}return function(){for(var e=0,n=v;e<n.length;e++){var t=n[e];i.removeEventListener(t,h)}}}return s}),[i,d,v,l,h]),a},e.useKeys=function(e,r,u){var o=t(t({},re),u),i=o.target,c=o.when,a=o.continuous,l=o.preventLostKeyup,f=n.useRef(r),d=n.useRef({}).current;n.useEffect((function(){f.current=r}));var v=n.useCallback((function(n){for(var t=null,r=!1,u=0,o=e;u<o.length;u++){var i=o[u];Z(n,i)&&(d[i]=!0,t=i)}e.every((function(e){return Boolean(d[e])}))&&(r=!0),r&&(f.current(n),a||null===t||(d[t]=!1))}),[e,d,a]),w=n.useCallback((function(n){for(var t=0,r=e;t<r.length;t++){var u=r[t];Z(n,u)&&(d[u]=void 0)}}),[d,e]);n.useEffect((function(){if(c&&"undefined"!=typeof window){var e=(null==i?void 0:i.current)?i.current:document;return e.addEventListener("keydown",v),e.addEventListener("keyup",w),function(){e.removeEventListener("keydown",v),e.removeEventListener("keyup",w)}}return s}),[c,i,e,v,w]),n.useEffect((function(){if(!0!==l)return s;if("undefined"!=typeof window){var n=window.alert;window.alert=function(t){for(var r=0,u=e;r<u.length;r++){var o=u[r];d[o]=void 0}return n(t)};var t=window.confirm;window.confirm=function(n){for(var r=0,u=e;r<u.length;r++){var o=u[r];d[o]=void 0}return t(n)};var r=window.prompt;return window.prompt=function(n,t){for(var u=0,o=e;u<o.length;u++){var i=o[u];d[i]=void 0}return r(n,t)},function(){window.alert=n,window.confirm=t,window.prompt=r}}return s}),[d,e,l])},e.useLifecycleLogger=function(e){void 0===e&&(e="Component");for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];l((function(){return console.log.apply(console,o(["".concat(e," mounted")],n,!1)),function(){return console.log("".concat(e," unmounted"))}})),I((function(){console.log.apply(console,o(["".concat(e," updated")],n,!1))})),D((function(){console.log("".concat(e," unmounted"))}))},e.useLocalstorageState=function(e,t){var r=n.useState((function(){return ue(e,t)})),u=r[0],o=r[1],i=n.useRef(!1),c=n.useRef(!1),a=n.useMemo((function(){return"rooks-".concat(e,"-localstorage-update")}),[e]);n.useEffect((function(){i.current&&c.current||function(e,n){"undefined"==typeof localStorage||localStorage.setItem(e,JSON.stringify(n))}(e,u)}),[e,u]);var l=n.useCallback((function(n){var t;if(n.storageArea===localStorage&&n.key===e)try{i.current=!0;var r=JSON.parse(null!==(t=n.newValue)&&void 0!==t?t:"null");u!==r&&o(r)}catch(e){console.log(e)}}),[e,u]);n.useEffect((function(){return"undefined"!=typeof window?(window.addEventListener("storage",l),function(){window.removeEventListener("storage",l)}):(console.warn("useLocalstorageState: window is undefined."),function(){})}),[l]);var s=n.useCallback((function(e){try{c.current=!0;var n=e.detail.newValue;u!==n&&o(n)}catch(e){console.log(e)}}),[u]);n.useEffect((function(){return"undefined"!=typeof document?(document.addEventListener(a,s),function(){document.removeEventListener(a,s)}):(console.warn("[useLocalstorageState] document is undefined."),function(){})}),[a,s]);var f=n.useCallback((function(e){if("undefined"!=typeof document){var n=new CustomEvent(a,{detail:{newValue:e}});document.dispatchEvent(n)}else console.warn("[useLocalstorageState] document is undefined.")}),[a]),d=n.useCallback((function(e){i.current=!1,c.current=!1,o(e),f(e)}),[f]),v=n.useCallback((function(){localStorage.removeItem(e)}),[e]);return[u,d,v]},e.useMapState=function(e){var r=n.useState(e),u=r[0],o=r[1],i=n.useCallback((function(e,n){o((function(r){var u;return t(t({},r),((u={})[e]=n,u))}))}),[]),c=n.useCallback((function(e){return void 0!==u[e]}),[u]),a=n.useCallback((function(e){o((function(n){return t(t({},n),e)}))}),[]),l=n.useCallback((function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];o((function(n){for(var r=t({},n),u=0,o=e;u<o.length;u++){delete r[o[u]]}return r}))}),[o]),s=n.useCallback((function(e){o((function(n){var r=t({},n);return delete r[e],r}))}),[o]),f=n.useCallback((function(){o((function(e){var n=t({},e);for(var r in n)n.hasOwnProperty(r)&&delete n[r];return n}))}),[o]);return[u,{has:c,remove:s,removeAll:f,removeMultiple:l,set:i,setMultiple:a}]},e.useMediaMatch=function(e){var t=n.useMemo((function(){return window.matchMedia(e)}),[e]),r=n.useState((function(){return t.matches})),u=r[0],o=r[1];return n.useEffect((function(){o(t.matches);var e=function(e){return o(e.matches)};return t.addEventListener("change",e),function(){return t.removeEventListener("change",e)}}),[t]),"undefined"==typeof window?(console.warn("useMediaMatch cannot function as window is undefined."),!1):u},e.useMergeRefs=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.useMemo((function(){return e.every((function(e){return null===e}))?null:function(n){for(var t=0,r=e;t<r.length;t++){oe(r[t],n)}}}),[e])},e.useMouse=function(){var e=n.useState(ie),t=e[0],r=e[1];function u(e){r(function(e){var n=e.screenX,t=e.screenY,r=e.movementX,u=e.movementY,o=e.pageX,i=e.pageY;return{clientX:e.clientX,clientY:e.clientY,movementX:r,movementY:u,offsetX:e.offsetX,offsetY:e.offsetY,pageX:o,pageY:i,screenX:n,screenY:t,x:n,y:t}}(e))}return n.useEffect((function(){return document.addEventListener("mousemove",u),function(){document.removeEventListener("mousemove",u)}}),[]),t},e.useMultiSelectableList=function(e,t,r){void 0===e&&(e=[]),void 0===t&&(t=[0]),void 0===r&&(r=!1);var u=n.useState(t),i=u[0],c=u[1],a=i.map((function(n){return e[n]})),l=[i,a],s=n.useCallback((function(e){var n;if(i.includes(e)){n=o([],i,!0);var t=i.indexOf(e);-1!==t&&n.splice(t,1)}else n=o(o([],i,!0),[e],!1);n.length>0||r?c(n):console.warn("toggleSelection failed. Do the values exist in the list?")}),[r,i]),f=n.useCallback((function(n){var t=n.index,r=n.value;return function(){if(ce("toggleSelection",{index:t,value:r}),void 0!==t)s(t);else if(void 0!==r){var n=e.indexOf(r);n>-1&&s(n)}}}),[e,s]),d=n.useCallback((function(e){var n=e.index,t=e.value;return ce("matchSelection",{index:n,value:t}),void 0!==n?i.includes(n):void 0!==t&&a.includes(t)}),[i,a]),v={matchSelection:d,toggleSelection:f,updateSelections:function(n){var t=n.indices,u=n.values;return function(){if(ce("updateSelections",{indices:t,values:u}),void 0!==t){if(!r&&0===t.length)return void console.warn("updateSelections failed. indices is an empty list.");c(t)}else if(void 0!==u){var n=e.reduce((function(e,n,t){return u.includes(n)?o(o([],e,!0),[t],!1):e}),[]);n.length>0||r?c(n):console.warn("updateSelections failed. Do the values exist in the list?")}}}};return[l,v]},e.useMutationObserver=d,e.useMutationObserverRef=m,e.useNavigatorLanguage=function(){var e=n.useState(le),t=e[0],r=e[1];return ae("languagechange",(function(){r(le)})),t},e.useOnWindowResize=N,e.useOnWindowScroll=B,e.useOnline=function(){var e=n.useState((function(){return"undefined"==typeof window?null:navigator.onLine})),t=e[0],r=e[1];function u(){r(!1)}function o(){r(!0)}return n.useEffect((function(){return"undefined"!=typeof window?(window.addEventListener("online",o),window.addEventListener("offline",u),function(){window.removeEventListener("online",o),window.removeEventListener("offline",u)}):(console.warn("useOnline: window is undefined."),s)}),[]),t},e.useOutsideClick=function(e,t,r){void 0===r&&(r=!0);var u=n.useRef(t),o=n.useCallback((function(n){e.current&&!e.current.contains(n.target)&&u.current(n)}),[e]);n.useEffect((function(){u.current=t})),n.useEffect((function(){return r?(document.addEventListener("click",o,!0),document.addEventListener("ontouchstart",o,!0),function(){document.removeEventListener("click",o,!0),document.removeEventListener("ontouchstart",o,!0)}):s}),[e,t,r,o])},e.useOutsideClickRef=function(e,t){void 0===t&&(t=!0);var r=n.useRef(e),u=n.useState(null),o=u[0],i=u[1],c=n.useCallback((function(e){o&&!o.contains(e.target)&&r.current(e)}),[o]);n.useEffect((function(){r.current=e}));var a=n.useCallback((function(e){i(e)}),[]);return n.useEffect((function(){return t?(document.addEventListener("click",c,!0),document.addEventListener("ontouchstart",c,!0),function(){document.removeEventListener("click",c,!0),document.removeEventListener("ontouchstart",c,!0)}):s}),[t,c]),[a]},e.usePreviousDifferent=function(e){var t=n.useRef(null),r=n.useRef(null);return n.useEffect((function(){r.current=t.current,t.current=e}),[e]),e===t.current?r.current:t.current},e.usePreviousImmediate=function(e){var t=n.useRef(null);return n.useEffect((function(){t.current=e})),t.current},e.useQueueState=function(e){var t=n.useState(o([],e,!0)),r=t[0],u=t[1],i=n.useCallback((function(e){var n=o(o([],r,!0),[e],!1);return u(n),n.length}),[r]),c=n.useCallback((function(){if(r.length>0){var e=r[0];return u(o([],r.slice(1),!0)),e}}),[r]),a=n.useCallback((function(){if(r.length>0)return r[0]}),[r]),l={dequeue:c,enqueue:i,length:r.length,peek:a};return[r,l]},e.useRaf=function(e,t){var r=n.useRef();n.useEffect((function(){r.current=e}),[e]),n.useEffect((function(){var e,n=Date.now();function u(){var e,t=Date.now()-n;n=Date.now(),o(),null===(e=r.current)||void 0===e||e.call(r,t)}function o(){e=ye(u)}return t?(n=Date.now(),o(),function(){e&&ye.cancel(e)}):s}),[t])},e.useRefElement=V,e.useRenderCount=function(){return++n.useRef(0).current},e.useResizeObserverRef=function(e,t){void 0===t&&(t=Ee);var r=n.useState(null),u=r[0],o=r[1],i=Y(e);n.useEffect((function(){if(u){var e=new ResizeObserver(i);return e.observe(u,t),function(){e.disconnect()}}return s}),[u,i,t]);var c=n.useCallback((function(e){o(e)}),[]);return[c]},e.useSelect=function(e,t){void 0===t&&(t=0);var r=n.useState(t),u=r[0],o=r[1],i=n.useCallback((function(n){o(e.indexOf(n))}),[e]);return{index:u,item:e[u],setIndex:o,setItem:i}},e.useSelectableList=function(e,t,r){void 0===e&&(e=[]),void 0===t&&(t=0),void 0===r&&(r=!1);var u=n.useState(t),o=u[0],i=u[1],c=e[o],a=[o,c],l=n.useCallback((function(n){var t=n.index,r=n.value;return function(){if(ke("updateSelection",{index:t,value:r}),void 0!==t)i(t);else if(void 0!==r){var n=e.indexOf(r);n>-1?i(n):console.warn("updateSelection failed. Does the value ".concat(r," exist in the list?"))}}}),[e]),s=n.useCallback((function(n){var t=n.index,u=n.value;return function(){if(ke("toggleSelection",{index:t,value:u}),void 0!==t)o===t?r?i(-1):console.warn("allowUnselected is false. Cannot unselect item"):i(t);else if(void 0!==u){var n=e.indexOf(u);n>-1?o===n?r?i(-1):console.warn("allowUnselected is false. Cannot unselect item"):i(n):(console.log("as"),console.warn("toggleSelection failed. Does the value ".concat(u," exist in the list?")))}}}),[r,o,e]),f=n.useCallback((function(e){var n=e.index,t=e.value;return ke("matchSelection",{index:n,value:t}),void 0!==n?n===o:t===c}),[o,c]);return[a,{matchSelection:f,toggleSelection:s,updateSelection:l}]},e.useSessionstorageState=function(e,t){var r=n.useState((function(){return Se(e,t)})),u=r[0],o=r[1],i=n.useRef(!1),c=n.useRef(!1),a=n.useMemo((function(){return"rooks-".concat(e,"-sessionstorage-update")}),[e]);n.useEffect((function(){i.current||function(e,n){"undefined"==typeof sessionStorage||sessionStorage.setItem(e,JSON.stringify(n))}(e,u)}),[e,u]);var l=n.useCallback((function(n){var t;if(n.storageArea===sessionStorage&&n.key===e)try{i.current=!0;var r=JSON.parse(null!==(t=n.newValue)&&void 0!==t?t:"null");u!==r&&o(r)}catch(e){console.log(e)}}),[e,u]);n.useEffect((function(){return"undefined"!=typeof window?(window.addEventListener("storage",l),function(){window.removeEventListener("storage",l)}):(console.warn("[useSessionstorageState] window is undefined."),function(){})}),[l]);var s=n.useCallback((function(e){try{c.current=!0;var n=e.detail.newValue;u!==n&&o(n)}catch(e){console.log(e)}}),[u]);n.useEffect((function(){return"undefined"!=typeof document?(document.addEventListener(a,s),function(){document.removeEventListener(a,s)}):(console.warn("[useSessionstorageState] document is undefined."),function(){})}),[a,s]);var f=n.useCallback((function(e){if("undefined"!=typeof document){var n=new CustomEvent(a,{detail:{newValue:e}});document.dispatchEvent(n)}else console.warn("[useSessionstorageState] document is undefined.")}),[a]),d=n.useCallback((function(e){i.current=!1,c.current=!1,o(e),f(e)}),[f]),v=n.useCallback((function(){sessionStorage.removeItem(e)}),[e]);return[u,d,v]},e.useSetState=function(e){var t=n.useState(new Set(e)),r=t[0],u=t[1],o=n.useCallback((function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];u(new Set(r.add.apply(r,e)))}),[r,u]),i=n.useCallback((function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var t=new Set(r);t.delete.apply(t,e),u(t)}),[r,u]),c=n.useCallback((function(){u(new Set)}),[u]),a=n.useMemo((function(){return{add:o,delete:i,clear:c}}),[o,i,c]);return n.useMemo((function(){return[r,a]}),[r,a])},e.useStackState=function(e){var t=n.useState(o([],e,!0)),r=t[0],u=t[1],i=r.length,c=n.useMemo((function(){var e=o([],r,!0);return e.reverse(),e}),[r]),a=n.useCallback((function(e){var n=o(o([],r,!0),[e],!1);return u(n),n.length}),[r]),l=n.useCallback((function(){if(r.length>0){var e=r[r.length-1];return u(o([],r.slice(0,r.length-1),!0)),e}}),[r]),s=n.useCallback((function(){if(r.length>0)return r[r.length-1]}),[r]),f=n.useCallback((function(){return 0===r.length}),[r]);return[r,{clear:function(){return u([])},isEmpty:f,length:i,peek:s,pop:l,push:a},c]},e.useThrottle=function(e,t){void 0===t&&(t=300);var r=n.useState(!0),u=r[0],o=r[1],i=n.useRef(void 0),c=n.useCallback((function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];u&&(o(!1),e.apply(void 0,n))}),[u,e]);return n.useEffect((function(){return u?s:(i.current=window.setTimeout((function(){o(!0)}),t),function(){return window.clearTimeout(i.current)})}),[u,t]),[c,u]},e.useTimeoutWhen=function(e,t,r){void 0===t&&(t=0),void 0===r&&(r=!0);var u=n.useRef();function o(){var e;null===(e=u.current)||void 0===e||e.call(u)}n.useEffect((function(){u.current=e})),n.useEffect((function(){if(r){if("undefined"!=typeof window){var e=window.setTimeout(o,t);return function(){window.clearTimeout(e)}}console.warn("useTimeoutWhen: window is undefined.")}return s}),[t,r])},e.useToggle=function(e,t){return void 0===e&&(e=!1),void 0===t&&(t=Ce),n.useReducer(t,e)},e.useUndoState=function(e,r){var u=n.useMemo((function(){return t(t({},xe),r)}),[r]).maxSize,i=n.useState([e]),c=i[0],a=i[1],l=n.useCallback((function(e){return a((function(n){var t=n.length>=u?n.slice(0,u):n;return o("function"==typeof e?[e(n[0])]:[e],t,!0)}))}),[u]),s=n.useCallback((function(){a((function(e){return 1===e.length?e:e.slice(1)}))}),[]);return[c[0],l,s]},e.useWillUnmount=D,e.useWindowEventListener=ae,e.useWindowScrollPosition=function(){var e=n.useState(Le),t=e[0],r=e[1];return B((function(){r(Le())}),!0,!0),N((function(){r(Le())}),!0,!0),t},e.useWindowSize=function(){var e=n.useState((function(){return"undefined"==typeof window?Re:Oe()})),t=e[0],r=e[1];function u(){r(Oe())}return i((function(){return"undefined"==typeof window?function(){}:(window.addEventListener("resize",u),function(){window.removeEventListener("resize",u)})}),[]),t},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=rooks.min.js.map