From c67eddeeba378c110a2cb452b6eef5fcdfa173a7 Mon Sep 17 00:00:00 2001 From: streamich Date: Wed, 12 Jun 2019 22:00:56 +0000 Subject: [PATCH] Updates --- iframe.html | 2 +- main.95244b9f15d54a7a580f.bundle.js | 2 ++ ....map => main.95244b9f15d54a7a580f.bundle.js.map | 2 +- main.97378a6363f713a2ceb5.bundle.js | 2 -- ... => runtime~main.95244b9f15d54a7a580f.bundle.js | 2 +- ...runtime~main.95244b9f15d54a7a580f.bundle.js.map | 2 +- ... => vendors~main.95244b9f15d54a7a580f.bundle.js | 14 +++++++------- ...vendors~main.95244b9f15d54a7a580f.bundle.js.map | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 main.95244b9f15d54a7a580f.bundle.js rename main.97378a6363f713a2ceb5.bundle.js.map => main.95244b9f15d54a7a580f.bundle.js.map (99%) delete mode 100644 main.97378a6363f713a2ceb5.bundle.js rename runtime~main.97378a6363f713a2ceb5.bundle.js => runtime~main.95244b9f15d54a7a580f.bundle.js (97%) rename runtime~main.97378a6363f713a2ceb5.bundle.js.map => runtime~main.95244b9f15d54a7a580f.bundle.js.map (98%) rename vendors~main.97378a6363f713a2ceb5.bundle.js => vendors~main.95244b9f15d54a7a580f.bundle.js (99%) rename vendors~main.97378a6363f713a2ceb5.bundle.js.map => vendors~main.95244b9f15d54a7a580f.bundle.js.map (99%) diff --git a/iframe.html b/iframe.html index 26e4ae84..497aeec8 100644 --- a/iframe.html +++ b/iframe.html @@ -58,4 +58,4 @@ } catch (e) { // eslint-disable-next-line no-console console.warn('unable to connect to parent frame for connecting dev tools'); - }

No Preview

Sorry, but you either have no stories or none are selected somehow.

  • Please check the Storybook config.
  • Try reloading the page.

If the problem persists, check the browser console, or the terminal you've run Storybook from.

\ No newline at end of file + }

No Preview

Sorry, but you either have no stories or none are selected somehow.

  • Please check the Storybook config.
  • Try reloading the page.

If the problem persists, check the browser console, or the terminal you've run Storybook from.

