{"version":3,"file":"js/9173.chunk.js","mappings":"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","sources":["webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-click-away-listener/src/index.tsx","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"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React, {\n\tuseRef,\n\tuseEffect,\n\tRefCallback,\n\tcloneElement,\n\tReactElement,\n\tHTMLAttributes,\n\tMutableRefObject,\n\tFunctionComponent\n} from 'react';\n\ntype FocusEvents = 'focusin' | 'focusout';\ntype MouseEvents = 'click' | 'mousedown' | 'mouseup';\ntype TouchEvents = 'touchstart' | 'touchend';\ntype Events = FocusEvent | MouseEvent | TouchEvent;\n\ninterface Props extends HTMLAttributes {\n\tonClickAway: (event: Events) => void;\n\tfocusEvent?: FocusEvents;\n\tmouseEvent?: MouseEvents;\n\ttouchEvent?: TouchEvents;\n\tchildren: ReactElement;\n}\n\nconst eventTypeMapping = {\n\tclick: 'onClick',\n\tfocusin: 'onFocus',\n\tfocusout: 'onFocus',\n\tmousedown: 'onMouseDown',\n\tmouseup: 'onMouseUp',\n\ttouchstart: 'onTouchStart',\n\ttouchend: 'onTouchEnd'\n};\n\nconst ClickAwayListener: FunctionComponent = ({\n\tchildren,\n\tonClickAway,\n\tfocusEvent = 'focusin',\n\tmouseEvent = 'click',\n\ttouchEvent = 'touchend'\n}) => {\n\tconst node = useRef(null);\n\tconst bubbledEventTarget = useRef(null);\n\tconst mountedRef = useRef(false);\n\n\t/**\n\t * Prevents the bubbled event from getting triggered immediately\n\t * https://github.com/facebook/react/issues/20074\n\t */\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\tmountedRef.current = true;\n\t\t}, 0);\n\n\t\treturn () => {\n\t\t\tmountedRef.current = false;\n\t\t};\n\t}, []);\n\n\tconst handleBubbledEvents =\n\t\t(type: string) =>\n\t\t(event: Events): void => {\n\t\t\tbubbledEventTarget.current = event.target;\n\n\t\t\tconst handler = children?.props[type];\n\n\t\t\tif (handler) {\n\t\t\t\thandler(event);\n\t\t\t}\n\t\t};\n\n\tconst handleChildRef = (childRef: HTMLElement) => {\n\t\tnode.current = childRef;\n\n\t\tlet { ref } = children as typeof children & {\n\t\t\tref: RefCallback | MutableRefObject;\n\t\t};\n\n\t\tif (typeof ref === 'function') {\n\t\t\tref(childRef);\n\t\t} else if (ref) {\n\t\t\tref.current = childRef;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst handleEvents = (event: Events): void => {\n\t\t\tif (!mountedRef.current) return;\n\n\t\t\tif (\n\t\t\t\t(node.current && node.current.contains(event.target as Node)) ||\n\t\t\t\tbubbledEventTarget.current === event.target ||\n\t\t\t\t!document.contains(event.target as Node)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonClickAway(event);\n\t\t};\n\n\t\tdocument.addEventListener(mouseEvent, handleEvents);\n\t\tdocument.addEventListener(touchEvent, handleEvents);\n\t\tdocument.addEventListener(focusEvent, handleEvents);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(mouseEvent, handleEvents);\n\t\t\tdocument.removeEventListener(touchEvent, handleEvents);\n\t\t\tdocument.removeEventListener(focusEvent, handleEvents);\n\t\t};\n\t}, [focusEvent, mouseEvent, onClickAway, touchEvent]);\n\n\tconst mappedMouseEvent = eventTypeMapping[mouseEvent];\n\tconst mappedTouchEvent = eventTypeMapping[touchEvent];\n\tconst mappedFocusEvent = eventTypeMapping[focusEvent];\n\n\treturn React.Children.only(\n\t\tcloneElement(children as ReactElement, {\n\t\t\tref: handleChildRef,\n\t\t\t[mappedFocusEvent]: handleBubbledEvents(mappedFocusEvent),\n\t\t\t[mappedMouseEvent]: handleBubbledEvents(mappedMouseEvent),\n\t\t\t[mappedTouchEvent]: handleBubbledEvents(mappedTouchEvent)\n\t\t})\n\t);\n};\n\nClickAwayListener.displayName = 'ClickAwayListener';\n\nexport default ClickAwayListener;\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};"],"names":["ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","eventTypeMapping","click","focusin","focusout","mousedown","mouseup","touchstart","touchend","ClickAwayListener","_ref","_cloneElement","children","onClickAway","_ref$focusEvent","focusEvent","_ref$mouseEvent","mouseEvent","_ref$touchEvent","touchEvent","useRef","bubbledEventTarget","mountedRef","useEffect","setTimeout","current","handleBubbledEvents","type","event","target","handler","handleEvents","contains","document","addEventListener","removeEventListener","mappedMouseEvent","mappedTouchEvent","mappedFocusEvent","React","cloneElement","ref","childRef","_defineProperty","displayName","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","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","preventDefault","onEnd","onSwipedDir","onTap","onTouchEndOrOnMouseUp","e","attachTouch","el","cleanup","baseOptions","tls","forEach","h","o","output","addState","cleanUpTouch","onMouseDown","useSwipeable","options","transientState","transientProps","previousProps","defaultKey","handlers","stateSetter","undefined","updateTransientState","NOT_FOUND","defaultEqualityCheck","a","b","defaultMemoize","equalityCheckOrOptions","equals","entry","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","prev","next","i","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","_directlyPassedOption2","finalMemoizeOptions","isArray","dependencies","every","dep","dependencyTypes","map","join","getDependencies","memoizedResultFunc","concat","selector","params","push","Object","assign","lastResult","recomputations","resetRecomputations","createSelector"],"sourceRoot":""}