{"version":3,"file":"js/2699.chunk.js","mappings":"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","sources":["webpack:///./node_modules/react-router-dom/modules/BrowserRouter.js","webpack:///./node_modules/react-router-dom/modules/HashRouter.js","webpack:///./node_modules/react-router-dom/modules/utils/locationUtils.js","webpack:///./node_modules/react-router-dom/modules/Link.js","webpack:///./node_modules/react-router-dom/modules/NavLink.js","webpack:///./node_modules/react-swipeable/src/types.ts","webpack:///./node_modules/react-swipeable/src/index.ts","webpack:///./node_modules/reselect/es/defaultMemoize.js","webpack:///./node_modules/reselect/es/index.js","webpack:///./node_modules/usehooks-ts/dist/esm/useElementSize/useElementSize.js","webpack:///./node_modules/usehooks-ts/dist/esm/useEventListener/useEventListener.js","webpack:///./node_modules/usehooks-ts/dist/esm/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js"],"sourcesContent":["import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import * as React from \"react\";\n\nexport const LEFT = \"Left\";\nexport const RIGHT = \"Right\";\nexport const UP = \"Up\";\nexport const DOWN = \"Down\";\nexport type HandledEvents = React.MouseEvent | TouchEvent | MouseEvent;\nexport type Vector2 = [number, number];\nexport type SwipeDirections =\n | typeof LEFT\n | typeof RIGHT\n | typeof UP\n | typeof DOWN;\nexport interface SwipeEventData {\n /**\n * Absolute displacement of swipe in x. Math.abs(deltaX);\n */\n absX: number;\n /**\n * Absolute displacement of swipe in y. Math.abs(deltaY);\n */\n absY: number;\n /**\n * Displacement of swipe in x. (current.x - initial.x)\n */\n deltaX: number;\n /**\n * Displacement of swipe in y. (current.y - initial.y)\n */\n deltaY: number;\n /**\n * Direction of swipe - Left | Right | Up | Down\n */\n dir: SwipeDirections;\n /**\n * Source event.\n */\n event: HandledEvents;\n /**\n * True for the first event of a tracked swipe.\n */\n first: boolean;\n /**\n * Location where swipe started - [x, y].\n */\n initial: Vector2;\n /**\n * \"Absolute velocity\" (speed) - √(absX^2 + absY^2) / time\n */\n velocity: number;\n /**\n * Velocity per axis - [ deltaX/time, deltaY/time ]\n */\n vxvy: Vector2;\n}\n\nexport type SwipeCallback = (eventData: SwipeEventData) => void;\nexport type TapCallback = ({ event }: { event: HandledEvents }) => void;\n\nexport type SwipeableDirectionCallbacks = {\n /**\n * Called after a DOWN swipe\n */\n onSwipedDown: SwipeCallback;\n /**\n * Called after a LEFT swipe\n */\n onSwipedLeft: SwipeCallback;\n /**\n * Called after a RIGHT swipe\n */\n onSwipedRight: SwipeCallback;\n /**\n * Called after a UP swipe\n */\n onSwipedUp: SwipeCallback;\n};\n\nexport type SwipeableCallbacks = SwipeableDirectionCallbacks & {\n /**\n * Called at start of a tracked swipe.\n */\n onSwipeStart: SwipeCallback;\n /**\n * Called after any swipe.\n */\n onSwiped: SwipeCallback;\n /**\n * Called for each move event during a tracked swipe.\n */\n onSwiping: SwipeCallback;\n /**\n * Called after a tap. A touch under the min distance, `delta`.\n */\n onTap: TapCallback;\n /**\n * Called for `touchstart` and `mousedown`.\n */\n onTouchStartOrOnMouseDown: TapCallback;\n /**\n * Called for `touchend` and `mouseup`.\n */\n onTouchEndOrOnMouseUp: TapCallback;\n};\n\n// Configuration Options\nexport type ConfigurationOptionDelta =\n | number\n | { [key in Lowercase]?: number };\n\nexport interface ConfigurationOptions {\n /**\n * Min distance(px) before a swipe starts. **Default**: `10`\n */\n delta: ConfigurationOptionDelta;\n /**\n * Prevents scroll during swipe in most cases. **Default**: `false`\n */\n preventScrollOnSwipe: boolean;\n /**\n * Set a rotation angle. **Default**: `0`\n */\n rotationAngle: number;\n /**\n * Track mouse input. **Default**: `false`\n */\n trackMouse: boolean;\n /**\n * Track touch input. **Default**: `true`\n */\n trackTouch: boolean;\n /**\n * Allowable duration of a swipe (ms). **Default**: `Infinity`\n */\n swipeDuration: number;\n /**\n * Options for touch event listeners\n */\n touchEventOptions: { passive: boolean };\n}\n\nexport type SwipeableProps = Partial;\n\nexport type SwipeablePropsWithDefaultOptions = Partial &\n ConfigurationOptions;\n\nexport interface SwipeableHandlers {\n ref(element: HTMLElement | null): void;\n onMouseDown?(event: React.MouseEvent): void;\n}\n\nexport type SwipeableState = {\n cleanUpTouch?: () => void;\n el?: HTMLElement;\n eventData?: SwipeEventData;\n first: boolean;\n initial: Vector2;\n start: number;\n swiping: boolean;\n xy: Vector2;\n};\n\nexport type StateSetter = (\n state: SwipeableState,\n props: SwipeablePropsWithDefaultOptions\n) => SwipeableState;\nexport type Setter = (stateSetter: StateSetter) => void;\nexport type AttachTouch = (\n el: HTMLElement,\n props: SwipeablePropsWithDefaultOptions\n) => () => void;\n","/* global document */\nimport * as React from \"react\";\nimport {\n AttachTouch,\n SwipeDirections,\n DOWN,\n SwipeEventData,\n HandledEvents,\n LEFT,\n RIGHT,\n Setter,\n ConfigurationOptions,\n SwipeableDirectionCallbacks,\n SwipeableHandlers,\n SwipeableProps,\n SwipeablePropsWithDefaultOptions,\n SwipeableState,\n SwipeCallback,\n TapCallback,\n UP,\n Vector2,\n} from \"./types\";\n\nexport {\n LEFT,\n RIGHT,\n UP,\n DOWN,\n SwipeDirections,\n SwipeEventData,\n SwipeableDirectionCallbacks,\n SwipeCallback,\n TapCallback,\n SwipeableHandlers,\n SwipeableProps,\n Vector2,\n};\n\nconst defaultProps: ConfigurationOptions = {\n delta: 10,\n preventScrollOnSwipe: false,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true,\n swipeDuration: Infinity,\n touchEventOptions: { passive: true },\n};\nconst initialState: SwipeableState = {\n first: true,\n initial: [0, 0],\n start: 0,\n swiping: false,\n xy: [0, 0],\n};\nconst mouseMove = \"mousemove\";\nconst mouseUp = \"mouseup\";\nconst touchEnd = \"touchend\";\nconst touchMove = \"touchmove\";\nconst touchStart = \"touchstart\";\n\nfunction getDirection(\n absX: number,\n absY: number,\n deltaX: number,\n deltaY: number\n): SwipeDirections {\n if (absX > absY) {\n if (deltaX > 0) {\n return RIGHT;\n }\n return LEFT;\n } else if (deltaY > 0) {\n return DOWN;\n }\n return UP;\n}\n\nfunction rotateXYByAngle(pos: Vector2, angle: number): Vector2 {\n if (angle === 0) return pos;\n const angleInRadians = (Math.PI / 180) * angle;\n const x =\n pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n const y =\n pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n}\n\nfunction getHandlers(\n set: Setter,\n handlerProps: { trackMouse: boolean | undefined }\n): [\n {\n ref: (element: HTMLElement | null) => void;\n onMouseDown?: (event: React.MouseEvent) => void;\n },\n AttachTouch\n] {\n const onStart = (event: HandledEvents) => {\n const isTouch = \"touches\" in event;\n // if more than a single touch don't track, for now...\n if (isTouch && event.touches.length > 1) return;\n\n set((state, props) => {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse && !isTouch) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n const { clientX, clientY } = isTouch ? event.touches[0] : event;\n const xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n\n props.onTouchStartOrOnMouseDown &&\n props.onTouchStartOrOnMouseDown({ event });\n\n return {\n ...state,\n ...initialState,\n initial: xy.slice() as Vector2,\n xy,\n start: event.timeStamp || 0,\n };\n });\n };\n\n const onMove = (event: HandledEvents) => {\n set((state, props) => {\n const isTouch = \"touches\" in event;\n // Discount a swipe if additional touches are present after\n // a swipe has started.\n if (isTouch && event.touches.length > 1) {\n return state;\n }\n\n // if swipe has exceeded duration stop tracking\n if (event.timeStamp - state.start > props.swipeDuration) {\n return state.swiping ? { ...state, swiping: false } : state;\n }\n\n const { clientX, clientY } = isTouch ? event.touches[0] : event;\n const [x, y] = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n const deltaX = x - state.xy[0];\n const deltaY = y - state.xy[1];\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n const time = (event.timeStamp || 0) - state.start;\n const velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1);\n const vxvy: Vector2 = [deltaX / (time || 1), deltaY / (time || 1)];\n\n const dir = getDirection(absX, absY, deltaX, deltaY);\n\n // if swipe is under delta and we have not started to track a swipe: skip update\n const delta =\n typeof props.delta === \"number\"\n ? props.delta\n : props.delta[dir.toLowerCase() as Lowercase] ||\n defaultProps.delta;\n if (absX < delta && absY < delta && !state.swiping) return state;\n\n const eventData = {\n absX,\n absY,\n deltaX,\n deltaY,\n dir,\n event,\n first: state.first,\n initial: state.initial,\n velocity,\n vxvy,\n };\n\n // call onSwipeStart if present and is first swipe event\n eventData.first && props.onSwipeStart && props.onSwipeStart(eventData);\n\n // call onSwiping if present\n props.onSwiping && props.onSwiping(eventData);\n\n // track if a swipe is cancelable (handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n let cancelablePageSwipe = false;\n if (\n props.onSwiping ||\n props.onSwiped ||\n props[`onSwiped${dir}` as keyof SwipeableDirectionCallbacks]\n ) {\n cancelablePageSwipe = true;\n }\n\n if (\n cancelablePageSwipe &&\n props.preventScrollOnSwipe &&\n props.trackTouch &&\n event.cancelable\n ) {\n event.preventDefault();\n }\n\n return {\n ...state,\n // first is now always false\n first: false,\n eventData,\n swiping: true,\n };\n });\n };\n\n const onEnd = (event: HandledEvents) => {\n set((state, props) => {\n let eventData: SwipeEventData | undefined;\n if (state.swiping && state.eventData) {\n // if swipe is less than duration fire swiped callbacks\n if (event.timeStamp - state.start < props.swipeDuration) {\n eventData = { ...state.eventData, event };\n props.onSwiped && props.onSwiped(eventData);\n\n const onSwipedDir =\n props[\n `onSwiped${eventData.dir}` as keyof SwipeableDirectionCallbacks\n ];\n onSwipedDir && onSwipedDir(eventData);\n }\n } else {\n props.onTap && props.onTap({ event });\n }\n\n props.onTouchEndOrOnMouseUp && props.onTouchEndOrOnMouseUp({ event });\n\n return { ...state, ...initialState, eventData };\n });\n };\n\n const cleanUpMouse = () => {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n\n const onUp = (e: HandledEvents) => {\n cleanUpMouse();\n onEnd(e);\n };\n\n /**\n * The value of passive on touchMove depends on `preventScrollOnSwipe`:\n * - true => { passive: false }\n * - false => { passive: true } // Default\n *\n * NOTE: When preventScrollOnSwipe is true, we attempt to call preventDefault to prevent scroll.\n *\n * props.touchEventOptions can also be set for all touch event listeners,\n * but for `touchmove` specifically when `preventScrollOnSwipe` it will\n * supersede and force passive to false.\n *\n */\n const attachTouch: AttachTouch = (el, props) => {\n let cleanup = () => {};\n if (el && el.addEventListener) {\n const baseOptions = {\n ...defaultProps.touchEventOptions,\n ...props.touchEventOptions,\n };\n // attach touch event listeners and handlers\n const tls: [\n typeof touchStart | typeof touchMove | typeof touchEnd,\n (e: HandledEvents) => void,\n { passive: boolean }\n ][] = [\n [touchStart, onStart, baseOptions],\n // preventScrollOnSwipe option supersedes touchEventOptions.passive\n [\n touchMove,\n onMove,\n {\n ...baseOptions,\n ...(props.preventScrollOnSwipe ? { passive: false } : {}),\n },\n ],\n [touchEnd, onEnd, baseOptions],\n ];\n tls.forEach(([e, h, o]) => el.addEventListener(e, h, o));\n // return properly scoped cleanup method for removing listeners, options not required\n cleanup = () => tls.forEach(([e, h]) => el.removeEventListener(e, h));\n }\n return cleanup;\n };\n\n const onRef = (el: HTMLElement | null) => {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null) return;\n set((state, props) => {\n // if the same DOM el as previous just return state\n if (state.el === el) return state;\n\n const addState: { cleanUpTouch?: () => void } = {};\n // if new DOM el clean up old DOM and reset cleanUpTouch\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = void 0;\n }\n // only attach if we want to track touch\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el, props);\n }\n\n // store event attached DOM el for comparison, clean up, and re-attachment\n return { ...state, el, ...addState };\n });\n };\n\n // set ref callback to attach touch event listeners\n const output: { ref: typeof onRef; onMouseDown?: typeof onStart } = {\n ref: onRef,\n };\n\n // if track mouse attach mouse down listener\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n\n return [output, attachTouch];\n}\n\nfunction updateTransientState(\n state: SwipeableState,\n props: SwipeablePropsWithDefaultOptions,\n previousProps: SwipeablePropsWithDefaultOptions,\n attachTouch: AttachTouch\n) {\n // if trackTouch is off or there is no el, then remove handlers if necessary and exit\n if (!props.trackTouch || !state.el) {\n if (state.cleanUpTouch) {\n state.cleanUpTouch();\n }\n\n return {\n ...state,\n cleanUpTouch: undefined,\n };\n }\n\n // trackTouch is on, so if there are no handlers attached, attach them and exit\n if (!state.cleanUpTouch) {\n return {\n ...state,\n cleanUpTouch: attachTouch(state.el, props),\n };\n }\n\n // trackTouch is on and handlers are already attached, so if preventScrollOnSwipe changes value,\n // remove and reattach handlers (this is required to update the passive option when attaching\n // the handlers)\n if (\n props.preventScrollOnSwipe !== previousProps.preventScrollOnSwipe ||\n props.touchEventOptions.passive !== previousProps.touchEventOptions.passive\n ) {\n state.cleanUpTouch();\n\n return {\n ...state,\n cleanUpTouch: attachTouch(state.el, props),\n };\n }\n\n return state;\n}\n\nexport function useSwipeable(options: SwipeableProps): SwipeableHandlers {\n const { trackMouse } = options;\n const transientState = React.useRef({ ...initialState });\n const transientProps = React.useRef({\n ...defaultProps,\n });\n\n // track previous rendered props\n const previousProps = React.useRef({\n ...transientProps.current,\n });\n previousProps.current = { ...transientProps.current };\n\n // update current render props & defaults\n transientProps.current = {\n ...defaultProps,\n ...options,\n };\n // Force defaults for config properties\n let defaultKey: keyof ConfigurationOptions;\n for (defaultKey in defaultProps) {\n if (transientProps.current[defaultKey] === void 0) {\n (transientProps.current[defaultKey] as any) = defaultProps[defaultKey];\n }\n }\n\n const [handlers, attachTouch] = React.useMemo(\n () =>\n getHandlers(\n (stateSetter) =>\n (transientState.current = stateSetter(\n transientState.current,\n transientProps.current\n )),\n { trackMouse }\n ),\n [trackMouse]\n );\n\n transientState.current = updateTransientState(\n transientState.current,\n transientProps.current,\n previousProps.current,\n attachTouch\n );\n\n return handlers;\n}\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","import { useCallback, useState } from 'react';\nimport { useEventListener, useIsomorphicLayoutEffect } from '..';\nfunction useElementSize() {\n const [ref, setRef] = useState(null);\n const [size, setSize] = useState({\n width: 0,\n height: 0,\n });\n const handleSize = useCallback(() => {\n setSize({\n width: (ref === null || ref === void 0 ? void 0 : ref.offsetWidth) || 0,\n height: (ref === null || ref === void 0 ? void 0 : ref.offsetHeight) || 0,\n });\n }, [ref === null || ref === void 0 ? void 0 : ref.offsetHeight, ref === null || ref === void 0 ? void 0 : ref.offsetWidth]);\n useEventListener('resize', handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, [ref === null || ref === void 0 ? void 0 : ref.offsetHeight, ref === null || ref === void 0 ? void 0 : ref.offsetWidth]);\n return [setRef, size];\n}\nexport default useElementSize;\n","import { useEffect, useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '..';\nfunction useEventListener(eventName, handler, element, options) {\n const savedHandler = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n useEffect(() => {\n var _a;\n const targetElement = (_a = element === null || element === void 0 ? void 0 : element.current) !== null && _a !== void 0 ? _a : window;\n if (!(targetElement && targetElement.addEventListener))\n return;\n const listener = event => savedHandler.current(event);\n targetElement.addEventListener(eventName, listener, options);\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\nexport default useEventListener;\n","import { useEffect, useLayoutEffect } from 'react';\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n"],"names":["BrowserRouter","history","createHistory","props","render","this","children","React","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","component","replace","RouterContext","context","invariant","location","href","createHref","push","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","classnames","filter","i","join","joinClassnames","LEFT","RIGHT","UP","DOWN","defaultProps","delta","preventScrollOnSwipe","rotationAngle","trackMouse","trackTouch","swipeDuration","Infinity","touchEventOptions","passive","initialState","first","initial","start","swiping","xy","mouseMove","mouseUp","touchEnd","touchMove","touchStart","rotateXYByAngle","pos","angle","angleInRadians","Math","PI","cos","sin","getHandlers","set","handlerProps","onStart","isTouch","touches","length","state","document","addEventListener","onMove","onUp","clientX","clientY","onTouchStartOrOnMouseDown","slice","timeStamp","x","y","deltaX","deltaY","absX","abs","absY","time","velocity","sqrt","vxvy","dir","getDirection","toLowerCase","eventData","onSwipeStart","onSwiping","cancelablePageSwipe","onSwiped","cancelable","onEnd","onSwipedDir","onTap","onTouchEndOrOnMouseUp","e","removeEventListener","attachTouch","el","cleanup","baseOptions","tls","forEach","h","o","output","addState","cleanUpTouch","onMouseDown","useSwipeable","options","transientState","transientProps","previousProps","current","defaultKey","handlers","stateSetter","undefined","updateTransientState","NOT_FOUND","defaultEqualityCheck","a","b","defaultMemoize","func","equalityCheckOrOptions","equals","entry","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","prev","next","createCacheKeyComparator","cache","get","key","value","put","getEntries","clear","entries","cacheIndex","findIndex","splice","unshift","pop","createLruCache","memoized","arguments","apply","matchingEntry","find","clearCache","createSelectorCreator","memoize","_len","memoizeOptionsFromArgs","Array","_key","_len2","funcs","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","Error","_directlyPassedOption2","finalMemoizeOptions","isArray","dependencies","every","dep","dependencyTypes","map","name","getDependencies","memoizedResultFunc","concat","selector","params","Object","assign","lastResult","recomputations","resetRecomputations","createSelector","setRef","useState","size","setSize","width","height","handleSize","useCallback","offsetWidth","offsetHeight","eventName","handler","element","savedHandler","useRef","useEffect","_a","targetElement","window","listener","useLayoutEffect"],"sourceRoot":""}