\ No newline at end of file diff --git a/main.95244b9f15d54a7a580f.bundle.js b/main.95244b9f15d54a7a580f.bundle.js new file mode 100644 index 00000000..54fcad91 --- /dev/null +++ b/main.95244b9f15d54a7a580f.bundle.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,,,function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var createMemo_1=__webpack_require__(519);exports.createMemo=createMemo_1.default;var createReducer_1=__webpack_require__(520);exports.createReducer=createReducer_1.default;var useAsync_1=__webpack_require__(237);exports.useAsync=useAsync_1.default;var useAsyncFn_1=__webpack_require__(151);exports.useAsyncFn=useAsyncFn_1.default;var useAsyncRetry_1=__webpack_require__(521);exports.useAsyncRetry=useAsyncRetry_1.default;var useAudio_1=__webpack_require__(522);exports.useAudio=useAudio_1.default;var useBattery_1=__webpack_require__(524);exports.useBattery=useBattery_1.default;var useBeforeUnload_1=__webpack_require__(525);exports.useBeforeUnload=useBeforeUnload_1.default;var useBoolean_1=__webpack_require__(526);exports.useBoolean=useBoolean_1.default;var useClickAway_1=__webpack_require__(527);exports.useClickAway=useClickAway_1.default;var useCopyToClipboard_1=__webpack_require__(528);exports.useCopyToClipboard=useCopyToClipboard_1.default;var useCounter_1=__webpack_require__(240);exports.useCounter=useCounter_1.default;var useCss_1=__webpack_require__(531);exports.useCss=useCss_1.default;var useDebounce_1=__webpack_require__(537);exports.useDebounce=useDebounce_1.default;var useDeepCompareEffect_1=__webpack_require__(538);exports.useDeepCompareEffect=useDeepCompareEffect_1.default;var useDrop_1=__webpack_require__(540);exports.useDrop=useDrop_1.default;var useDropArea_1=__webpack_require__(541);exports.useDropArea=useDropArea_1.default;var useEffectOnce_1=__webpack_require__(109);exports.useEffectOnce=useEffectOnce_1.default;var useEvent_1=__webpack_require__(242);exports.useEvent=useEvent_1.default;var useFavicon_1=__webpack_require__(542);exports.useFavicon=useFavicon_1.default;var useFullscreen_1=__webpack_require__(543);exports.useFullscreen=useFullscreen_1.default;var useGeolocation_1=__webpack_require__(545);exports.useGeolocation=useGeolocation_1.default;var useGetSet_1=__webpack_require__(241);exports.useGetSet=useGetSet_1.default;var useGetSetState_1=__webpack_require__(546);exports.useGetSetState=useGetSetState_1.default;var useHover_1=__webpack_require__(547);exports.useHover=useHover_1.default;var useHoverDirty_1=__webpack_require__(243);exports.useHoverDirty=useHoverDirty_1.default;var useIdle_1=__webpack_require__(548);exports.useIdle=useIdle_1.default;var useKey_1=__webpack_require__(153);exports.useKey=useKey_1.default;var useKeyboardJs_1=__webpack_require__(550);exports.useKeyboardJs=useKeyboardJs_1.default;var useKeyPress_1=__webpack_require__(245);exports.useKeyPress=useKeyPress_1.default;var useKeyPressEvent_1=__webpack_require__(554);exports.useKeyPressEvent=useKeyPressEvent_1.default;var useLifecycles_1=__webpack_require__(555);exports.useLifecycles=useLifecycles_1.default;var useList_1=__webpack_require__(556);exports.useList=useList_1.default;var useLocalStorage_1=__webpack_require__(557);exports.useLocalStorage=useLocalStorage_1.default;var useLocation_1=__webpack_require__(558);exports.useLocation=useLocation_1.default;var useLockBodyScroll_1=__webpack_require__(559);exports.useLockBodyScroll=useLockBodyScroll_1.default;var useLogger_1=__webpack_require__(560);exports.useLogger=useLogger_1.default;var useMap_1=__webpack_require__(561);exports.useMap=useMap_1.default;var useMedia_1=__webpack_require__(562);exports.useMedia=useMedia_1.default;var useMediaDevices_1=__webpack_require__(563);exports.useMediaDevices=useMediaDevices_1.default;var useMotion_1=__webpack_require__(564);exports.useMotion=useMotion_1.default;var useMount_1=__webpack_require__(154);exports.useMount=useMount_1.default;var useMouse_1=__webpack_require__(246);exports.useMouse=useMouse_1.default;var useMouseHovered_1=__webpack_require__(565);exports.useMouseHovered=useMouseHovered_1.default;var useNetwork_1=__webpack_require__(566);exports.useNetwork=useNetwork_1.default;var useNumber_1=__webpack_require__(567);exports.useNumber=useNumber_1.default;var useObservable_1=__webpack_require__(568);exports.useObservable=useObservable_1.default;var useOrientation_1=__webpack_require__(569);exports.useOrientation=useOrientation_1.default;var usePageLeave_1=__webpack_require__(570);exports.usePageLeave=usePageLeave_1.default;var usePrevious_1=__webpack_require__(571);exports.usePrevious=usePrevious_1.default;var usePromise_1=__webpack_require__(572);exports.usePromise=usePromise_1.default;var useRaf_1=__webpack_require__(247);exports.useRaf=useRaf_1.default;var useRefMounted_1=__webpack_require__(60);exports.useRefMounted=useRefMounted_1.default;var useScroll_1=__webpack_require__(573);exports.useScroll=useScroll_1.default;var useSessionStorage_1=__webpack_require__(574);exports.useSessionStorage=useSessionStorage_1.default;var useSetState_1=__webpack_require__(108);exports.useSetState=useSetState_1.default;var useSize_1=__webpack_require__(575);exports.useSize=useSize_1.default;var useSpeech_1=__webpack_require__(576);exports.useSpeech=useSpeech_1.default;var useSpring_1=__webpack_require__(577);exports.useSpring=useSpring_1.default;var useStartTyping_1=__webpack_require__(579);exports.useStartTyping=useStartTyping_1.default;var useThrottle_1=__webpack_require__(580);exports.useThrottle=useThrottle_1.default;var useThrottleFn_1=__webpack_require__(581);exports.useThrottleFn=useThrottleFn_1.default;var useTimeout_1=__webpack_require__(582);exports.useTimeout=useTimeout_1.default;var useTitle_1=__webpack_require__(583);exports.useTitle=useTitle_1.default;var useToggle_1=__webpack_require__(239);exports.useToggle=useToggle_1.default;var useTween_1=__webpack_require__(584);exports.useTween=useTween_1.default;var useUnmount_1=__webpack_require__(157);exports.useUnmount=useUnmount_1.default;var useUpdate_1=__webpack_require__(152);exports.useUpdate=useUpdate_1.default;var useUpdateEffect_1=__webpack_require__(156);exports.useUpdateEffect=useUpdateEffect_1.default;var useVideo_1=__webpack_require__(586);exports.useVideo=useVideo_1.default;var useWait_1=__webpack_require__(587);exports.useWait=useWait_1.default;var useWindowScroll_1=__webpack_require__(589);exports.useWindowScroll=useWindowScroll_1.default;var useWindowSize_1=__webpack_require__(590);exports.useWindowSize=useWindowSize_1.default},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var h=__webpack_require__(0).createElement;exports.default=function(props){return h("div",{},h("div",{style:{padding:"0 20px"},dangerouslySetInnerHTML:{__html:props.md.default}}),h("style",{dangerouslySetInnerHTML:{__html:"\n@import url(https://fonts.googleapis.com/css?family=Merriweather:300italic,300);\n\nh1, h1 code, h2, h2 code, h3, h3 code, h4, h4 code {\n color: #333;\n}\n\nhtml {\n font-size: 16px;\n max-width: 700px;\n margin: auto;\n}\n\nbody {\n color: #444;\n font-family: 'Merriweather', Georgia, serif;\n max-width: 700px;\n margin: auto;\n}\n\n/* === A bit of a gross hack so we can have bleeding divs/blockquotes. */\n\ndiv {\n width: 100%;\n}\n\ndiv img {\n width: 100%;\n}\n\nblockquote p {\n font-size: 1.5rem;\n font-style: italic;\n margin: 1rem auto 1rem;\n max-width: 48rem;\n}\n\nli {\n margin-left: 2rem;\n}\n\n/* Counteract the specificity of the gross *:not() chain. */\nh1 {\n padding: 1m 0 !important;\n}\n/* === End gross hack */\n\np {\n color: #555;\n height: auto;\n line-height: 1.45;\n}\n\npre, code {\n font-family: Menlo, Monaco, \"Courier New\", monospace;\n color: #42b983;\n}\n\npre, pre code {\n color: #000;\n}\n\npre {\n background-color: #fafafa;\n font-size: .8rem;\n overflow-x: scroll;\n padding: 1.125em;\n}\n\na, a pre, a code,\na:visited {\n color: #3498db;\n}\n\na:hover,\na:focus,\na:active {\n color: #2980b9;\n}\n "}}))}},,,,,,,,,,,,,,,function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isClient="object"==typeof window,exports.on=function(obj){for(var args=[],_i=1;_i{req.keys().forEach(filename=>req(filename))},module)}.call(this,__webpack_require__(358)(module))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(module,exports,__webpack_require__){var map={"./__stories__/createMemo.story.tsx":518,"./__stories__/createReducer.story.tsx":592,"./__stories__/useAsync.story.tsx":596,"./__stories__/useAsyncFn.story.tsx":598,"./__stories__/useAsyncRetry.story.tsx":600,"./__stories__/useAudio.story.tsx":602,"./__stories__/useBattery.story.tsx":604,"./__stories__/useBeforeUnload.story.tsx":606,"./__stories__/useBoolean.story.tsx":608,"./__stories__/useClickAway.story.tsx":609,"./__stories__/useCopyToClipboard.story.tsx":611,"./__stories__/useCounter.story.tsx":613,"./__stories__/useCss.story.tsx":615,"./__stories__/useDebounce.story.tsx":617,"./__stories__/useDeepCompareEffect.story.tsx":619,"./__stories__/useDrop.story.tsx":621,"./__stories__/useDropArea.story.tsx":635,"./__stories__/useEffectOnce.story.tsx":636,"./__stories__/useEvent.story.tsx":638,"./__stories__/useFavicon.story.tsx":640,"./__stories__/useFullscreen.story.tsx":642,"./__stories__/useGeolocation.story.tsx":644,"./__stories__/useGetSet.story.tsx":646,"./__stories__/useGetSetState.story.tsx":648,"./__stories__/useHover.story.tsx":650,"./__stories__/useHoverDirty.story.tsx":651,"./__stories__/useIdle.story.tsx":652,"./__stories__/useKey.story.tsx":654,"./__stories__/useKeyPress.story.tsx":656,"./__stories__/useKeyPressEvent.story.tsx":658,"./__stories__/useKeyboardJs.story.tsx":660,"./__stories__/useLifecycles.story.tsx":673,"./__stories__/useList.story.tsx":675,"./__stories__/useLocalStorage.story.tsx":677,"./__stories__/useLocation.story.tsx":679,"./__stories__/useLockBodyScroll.story.tsx":681,"./__stories__/useLogger.story.tsx":683,"./__stories__/useMap.story.tsx":685,"./__stories__/useMedia.story.tsx":687,"./__stories__/useMediaDevices.story.tsx":689,"./__stories__/useMotion.story.tsx":691,"./__stories__/useMount.story.tsx":693,"./__stories__/useMouse.story.tsx":695,"./__stories__/useMouseHovered.story.tsx":696,"./__stories__/useNetwork.story.tsx":697,"./__stories__/useObservable.story.tsx":699,"./__stories__/useOrientation.story.tsx":701,"./__stories__/usePageLeave.story.tsx":703,"./__stories__/usePrevious.story.tsx":705,"./__stories__/usePromise.story.tsx":707,"./__stories__/useRaf.story.tsx":709,"./__stories__/useRefMounted.story.tsx":711,"./__stories__/useScroll.story.tsx":713,"./__stories__/useSessionStorage.story.tsx":715,"./__stories__/useSetState.story.tsx":717,"./__stories__/useSize.story.tsx":719,"./__stories__/useSpeech.story.tsx":721,"./__stories__/useSpring.story.tsx":723,"./__stories__/useStartTyping.story.tsx":725,"./__stories__/useThrottle.story.tsx":727,"./__stories__/useThrottleFn.story.tsx":728,"./__stories__/useTimeout.story.tsx":729,"./__stories__/useTitle.story.tsx":731,"./__stories__/useToggle.story.tsx":733,"./__stories__/useTween.story.tsx":734,"./__stories__/useUnmount.story.tsx":736,"./__stories__/useUpdate.story.tsx":738,"./__stories__/useUpdateEffect.story.tsx":740,"./__stories__/useVideo.story.tsx":742,"./__stories__/useWait.story.tsx":744,"./__stories__/useWindowScroll.story.tsx":746,"./__stories__/useWindowSize.story.tsx":748,"./comps/__stories__/UseKey.story.tsx":750};function webpackContext(req){var id=webpackContextResolve(req);return __webpack_require__(id)}function webpackContextResolve(req){if(!__webpack_require__.o(map,req)){var e=new Error("Cannot find module '"+req+"'");throw e.code="MODULE_NOT_FOUND",e}return map[req]}webpackContext.keys=function webpackContextKeys(){return Object.keys(map)},webpackContext.resolve=webpackContextResolve,module.exports=webpackContext,webpackContext.id=517},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fibonacci=function(n){return 0===n?0:1===n?1:fibonacci(n-1)+fibonacci(n-2)},useMemoFibonacci=__1.createMemo(fibonacci),Demo=function(){var result=useMemoFibonacci(10);return React.createElement("div",null,"fib(10) = ",result)};react_1.storiesOf("State|createMemo",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(591)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0);exports.default=function(fn){return function(){for(var args=[],_i=0;_i=48&&keyCode<=57||keyCode>=65&&keyCode<=90))&&onStartTyping(event)};return document.addEventListener("keydown",keydown),function(){document.removeEventListener("keydown",keydown)}},[])}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),useUnmount_1=__webpack_require__(157);exports.default=function(value,ms){void 0===ms&&(ms=200);var _a=react_1.useState(value),state=_a[0],setState=_a[1],timeout=react_1.useRef(null),nextValue=react_1.useRef(null),hasNextValue=react_1.useRef(0);return react_1.useEffect(function(){if(timeout.current)nextValue.current=value,hasNextValue.current=!0;else{setState(value);var timeoutCallback_1=function(){hasNextValue.current?(hasNextValue.current=!1,setState(nextValue.current),timeout.current=setTimeout(timeoutCallback_1,ms)):timeout.current=null};timeout.current=setTimeout(timeoutCallback_1,ms)}},[value]),useUnmount_1.default(function(){clearTimeout(timeout.current)}),state}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),useUnmount_1=__webpack_require__(157);exports.default=function(fn,ms,args){void 0===ms&&(ms=200);var _a=react_1.useState(null),state=_a[0],setState=_a[1],timeout=react_1.useRef(null),nextArgs=react_1.useRef(null),hasNextArgs=react_1.useRef(!1);return react_1.useEffect(function(){if(timeout.current)nextArgs.current=args,hasNextArgs.current=!0;else{setState(fn.apply(void 0,args));var timeoutCallback_1=function(){hasNextArgs.current?(hasNextArgs.current=!1,setState(fn.apply(void 0,nextArgs.current)),timeout.current=setTimeout(timeoutCallback_1,ms)):timeout.current=null};timeout.current=setTimeout(timeoutCallback_1,ms)}},args),useUnmount_1.default(function(){clearTimeout(timeout.current)}),state}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0);exports.default=function(ms){void 0===ms&&(ms=0);var _a=react_1.useState(!1),ready=_a[0],setReady=_a[1];return react_1.useEffect(function(){var timer=setTimeout(function(){setReady(!0)},ms);return function(){clearTimeout(timer)}},[ms]),ready}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0);exports.default=function(title){react_1.useEffect(function(){document.title=title},[title])}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ts_easing_1=__webpack_require__(585),useRaf_1=__webpack_require__(247);exports.default=function(easingName,ms,delay){return void 0===easingName&&(easingName="inCirc"),void 0===ms&&(ms=200),void 0===delay&&(delay=0),(0,ts_easing_1.easing[easingName])(useRaf_1.default(ms,delay))}},,function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var useVideo=__webpack_require__(238).default("video");exports.default=useVideo},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_wait_1=__webpack_require__(588);react_wait_1.useWait.Waiter=react_wait_1.Waiter,exports.default=react_wait_1.useWait},,function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),util_1=__webpack_require__(19);exports.default=function(){var frame=react_1.useRef(0),_a=react_1.useState({x:util_1.isClient?window.scrollX:0,y:util_1.isClient?window.scrollY:0}),state=_a[0],setState=_a[1];return react_1.useEffect(function(){var handler=function(){cancelAnimationFrame(frame.current),frame.current=requestAnimationFrame(function(){setState({x:window.scrollX,y:window.scrollY})})};return window.addEventListener("scroll",handler,{capture:!1,passive:!0}),function(){cancelAnimationFrame(frame.current),window.removeEventListener("scroll",handler)}},[]),state}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),util_1=__webpack_require__(19);exports.default=function(initialWidth,initialHeight){void 0===initialWidth&&(initialWidth=1/0),void 0===initialHeight&&(initialHeight=1/0);var _a=react_1.useState({width:util_1.isClient?window.innerWidth:initialWidth,height:util_1.isClient?window.innerHeight:initialHeight}),state=_a[0],setState=_a[1];return react_1.useEffect(function(){if(util_1.isClient){var handler_1=function(){setState({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",handler_1),function(){return window.removeEventListener("resize",handler_1)}}},[]),state}},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

createMemo

\n

Hook factory, receives a function to be memoized, returns a memoized React hook,\nwhich receives the same arguments and returns the same result as the original function.

\n

Usage

\n
import {createMemo} from 'react-use';\n\nconst fibonacci = n => {\n  if (n === 0) return 0;\n  if (n === 1) return 1;\n  return fibonacci(n - 1) + fibonacci(n - 2);\n};\n\nconst useMemoFibonacci = createMemo(fibonacci);\n\nconst Demo = () => {\n  const result = useMemoFibonacci(10);\n\n  return (\n    <div>\n      fib(10) = {result}\n    </div>\n  );\n};
\n

Reference

\n
const useMemoFn = createMemo(fn);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),redux_logger_1=__webpack_require__(593),redux_thunk_1=__webpack_require__(594),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),useThunkReducer=__1.createReducer(redux_thunk_1.default,redux_logger_1.default);function init(initialCount){return{count:initialCount}}function reducer(state,action){switch(action.type){case"increment":return{count:state.count+1};case"decrement":return{count:state.count-1};case"reset":return init(action.payload);default:throw new Error}}var Demo=function(_a){var _b=_a.initialCount,initialCount=void 0===_b?1:_b,addAndReset=React.useCallback(function(){return function(dispatch2){dispatch2({type:"increment"}),setTimeout(function(){dispatch2({type:"reset",payload:initialCount})},1e3)}},[initialCount]),_c=useThunkReducer(reducer,initialCount,init),state=_c[0],dispatch=_c[1];return React.createElement("div",null,React.createElement("pre",null,JSON.stringify(state,null,2)),React.createElement("button",{onClick:function(){return dispatch(addAndReset())}},"Add and reset"),React.createElement("button",{onClick:function(){return dispatch({type:"reset",payload:initialCount})}},"Reset"),React.createElement("button",{onClick:function(){return dispatch({type:"increment"})}},"+"),React.createElement("button",{onClick:function(){return dispatch({type:"decrement"})}},"-"),React.createElement("p",null,"Open your developer console to see actions logged by middleware"))};react_1.storiesOf("State|createReducer",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(595)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},,,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

createReducer

\n

Factory for reducer hooks with custom middleware with an identical API as React's useReducer. Compatible with Redux middlware.

\n

Usage

\n

An example with redux-thunk and redux-logger.

\n
import {createReducer} from 'react-use';\nimport thunk from 'redux-thunk';\nimport logger from 'redux-logger';\n\nconst useThunkReducer = createReducer(thunk, logger);\n\nfunction reducer(state, action) {\n  switch (action.type) {\n    case 'increment':\n      return { count: state.count + 1 };\n    case 'decrement':\n      return { count: state.count - 1 };\n    case 'reset':\n      return init(action.payload);\n    default:\n      throw new Error();\n  }\n}\n\nconst Demo = () => {\n  const addAndReset = React.useCallback(() => {\n    return dispatch => {\n      dispatch({ type: 'increment' });\n\n      setTimeout(() => {\n        dispatch({ type: 'reset', payload: 1 });\n      }, 1000);\n    };\n  }, []);\n\n  const [count, dispatch] = useThunkReducer(reducer, 1);\n\n  return (\n    <div>\n      <p>count: {count}</p>\n      <button onClick={() => dispatch(addAndReset())}>Add and reset</button>\n      <button onClick={() => dispatch({ type: 'increment' })}>+</button>\n      <button onClick={() => dispatch({ type: 'decrement' })}>-</button>\n    </div>\n  );\n};
\n

Reference

\n
const useMiddlewareReducer = createReducer(...middlewares);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fn=function(){return new Promise(function(resolve){setTimeout(function(){resolve("RESOLVED")},1e3)})},Demo=function(){var _a=__1.useAsync(fn),loading=_a.loading,error=_a.error,value=_a.value;return React.createElement("div",null,loading?React.createElement("div",null,"Loading..."):error?React.createElement("div",null,"Error: ",error.message):React.createElement("div",null,"Value: ",value))};react_1.storiesOf("Side effects|useAsync",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(597)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAsync

\n

React hook that resolves an async function or a function that returns\na promise;

\n

Usage

\n
import {useAsync} from 'react-use';\n\n// Returns a Promise that resolves after one second.\nconst fn = () => new Promise((resolve) => {\n  setTimeout(() => {\n    resolve('RESOLVED');\n  }, 1000);\n});\n\nconst Demo = () => {\n  const state = useAsync(fn);\n\n  return (\n    <div>\n      {state.loading?\n        <div>Loading...</div>\n        : state.error?\n        <div>Error...</div>\n        : <div>Value: {state.value}</div>\n      }\n    </div>\n  );\n};
\n

Reference

\n
useAsync(fn, args?: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fn=function(){return new Promise(function(resolve,reject){setTimeout(function(){Math.random()>.5?reject(new Error("Random error!")):resolve("RESOLVED")},1e3)})},Demo=function(){var _a=__1.useAsyncFn(fn),_b=_a[0],loading=_b.loading,error=_b.error,value=_b.value,callback=_a[1];return React.createElement("div",null,loading?React.createElement("div",null,"Loading..."):error?React.createElement("div",null,"Error: ",error.message):value&&React.createElement("div",null,"Value: ",value),React.createElement("button",{onClick:function(){return callback()}},"Start"))};react_1.storiesOf("Side effects|useAsyncFn",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(599)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAsyncFn

\n

React hook that returns state and a callback for an async function or a\nfunction that returns a promise. The state is of the same shape as useAsync.

\n

Usage

\n
import {useAsyncFn} from 'react-use';\n\nconst Demo = (url) => {\n  const [state, fetch] = useAsyncFn(async () => {\n    const response = await fetch(url);\n    const result = await response.text();\n    return result\n  }, [url]);\n\n  return (\n    <div>\n      {state.loading\n        ? <div>Loading...</div>\n        : state.error\n          ? <div>Error: {state.error.message}</div>\n          : state.value && <div>Value: {state.value}</div>\n      }\n      <button onClick={() => fetch()}>Start loading</button>\n    </div>\n  );\n};
\n

Reference

\n
useAsyncFn(fn, deps?: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fnRetry=function(){return new Promise(function(resolve,reject){setTimeout(function(){Math.random()>.5?reject(new Error("Random error!")):resolve("RESOLVED")},1e3)})},DemoRetry=function(){var _a=__1.useAsyncRetry(fnRetry),loading=_a.loading,value=_a.value,error=_a.error,retry=_a.retry;return React.createElement("div",null,loading?React.createElement("div",null,"Loading..."):error?React.createElement("div",null,"Error: ",error.message):React.createElement("div",null,"Value: ",value),React.createElement("button",{onClick:function(){return retry()}},"Retry"))};react_1.storiesOf("Side effects|useAsyncRetry",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(601)})}).add("Demo",function(){return React.createElement(DemoRetry,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAsyncRetry

\n

Uses useAsync with an additional retry method to easily retry/refresh the async function;

\n

Usage

\n
import {useAsyncRetry} from 'react-use';\n\n// Returns a Promise that resolves after one second.\nconst fn = () => new Promise((resolve, reject) => {\n  setTimeout(() => {\n    if (Math.random() > 0.5) {\n      reject(new Error('Random error!'));\n    } else {\n      resolve('RESOLVED');\n    }\n  }, 1000);\n});\n\nconst Demo = () => {\n  const state = useAsyncRetry(fn);\n\n  return (\n    <div>\n      {state.loading?\n        <div>Loading...</div>\n        : state.error?\n        <div>Error...</div>\n        : <div>Value: {state.value}</div>\n      }\n      {!state.loading?\n        <a href='javascript:void 0' onClick={() => state.retry()}>Retry</a>\n        : null\n      }\n    </div>\n  );\n};
\n

Reference

\n
useAsyncRetry(fn, args?: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useAudio({src:"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3",autoPlay:!0}),audio=_a[0],state=_a[1],controls=_a[2];_a[3];return React.createElement("div",null,audio,React.createElement("pre",null,JSON.stringify(state,null,2)),React.createElement("button",{onClick:controls.pause},"Pause"),React.createElement("button",{onClick:controls.play},"Play"),React.createElement("br",null),React.createElement("button",{onClick:controls.mute},"Mute"),React.createElement("button",{onClick:controls.unmute},"Un-mute"),React.createElement("br",null),React.createElement("button",{onClick:function(){return controls.volume(.1)}},"Volume: 10%"),React.createElement("button",{onClick:function(){return controls.volume(.5)}},"Volume: 50%"),React.createElement("button",{onClick:function(){return controls.volume(1)}},"Volume: 100%"),React.createElement("br",null),React.createElement("button",{onClick:function(){return controls.seek(state.time-5)}},"-5 sec"),React.createElement("button",{onClick:function(){return controls.seek(state.time+5)}},"+5 sec"))};react_1.storiesOf("UI|useAudio",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(603)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAudio

\n

Creates <audio> element, tracks its state and exposes playback controls.

\n

Usage

\n
import {useAudio} from 'react-use';\n\nconst Demo = () => {\n  const [audio, state, controls, ref] = useAudio({\n    src: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3',\n    autoPlay: true,\n  });\n\n  return (\n    <div>\n      {audio}\n      <pre>{JSON.stringify(state, null, 2)}</pre>\n      <button onClick={controls.pause}>Pause</button>\n      <button onClick={controls.play}>Play</button>\n      <br/>\n      <button onClick={controls.mute}>Mute</button>\n      <button onClick={controls.unmute}>Un-mute</button>\n      <br/>\n      <button onClick={() => controls.volume(.1)}>Volume: 10%</button>\n      <button onClick={() => controls.volume(.5)}>Volume: 50%</button>\n      <button onClick={() => controls.volume(1)}>Volume: 100%</button>\n      <br/>\n      <button onClick={() => controls.seek(state.time - 5)}>-5 sec</button>\n      <button onClick={() => controls.seek(state.time + 5)}>+5 sec</button>\n    </div>\n  );\n};
\n

Reference

\n
const [audio, state, controls, ref] = useAudio(props);\nconst [audio, state, controls] = useAudio(<audio {...props}/>);
\n

audio is React's <audio> element that you have to insert somewhere in your\nrender tree, for example:

\n
<div>{audio}</div>
\n

state tracks the state of the audio and has the following shape:

\n
{\n  "buffered": [\n    {\n      "start": 0,\n      "end": 425.952625\n    }\n  ],\n  "time": 5.244996,\n  "duration": 425.952625,\n  "isPlaying": false,\n  "muted": false,\n  "volume": 1\n}
\n

controls is a list collection of methods that allow you to control the\nplayback of the audio, it has the following interface:

\n
interface AudioControls {\n  play: () => Promise<void> | void;\n  pause: () => void;\n  mute: () => void;\n  unmute: () => void;\n  volume: (volume: number) => void;\n  seek: (time: number) => void;\n}
\n

ref is a React reference to HTML <audio> element, you can access the element by\nref.current, note that it may be null.

\n

And finally, props — all props that <audio> accepts.

\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var state=__1.useBattery();return React.createElement("pre",null,JSON.stringify(state,null,2))};react_1.storiesOf("Sensors|useBattery",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(605)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useBattery

\n

React sensor hook that tracks battery status.

\n

Usage

\n
import {useBattery} from 'react-use';\n\nconst Demo = () => {\n  const state = useBattery();\n\n  return (\n    <pre>\n      {JSON.stringify(state, null, 2)}\n    </pre>\n  );\n};
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useToggle(!1),dirty=_a[0],toggleDirty=_a[1];return __1.useBeforeUnload(dirty,"You have unsaved changes, are you sure?"),React.createElement("div",null,dirty&&React.createElement("p",null,"Try to reload or close tab"),React.createElement("button",{onClick:function(){return toggleDirty()}},dirty?"Disable":"Enable"))};react_1.storiesOf("Side effects|useBeforeUnload",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(607)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useBeforeUnload

\n

React side-effect hook that shows browser alert when user try to reload or close the page.

\n

Usage

\n
import {useBeforeUnload} from 'react-use';\n\nconst Demo = () => {\n  const [dirty, toggleDirty] = useToggle(false);\n  useBeforeUnload(dirty, 'You have unsaved changes, are you sure?');\n\n  return (\n    <div>\n      {dirty && <p>Try to reload or close tab</p>}\n      <button onClick={() => toggleDirty()}>{dirty ? 'Disable' : 'Enable'}</button>\n    </div>\n  );\n};
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useBoolean(!0),on=_a[0],toggle=_a[1];return React.createElement("div",null,React.createElement("div",null,on?"ON":"OFF"),React.createElement("button",{onClick:function(){return toggle()}},"Toggle"),React.createElement("button",{onClick:function(){return toggle(!0)}},"set ON"),React.createElement("button",{onClick:function(){return toggle(!1)}},"set OFF"))};react_1.storiesOf("State|useBoolean",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(248)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),react_2=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var ref=react_2.useRef(null);return __1.useClickAway(ref,function(){alert("OUTSIDE CLICKED")}),React.createElement("div",{ref:ref,style:{width:200,height:200,background:"red"}})};react_1.storiesOf("UI|useClickAway",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(610)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useClickAway

\n

React UI hook that triggers a callback when user\nclicks outside the target element.

\n

Usage

\n
import {useClickAway} from 'react-use';\n\nconst Demo = () => {\n  const ref = useRef(null);\n  useClickAway(ref, () => {\n    alert('OUTSIDE CLICKED');\n  });\n\n  return (\n    <div ref={ref} style={{\n      width: 200,\n      height: 200,\n      background: 'red',\n    }} />\n  );\n};
\n

Reference

\n
useClickAway(ref, onMouseEvent)\nuseClickAway(ref, onMouseEvent, ['click'])\nuseClickAway(ref, onMouseEvent, ['mousedown', 'touchstart'])
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=React.useState(""),text=_a[0],setText=_a[1],_b=__1.useCopyToClipboard(),state=_b[0],copyToClipboard=_b[1];return React.createElement("div",null,React.createElement("input",{value:text,onChange:function(e){return setText(e.target.value)}}),React.createElement("button",{type:"button",onClick:function(){return copyToClipboard(text)}},"copy text"),state.error?React.createElement("p",null,"Unable to copy value: ",state.error.message):state.value&&React.createElement(React.Fragment,null,React.createElement("p",null,"Copied ",state.value," ",state.noUserInteraction?"without":"with"," user interaction"),React.createElement("input",{type:"text",placeholder:"Paste it in here to check"})))};react_1.storiesOf("Side-effects|useCopyToClipboard",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(612)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useCopyToClipboard

\n

Copy text to a user's clipboard.

\n

Usage

\n
const Demo = () => {\n  const [text, setText] = React.useState('');\n  const [state, copyToClipboard] = useCopyToClipboard();\n\n  return (\n    <div>\n      <input value={text} onChange={e => setText(e.target.value)} />\n      <button type="button" onClick={() => copyToClipboard(text)}>copy text</button>\n      {state.error\n        ? <p>Unable to copy value: {state.error.message}</p>\n        : state.value && <p>Copied {state.value}</p>}\n    </div>\n  )\n\n  const [text, setText] = React.useState('');\n  const [copied, copyToClipboard] = useCopyToClipboard(text);\n\n  return (\n    <div>\n      <input value={text} onChange={e => setText(e.target.value)} />\n      <button type="button" onClick={copyToClipboard}>copy text</button>\n      <div>Copied: {copied ? 'Yes' : 'No'}</div>\n    </div>\n  )\n}
\n

Reference

\n
const [state, copyToClipboard] = useCopyToClipboard();
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useCounter(5),value=_a[0],_b=_a[1],inc=_b.inc,dec=_b.dec,get=_b.get,set=_b.set,reset=_b.reset;return React.createElement("div",null,React.createElement("div",null,value," is ",get()),React.createElement("button",{onClick:function(){return inc()}},"Increment"),React.createElement("button",{onClick:function(){return dec()}},"Decrement"),React.createElement("button",{onClick:function(){return inc(5)}},"Increment (+5)"),React.createElement("button",{onClick:function(){return dec(5)}},"Decrement (-5)"),React.createElement("button",{onClick:function(){return set(100)}},"Set 100"),React.createElement("button",{onClick:function(){return reset()}},"Reset"),React.createElement("button",{onClick:function(){return reset(25)}},"Reset (25)"))};react_1.storiesOf("State|useCounter",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(614)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useCounter

\n

React state hook that tracks a numeric value.

\n

useNumber is an alias for useCounter.

\n

Usage

\n
import {useCounter, useNumber} from 'react-use';\n\nconst Demo = () => {\n  const [value, {inc, dec, get, set, reset}] = useCounter(5);\n\n  return (\n    <div>\n      <div>{value} is {get()}</div>\n      <button onClick={() => inc()}>Increment</button>\n      <button onClick={() => dec()}>Decrement</button>\n      <button onClick={() => inc(5)}>Increment (+5)</button>\n      <button onClick={() => dec(5)}>Decrement (-5)</button>\n      <button onClick={() => set(100)}>Set 100</button>\n      <button onClick={() => reset()}>Reset</button>\n      <button onClick={() => reset(25)}>Reset (25)</button>\n    </div>\n  );\n};
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var className=__1.useCss({color:"red",border:"1px solid red","&:hover":{color:"blue"}});return React.createElement("div",{className:className},"hello")};react_1.storiesOf("UI|useCss",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(616)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useCss

\n

React UI hook that changes CSS dynamically. Works like "virtual CSS" —\nit re-renders only CSS rules that change. It is different from inline styles, because\nyou can use media queries and pseudo selectors.

\n

Usage

\n
import {useCss} from 'react-use';\n\nconst Demo = () => {\n  const className = useCss({\n    color: 'red',\n    border: '1px solid red',\n    '&:hover': {\n      color: 'blue',\n    },\n  });\n\n  return (\n    <div className={className}>\n      Hover me!\n    </div>\n  );\n};
\n

Examples

\n
const className = useCss({\n  color: 'tomato',\n  '&:hover': {\n    color: 'orange',\n  },\n});\n\nconst className = useCss({\n  svg: {\n    fill: 'tomato',\n  },\n  '.global_class &:hover svg': {\n    fill: 'orange',\n  },\n});\n\nconst className = useCss({\n  color: 'tomato',\n  '@media only screen and (max-width: 600px)': {\n    color: 'orange',\n    '&:hover': {\n      color: 'red',\n    }\n  },\n});
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=React.useState("Typing stopped"),state=_a[0],setState=_a[1],_b=React.useState(""),val=_b[0],setVal=_b[1],_c=React.useState(""),debouncedValue=_c[0],setDebouncedValue=_c[1];return __1.useDebounce(function(){setState("Typing stopped"),setDebouncedValue(val)},2e3,[val]),React.createElement("div",null,React.createElement("input",{type:"text",value:val,placeholder:"Debounced input",onChange:function(_a){var currentTarget=_a.currentTarget;setState("Waiting for typing to stop..."),setVal(currentTarget.value)}}),React.createElement("div",null,state),React.createElement("div",null,"Debounced value: ",debouncedValue))};react_1.storiesOf("Side effects|useDebounce",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(618)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useDebounce

\n

React hook that delays invoking a function until after wait milliseconds have elapsed since the last time the debounced function was invoked.

\n

The third argument is the array of values that the debounce depends on, in the same manner as useEffect. The debounce timeout will start when one of the values changes.

\n

Usage

\n
import React, { useState } from 'react';\nimport { useDebounce } from 'react-use';\n\nconst Demo = () => {\n  const [state, setState] = React.useState('Typing stopped');\n  const [val, setVal] = React.useState('');\n  const [debouncedValue, setDebouncedValue] = React.useState('');\n\n  useDebounce(\n    () => {\n      setState('Typing stopped');\n      setDebouncedValue(val);\n    },\n    2000,\n    [val]\n  );\n\n  return (\n    <div>\n      <input\n        type="text"\n        value={val}\n        placeholder="Debounced input"\n        onChange={({ currentTarget }) => {\n          setState('Waiting for typing to stop...');\n          setVal(currentTarget.value);\n        }}\n      />\n      <div>{state}</div>\n      <div>Debounced value: {debouncedValue}</div>\n    </div>\n  );\n};
\n

Reference

\n
useDebounce(fn, ms: number, args: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useCounter(0),countNormal=_a[0],incNormal=_a[1].inc,_b=__1.useCounter(0),countDeep=_b[0],incDeep=_b[1].inc,options={max:500};return React.useEffect(function(){countNormal",module).add("Demo",function(){return React.createElement("div",null,'Press "q" key!',React.createElement(UseKey_1.default,{filter:"q",fn:function(){return alert("Q pressed!")}}))})}).call(this,__webpack_require__(1)(module))},function(module,exports,__webpack_require__){"use strict";var __rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(null!=s&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(p=Object.getOwnPropertySymbols(s);i{req.keys().forEach(filename=>req(filename))},module)}.call(this,__webpack_require__(358)(module))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(module,exports,__webpack_require__){var map={"./__stories__/createMemo.story.tsx":518,"./__stories__/createReducer.story.tsx":592,"./__stories__/useAsync.story.tsx":595,"./__stories__/useAsyncFn.story.tsx":597,"./__stories__/useAsyncRetry.story.tsx":599,"./__stories__/useAudio.story.tsx":601,"./__stories__/useBattery.story.tsx":603,"./__stories__/useBeforeUnload.story.tsx":605,"./__stories__/useBoolean.story.tsx":607,"./__stories__/useClickAway.story.tsx":608,"./__stories__/useCopyToClipboard.story.tsx":610,"./__stories__/useCounter.story.tsx":612,"./__stories__/useCss.story.tsx":614,"./__stories__/useDebounce.story.tsx":616,"./__stories__/useDeepCompareEffect.story.tsx":618,"./__stories__/useDrop.story.tsx":620,"./__stories__/useDropArea.story.tsx":634,"./__stories__/useEffectOnce.story.tsx":635,"./__stories__/useEvent.story.tsx":637,"./__stories__/useFavicon.story.tsx":639,"./__stories__/useFullscreen.story.tsx":641,"./__stories__/useGeolocation.story.tsx":643,"./__stories__/useGetSet.story.tsx":645,"./__stories__/useGetSetState.story.tsx":647,"./__stories__/useHover.story.tsx":649,"./__stories__/useHoverDirty.story.tsx":650,"./__stories__/useIdle.story.tsx":651,"./__stories__/useKey.story.tsx":653,"./__stories__/useKeyPress.story.tsx":655,"./__stories__/useKeyPressEvent.story.tsx":657,"./__stories__/useKeyboardJs.story.tsx":659,"./__stories__/useLifecycles.story.tsx":672,"./__stories__/useList.story.tsx":674,"./__stories__/useLocalStorage.story.tsx":676,"./__stories__/useLocation.story.tsx":678,"./__stories__/useLockBodyScroll.story.tsx":680,"./__stories__/useLogger.story.tsx":682,"./__stories__/useMap.story.tsx":684,"./__stories__/useMedia.story.tsx":686,"./__stories__/useMediaDevices.story.tsx":688,"./__stories__/useMotion.story.tsx":690,"./__stories__/useMount.story.tsx":692,"./__stories__/useMouse.story.tsx":694,"./__stories__/useMouseHovered.story.tsx":695,"./__stories__/useNetwork.story.tsx":696,"./__stories__/useObservable.story.tsx":698,"./__stories__/useOrientation.story.tsx":700,"./__stories__/usePageLeave.story.tsx":702,"./__stories__/usePrevious.story.tsx":704,"./__stories__/usePromise.story.tsx":706,"./__stories__/useRaf.story.tsx":708,"./__stories__/useRefMounted.story.tsx":710,"./__stories__/useScroll.story.tsx":712,"./__stories__/useSessionStorage.story.tsx":714,"./__stories__/useSetState.story.tsx":716,"./__stories__/useSize.story.tsx":718,"./__stories__/useSpeech.story.tsx":720,"./__stories__/useSpring.story.tsx":722,"./__stories__/useStartTyping.story.tsx":724,"./__stories__/useThrottle.story.tsx":726,"./__stories__/useThrottleFn.story.tsx":727,"./__stories__/useTimeout.story.tsx":728,"./__stories__/useTitle.story.tsx":730,"./__stories__/useToggle.story.tsx":732,"./__stories__/useTween.story.tsx":733,"./__stories__/useUnmount.story.tsx":735,"./__stories__/useUpdate.story.tsx":737,"./__stories__/useUpdateEffect.story.tsx":739,"./__stories__/useVideo.story.tsx":741,"./__stories__/useWait.story.tsx":743,"./__stories__/useWindowScroll.story.tsx":745,"./__stories__/useWindowSize.story.tsx":747,"./comps/__stories__/UseKey.story.tsx":749};function webpackContext(req){var id=webpackContextResolve(req);return __webpack_require__(id)}function webpackContextResolve(req){if(!__webpack_require__.o(map,req)){var e=new Error("Cannot find module '"+req+"'");throw e.code="MODULE_NOT_FOUND",e}return map[req]}webpackContext.keys=function webpackContextKeys(){return Object.keys(map)},webpackContext.resolve=webpackContextResolve,module.exports=webpackContext,webpackContext.id=517},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fibonacci=function(n){return 0===n?0:1===n?1:fibonacci(n-1)+fibonacci(n-2)},useMemoFibonacci=__1.createMemo(fibonacci),Demo=function(){var result=useMemoFibonacci(10);return React.createElement("div",null,"fib(10) = ",result)};react_1.storiesOf("State|createMemo",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(591)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0);exports.default=function(fn){return function(){for(var args=[],_i=0;_i=48&&keyCode<=57||keyCode>=65&&keyCode<=90))&&onStartTyping(event)};return document.addEventListener("keydown",keydown),function(){document.removeEventListener("keydown",keydown)}},[])}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),useUnmount_1=__webpack_require__(157);exports.default=function(value,ms){void 0===ms&&(ms=200);var _a=react_1.useState(value),state=_a[0],setState=_a[1],timeout=react_1.useRef(null),nextValue=react_1.useRef(null),hasNextValue=react_1.useRef(0);return react_1.useEffect(function(){if(timeout.current)nextValue.current=value,hasNextValue.current=!0;else{setState(value);var timeoutCallback_1=function(){hasNextValue.current?(hasNextValue.current=!1,setState(nextValue.current),timeout.current=setTimeout(timeoutCallback_1,ms)):timeout.current=null};timeout.current=setTimeout(timeoutCallback_1,ms)}},[value]),useUnmount_1.default(function(){clearTimeout(timeout.current)}),state}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),useUnmount_1=__webpack_require__(157);exports.default=function(fn,ms,args){void 0===ms&&(ms=200);var _a=react_1.useState(null),state=_a[0],setState=_a[1],timeout=react_1.useRef(null),nextArgs=react_1.useRef(null),hasNextArgs=react_1.useRef(!1);return react_1.useEffect(function(){if(timeout.current)nextArgs.current=args,hasNextArgs.current=!0;else{setState(fn.apply(void 0,args));var timeoutCallback_1=function(){hasNextArgs.current?(hasNextArgs.current=!1,setState(fn.apply(void 0,nextArgs.current)),timeout.current=setTimeout(timeoutCallback_1,ms)):timeout.current=null};timeout.current=setTimeout(timeoutCallback_1,ms)}},args),useUnmount_1.default(function(){clearTimeout(timeout.current)}),state}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0);exports.default=function(ms){void 0===ms&&(ms=0);var _a=react_1.useState(!1),ready=_a[0],setReady=_a[1];return react_1.useEffect(function(){var timer=setTimeout(function(){setReady(!0)},ms);return function(){clearTimeout(timer)}},[ms]),ready}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0);exports.default=function(title){react_1.useEffect(function(){document.title=title},[title])}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ts_easing_1=__webpack_require__(585),useRaf_1=__webpack_require__(247);exports.default=function(easingName,ms,delay){return void 0===easingName&&(easingName="inCirc"),void 0===ms&&(ms=200),void 0===delay&&(delay=0),(0,ts_easing_1.easing[easingName])(useRaf_1.default(ms,delay))}},,function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var useVideo=__webpack_require__(238).default("video");exports.default=useVideo},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_wait_1=__webpack_require__(588);react_wait_1.useWait.Waiter=react_wait_1.Waiter,exports.default=react_wait_1.useWait},,function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),util_1=__webpack_require__(19);exports.default=function(){var frame=react_1.useRef(0),_a=react_1.useState({x:util_1.isClient?window.scrollX:0,y:util_1.isClient?window.scrollY:0}),state=_a[0],setState=_a[1];return react_1.useEffect(function(){var handler=function(){cancelAnimationFrame(frame.current),frame.current=requestAnimationFrame(function(){setState({x:window.scrollX,y:window.scrollY})})};return window.addEventListener("scroll",handler,{capture:!1,passive:!0}),function(){cancelAnimationFrame(frame.current),window.removeEventListener("scroll",handler)}},[]),state}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(0),util_1=__webpack_require__(19);exports.default=function(initialWidth,initialHeight){void 0===initialWidth&&(initialWidth=1/0),void 0===initialHeight&&(initialHeight=1/0);var _a=react_1.useState({width:util_1.isClient?window.innerWidth:initialWidth,height:util_1.isClient?window.innerHeight:initialHeight}),state=_a[0],setState=_a[1];return react_1.useEffect(function(){if(util_1.isClient){var handler_1=function(){setState({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",handler_1),function(){return window.removeEventListener("resize",handler_1)}}},[]),state}},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

createMemo

\n

Hook factory, receives a function to be memoized, returns a memoized React hook,\nwhich receives the same arguments and returns the same result as the original function.

\n

Usage

\n
import {createMemo} from 'react-use';\n\nconst fibonacci = n => {\n  if (n === 0) return 0;\n  if (n === 1) return 1;\n  return fibonacci(n - 1) + fibonacci(n - 2);\n};\n\nconst useMemoFibonacci = createMemo(fibonacci);\n\nconst Demo = () => {\n  const result = useMemoFibonacci(10);\n\n  return (\n    <div>\n      fib(10) = {result}\n    </div>\n  );\n};
\n

Reference

\n
const useMemoFn = createMemo(fn);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),redux_logger_1=__webpack_require__(593),redux_thunk_1=__webpack_require__(594),useThunkReducer=__webpack_require__(3).createReducer(redux_thunk_1.default,redux_logger_1.default);function init(initialCount){return{count:initialCount}}function reducer(state,action){switch(action.type){case"increment":return{count:state.count+1};case"decrement":return{count:state.count-1};case"reset":return init(action.payload);default:throw new Error}}var Demo=function(_a){var _b=_a.initialCount,initialCount=void 0===_b?1:_b,addAndReset=React.useCallback(function(){return function(dispatch2){dispatch2({type:"increment"}),setTimeout(function(){dispatch2({type:"reset",payload:initialCount})},1e3)}},[initialCount]),_c=useThunkReducer(reducer,initialCount,init),state=_c[0],dispatch=_c[1];return React.createElement("div",null,React.createElement("pre",null,JSON.stringify(state,null,2)),React.createElement("button",{onClick:function(){return dispatch(addAndReset())}},"Add and reset"),React.createElement("button",{onClick:function(){return dispatch({type:"reset",payload:initialCount})}},"Reset"),React.createElement("button",{onClick:function(){return dispatch({type:"increment"})}},"+"),React.createElement("button",{onClick:function(){return dispatch({type:"decrement"})}},"-"))};react_1.storiesOf("State|createReducer",module).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},,,function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fn=function(){return new Promise(function(resolve){setTimeout(function(){resolve("RESOLVED")},1e3)})},Demo=function(){var _a=__1.useAsync(fn),loading=_a.loading,error=_a.error,value=_a.value;return React.createElement("div",null,loading?React.createElement("div",null,"Loading..."):error?React.createElement("div",null,"Error: ",error.message):React.createElement("div",null,"Value: ",value))};react_1.storiesOf("Side effects|useAsync",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(596)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAsync

\n

React hook that resolves an async function or a function that returns\na promise;

\n

Usage

\n
import {useAsync} from 'react-use';\n\n// Returns a Promise that resolves after one second.\nconst fn = () => new Promise((resolve) => {\n  setTimeout(() => {\n    resolve('RESOLVED');\n  }, 1000);\n});\n\nconst Demo = () => {\n  const state = useAsync(fn);\n\n  return (\n    <div>\n      {state.loading?\n        <div>Loading...</div>\n        : state.error?\n        <div>Error...</div>\n        : <div>Value: {state.value}</div>\n      }\n    </div>\n  );\n};
\n

Reference

\n
useAsync(fn, args?: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fn=function(){return new Promise(function(resolve,reject){setTimeout(function(){Math.random()>.5?reject(new Error("Random error!")):resolve("RESOLVED")},1e3)})},Demo=function(){var _a=__1.useAsyncFn(fn),_b=_a[0],loading=_b.loading,error=_b.error,value=_b.value,callback=_a[1];return React.createElement("div",null,loading?React.createElement("div",null,"Loading..."):error?React.createElement("div",null,"Error: ",error.message):value&&React.createElement("div",null,"Value: ",value),React.createElement("button",{onClick:function(){return callback()}},"Start"))};react_1.storiesOf("Side effects|useAsyncFn",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(598)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAsyncFn

\n

React hook that returns state and a callback for an async function or a\nfunction that returns a promise. The state is of the same shape as useAsync.

\n

Usage

\n
import {useAsyncFn} from 'react-use';\n\nconst Demo = (url) => {\n  const [state, fetch] = useAsyncFn(async () => {\n    const response = await fetch(url);\n    const result = await response.text();\n    return result\n  }, [url]);\n\n  return (\n    <div>\n      {state.loading\n        ? <div>Loading...</div>\n        : state.error\n          ? <div>Error: {state.error.message}</div>\n          : state.value && <div>Value: {state.value}</div>\n      }\n      <button onClick={() => fetch()}>Start loading</button>\n    </div>\n  );\n};
\n

Reference

\n
useAsyncFn(fn, deps?: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),fnRetry=function(){return new Promise(function(resolve,reject){setTimeout(function(){Math.random()>.5?reject(new Error("Random error!")):resolve("RESOLVED")},1e3)})},DemoRetry=function(){var _a=__1.useAsyncRetry(fnRetry),loading=_a.loading,value=_a.value,error=_a.error,retry=_a.retry;return React.createElement("div",null,loading?React.createElement("div",null,"Loading..."):error?React.createElement("div",null,"Error: ",error.message):React.createElement("div",null,"Value: ",value),React.createElement("button",{onClick:function(){return retry()}},"Retry"))};react_1.storiesOf("Side effects|useAsyncRetry",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(600)})}).add("Demo",function(){return React.createElement(DemoRetry,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAsyncRetry

\n

Uses useAsync with an additional retry method to easily retry/refresh the async function;

\n

Usage

\n
import {useAsyncRetry} from 'react-use';\n\n// Returns a Promise that resolves after one second.\nconst fn = () => new Promise((resolve, reject) => {\n  setTimeout(() => {\n    if (Math.random() > 0.5) {\n      reject(new Error('Random error!'));\n    } else {\n      resolve('RESOLVED');\n    }\n  }, 1000);\n});\n\nconst Demo = () => {\n  const state = useAsyncRetry(fn);\n\n  return (\n    <div>\n      {state.loading?\n        <div>Loading...</div>\n        : state.error?\n        <div>Error...</div>\n        : <div>Value: {state.value}</div>\n      }\n      {!state.loading?\n        <a href='javascript:void 0' onClick={() => state.retry()}>Retry</a>\n        : null\n      }\n    </div>\n  );\n};
\n

Reference

\n
useAsyncRetry(fn, args?: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useAudio({src:"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3",autoPlay:!0}),audio=_a[0],state=_a[1],controls=_a[2];_a[3];return React.createElement("div",null,audio,React.createElement("pre",null,JSON.stringify(state,null,2)),React.createElement("button",{onClick:controls.pause},"Pause"),React.createElement("button",{onClick:controls.play},"Play"),React.createElement("br",null),React.createElement("button",{onClick:controls.mute},"Mute"),React.createElement("button",{onClick:controls.unmute},"Un-mute"),React.createElement("br",null),React.createElement("button",{onClick:function(){return controls.volume(.1)}},"Volume: 10%"),React.createElement("button",{onClick:function(){return controls.volume(.5)}},"Volume: 50%"),React.createElement("button",{onClick:function(){return controls.volume(1)}},"Volume: 100%"),React.createElement("br",null),React.createElement("button",{onClick:function(){return controls.seek(state.time-5)}},"-5 sec"),React.createElement("button",{onClick:function(){return controls.seek(state.time+5)}},"+5 sec"))};react_1.storiesOf("UI|useAudio",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(602)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useAudio

\n

Creates <audio> element, tracks its state and exposes playback controls.

\n

Usage

\n
import {useAudio} from 'react-use';\n\nconst Demo = () => {\n  const [audio, state, controls, ref] = useAudio({\n    src: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3',\n    autoPlay: true,\n  });\n\n  return (\n    <div>\n      {audio}\n      <pre>{JSON.stringify(state, null, 2)}</pre>\n      <button onClick={controls.pause}>Pause</button>\n      <button onClick={controls.play}>Play</button>\n      <br/>\n      <button onClick={controls.mute}>Mute</button>\n      <button onClick={controls.unmute}>Un-mute</button>\n      <br/>\n      <button onClick={() => controls.volume(.1)}>Volume: 10%</button>\n      <button onClick={() => controls.volume(.5)}>Volume: 50%</button>\n      <button onClick={() => controls.volume(1)}>Volume: 100%</button>\n      <br/>\n      <button onClick={() => controls.seek(state.time - 5)}>-5 sec</button>\n      <button onClick={() => controls.seek(state.time + 5)}>+5 sec</button>\n    </div>\n  );\n};
\n

Reference

\n
const [audio, state, controls, ref] = useAudio(props);\nconst [audio, state, controls] = useAudio(<audio {...props}/>);
\n

audio is React's <audio> element that you have to insert somewhere in your\nrender tree, for example:

\n
<div>{audio}</div>
\n

state tracks the state of the audio and has the following shape:

\n
{\n  "buffered": [\n    {\n      "start": 0,\n      "end": 425.952625\n    }\n  ],\n  "time": 5.244996,\n  "duration": 425.952625,\n  "isPlaying": false,\n  "muted": false,\n  "volume": 1\n}
\n

controls is a list collection of methods that allow you to control the\nplayback of the audio, it has the following interface:

\n
interface AudioControls {\n  play: () => Promise<void> | void;\n  pause: () => void;\n  mute: () => void;\n  unmute: () => void;\n  volume: (volume: number) => void;\n  seek: (time: number) => void;\n}
\n

ref is a React reference to HTML <audio> element, you can access the element by\nref.current, note that it may be null.

\n

And finally, props — all props that <audio> accepts.

\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var state=__1.useBattery();return React.createElement("pre",null,JSON.stringify(state,null,2))};react_1.storiesOf("Sensors|useBattery",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(604)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useBattery

\n

React sensor hook that tracks battery status.

\n

Usage

\n
import {useBattery} from 'react-use';\n\nconst Demo = () => {\n  const state = useBattery();\n\n  return (\n    <pre>\n      {JSON.stringify(state, null, 2)}\n    </pre>\n  );\n};
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useToggle(!1),dirty=_a[0],toggleDirty=_a[1];return __1.useBeforeUnload(dirty,"You have unsaved changes, are you sure?"),React.createElement("div",null,dirty&&React.createElement("p",null,"Try to reload or close tab"),React.createElement("button",{onClick:function(){return toggleDirty()}},dirty?"Disable":"Enable"))};react_1.storiesOf("Side effects|useBeforeUnload",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(606)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useBeforeUnload

\n

React side-effect hook that shows browser alert when user try to reload or close the page.

\n

Usage

\n
import {useBeforeUnload} from 'react-use';\n\nconst Demo = () => {\n  const [dirty, toggleDirty] = useToggle(false);\n  useBeforeUnload(dirty, 'You have unsaved changes, are you sure?');\n\n  return (\n    <div>\n      {dirty && <p>Try to reload or close tab</p>}\n      <button onClick={() => toggleDirty()}>{dirty ? 'Disable' : 'Enable'}</button>\n    </div>\n  );\n};
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useBoolean(!0),on=_a[0],toggle=_a[1];return React.createElement("div",null,React.createElement("div",null,on?"ON":"OFF"),React.createElement("button",{onClick:function(){return toggle()}},"Toggle"),React.createElement("button",{onClick:function(){return toggle(!0)}},"set ON"),React.createElement("button",{onClick:function(){return toggle(!1)}},"set OFF"))};react_1.storiesOf("State|useBoolean",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(248)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),react_2=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var ref=react_2.useRef(null);return __1.useClickAway(ref,function(){alert("OUTSIDE CLICKED")}),React.createElement("div",{ref:ref,style:{width:200,height:200,background:"red"}})};react_1.storiesOf("UI|useClickAway",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(609)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useClickAway

\n

React UI hook that triggers a callback when user\nclicks outside the target element.

\n

Usage

\n
import {useClickAway} from 'react-use';\n\nconst Demo = () => {\n  const ref = useRef(null);\n  useClickAway(ref, () => {\n    alert('OUTSIDE CLICKED');\n  });\n\n  return (\n    <div ref={ref} style={{\n      width: 200,\n      height: 200,\n      background: 'red',\n    }} />\n  );\n};
\n

Reference

\n
useClickAway(ref, onMouseEvent)\nuseClickAway(ref, onMouseEvent, ['click'])\nuseClickAway(ref, onMouseEvent, ['mousedown', 'touchstart'])
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=React.useState(""),text=_a[0],setText=_a[1],_b=__1.useCopyToClipboard(),state=_b[0],copyToClipboard=_b[1];return React.createElement("div",null,React.createElement("input",{value:text,onChange:function(e){return setText(e.target.value)}}),React.createElement("button",{type:"button",onClick:function(){return copyToClipboard(text)}},"copy text"),state.error?React.createElement("p",null,"Unable to copy value: ",state.error.message):state.value&&React.createElement(React.Fragment,null,React.createElement("p",null,"Copied ",state.value," ",state.noUserInteraction?"without":"with"," user interaction"),React.createElement("input",{type:"text",placeholder:"Paste it in here to check"})))};react_1.storiesOf("Side-effects|useCopyToClipboard",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(611)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useCopyToClipboard

\n

Copy text to a user's clipboard.

\n

Usage

\n
const Demo = () => {\n  const [text, setText] = React.useState('');\n  const [state, copyToClipboard] = useCopyToClipboard();\n\n  return (\n    <div>\n      <input value={text} onChange={e => setText(e.target.value)} />\n      <button type="button" onClick={() => copyToClipboard(text)}>copy text</button>\n      {state.error\n        ? <p>Unable to copy value: {state.error.message}</p>\n        : state.value && <p>Copied {state.value}</p>}\n    </div>\n  )\n\n  const [text, setText] = React.useState('');\n  const [copied, copyToClipboard] = useCopyToClipboard(text);\n\n  return (\n    <div>\n      <input value={text} onChange={e => setText(e.target.value)} />\n      <button type="button" onClick={copyToClipboard}>copy text</button>\n      <div>Copied: {copied ? 'Yes' : 'No'}</div>\n    </div>\n  )\n}
\n

Reference

\n
const [state, copyToClipboard] = useCopyToClipboard();
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useCounter(5),value=_a[0],_b=_a[1],inc=_b.inc,dec=_b.dec,get=_b.get,set=_b.set,reset=_b.reset;return React.createElement("div",null,React.createElement("div",null,value," is ",get()),React.createElement("button",{onClick:function(){return inc()}},"Increment"),React.createElement("button",{onClick:function(){return dec()}},"Decrement"),React.createElement("button",{onClick:function(){return inc(5)}},"Increment (+5)"),React.createElement("button",{onClick:function(){return dec(5)}},"Decrement (-5)"),React.createElement("button",{onClick:function(){return set(100)}},"Set 100"),React.createElement("button",{onClick:function(){return reset()}},"Reset"),React.createElement("button",{onClick:function(){return reset(25)}},"Reset (25)"))};react_1.storiesOf("State|useCounter",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(613)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useCounter

\n

React state hook that tracks a numeric value.

\n

useNumber is an alias for useCounter.

\n

Usage

\n
import {useCounter, useNumber} from 'react-use';\n\nconst Demo = () => {\n  const [value, {inc, dec, get, set, reset}] = useCounter(5);\n\n  return (\n    <div>\n      <div>{value} is {get()}</div>\n      <button onClick={() => inc()}>Increment</button>\n      <button onClick={() => dec()}>Decrement</button>\n      <button onClick={() => inc(5)}>Increment (+5)</button>\n      <button onClick={() => dec(5)}>Decrement (-5)</button>\n      <button onClick={() => set(100)}>Set 100</button>\n      <button onClick={() => reset()}>Reset</button>\n      <button onClick={() => reset(25)}>Reset (25)</button>\n    </div>\n  );\n};
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var className=__1.useCss({color:"red",border:"1px solid red","&:hover":{color:"blue"}});return React.createElement("div",{className:className},"hello")};react_1.storiesOf("UI|useCss",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(615)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useCss

\n

React UI hook that changes CSS dynamically. Works like "virtual CSS" —\nit re-renders only CSS rules that change. It is different from inline styles, because\nyou can use media queries and pseudo selectors.

\n

Usage

\n
import {useCss} from 'react-use';\n\nconst Demo = () => {\n  const className = useCss({\n    color: 'red',\n    border: '1px solid red',\n    '&:hover': {\n      color: 'blue',\n    },\n  });\n\n  return (\n    <div className={className}>\n      Hover me!\n    </div>\n  );\n};
\n

Examples

\n
const className = useCss({\n  color: 'tomato',\n  '&:hover': {\n    color: 'orange',\n  },\n});\n\nconst className = useCss({\n  svg: {\n    fill: 'tomato',\n  },\n  '.global_class &:hover svg': {\n    fill: 'orange',\n  },\n});\n\nconst className = useCss({\n  color: 'tomato',\n  '@media only screen and (max-width: 600px)': {\n    color: 'orange',\n    '&:hover': {\n      color: 'red',\n    }\n  },\n});
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=React.useState("Typing stopped"),state=_a[0],setState=_a[1],_b=React.useState(""),val=_b[0],setVal=_b[1],_c=React.useState(""),debouncedValue=_c[0],setDebouncedValue=_c[1];return __1.useDebounce(function(){setState("Typing stopped"),setDebouncedValue(val)},2e3,[val]),React.createElement("div",null,React.createElement("input",{type:"text",value:val,placeholder:"Debounced input",onChange:function(_a){var currentTarget=_a.currentTarget;setState("Waiting for typing to stop..."),setVal(currentTarget.value)}}),React.createElement("div",null,state),React.createElement("div",null,"Debounced value: ",debouncedValue))};react_1.storiesOf("Side effects|useDebounce",module).add("Docs",function(){return React.createElement(ShowDocs_1.default,{md:__webpack_require__(617)})}).add("Demo",function(){return React.createElement(Demo,null)})}).call(this,__webpack_require__(1)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_exports__.default='

useDebounce

\n

React hook that delays invoking a function until after wait milliseconds have elapsed since the last time the debounced function was invoked.

\n

The third argument is the array of values that the debounce depends on, in the same manner as useEffect. The debounce timeout will start when one of the values changes.

\n

Usage

\n
import React, { useState } from 'react';\nimport { useDebounce } from 'react-use';\n\nconst Demo = () => {\n  const [state, setState] = React.useState('Typing stopped');\n  const [val, setVal] = React.useState('');\n  const [debouncedValue, setDebouncedValue] = React.useState('');\n\n  useDebounce(\n    () => {\n      setState('Typing stopped');\n      setDebouncedValue(val);\n    },\n    2000,\n    [val]\n  );\n\n  return (\n    <div>\n      <input\n        type="text"\n        value={val}\n        placeholder="Debounced input"\n        onChange={({ currentTarget }) => {\n          setState('Waiting for typing to stop...');\n          setVal(currentTarget.value);\n        }}\n      />\n      <div>{state}</div>\n      <div>Debounced value: {debouncedValue}</div>\n    </div>\n  );\n};
\n

Reference

\n
useDebounce(fn, ms: number, args: any[]);
\n'},function(module,exports,__webpack_require__){"use strict";(function(module){Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__webpack_require__(2),React=__webpack_require__(0),__1=__webpack_require__(3),ShowDocs_1=__webpack_require__(4),Demo=function(){var _a=__1.useCounter(0),countNormal=_a[0],incNormal=_a[1].inc,_b=__1.useCounter(0),countDeep=_b[0],incDeep=_b[1].inc,options={max:500};return React.useEffect(function(){countNormal",module).add("Demo",function(){return React.createElement("div",null,'Press "q" key!',React.createElement(UseKey_1.default,{filter:"q",fn:function(){return alert("Q pressed!")}}))})}).call(this,__webpack_require__(1)(module))},function(module,exports,__webpack_require__){"use strict";var __rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(null!=s&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(p=Object.getOwnPropertySymbols(s);i2?arguments[2]:{},props=keys(map);hasSymbols&&(props=concat.call(props,Object.getOwnPropertySymbols(map)));for(var i=0;i0?min(toInteger(argument),9007199254740991):0}},function(module,exports,__webpack_require__){var requireObjectCoercible=__webpack_require__(41);module.exports=function(argument){return Object(requireObjectCoercible(argument))}},function(module,exports,__webpack_require__){"use strict";var $=__webpack_require__(6),global=__webpack_require__(7),has=__webpack_require__(20),NATIVE_SYMBOL=__webpack_require__(181),DESCRIPTORS=__webpack_require__(13),IS_PURE=__webpack_require__(66),redefine=__webpack_require__(31),hiddenKeys=__webpack_require__(67),fails=__webpack_require__(8),shared=__webpack_require__(65),setToStringTag=__webpack_require__(47),uid=__webpack_require__(84),wellKnownSymbol=__webpack_require__(9),wrappedWellKnownSymbolModule=__webpack_require__(183),defineWellKnownSymbol=__webpack_require__(11),enumKeys=__webpack_require__(336),isArray=__webpack_require__(69),anObject=__webpack_require__(14),isObject=__webpack_require__(10),toObject=__webpack_require__(22),toIndexedObject=__webpack_require__(39),toPrimitive=__webpack_require__(64),createPropertyDescriptor=__webpack_require__(63),nativeObjectCreate=__webpack_require__(56),getOwnPropertyNamesModule=__webpack_require__(85),getOwnPropertyNamesExternal=__webpack_require__(337),getOwnPropertyDescriptorModule=__webpack_require__(53),definePropertyModule=__webpack_require__(18),propertyIsEnumerableModule=__webpack_require__(62),hide=__webpack_require__(26),objectKeys=__webpack_require__(55),getOwnPropertySymbolsModule=__webpack_require__(86),sharedKey=__webpack_require__(83),InternalStateModule=__webpack_require__(54),HIDDEN=sharedKey("hidden"),setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor("Symbol"),nativeGetOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,nativeDefineProperty=definePropertyModule.f,nativeGetOwnPropertyNames=getOwnPropertyNamesExternal.f,$Symbol=global.Symbol,JSON=global.JSON,nativeJSONStringify=JSON&&JSON.stringify,TO_PRIMITIVE=wellKnownSymbol("toPrimitive"),nativePropertyIsEnumerable=propertyIsEnumerableModule.f,SymbolRegistry=shared("symbol-registry"),AllSymbols=shared("symbols"),ObjectPrototypeSymbols=shared("op-symbols"),WellKnownSymbolsStore=shared("wks"),ObjectPrototype=Object.prototype,QObject=global.QObject,USE_SETTER=!QObject||!QObject.prototype||!QObject.prototype.findChild,setSymbolDescriptor=DESCRIPTORS&&fails(function(){return 7!=nativeObjectCreate(nativeDefineProperty({},"a",{get:function(){return nativeDefineProperty(this,"a",{value:7}).a}})).a})?function(it,key,D){var ObjectPrototypeDescriptor=nativeGetOwnPropertyDescriptor(ObjectPrototype,key);ObjectPrototypeDescriptor&&delete ObjectPrototype[key],nativeDefineProperty(it,key,D),ObjectPrototypeDescriptor&&it!==ObjectPrototype&&nativeDefineProperty(ObjectPrototype,key,ObjectPrototypeDescriptor)}:nativeDefineProperty,wrap=function(tag,description){var symbol=AllSymbols[tag]=nativeObjectCreate($Symbol.prototype);return setInternalState(symbol,{type:"Symbol",tag:tag,description:description}),DESCRIPTORS||(symbol.description=description),symbol},isSymbol=NATIVE_SYMBOL&&"symbol"==typeof $Symbol.iterator?function(it){return"symbol"==typeof it}:function(it){return Object(it)instanceof $Symbol},$defineProperty=function defineProperty(it,key,D){return it===ObjectPrototype&&$defineProperty(ObjectPrototypeSymbols,key,D),anObject(it),key=toPrimitive(key,!0),anObject(D),has(AllSymbols,key)?(D.enumerable?(has(it,HIDDEN)&&it[HIDDEN][key]&&(it[HIDDEN][key]=!1),D=nativeObjectCreate(D,{enumerable:createPropertyDescriptor(0,!1)})):(has(it,HIDDEN)||nativeDefineProperty(it,HIDDEN,createPropertyDescriptor(1,{})),it[HIDDEN][key]=!0),setSymbolDescriptor(it,key,D)):nativeDefineProperty(it,key,D)},$defineProperties=function defineProperties(it,P){anObject(it);for(var key,keys=enumKeys(P=toIndexedObject(P)),i=0,l=keys.length;l>i;)$defineProperty(it,key=keys[i++],P[key]);return it},$propertyIsEnumerable=function propertyIsEnumerable(key){var E=nativePropertyIsEnumerable.call(this,key=toPrimitive(key,!0));return!(this===ObjectPrototype&&has(AllSymbols,key)&&!has(ObjectPrototypeSymbols,key))&&(!(E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key])||E)},$getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){if(it=toIndexedObject(it),key=toPrimitive(key,!0),it!==ObjectPrototype||!has(AllSymbols,key)||has(ObjectPrototypeSymbols,key)){var D=nativeGetOwnPropertyDescriptor(it,key);return!D||!has(AllSymbols,key)||has(it,HIDDEN)&&it[HIDDEN][key]||(D.enumerable=!0),D}},$getOwnPropertyNames=function getOwnPropertyNames(it){for(var key,names=nativeGetOwnPropertyNames(toIndexedObject(it)),result=[],i=0;names.length>i;)has(AllSymbols,key=names[i++])||has(hiddenKeys,key)||result.push(key);return result},$getOwnPropertySymbols=function getOwnPropertySymbols(it){for(var key,IS_OP=it===ObjectPrototype,names=nativeGetOwnPropertyNames(IS_OP?ObjectPrototypeSymbols:toIndexedObject(it)),result=[],i=0;names.length>i;)!has(AllSymbols,key=names[i++])||IS_OP&&!has(ObjectPrototype,key)||result.push(AllSymbols[key]);return result};NATIVE_SYMBOL||(redefine(($Symbol=function Symbol(){if(this instanceof $Symbol)throw TypeError("Symbol is not a constructor");var description=void 0===arguments[0]?void 0:String(arguments[0]),tag=uid(description),setter=function(value){this===ObjectPrototype&&setter.call(ObjectPrototypeSymbols,value),has(this,HIDDEN)&&has(this[HIDDEN],tag)&&(this[HIDDEN][tag]=!1),setSymbolDescriptor(this,tag,createPropertyDescriptor(1,value))};return DESCRIPTORS&&USE_SETTER&&setSymbolDescriptor(ObjectPrototype,tag,{configurable:!0,set:setter}),wrap(tag,description)}).prototype,"toString",function toString(){return getInternalState(this).tag}),propertyIsEnumerableModule.f=$propertyIsEnumerable,definePropertyModule.f=$defineProperty,getOwnPropertyDescriptorModule.f=$getOwnPropertyDescriptor,getOwnPropertyNamesModule.f=getOwnPropertyNamesExternal.f=$getOwnPropertyNames,getOwnPropertySymbolsModule.f=$getOwnPropertySymbols,DESCRIPTORS&&(nativeDefineProperty($Symbol.prototype,"description",{configurable:!0,get:function description(){return getInternalState(this).description}}),IS_PURE||redefine(ObjectPrototype,"propertyIsEnumerable",$propertyIsEnumerable,{unsafe:!0})),wrappedWellKnownSymbolModule.f=function(name){return wrap(wellKnownSymbol(name),name)}),$({global:!0,wrap:!0,forced:!NATIVE_SYMBOL,sham:!NATIVE_SYMBOL},{Symbol:$Symbol});for(var wellKnownSymbols=objectKeys(WellKnownSymbolsStore),k=0;wellKnownSymbols.length>k;)defineWellKnownSymbol(wellKnownSymbols[k++]);$({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL},{for:function(key){return has(SymbolRegistry,key+="")?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key)},keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+" is not a symbol");for(var key in SymbolRegistry)if(SymbolRegistry[key]===sym)return key},useSetter:function(){USE_SETTER=!0},useSimple:function(){USE_SETTER=!1}}),$({target:"Object",stat:!0,forced:!NATIVE_SYMBOL,sham:!DESCRIPTORS},{create:function create(it,P){return void 0===P?nativeObjectCreate(it):$defineProperties(nativeObjectCreate(it),P)},defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor}),$({target:"Object",stat:!0,forced:!NATIVE_SYMBOL},{getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols}),$({target:"Object",stat:!0,forced:fails(function(){getOwnPropertySymbolsModule.f(1)})},{getOwnPropertySymbols:function getOwnPropertySymbols(it){return getOwnPropertySymbolsModule.f(toObject(it))}}),JSON&&$({target:"JSON",stat:!0,forced:!NATIVE_SYMBOL||fails(function(){var symbol=$Symbol();return"[null]"!=nativeJSONStringify([symbol])||"{}"!=nativeJSONStringify({a:symbol})||"{}"!=nativeJSONStringify(Object(symbol))})},{stringify:function stringify(it){for(var replacer,$replacer,args=[it],i=1;arguments.length>i;)args.push(arguments[i++]);if($replacer=replacer=args[1],(isObject(replacer)||void 0!==it)&&!isSymbol(it))return isArray(replacer)||(replacer=function(key,value){if("function"==typeof $replacer&&(value=$replacer.call(this,key,value)),!isSymbol(value))return value}),args[1]=replacer,nativeJSONStringify.apply(JSON,args)}}),$Symbol.prototype[TO_PRIMITIVE]||hide($Symbol.prototype,TO_PRIMITIVE,$Symbol.prototype.valueOf),setToStringTag($Symbol,"Symbol"),hiddenKeys[HIDDEN]=!0},function(module,exports,__webpack_require__){(function(global){var win;win="undefined"!=typeof window?window:void 0!==global?global:"undefined"!=typeof self?self:{},module.exports=win}).call(this,__webpack_require__(15))},function(module,exports,__webpack_require__){var $=__webpack_require__(6),toObject=__webpack_require__(22),nativeKeys=__webpack_require__(55);$({target:"Object",stat:!0,forced:__webpack_require__(8)(function(){nativeKeys(1)})},{keys:function keys(it){return nativeKeys(toObject(it))}})},function(module,exports,__webpack_require__){var DESCRIPTORS=__webpack_require__(13),definePropertyModule=__webpack_require__(18),createPropertyDescriptor=__webpack_require__(63);module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}},function(module,exports,__webpack_require__){var redefine=__webpack_require__(31),toString=__webpack_require__(335),ObjectPrototype=Object.prototype;toString!==ObjectPrototype.toString&&redefine(ObjectPrototype,"toString",toString,{unsafe:!0})},function(module,exports,__webpack_require__){"use strict";var $=__webpack_require__(6),DESCRIPTORS=__webpack_require__(13),global=__webpack_require__(7),has=__webpack_require__(20),isObject=__webpack_require__(10),defineProperty=__webpack_require__(18).f,copyConstructorProperties=__webpack_require__(179),NativeSymbol=global.Symbol;if(DESCRIPTORS&&"function"==typeof NativeSymbol&&(!("description"in NativeSymbol.prototype)||void 0!==NativeSymbol().description)){var EmptyStringDescriptionStore={},SymbolWrapper=function Symbol(){var description=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),result=this instanceof SymbolWrapper?new NativeSymbol(description):void 0===description?NativeSymbol():NativeSymbol(description);return""===description&&(EmptyStringDescriptionStore[result]=!0),result};copyConstructorProperties(SymbolWrapper,NativeSymbol);var symbolPrototype=SymbolWrapper.prototype=NativeSymbol.prototype;symbolPrototype.constructor=SymbolWrapper;var symbolToString=symbolPrototype.toString,native="Symbol(test)"==String(NativeSymbol("test")),regexp=/^Symbol\((.*)\)[^)]+$/;defineProperty(symbolPrototype,"description",{configurable:!0,get:function description(){var symbol=isObject(this)?this.valueOf():this,string=symbolToString.call(symbol);if(has(EmptyStringDescriptionStore,symbol))return"";var desc=native?string.slice(7,-1):string.replace(regexp,"$1");return""===desc?void 0:desc}}),$({global:!0,forced:!0},{Symbol:SymbolWrapper})}},function(module,exports,__webpack_require__){"use strict";var toIndexedObject=__webpack_require__(39),addToUnscopables=__webpack_require__(124),Iterators=__webpack_require__(74),InternalStateModule=__webpack_require__(54),defineIterator=__webpack_require__(126),setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor("Array Iterator");module.exports=defineIterator(Array,"Array",function(iterated,kind){setInternalState(this,{type:"Array Iterator",target:toIndexedObject(iterated),index:0,kind:kind})},function(){var state=getInternalState(this),target=state.target,kind=state.kind,index=state.index++;return!target||index>=target.length?(state.target=void 0,{value:void 0,done:!0}):"keys"==kind?{value:index,done:!1}:"values"==kind?{value:target[index],done:!1}:{value:[index,target[index]],done:!1}},"values"),Iterators.Arguments=Iterators.Array,addToUnscopables("keys"),addToUnscopables("values"),addToUnscopables("entries")},function(module,exports,__webpack_require__){var freeGlobal=__webpack_require__(207),freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")();module.exports=root},function(module,exports,__webpack_require__){var global=__webpack_require__(7),shared=__webpack_require__(65),hide=__webpack_require__(26),has=__webpack_require__(20),setGlobal=__webpack_require__(117),nativeFunctionToString=__webpack_require__(178),InternalStateModule=__webpack_require__(54),getInternalState=InternalStateModule.get,enforceInternalState=InternalStateModule.enforce,TEMPLATE=String(nativeFunctionToString).split("toString");shared("inspectSource",function(it){return nativeFunctionToString.call(it)}),(module.exports=function(O,key,value,options){var unsafe=!!options&&!!options.unsafe,simple=!!options&&!!options.enumerable,noTargetGet=!!options&&!!options.noTargetGet;"function"==typeof value&&("string"!=typeof key||has(value,"name")||hide(value,"name",key),enforceInternalState(value).source=TEMPLATE.join("string"==typeof key?key:"")),O!==global?(unsafe?!noTargetGet&&O[key]&&(simple=!0):delete O[key],simple?O[key]=value:hide(O,key,value)):simple?O[key]=value:setGlobal(key,value)})(Function.prototype,"toString",function toString(){return"function"==typeof this&&getInternalState(this).source||nativeFunctionToString.call(this)})},function(module,exports,__webpack_require__){__webpack_require__(11)("iterator")},function(module,exports,__webpack_require__){__webpack_require__(6)({target:"Array",stat:!0},{isArray:__webpack_require__(69)})},function(module,exports,__webpack_require__){var $=__webpack_require__(6),assign=__webpack_require__(368);$({target:"Object",stat:!0,forced:Object.assign!==assign},{assign:assign})},function(module,exports,__webpack_require__){"use strict";var codePointAt=__webpack_require__(195),InternalStateModule=__webpack_require__(54),defineIterator=__webpack_require__(126),setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor("String Iterator");defineIterator(String,"String",function(iterated){setInternalState(this,{type:"String Iterator",string:String(iterated),index:0})},function next(){var point,state=getInternalState(this),string=state.string,index=state.index;return index>=string.length?{value:void 0,done:!0}:(point=codePointAt(string,index,!0),state.index+=point.length,{value:point,done:!1})})},function(module,exports,__webpack_require__){var global=__webpack_require__(7),DOMIterables=__webpack_require__(196),ArrayIteratorMethods=__webpack_require__(29),hide=__webpack_require__(26),wellKnownSymbol=__webpack_require__(9),ITERATOR=wellKnownSymbol("iterator"),TO_STRING_TAG=wellKnownSymbol("toStringTag"),ArrayValues=ArrayIteratorMethods.values;for(var COLLECTION_NAME in DOMIterables){var Collection=global[COLLECTION_NAME],CollectionPrototype=Collection&&Collection.prototype;if(CollectionPrototype){if(CollectionPrototype[ITERATOR]!==ArrayValues)try{hide(CollectionPrototype,ITERATOR,ArrayValues)}catch(error){CollectionPrototype[ITERATOR]=ArrayValues}if(CollectionPrototype[TO_STRING_TAG]||hide(CollectionPrototype,TO_STRING_TAG,COLLECTION_NAME),DOMIterables[COLLECTION_NAME])for(var METHOD_NAME in ArrayIteratorMethods)if(CollectionPrototype[METHOD_NAME]!==ArrayIteratorMethods[METHOD_NAME])try{hide(CollectionPrototype,METHOD_NAME,ArrayIteratorMethods[METHOD_NAME])}catch(error){CollectionPrototype[METHOD_NAME]=ArrayIteratorMethods[METHOD_NAME]}}}},function(module,exports,__webpack_require__){"use strict";var implementation=__webpack_require__(272);module.exports=Function.prototype.bind||implementation},function(module,exports,__webpack_require__){"use strict";var $=__webpack_require__(6),fails=__webpack_require__(8),isArray=__webpack_require__(69),isObject=__webpack_require__(10),toObject=__webpack_require__(22),toLength=__webpack_require__(21),createProperty=__webpack_require__(88),arraySpeciesCreate=__webpack_require__(121),arrayMethodHasSpeciesSupport=__webpack_require__(70),IS_CONCAT_SPREADABLE=__webpack_require__(9)("isConcatSpreadable"),IS_CONCAT_SPREADABLE_SUPPORT=!fails(function(){var array=[];return array[IS_CONCAT_SPREADABLE]=!1,array.concat()[0]!==array}),SPECIES_SUPPORT=arrayMethodHasSpeciesSupport("concat"),isConcatSpreadable=function(O){if(!isObject(O))return!1;var spreadable=O[IS_CONCAT_SPREADABLE];return void 0!==spreadable?!!spreadable:isArray(O)};$({target:"Array",proto:!0,forced:!IS_CONCAT_SPREADABLE_SUPPORT||!SPECIES_SUPPORT},{concat:function concat(arg){var i,k,length,len,E,O=toObject(this),A=arraySpeciesCreate(O,0),n=0;for(i=-1,length=arguments.length;i9007199254740991)throw TypeError("Maximum allowed index exceeded");for(k=0;k=9007199254740991)throw TypeError("Maximum allowed index exceeded");createProperty(A,n++,E)}return A.length=n,A}})},function(module,exports,__webpack_require__){var IndexedObject=__webpack_require__(82),requireObjectCoercible=__webpack_require__(41);module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}},function(module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},function(module,exports){module.exports=function(it){if(null==it)throw TypeError("Can't call method on "+it);return it}},function(module,exports){module.exports=function isObject(value){var type=typeof value;return null!=value&&("object"==type||"function"==type)}},function(module,exports,__webpack_require__){var redefine=__webpack_require__(31),DatePrototype=Date.prototype,nativeDateToString=DatePrototype.toString,getTime=DatePrototype.getTime;new Date(NaN)+""!="Invalid Date"&&redefine(DatePrototype,"toString",function toString(){var value=getTime.call(this);return value==value?nativeDateToString.call(this):"Invalid Date"})},function(module,exports,__webpack_require__){"use strict";var $=__webpack_require__(6),exec=__webpack_require__(97);$({target:"RegExp",proto:!0,forced:/./.exec!==exec},{exec:exec})},function(module,exports){var isArray=Array.isArray;module.exports=isArray},function(module,exports,__webpack_require__){"use strict";(function(global){var origSymbol=global.Symbol,hasSymbolSham=__webpack_require__(281);module.exports=function hasNativeSymbols(){return"function"==typeof origSymbol&&("function"==typeof Symbol&&("symbol"==typeof origSymbol("foo")&&("symbol"==typeof Symbol("bar")&&hasSymbolSham())))}}).call(this,__webpack_require__(15))},function(module,exports,__webpack_require__){var defineProperty=__webpack_require__(18).f,has=__webpack_require__(20),TO_STRING_TAG=__webpack_require__(9)("toStringTag");module.exports=function(it,TAG,STATIC){it&&!has(it=STATIC?it:it.prototype,TO_STRING_TAG)&&defineProperty(it,TO_STRING_TAG,{configurable:!0,value:TAG})}},function(module,exports){module.exports=function(it){if("function"!=typeof it)throw TypeError(String(it)+" is not a function");return it}},function(module,exports,__webpack_require__){"use strict";__webpack_require__(16),__webpack_require__(5),__webpack_require__(25),__webpack_require__(17),Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={};exports.default=void 0;var _index=__webpack_require__(369);Object.keys(_index).forEach(function(key){"default"!==key&&"__esModule"!==key&&(Object.prototype.hasOwnProperty.call(_exportNames,key)||Object.defineProperty(exports,key,{enumerable:!0,get:function get(){return _index[key]}}))});var _makeDecorator=__webpack_require__(371);Object.keys(_makeDecorator).forEach(function(key){"default"!==key&&"__esModule"!==key&&(Object.prototype.hasOwnProperty.call(_exportNames,key)||Object.defineProperty(exports,key,{enumerable:!0,get:function get(){return _makeDecorator[key]}}))});var _storybookChannelMock=__webpack_require__(372);Object.keys(_storybookChannelMock).forEach(function(key){"default"!==key&&"__esModule"!==key&&(Object.prototype.hasOwnProperty.call(_exportNames,key)||Object.defineProperty(exports,key,{enumerable:!0,get:function get(){return _storybookChannelMock[key]}}))});var _default=_index.addons;exports.default=_default},function(module,exports,__webpack_require__){var baseIsNative=__webpack_require__(392),getValue=__webpack_require__(397);module.exports=function getNative(object,key){var value=getValue(object,key);return baseIsNative(value)?value:void 0}},function(module,exports){module.exports=function isObjectLike(value){return null!=value&&"object"==typeof value}},function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(114)},function(module,exports,__webpack_require__){var DESCRIPTORS=__webpack_require__(13),propertyIsEnumerableModule=__webpack_require__(62),createPropertyDescriptor=__webpack_require__(63),toIndexedObject=__webpack_require__(39),toPrimitive=__webpack_require__(64),has=__webpack_require__(20),IE8_DOM_DEFINE=__webpack_require__(177),nativeGetOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?nativeGetOwnPropertyDescriptor:function getOwnPropertyDescriptor(O,P){if(O=toIndexedObject(O),P=toPrimitive(P,!0),IE8_DOM_DEFINE)try{return nativeGetOwnPropertyDescriptor(O,P)}catch(error){}if(has(O,P))return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O,P),O[P])}},function(module,exports,__webpack_require__){var set,get,has,NATIVE_WEAK_MAP=__webpack_require__(333),global=__webpack_require__(7),isObject=__webpack_require__(10),hide=__webpack_require__(26),objectHas=__webpack_require__(20),sharedKey=__webpack_require__(83),hiddenKeys=__webpack_require__(67),WeakMap=global.WeakMap;if(NATIVE_WEAK_MAP){var store=new WeakMap,wmget=store.get,wmhas=store.has,wmset=store.set;set=function(it,metadata){return wmset.call(store,it,metadata),metadata},get=function(it){return wmget.call(store,it)||{}},has=function(it){return wmhas.call(store,it)}}else{var STATE=sharedKey("state");hiddenKeys[STATE]=!0,set=function(it,metadata){return hide(it,STATE,metadata),metadata},get=function(it){return objectHas(it,STATE)?it[STATE]:{}},has=function(it){return objectHas(it,STATE)}}module.exports={set:set,get:get,has:has,enforce:function(it){return has(it)?get(it):set(it,{})},getterFor:function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE)throw TypeError("Incompatible receiver, "+TYPE+" required");return state}}}},function(module,exports,__webpack_require__){var internalObjectKeys=__webpack_require__(180),enumBugKeys=__webpack_require__(120);module.exports=Object.keys||function keys(O){return internalObjectKeys(O,enumBugKeys)}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(14),defineProperties=__webpack_require__(184),enumBugKeys=__webpack_require__(120),hiddenKeys=__webpack_require__(67),html=__webpack_require__(185),documentCreateElement=__webpack_require__(116),IE_PROTO=__webpack_require__(83)("IE_PROTO"),Empty=function(){},createDict=function(){var iframeDocument,iframe=documentCreateElement("iframe"),length=enumBugKeys.length;for(iframe.style.display="none",html.appendChild(iframe),iframe.src=String("javascript:"),(iframeDocument=iframe.contentWindow.document).open(),iframeDocument.write("