{"version":3,"file":"common/570.5084f8e7.js","mappings":"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","sources":["webpack://pigeon_i18n_pc/./node_modules/@react-spring/animated/dist/react-spring-animated.esm.js","webpack://pigeon_i18n_pc/./node_modules/@react-spring/core/dist/react-spring-core.esm.js","webpack://pigeon_i18n_pc/./node_modules/@react-spring/rafz/dist/react-spring-rafz.esm.js","webpack://pigeon_i18n_pc/./node_modules/@react-spring/shared/dist/react-spring-shared.esm.js","webpack://pigeon_i18n_pc/./node_modules/@react-spring/web/dist/react-spring-web.esm.js","webpack://pigeon_i18n_pc/./node_modules/@tippyjs/react/dist/tippy-react.esm.js","webpack://pigeon_i18n_pc/./node_modules/mobx-react-lite/es/utils/reactionCleanupTracking.js","webpack://pigeon_i18n_pc/./node_modules/mobx-react-lite/es/utils/reactionCleanupTrackingCommon.js","webpack://pigeon_i18n_pc/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://pigeon_i18n_pc/./node_modules/react-dom/index.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/Draggable.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/DraggableCore.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/cjs.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/utils/domFns.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/utils/getPrefix.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/utils/log.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/utils/positionFns.js","webpack://pigeon_i18n_pc/./node_modules/react-draggable/build/cjs/utils/shims.js","webpack://pigeon_i18n_pc/./node_modules/react-dropzone/dist/es/utils/index.js","webpack://pigeon_i18n_pc/./node_modules/react-dropzone/dist/es/index.js","webpack://pigeon_i18n_pc/./node_modules/react-easy-crop/node_modules/tslib/tslib.es6.js","webpack://pigeon_i18n_pc/./node_modules/react-easy-crop/index.module.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://pigeon_i18n_pc/./node_modules/react-clientside-effect/lib/index.es.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://pigeon_i18n_pc/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://pigeon_i18n_pc/./node_modules/react-is/cjs/react-is.production.min.js","webpack://pigeon_i18n_pc/./node_modules/react-is/index.js","webpack://pigeon_i18n_pc/./node_modules/react-loadable/lib/index.js","webpack://pigeon_i18n_pc/./node_modules/react-resizable/build/Resizable.js","webpack://pigeon_i18n_pc/./node_modules/react-resizable/build/ResizableBox.js","webpack://pigeon_i18n_pc/./node_modules/react-resizable/build/propTypes.js","webpack://pigeon_i18n_pc/./node_modules/react-resizable/build/utils.js","webpack://pigeon_i18n_pc/./node_modules/react-resizable/index.js","webpack://pigeon_i18n_pc/./node_modules/react-router/esm/react-router.js","webpack://pigeon_i18n_pc/./node_modules/react-router/node_modules/isarray/index.js","webpack://pigeon_i18n_pc/./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack://pigeon_i18n_pc/./node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/node_modules/dom-helpers/esm/removeClass.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/node_modules/dom-helpers/esm/addClass.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/node_modules/dom-helpers/esm/hasClass.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/SwitchTransition.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/config.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/Transition.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://pigeon_i18n_pc/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://pigeon_i18n_pc/./node_modules/react-use-gesture/dist/reactusegesture.esm.js","webpack://pigeon_i18n_pc/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://pigeon_i18n_pc/./node_modules/react/cjs/react.production.min.js","webpack://pigeon_i18n_pc/./node_modules/react/index.js","webpack://pigeon_i18n_pc/./node_modules/react/jsx-runtime.js"],"sourcesContent":["import { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\n\nconst $node = Symbol.for('Animated:node');\nconst isAnimated = value => !!value && value[$node] === value;\nconst getAnimated = owner => owner && owner[$node];\nconst setAnimated = (owner, node) => defineHidden(owner, $node, node);\nconst getPayload = owner => owner && owner[$node] && owner[$node].getPayload();\nclass Animated {\n constructor() {\n this.payload = void 0;\n setAnimated(this, this);\n }\n\n getPayload() {\n return this.payload || [];\n }\n\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n super();\n this.done = true;\n this.elapsedTime = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.v0 = void 0;\n this.durationProgress = 0;\n this._value = _value;\n\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n\n static create(value) {\n return new AnimatedValue(value);\n }\n\n getPayload() {\n return [this];\n }\n\n getValue() {\n return this._value;\n }\n\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n\n if (step) {\n value = Math.round(value / step) * step;\n\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n\n if (this._value === value) {\n return false;\n }\n\n this._value = value;\n return true;\n }\n\n reset() {\n const {\n done\n } = this;\n this.done = false;\n\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done) this.lastVelocity = null;\n this.v0 = null;\n }\n }\n\n}\n\nclass AnimatedString extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = void 0;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n\n static create(value) {\n return new AnimatedString(value);\n }\n\n getValue() {\n let value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n\n setValue(value) {\n if (is.str(value)) {\n if (value == this._string) {\n return false;\n }\n\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n\n return true;\n }\n\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n\n this._value = 0;\n super.reset();\n }\n\n}\n\nconst TreeContext = {\n dependencies: null\n};\n\nclass AnimatedObject extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n\n reset() {\n if (this.payload) {\n each(this.payload, node => node.reset());\n }\n }\n\n _makePayload(source) {\n if (source) {\n const payload = new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n\n const payload = getPayload(source);\n\n if (payload) {\n each(payload, node => this.add(node));\n }\n }\n\n}\n\nclass AnimatedArray extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n\n static create(source) {\n return new AnimatedArray(source);\n }\n\n getValue() {\n return this.source.map(node => node.getValue());\n }\n\n setValue(source) {\n const payload = this.getPayload();\n\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n\n super.setValue(source.map(makeAnimated));\n return true;\n }\n\n}\n\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nconst withAnimated = (Component, host) => {\n const hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && useCallback(value => {\n instanceRef.current = updateRef(givenRef, value);\n }, [givenRef]);\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n\n const callback = () => {\n const instance = instanceRef.current;\n\n if (hasInstance && !instance) {\n return;\n }\n\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useLayoutEffect(() => {\n const lastObserver = observerRef.current;\n observerRef.current = observer;\n each(deps, dep => addFluidObserver(dep, observer));\n\n if (lastObserver) {\n each(lastObserver.deps, dep => removeFluidObserver(dep, lastObserver));\n raf.cancel(lastObserver.update);\n }\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer = observerRef.current;\n each(observer.deps, dep => removeFluidObserver(dep, observer));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return React.createElement(Component, _extends({}, usedProps, {\n ref: ref\n }));\n });\n};\n\nclass PropsObserver {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n raf.write(this.update);\n }\n }\n\n}\n\nfunction getAnimatedState(props, host) {\n const dependencies = new Set();\n TreeContext.dependencies = dependencies;\n if (props.style) props = _extends({}, props, {\n style: host.createAnimatedStyle(props.style)\n });\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n if (ref) {\n if (is.fun(ref)) ref(value);else ref.current = value;\n }\n\n return value;\n}\n\nconst cacheKey = Symbol.for('AnimatedComponent');\nconst createHost = (components, {\n applyAnimatedValues: _applyAnimatedValues = () => false,\n createAnimatedStyle: _createAnimatedStyle = style => new AnimatedObject(style),\n getComponentProps: _getComponentProps = props => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues: _applyAnimatedValues,\n createAnimatedStyle: _createAnimatedStyle,\n getComponentProps: _getComponentProps\n };\n\n const animated = Component => {\n const displayName = getDisplayName(Component) || 'Anonymous';\n\n if (is.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n\n eachProp(components, (Component, key) => {\n if (is.arr(components)) {\n key = getDisplayName(Component);\n }\n\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\n\nconst getDisplayName = arg => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };\n","import { eachProp, is, toArray, isAnimatedString, Globals, getFluidValue, useLayoutEffect, each, raf, flush, FluidValue, deprecateInterpolate, callFluidObservers, frameLoop, hasFluidValue, flushCalls, isEqual, getFluidObservers, addFluidObserver, removeFluidObserver, noop, useMemoOne, deprecateDirectCall, useForceUpdate, usePrev, useOnce, createInterpolator, createStringInterpolator } from '@react-spring/shared';\nexport { Globals, createInterpolator } from '@react-spring/shared';\nimport * as React from 'react';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { getAnimated, AnimatedValue, getPayload, AnimatedString, getAnimatedType, setAnimated } from '@react-spring/animated';\nexport * from '@react-spring/types/animated';\nexport * from '@react-spring/types/interpolation';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nconst matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nconst resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nconst getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : undefined;\n\nconst noopTransform = value => value;\n\nconst getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n\n const defaults = {};\n\n for (const key of keys) {\n const value = transform(props[key], key);\n\n if (!is.und(value)) {\n defaults[key] = value;\n }\n }\n\n return defaults;\n};\nconst DEFAULT_PROPS = ['config', 'onProps', 'onStart', 'onChange', 'onPause', 'onResume', 'onRest'];\nconst RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n keys: 1,\n callId: 1,\n parentId: 1\n};\n\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n\n if (count) {\n return forward;\n }\n}\n\nfunction inferTo(props) {\n const to = getForwardProps(props);\n\n if (to) {\n const out = {\n to\n };\n eachProp(props, (val, key) => key in to || (out[key] = val));\n return out;\n }\n\n return _extends({}, props);\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? Globals.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props) return true;\n\n return false;\n}\nfunction isAsyncTo(to) {\n return is.fun(to) || is.arr(to) && is.obj(to[0]);\n}\nfunction detachRefs(ctrl, ref) {\n var _ctrl$ref;\n\n (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref.delete(ctrl);\n ref == null ? void 0 : ref.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n var _ctrl$ref2;\n\n (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\nfunction useChain(refs, timeSteps, timeFrame = 1000) {\n useLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay)) delay = prevDelay;else prevDelay = delay;\n each(controllers, ctrl => {\n each(ctrl.queue, props => {\n const memoizedDelayProp = props.delay;\n\n props.delay = key => delay + callProp(memoizedDelayProp || 0, key);\n });\n ctrl.start();\n });\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, ref => {\n const controllers = ref.current;\n\n if (controllers.length) {\n const queues = controllers.map(ctrl => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(controllers, (ctrl, i) => each(queues[i] || [], update => ctrl.queue.push(update)));\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\nconst linear = t => t;\n\nconst defaults = _extends({}, config.default, {\n mass: 1,\n damping: 1,\n easing: linear,\n clamp: false\n});\n\nclass AnimationConfig {\n constructor() {\n this.tension = void 0;\n this.friction = void 0;\n this.frequency = void 0;\n this.damping = void 0;\n this.mass = void 0;\n this.velocity = 0;\n this.restVelocity = void 0;\n this.precision = void 0;\n this.progress = void 0;\n this.duration = void 0;\n this.easing = void 0;\n this.clamp = void 0;\n this.bounce = void 0;\n this.decay = void 0;\n this.round = void 0;\n Object.assign(this, defaults);\n }\n\n}\nfunction mergeConfig(config, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = _extends({}, defaultConfig);\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = _extends({}, defaultConfig, newConfig);\n }\n\n sanitizeConfig(config, newConfig);\n Object.assign(config, newConfig);\n\n for (const key in defaults) {\n if (config[key] == null) {\n config[key] = defaults[key];\n }\n }\n\n let {\n mass,\n frequency,\n damping\n } = config;\n\n if (!is.und(frequency)) {\n if (frequency < 0.01) frequency = 0.01;\n if (damping < 0) damping = 0;\n config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config.friction = 4 * Math.PI * damping * mass / frequency;\n }\n\n return config;\n}\n\nfunction sanitizeConfig(config, props) {\n if (!is.und(props.decay)) {\n config.duration = undefined;\n } else {\n const isTensionConfig = !is.und(props.tension) || !is.und(props.friction);\n\n if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) {\n config.duration = undefined;\n config.decay = undefined;\n }\n\n if (isTensionConfig) {\n config.frequency = undefined;\n }\n }\n}\n\nconst emptyArray = [];\nclass Animation {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.to = void 0;\n this.from = void 0;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n\n}\n\nfunction scheduleProps(callId, {\n key,\n props,\n defaultProps,\n state,\n actions\n}) {\n return new Promise((resolve, reject) => {\n var _props$cancel;\n\n let delay;\n let timeout;\n let cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key);\n\n if (cancel) {\n onStart();\n } else {\n if (!is.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n\n let pause = defaultProps == null ? void 0 : defaultProps.pause;\n\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n\n delay = callProp(props.delay || 0, key);\n\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n\n function onResume() {\n if (delay > 0) {\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n\n function onStart() {\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n\n try {\n actions.start(_extends({}, props, {\n callId,\n cancel\n }), resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\nconst getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some(result => result.cancelled) ? getCancelledResult(target.get()) : results.every(result => result.noop) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every(result => result.finished));\nconst getNoopResult = value => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nconst getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nconst getCancelledResult = value => ({\n value,\n cancelled: true,\n finished: false\n});\n\nfunction runAsync(to, props, state, target) {\n const {\n callId,\n parentId,\n onRest\n } = props;\n const {\n asyncTo: prevTo,\n promise: prevPromise\n } = state;\n\n if (!parentId && to === prevTo && !props.reset) {\n return prevPromise;\n }\n\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to;\n const defaultProps = getDefaultProps(props, (value, key) => key === 'onRest' ? undefined : value);\n let preventBail;\n let bail;\n const bailPromise = new Promise((resolve, reject) => (preventBail = resolve, bail = reject));\n\n const bailIfEnded = bailSignal => {\n const bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false);\n\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAniamtionSignal();\n return (async () => {\n if (Globals.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n\n bailIfEnded(bailSignal);\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n to: arg1\n });\n props.parentId = callId;\n eachProp(defaultProps, (value, key) => {\n if (is.und(props[key])) {\n props[key] = value;\n }\n });\n const result = await target.start(props);\n bailIfEnded(bailSignal);\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n return result;\n })();\n };\n\n let result;\n\n if (Globals.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n\n try {\n let animating;\n\n if (is.arr(to)) {\n animating = (async queue => {\n for (const props of queue) {\n await animate(props);\n }\n })(to);\n } else {\n animating = Promise.resolve(to(animate, target.stop.bind(target)));\n }\n\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAniamtionSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : undefined;\n state.promise = parentId ? prevPromise : undefined;\n }\n }\n\n if (is.fun(onRest)) {\n raf.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, t => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = undefined;\n if (cancelId) state.cancelId = cancelId;\n}\nclass BailSignal extends Error {\n constructor() {\n super('An async animation has been interrupted. You see this error because you ' + 'forgot to use `await` or `.catch(...)` on its returned promise.');\n this.result = void 0;\n }\n\n}\nclass SkipAniamtionSignal extends Error {\n constructor() {\n super('SkipAnimationSignal');\n this.result = void 0;\n }\n\n}\n\nconst isFrameValue = value => value instanceof FrameValue;\nlet nextId$1 = 1;\nclass FrameValue extends FluidValue {\n constructor(...args) {\n super(...args);\n this.id = nextId$1++;\n this.key = void 0;\n this._priority = 0;\n }\n\n get priority() {\n return this._priority;\n }\n\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n\n this._onPriorityChange(priority);\n }\n }\n\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n\n to(...args) {\n return Globals.to(this, args);\n }\n\n interpolate(...args) {\n deprecateInterpolate();\n return Globals.to(this, args);\n }\n\n toJSON() {\n return this.get();\n }\n\n observerAdded(count) {\n if (count == 1) this._attach();\n }\n\n observerRemoved(count) {\n if (count == 0) this._detach();\n }\n\n _attach() {}\n\n _detach() {}\n\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: 'change',\n parent: this,\n value,\n idle\n });\n }\n\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n\n callFluidObservers(this, {\n type: 'priority',\n parent: this,\n priority\n });\n }\n\n}\n\nconst $P = Symbol.for('SpringPhase');\nconst HAS_ANIMATED = 1;\nconst IS_ANIMATING = 2;\nconst IS_PAUSED = 4;\nconst hasAnimated = target => (target[$P] & HAS_ANIMATED) > 0;\nconst isAnimating = target => (target[$P] & IS_ANIMATING) > 0;\nconst isPaused = target => (target[$P] & IS_PAUSED) > 0;\nconst setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nconst setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\nclass SpringValue extends FrameValue {\n constructor(arg1, arg2) {\n super();\n this.key = void 0;\n this.animation = new Animation();\n this.queue = void 0;\n this.defaultProps = {};\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._pendingCalls = new Set();\n this._lastCallId = 0;\n this._lastToId = 0;\n this._memoizedDuration = 0;\n\n if (!is.und(arg1) || !is.und(arg2)) {\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n from: arg1\n });\n\n if (is.und(props.default)) {\n props.default = true;\n }\n\n this.start(props);\n }\n }\n\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n\n get goal() {\n return getFluidValue(this.animation.to);\n }\n\n get velocity() {\n const node = getAnimated(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map(node => node.lastVelocity || 0);\n }\n\n get hasAnimated() {\n return hasAnimated(this);\n }\n\n get isAnimating() {\n return isAnimating(this);\n }\n\n get isPaused() {\n return isPaused(this);\n }\n\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let {\n config,\n toValues\n } = anim;\n const payload = getPayload(anim.to);\n\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray(getFluidValue(anim.to));\n }\n\n anim.values.forEach((node, i) => {\n if (node.done) return;\n const to = node.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i];\n let finished = anim.immediate;\n let position = to;\n\n if (!finished) {\n position = node.lastPosition;\n\n if (config.tension <= 0) {\n node.done = true;\n return;\n }\n\n let elapsed = node.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node.v0 != null ? node.v0 : node.v0 = is.arr(config.velocity) ? config.velocity[i] : config.velocity;\n let velocity;\n\n if (!is.und(config.duration)) {\n let p = 1;\n\n if (config.duration > 0) {\n if (this._memoizedDuration !== config.duration) {\n this._memoizedDuration = config.duration;\n\n if (node.durationProgress > 0) {\n node.elapsedTime = config.duration * node.durationProgress;\n elapsed = node.elapsedTime += dt;\n }\n }\n\n p = (config.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node.durationProgress = p;\n }\n\n position = from + config.easing(p) * (to - from);\n velocity = (position - node.lastPosition) / dt;\n finished = p == 1;\n } else if (config.decay) {\n const decay = config.decay === true ? 0.998 : config.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node.lastPosition - position) < 0.1;\n velocity = v0 * e;\n } else {\n velocity = node.lastVelocity == null ? v0 : node.lastVelocity;\n const precision = config.precision || (from == to ? 0.005 : Math.min(1, Math.abs(to - from) * 0.001));\n const restVelocity = config.restVelocity || precision / 10;\n const bounceFactor = config.clamp ? 0 : config.bounce;\n const canBounce = !is.und(bounceFactor);\n const isGrowing = from == to ? node.v0 > 0 : from < to;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n\n if (!isMoving) {\n finished = Math.abs(to - position) <= precision;\n\n if (finished) {\n break;\n }\n }\n\n if (canBounce) {\n isBouncing = position == to || position > to == isGrowing;\n\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to;\n }\n }\n\n const springForce = -config.tension * 0.000001 * (position - to);\n const dampingForce = -config.friction * 0.001 * velocity;\n const acceleration = (springForce + dampingForce) / config.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n\n node.lastVelocity = velocity;\n\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n\n if (payload && !payload[i].done) {\n finished = false;\n }\n\n if (finished) {\n node.done = true;\n } else {\n idle = false;\n }\n\n if (node.setValue(position, config.round)) {\n changed = true;\n }\n });\n const node = getAnimated(this);\n const currVal = node.getValue();\n\n if (idle) {\n const finalVal = getFluidValue(anim.to);\n\n if ((currVal !== finalVal || changed) && !config.decay) {\n node.setValue(finalVal);\n\n this._onChange(finalVal);\n } else if (changed && config.decay) {\n this._onChange(currVal);\n }\n\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n\n set(value) {\n raf.batchedUpdates(() => {\n this._stop();\n\n this._focus(value);\n\n this._set(value);\n });\n return this;\n }\n\n pause() {\n this._update({\n pause: true\n });\n }\n\n resume() {\n this._update({\n pause: false\n });\n }\n\n finish() {\n if (isAnimating(this)) {\n const {\n to,\n config\n } = this.animation;\n raf.batchedUpdates(() => {\n this._onStart();\n\n if (!config.decay) {\n this._set(to, false);\n }\n\n this._stop();\n });\n }\n\n return this;\n }\n\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n\n start(to, arg2) {\n let queue;\n\n if (!is.und(to)) {\n queue = [is.obj(to) ? to : _extends({}, arg2, {\n to\n })];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n\n return Promise.all(queue.map(props => this._update(props))).then(results => getCombinedResult(this, results));\n }\n\n stop(cancel) {\n const {\n to\n } = this.animation;\n\n this._focus(this.get());\n\n stopAsync(this._state, cancel && this._lastCallId);\n raf.batchedUpdates(() => this._stop(to, cancel));\n return this;\n }\n\n reset() {\n this._update({\n reset: true\n });\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._start();\n } else if (event.type == 'priority') {\n this.priority = event.priority + 1;\n }\n }\n\n _prepareNode(props) {\n const key = this.key || '';\n let {\n to,\n from\n } = props;\n to = is.obj(to) ? to[key] : to;\n\n if (to == null || isAsyncTo(to)) {\n to = undefined;\n }\n\n from = is.obj(from) ? from[key] : from;\n\n if (from == null) {\n from = undefined;\n }\n\n const range = {\n to,\n from\n };\n\n if (!hasAnimated(this)) {\n if (props.reverse) [to, from] = [from, to];\n from = getFluidValue(from);\n\n if (!is.und(from)) {\n this._set(from);\n } else if (!getAnimated(this)) {\n this._set(to);\n }\n }\n\n return range;\n }\n\n _update(_ref, isLoop) {\n let props = _extends({}, _ref);\n\n const {\n key,\n defaultProps\n } = this;\n if (props.default) Object.assign(defaultProps, getDefaultProps(props, (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value));\n mergeActiveFn(this, props, 'onProps');\n sendEvent(this, 'onProps', props, this);\n\n const range = this._prepareNode(props);\n\n if (Object.isFrozen(this)) {\n throw Error('Cannot animate a `SpringValue` object that is frozen. ' + 'Did you forget to pass your component to `animated(...)` before animating its props?');\n }\n\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(this, 'onPause', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n\n if (isAnimating(this)) {\n this._resume();\n }\n\n flushCalls(state.resumeQueue);\n sendEvent(this, 'onResume', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then(result => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n\n return result;\n });\n }\n\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n\n const hasToProp = !is.und(range.to);\n const hasFromProp = !is.und(range.from);\n\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n\n const {\n key,\n defaultProps,\n animation: anim\n } = this;\n const {\n to: prevTo,\n from: prevFrom\n } = anim;\n let {\n to = prevTo,\n from = prevFrom\n } = range;\n\n if (hasFromProp && !hasToProp && (!props.default || is.und(to))) {\n to = from;\n }\n\n if (props.reverse) [to, from] = [from, to];\n const hasFromChanged = !isEqual(from, prevFrom);\n\n if (hasFromChanged) {\n anim.from = from;\n }\n\n from = getFluidValue(from);\n const hasToChanged = !isEqual(to, prevTo);\n\n if (hasToChanged) {\n this._focus(to);\n }\n\n const hasAsyncTo = isAsyncTo(props.to);\n const {\n config\n } = anim;\n const {\n decay,\n velocity\n } = config;\n\n if (hasToProp || hasFromProp) {\n config.velocity = 0;\n }\n\n if (props.config && !hasAsyncTo) {\n mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0);\n }\n\n let node = getAnimated(this);\n\n if (!node || is.und(to)) {\n return resolve(getFinishedResult(this, true));\n }\n\n const reset = is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key);\n const value = reset ? from : this.get();\n const goal = computeGoal(to);\n const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n\n if (hasToChanged) {\n const nodeType = getAnimatedType(to);\n\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else throw Error(`Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`);\n }\n }\n\n const goalType = node.constructor;\n let started = hasFluidValue(to);\n let finished = false;\n\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config.decay, decay) || !isEqual(config.velocity, velocity)) {\n started = true;\n }\n }\n\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to) ? null : goalType == AnimatedString ? [1] : toArray(goal);\n }\n\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n\n if (started) {\n const {\n onRest\n } = anim;\n each(ACTIVE_EVENTS, type => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n\n this._pendingCalls.add(resolve);\n\n if (anim.changed) raf.batchedUpdates(() => {\n anim.changed = !reset;\n onRest == null ? void 0 : onRest(result, this);\n\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart == null ? void 0 : anim.onStart(result, this);\n }\n });\n }\n }\n\n if (reset) {\n this._set(value);\n }\n\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n\n _focus(value) {\n const anim = this.animation;\n\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n\n anim.to = value;\n\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n\n _attach() {\n let priority = 0;\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n addFluidObserver(to, this);\n\n if (isFrameValue(to)) {\n priority = to.priority + 1;\n }\n }\n\n this.priority = priority;\n }\n\n _detach() {\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n removeFluidObserver(to, this);\n }\n }\n\n _set(arg, idle = true) {\n const value = getFluidValue(arg);\n\n if (!is.und(value)) {\n const oldNode = getAnimated(this);\n\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n\n if (oldNode) {\n raf.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n\n return getAnimated(this);\n }\n\n _onStart() {\n const anim = this.animation;\n\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(this, 'onStart', getFinishedResult(this, checkFinished(this, anim.to)), this);\n }\n }\n\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n\n callProp(this.animation.onChange, value, this);\n }\n\n callProp(this.defaultProps.onChange, value, this);\n\n super._onChange(value, idle);\n }\n\n _start() {\n const anim = this.animation;\n getAnimated(this).reset(getFluidValue(anim.to));\n\n if (!anim.immediate) {\n anim.fromValues = anim.values.map(node => node.lastPosition);\n }\n\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n\n _resume() {\n if (Globals.skipAnimation) {\n this.finish();\n } else {\n frameLoop.start(this);\n }\n }\n\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each(anim.values, node => {\n node.done = true;\n });\n\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = undefined;\n }\n\n callFluidObservers(this, {\n type: 'idle',\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to));\n flushCalls(this._pendingCalls, result);\n\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, 'onRest', result, this);\n }\n }\n }\n\n}\n\nfunction checkFinished(target, to) {\n const goal = computeGoal(to);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\n\nfunction createLoopUpdate(props, loop = props.loop, to = props.to) {\n let loopRet = callProp(loop);\n\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate(_extends({}, props, {\n loop,\n default: false,\n pause: undefined,\n to: !reverse || isAsyncTo(to) ? to : undefined,\n from: reset ? props.from : undefined,\n reset\n }, overrides));\n }\n}\nfunction createUpdate(props) {\n const {\n to,\n from\n } = props = inferTo(props);\n const keys = new Set();\n if (is.obj(to)) findDefined(to, keys);\n if (is.obj(from)) findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update = createUpdate(props);\n\n if (is.und(update.default)) {\n update.default = getDefaultProps(update);\n }\n\n return update;\n}\n\nfunction findDefined(values, keys) {\n eachProp(values, (value, key) => value != null && keys.add(key));\n}\n\nconst ACTIVE_EVENTS = ['onStart', 'onRest', 'onChange', 'onPause', 'onResume'];\n\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined;\n}\n\nfunction sendEvent(target, type, ...args) {\n var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps;\n\n (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : _target$animation$typ.call(_target$animation, ...args);\n (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : _target$defaultProps$.call(_target$defaultProps, ...args);\n}\n\nconst BATCHED_EVENTS = ['onStart', 'onChange', 'onRest'];\nlet nextId = 1;\nclass Controller {\n constructor(props, flush) {\n this.id = nextId++;\n this.springs = {};\n this.queue = [];\n this.ref = void 0;\n this._flush = void 0;\n this._initialProps = void 0;\n this._lastAsyncId = 0;\n this._active = new Set();\n this._changed = new Set();\n this._started = false;\n this._item = void 0;\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._events = {\n onStart: new Map(),\n onChange: new Map(),\n onRest: new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n\n if (flush) {\n this._flush = flush;\n }\n\n if (props) {\n this.start(_extends({\n default: true\n }, props));\n }\n }\n\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every(spring => spring.idle);\n }\n\n get item() {\n return this._item;\n }\n\n set item(item) {\n this._item = item;\n }\n\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n\n set(values) {\n for (const key in values) {\n const value = values[key];\n\n if (!is.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n\n return this;\n }\n\n start(props) {\n let {\n queue\n } = this;\n\n if (props) {\n queue = toArray(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n\n if (this._flush) {\n return this._flush(this, queue);\n }\n\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n\n if (keys) {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each(spring => spring.stop(!!arg));\n }\n\n return this;\n }\n\n pause(keys) {\n if (is.und(keys)) {\n this.start({\n pause: true\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].pause());\n }\n\n return this;\n }\n\n resume(keys) {\n if (is.und(keys)) {\n this.start({\n pause: false\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].resume());\n }\n\n return this;\n }\n\n each(iterator) {\n eachProp(this.springs, iterator);\n }\n\n _onFrame() {\n const {\n onStart,\n onChange,\n onRest\n } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush(onStart, ([onStart, result]) => {\n result.value = this.get();\n onStart(result, this, this._item);\n });\n }\n\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n\n if (changed && onChange.size) {\n flush(onChange, ([onChange, result]) => {\n result.value = values;\n onChange(result, this, this._item);\n });\n }\n\n if (idle) {\n this._started = false;\n flush(onRest, ([onRest, result]) => {\n result.value = values;\n onRest(result, this, this._item);\n });\n }\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._changed.add(event.parent);\n\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else return;\n\n raf.onFrame(this._onFrame);\n }\n\n}\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map(props => flushUpdate(ctrl, props))).then(results => getCombinedResult(ctrl, results));\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const {\n keys,\n to,\n from,\n loop,\n onRest,\n onResolve\n } = props;\n const defaults = is.obj(props.default) && props.default;\n\n if (loop) {\n props.loop = false;\n }\n\n if (to === false) props.to = null;\n if (from === false) props.from = null;\n const asyncTo = is.arr(to) || is.fun(to) ? to : undefined;\n\n if (asyncTo) {\n props.to = undefined;\n props.onRest = undefined;\n\n if (defaults) {\n defaults.onRest = undefined;\n }\n } else {\n each(BATCHED_EVENTS, key => {\n const handler = props[key];\n\n if (is.fun(handler)) {\n const queue = ctrl['_events'][key];\n\n props[key] = ({\n finished,\n cancelled\n }) => {\n const result = queue.get(handler);\n\n if (result) {\n if (!finished) result.finished = false;\n if (cancelled) result.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n\n if (defaults) {\n defaults[key] = props[key];\n }\n }\n });\n }\n\n const state = ctrl['_state'];\n\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n\n const promises = (keys || Object.keys(ctrl.springs)).map(key => ctrl.springs[key].start(props));\n const cancel = props.cancel === true || getDefaultProp(props, 'cancel') === true;\n\n if (asyncTo || cancel && state.asyncId) {\n promises.push(scheduleProps(++ctrl['_lastAsyncId'], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n\n start(props, resolve) {\n if (cancel) {\n stopAsync(state, ctrl['_lastAsyncId']);\n resolve(getCancelledResult(ctrl));\n } else {\n props.onRest = onRest;\n resolve(runAsync(asyncTo, props, state, ctrl));\n }\n }\n\n }\n }));\n }\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to);\n\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n\n if (onResolve) {\n raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = _extends({}, ctrl.springs);\n\n if (props) {\n each(toArray(props), props => {\n if (is.und(props.keys)) {\n props = createUpdate(props);\n }\n\n if (!is.obj(props.to)) {\n props = _extends({}, props, {\n to: undefined\n });\n }\n\n prepareSprings(springs, props, key => {\n return createSpring(key);\n });\n });\n }\n\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver(spring, ctrl);\n }\n });\n}\n\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n\n if (observer) {\n addFluidObserver(spring, observer);\n }\n\n return spring;\n}\n\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each(props.keys, key => {\n const spring = springs[key] || (springs[key] = create(key));\n spring['_prepareNode'](props);\n });\n }\n}\n\nfunction prepareKeys(ctrl, queue) {\n each(queue, props => {\n prepareSprings(ctrl.springs, props, key => {\n return createSpring(key, ctrl);\n });\n });\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$3 = [\"children\"];\nconst SpringContext = _ref => {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause,\n immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({\n pause,\n immediate\n }), [pause, immediate]);\n const {\n Provider\n } = ctx;\n return React.createElement(Provider, {\n value: props\n }, children);\n};\nconst ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\n\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\nconst SpringRef = () => {\n const current = [];\n\n const SpringRef = function SpringRef(props) {\n deprecateDirectCall();\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = _getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.current = current;\n\n SpringRef.add = function (ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n\n SpringRef.delete = function (ctrl) {\n const i = current.indexOf(ctrl);\n if (~i) current.splice(i, 1);\n };\n\n SpringRef.pause = function () {\n each(current, ctrl => ctrl.pause(...arguments));\n return this;\n };\n\n SpringRef.resume = function () {\n each(current, ctrl => ctrl.resume(...arguments));\n return this;\n };\n\n SpringRef.set = function (values) {\n each(current, ctrl => ctrl.set(values));\n };\n\n SpringRef.start = function (props) {\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = this._getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.stop = function () {\n each(current, ctrl => ctrl.stop(...arguments));\n return this;\n };\n\n SpringRef.update = function (props) {\n each(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n\n const _getProps = function _getProps(arg, ctrl, index) {\n return is.fun(arg) ? arg(index, ctrl) : arg;\n };\n\n SpringRef._getProps = _getProps;\n return SpringRef;\n};\n\nfunction useSprings(length, props, deps) {\n const propsFn = is.fun(props) && props;\n if (propsFn && !deps) deps = [];\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(() => ({\n ctrls: [],\n queue: [],\n\n flush(ctrl, updates) {\n const springs = getSprings(ctrl, updates);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some(key => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise(resolve => {\n setSprings(ctrl, springs);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates));\n });\n forceUpdate();\n });\n }\n\n }), []);\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each(ctrls.current.slice(length, prevLength), ctrl => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update = propsFn ? propsFn(i, ctrl) : props[i];\n\n if (update) {\n updates[i] = declareUpdate(update);\n }\n }\n }\n\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useLayoutEffect(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const {\n queue\n } = state;\n\n if (queue.length) {\n state.queue = [];\n each(queue, cb => cb());\n }\n\n each(ctrls.current, (ctrl, i) => {\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext) {\n ctrl.start({\n default: context\n });\n }\n\n const update = updates[i];\n\n if (update) {\n replaceRef(ctrl, update.ref);\n\n if (ctrl.ref) {\n ctrl.queue.push(update);\n } else {\n ctrl.start(update);\n }\n }\n });\n });\n useOnce(() => () => {\n each(state.ctrls, ctrl => ctrl.stop(true));\n });\n const values = springs.map(x => _extends({}, x));\n return ref ? [values, ref] : values;\n}\n\nfunction useSpring(props, deps) {\n const isFn = is.fun(props);\n const [[values], ref] = useSprings(1, isFn ? props : [props], isFn ? deps || [] : deps);\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\nconst initSpringRef = () => SpringRef();\n\nconst useSpringRef = () => useState(initSpringRef)[0];\n\nfunction useTrail(length, propsArg, deps) {\n const propsFn = is.fun(propsArg) && propsArg;\n if (propsFn && !deps) deps = [];\n let reverse = true;\n const result = useSprings(length, (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n reverse = reverse && props.reverse;\n return props;\n }, deps || [{}]);\n const ref = result[1];\n useLayoutEffect(() => {\n each(ref.current, (ctrl, i) => {\n const parent = ref.current[i + (reverse ? 1 : -1)];\n if (parent) ctrl.start({\n to: parent.springs\n });\n });\n }, deps);\n\n if (propsFn || arguments.length == 3) {\n ref['_getProps'] = (propsArg, ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent) props.to = parent.springs;\n return props;\n }\n };\n\n return result;\n }\n\n return result[0];\n}\n\nlet TransitionPhase;\n\n(function (TransitionPhase) {\n TransitionPhase[\"MOUNT\"] = \"mount\";\n TransitionPhase[\"ENTER\"] = \"enter\";\n TransitionPhase[\"UPDATE\"] = \"update\";\n TransitionPhase[\"LEAVE\"] = \"leave\";\n})(TransitionPhase || (TransitionPhase = {}));\n\nfunction useTransition(data, props, deps) {\n const propsFn = is.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const items = toArray(data);\n const transitions = [];\n const usedTransitions = useRef(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useLayoutEffect(() => {\n usedTransitions.current = transitions;\n });\n useOnce(() => () => each(usedTransitions.current, t => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n }));\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useLayoutEffect(() => each(expired, ({\n ctrl,\n item,\n key\n }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n }));\n const reused = [];\n if (prevTransitions) each(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i) transitions[i] = t;\n }\n });\n each(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: TransitionPhase.MOUNT,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n\n if (reused.length) {\n let i = -1;\n const {\n leave\n } = propsFn ? propsFn() : props;\n each(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = _extends({}, t, {\n item: items[keyIndex]\n });\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n\n if (is.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n\n let delay = -trail;\n const forceUpdate = useForceUpdate();\n const defaultProps = getDefaultProps(props);\n const changes = new Map();\n each(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to;\n let phase;\n let propsDelay = callProp(p.delay || 0, key);\n\n if (prevPhase == TransitionPhase.MOUNT) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n\n if (prevPhase != TransitionPhase.LEAVE) {\n if (isLeave) {\n to = p.leave;\n phase = TransitionPhase.LEAVE;\n } else if (to = p.update) {\n phase = TransitionPhase.UPDATE;\n } else return;\n } else if (!isLeave) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else return;\n }\n\n to = callProp(to, t.item, i);\n to = is.obj(to) ? inferTo(to) : {\n to\n };\n\n if (!to.config) {\n const config = propsConfig || defaultProps.config;\n to.config = callProp(config, t.item, i, phase);\n }\n\n delay += trail;\n\n const payload = _extends({}, defaultProps, {\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n reset: false\n }, to);\n\n if (phase == TransitionPhase.ENTER && is.und(payload.from)) {\n const _p = propsFn ? propsFn() : props;\n\n const from = is.und(_p.initial) || prevTransitions ? _p.from : _p.initial;\n payload.from = callProp(from, t.item, i);\n }\n\n const {\n onResolve\n } = payload;\n\n payload.onResolve = result => {\n callProp(onResolve, result);\n const transitions = usedTransitions.current;\n const t = transitions.find(t => t.key === key);\n if (!t) return;\n\n if (result.cancelled && t.phase != TransitionPhase.UPDATE) {\n return;\n }\n\n if (t.ctrl.idle) {\n const idle = transitions.every(t => t.ctrl.idle);\n\n if (t.phase == TransitionPhase.LEAVE) {\n const expiry = callProp(expires, t.item);\n\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t.expired = true;\n\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 0x7fffffff) t.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n\n if (idle && transitions.some(t => t.expired)) {\n forceUpdate();\n }\n }\n };\n\n const springs = getSprings(t.ctrl, payload);\n changes.set(t, {\n phase,\n springs,\n payload\n });\n });\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useLayoutEffect(() => {\n if (hasContext) each(transitions, t => {\n t.ctrl.start({\n default: context\n });\n });\n }, [context]);\n useLayoutEffect(() => {\n each(changes, ({\n phase,\n payload\n }, t) => {\n const {\n ctrl\n } = t;\n t.phase = phase;\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext && phase == TransitionPhase.ENTER) {\n ctrl.start({\n default: context\n });\n }\n\n if (payload) {\n replaceRef(ctrl, payload.ref);\n\n if (ctrl.ref) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n }\n }\n });\n }, reset ? void 0 : deps);\n\n const renderTransitions = render => React.createElement(React.Fragment, null, transitions.map((t, i) => {\n const {\n springs\n } = changes.get(t) || t.ctrl;\n const elem = render(_extends({}, springs), t.item, t, i);\n return elem && elem.type ? React.createElement(elem.type, _extends({}, elem.props, {\n key: is.str(t.key) || is.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n })) : elem;\n }));\n\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nlet nextKey = 1;\n\nfunction getKeys(items, {\n key,\n keys = key\n}, prevTransitions) {\n if (keys === null) {\n const reused = new Set();\n return items.map(item => {\n const t = prevTransitions && prevTransitions.find(t => t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t));\n\n if (t) {\n reused.add(t);\n return t.key;\n }\n\n return nextKey++;\n });\n }\n\n return is.und(keys) ? items : is.fun(keys) ? items.map(keys) : toArray(keys);\n}\n\nconst _excluded$2 = [\"children\"];\nfunction Spring(_ref) {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return children(useSpring(props));\n}\n\nconst _excluded$1 = [\"items\", \"children\"];\nfunction Trail(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is.fun(result) ? result(trails[index]) : result;\n });\n}\n\nconst _excluded = [\"items\", \"children\"];\nfunction Transition(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return useTransition(items, props)(children);\n}\n\nclass Interpolation extends FrameValue {\n constructor(source, args) {\n super();\n this.key = void 0;\n this.idle = true;\n this.calc = void 0;\n this._active = new Set();\n this.source = source;\n this.calc = createInterpolator(...args);\n\n const value = this._get();\n\n const nodeType = getAnimatedType(value);\n setAnimated(this, nodeType.create(value));\n }\n\n advance(_dt) {\n const value = this._get();\n\n const oldValue = this.get();\n\n if (!isEqual(value, oldValue)) {\n getAnimated(this).setValue(value);\n\n this._onChange(value, this.idle);\n }\n\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n\n _get() {\n const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source));\n return this.calc(...inputs);\n }\n\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each(getPayload(this), node => {\n node.done = false;\n });\n\n if (Globals.skipAnimation) {\n raf.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop.start(this);\n }\n }\n }\n\n _attach() {\n let priority = 1;\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n addFluidObserver(source, this);\n }\n\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n\n this._start();\n }\n\n _detach() {\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n removeFluidObserver(source, this);\n }\n });\n\n this._active.clear();\n\n becomeIdle(this);\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n\n this._start();\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else if (event.type == 'priority') {\n this.priority = toArray(this.source).reduce((highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), 0);\n }\n }\n\n}\n\nfunction isIdle(source) {\n return source.idle !== false;\n}\n\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\n\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each(getPayload(self), node => {\n node.done = true;\n });\n callFluidObservers(self, {\n type: 'idle',\n parent: self\n });\n }\n}\n\nconst to = (source, ...args) => new Interpolation(source, args);\nconst interpolate = (source, ...args) => (deprecateInterpolate(), new Interpolation(source, args));\n\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nconst update = frameLoop.advance;\n\nexport { BailSignal, Controller, FrameValue, Interpolation, Spring, SpringContext, SpringRef, SpringValue, Trail, Transition, config, inferTo, interpolate, to, update, useChain, useSpring, useSpringRef, useSprings, useTrail, useTransition };\n","let updateQueue = makeQueue();\nconst raf = fn => schedule(fn, updateQueue);\nlet writeQueue = makeQueue();\n\nraf.write = fn => schedule(fn, writeQueue);\n\nlet onStartQueue = makeQueue();\n\nraf.onStart = fn => schedule(fn, onStartQueue);\n\nlet onFrameQueue = makeQueue();\n\nraf.onFrame = fn => schedule(fn, onFrameQueue);\n\nlet onFinishQueue = makeQueue();\n\nraf.onFinish = fn => schedule(fn, onFinishQueue);\n\nlet timeouts = [];\n\nraf.setTimeout = (handler, ms) => {\n let time = raf.now() + ms;\n\n let cancel = () => {\n let i = timeouts.findIndex(t => t.cancel == cancel);\n if (~i) timeouts.splice(i, 1);\n __raf.count -= ~i ? 1 : 0;\n };\n\n let timeout = {\n time,\n handler,\n cancel\n };\n timeouts.splice(findTimeout(time), 0, timeout);\n __raf.count += 1;\n start();\n return timeout;\n};\n\nlet findTimeout = time => ~(~timeouts.findIndex(t => t.time > time) || ~timeouts.length);\n\nraf.cancel = fn => {\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\n\nraf.sync = fn => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\n\nraf.throttle = fn => {\n let lastArgs;\n\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n\n throttled.handler = fn;\n\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n\n return throttled;\n};\n\nlet nativeRaf = typeof window != 'undefined' ? window.requestAnimationFrame : () => {};\n\nraf.use = impl => nativeRaf = impl;\n\nraf.now = typeof performance != 'undefined' ? () => performance.now() : Date.now;\n\nraf.batchedUpdates = fn => fn();\n\nraf.catch = console.error;\nraf.frameLoop = 'always';\n\nraf.advance = () => {\n if (raf.frameLoop !== 'demand') {\n console.warn('Cannot call the manual advancement of rafz whilst frameLoop is not set as demand');\n } else {\n update();\n }\n};\n\nlet ts = -1;\nlet sync = false;\n\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\n\nfunction start() {\n if (ts < 0) {\n ts = 0;\n\n if (raf.frameLoop !== 'demand') {\n nativeRaf(loop);\n }\n }\n}\n\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\n\nfunction update() {\n let prevTs = ts;\n ts = raf.now();\n let count = findTimeout(ts);\n\n if (count) {\n eachSafely(timeouts.splice(0, count), t => t.handler());\n __raf.count -= count;\n }\n\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\n\nfunction makeQueue() {\n let next = new Set();\n let current = next;\n return {\n add(fn) {\n __raf.count += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n\n delete(fn) {\n __raf.count -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n\n flush(arg) {\n if (current.size) {\n next = new Set();\n __raf.count -= current.size;\n eachSafely(current, fn => fn(arg) && next.add(fn));\n __raf.count += next.size;\n current = next;\n }\n }\n\n };\n}\n\nfunction eachSafely(values, each) {\n values.forEach(value => {\n try {\n each(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\n\nconst __raf = {\n count: 0,\n\n clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n __raf.count = 0;\n }\n\n};\n\nexport { __raf, raf };\n","import { raf } from '@react-spring/rafz';\nexport { raf } from '@react-spring/rafz';\nimport * as React from 'react';\nimport { useEffect, useState, useRef } from 'react';\n\nfunction noop() {}\nconst defineHidden = (obj, key, value) => Object.defineProperty(obj, key, {\n value,\n writable: true,\n configurable: true\n});\nconst is = {\n arr: Array.isArray,\n obj: a => !!a && a.constructor.name === 'Object',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === undefined\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n return a === b;\n}\nconst each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n\n return;\n }\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nconst toArray = a => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nconst flushCalls = (queue, ...args) => flush(queue, fn => fn(...args));\n\nlet createStringInterpolator$1;\nlet to;\nlet colors$1 = null;\nlet skipAnimation = false;\nlet willAdvance = noop;\nconst assign = globals => {\n if (globals.to) to = globals.to;\n if (globals.now) raf.now = globals.now;\n if (globals.colors !== undefined) colors$1 = globals.colors;\n if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator;\n if (globals.requestAnimationFrame) raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates) raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance) willAdvance = globals.willAdvance;\n if (globals.frameLoop) raf.frameLoop = globals.frameLoop;\n};\n\nvar globals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get createStringInterpolator () { return createStringInterpolator$1; },\n get to () { return to; },\n get colors () { return colors$1; },\n get skipAnimation () { return skipAnimation; },\n get willAdvance () { return willAdvance; },\n assign: assign\n});\n\nconst startQueue = new Set();\nlet currentFrame = [];\nlet prevFrame = [];\nlet priority = 0;\nconst frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n\n advance,\n\n sort(animation) {\n if (priority) {\n raf.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n\n};\n\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\n\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation)) startUnsafely(animation);\n}\n\nfunction startUnsafely(animation) {\n currentFrame.splice(findIndex(currentFrame, other => other.priority > animation.priority), 0, animation);\n}\n\nfunction advance(dt) {\n const nextFrame = prevFrame;\n\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\n\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...parts) {\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n }\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n\n if (colors$1 && colors$1[color] !== undefined) {\n return colors$1[color];\n }\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 0x000000ff) >>> 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + 'ff', 16) >>> 0;\n }\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 0x000000ff) >>> 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nconst createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (is.str(range.output[0])) {\n return createStringInterpolator$1(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n};\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nconst $get = Symbol.for('FluidValue.get');\nconst $observers = Symbol.for('FluidValue.observers');\n\nconst hasFluidValue = arg => Boolean(arg && arg[$get]);\n\nconst getFluidValue = arg => arg && arg[$get] ? arg[$get]() : arg;\n\nconst getFluidObservers = target => target[$observers] || null;\n\nfunction callFluidObserver(observer, event) {\n if (observer.eventObserved) {\n observer.eventObserved(event);\n } else {\n observer(event);\n }\n}\n\nfunction callFluidObservers(target, event) {\n let observers = target[$observers];\n\n if (observers) {\n observers.forEach(observer => {\n callFluidObserver(observer, event);\n });\n }\n}\n\nclass FluidValue {\n constructor(get) {\n this[$get] = void 0;\n this[$observers] = void 0;\n\n if (!get && !(get = this.get)) {\n throw Error('Unknown getter');\n }\n\n setFluidGetter(this, get);\n }\n\n}\n\nconst setFluidGetter = (target, get) => setHidden(target, $get, get);\n\nfunction addFluidObserver(target, observer) {\n if (target[$get]) {\n let observers = target[$observers];\n\n if (!observers) {\n setHidden(target, $observers, observers = new Set());\n }\n\n if (!observers.has(observer)) {\n observers.add(observer);\n\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer);\n }\n }\n }\n\n return observer;\n}\n\nfunction removeFluidObserver(target, observer) {\n let observers = target[$observers];\n\n if (observers && observers.has(observer)) {\n const count = observers.size - 1;\n\n if (count) {\n observers.delete(observer);\n } else {\n target[$observers] = null;\n }\n\n if (target.observerRemoved) {\n target.observerRemoved(count, observer);\n }\n }\n}\n\nconst setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\nconst numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nconst unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, 'i');\nlet namedColorRegex;\nconst rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\n\nconst rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\n\nconst createStringInterpolator = config => {\n if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join('|')})(?!\\\\w)`, 'g') : /^\\b$/;\n const output = config.output.map(value => getFluidValue(value).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba));\n const keyframes = output.map(value => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map((_, i) => keyframes.map(values => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n\n return values[i];\n }));\n const interpolators = outputRanges.map(output => createInterpolator(_extends({}, config, {\n output\n })));\n return input => {\n var _output$find;\n\n const missingUnit = !unitRegex.test(output[0]) && ((_output$find = output.find(value => unitRegex.test(value))) == null ? void 0 : _output$find.replace(numberRegex, ''));\n let i = 0;\n return output[0].replace(numberRegex, () => `${interpolators[i++](input)}${missingUnit || ''}`).replace(rgbaRegex, rgbaRound);\n };\n};\n\nconst prefix = 'react-spring: ';\n\nconst once = fn => {\n const func = fn;\n let called = false;\n\n if (typeof func != 'function') {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\n\nconst warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(`${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`);\n}\nconst warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`);\n}\n\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == '#' || /\\d/.test(value) || value in (colors$1 || {}));\n}\n\nconst useOnce = effect => useEffect(effect, emptyDeps);\nconst emptyDeps = [];\n\nfunction useForceUpdate() {\n const update = useState()[1];\n const mounted = useState(makeMountedRef)[0];\n useOnce(mounted.unmount);\n return () => {\n if (mounted.current) {\n update({});\n }\n };\n}\n\nfunction makeMountedRef() {\n const mounted = {\n current: true,\n unmount: () => () => {\n mounted.current = false;\n }\n };\n return mounted;\n}\n\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState(() => ({\n inputs,\n result: getResult()\n }));\n const committed = useRef();\n const prevCache = committed.current;\n let cache = prevCache;\n\n if (cache) {\n const useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs));\n\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n\n useEffect(() => {\n committed.current = cache;\n\n if (prevCache == initial) {\n initial.inputs = initial.result = undefined;\n }\n }, [cache]);\n return cache.result;\n}\n\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction usePrev(value) {\n const prevRef = useRef();\n useEffect(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\nconst useLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;\n\nexport { FluidValue, globals as Globals, addFluidObserver, callFluidObserver, callFluidObservers, colorToRgba, colors, createInterpolator, createStringInterpolator, defineHidden, deprecateDirectCall, deprecateInterpolate, each, eachProp, flush, flushCalls, frameLoop, getFluidObservers, getFluidValue, hasFluidValue, hex3, hex4, hex6, hex8, hsl, hsla, is, isAnimatedString, isEqual, noop, removeFluidObserver, rgb, rgba, setFluidGetter, toArray, useForceUpdate, useLayoutEffect, useMemoOne, useOnce, usePrev };\n","import { Globals } from '@react-spring/core';\nexport * from '@react-spring/core';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { eachProp, is, toArray, FluidValue, each, getFluidValue, hasFluidValue, addFluidObserver, removeFluidObserver, callFluidObservers, createStringInterpolator, colors } from '@react-spring/shared';\nimport { AnimatedObject, createHost } from '@react-spring/animated';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$2 = [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"];\nconst isCustomPropRE = /^--/;\n\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (typeof value === 'number' && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px';\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n\n const isFilterElement = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n\n const _ref = props,\n {\n style,\n children,\n scrollTop,\n scrollLeft\n } = _ref,\n attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(name => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase())));\n\n if (children !== void 0) {\n instance.textContent = children;\n }\n\n for (let name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n}\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nconst _excluded$1 = [\"x\", \"y\", \"z\"];\nconst domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nconst pxTransforms = /^(translate)/;\nconst degTransforms = /^(rotate|skew)/;\n\nconst addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\n\nconst isValueIdentity = (value, id) => is.arr(value) ? value.every(v => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(_ref) {\n let {\n x,\n y,\n z\n } = _ref,\n style = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const inputs = [];\n const transforms = [];\n\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push(xyz => [`translate3d(${xyz.map(v => addUnit(v, 'px')).join(',')})`, isValueIdentity(xyz, 0)]);\n }\n\n eachProp(style, (value, key) => {\n if (key === 'transform') {\n inputs.push([value || '']);\n transforms.push(transform => [transform, transform === '']);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value)) return;\n const unit = pxTransforms.test(key) ? 'px' : degTransforms.test(key) ? 'deg' : '';\n inputs.push(toArray(value));\n transforms.push(key === 'rotate3d' ? ([x, y, z, deg]) => [`rotate3d(${x},${y},${z},${addUnit(deg, unit)})`, isValueIdentity(deg, 0)] : input => [`${key}(${input.map(v => addUnit(v, unit)).join(',')})`, isValueIdentity(input, key.startsWith('scale') ? 1 : 0)]);\n }\n });\n\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n\n super(style);\n }\n\n}\n\nclass FluidTransform extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this._value = null;\n this.inputs = inputs;\n this.transforms = transforms;\n }\n\n get() {\n return this._value || (this._value = this._get());\n }\n\n _get() {\n let transform = '';\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](is.arr(arg1) ? arg1 : input.map(getFluidValue));\n transform += ' ' + t;\n identity = identity && id;\n });\n return identity ? 'none' : transform;\n }\n\n observerAdded(count) {\n if (count == 1) each(this.inputs, input => each(input, value => hasFluidValue(value) && addFluidObserver(value, this)));\n }\n\n observerRemoved(count) {\n if (count == 0) each(this.inputs, input => each(input, value => hasFluidValue(value) && removeFluidObserver(value, this)));\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._value = null;\n }\n\n callFluidObservers(this, event);\n }\n\n}\n\nconst primitives = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nconst _excluded = [\"scrollTop\", \"scrollLeft\"];\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nconst host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: style => new AnimatedStyle(style),\n getComponentProps: _ref => {\n let props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return props;\n }\n});\nconst animated = host.animated;\n\nexport { animated as a, animated };\n","import tippy, { createSingleton } from 'tippy.js';\nexport { default as tippy } from 'tippy.js';\nimport React, { useLayoutEffect, useEffect, useRef, useState, cloneElement, useMemo, forwardRef as forwardRef$1 } from 'react';\nimport { createPortal } from 'react-dom';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nfunction preserveRef(ref, node) {\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n }\n\n if ({}.hasOwnProperty.call(ref, 'current')) {\n ref.current = node;\n }\n }\n}\nfunction ssrSafeCreateDiv() {\n return isBrowser && document.createElement('div');\n}\nfunction toDataAttributes(attrs) {\n var dataAttrs = {\n 'data-placement': attrs.placement\n };\n\n if (attrs.referenceHidden) {\n dataAttrs['data-reference-hidden'] = '';\n }\n\n if (attrs.escaped) {\n dataAttrs['data-escaped'] = '';\n }\n\n return dataAttrs;\n}\n\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n } else if (typeof x === 'object' && x != null && typeof y === 'object' && y != null) {\n if (Object.keys(x).length !== Object.keys(y).length) {\n return false;\n }\n\n for (var prop in x) {\n if (y.hasOwnProperty(prop)) {\n if (!deepEqual(x[prop], y[prop])) {\n return false;\n }\n } else {\n return false;\n }\n }\n\n return true;\n } else {\n return false;\n }\n}\n\nfunction uniqueByShape(arr) {\n var output = [];\n arr.forEach(function (item) {\n if (!output.find(function (outputItem) {\n return deepEqual(item, outputItem);\n })) {\n output.push(item);\n }\n });\n return output;\n}\nfunction deepPreserveProps(instanceProps, componentProps) {\n var _instanceProps$popper, _componentProps$poppe;\n\n return Object.assign({}, componentProps, {\n popperOptions: Object.assign({}, instanceProps.popperOptions, componentProps.popperOptions, {\n modifiers: uniqueByShape([].concat(((_instanceProps$popper = instanceProps.popperOptions) == null ? void 0 : _instanceProps$popper.modifiers) || [], ((_componentProps$poppe = componentProps.popperOptions) == null ? void 0 : _componentProps$poppe.modifiers) || []))\n })\n });\n}\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nfunction useMutableBox(initialValue) {\n // Using refs instead of state as it's recommended to not store imperative\n // values in state due to memory problems in React(?)\n var ref = useRef();\n\n if (!ref.current) {\n ref.current = typeof initialValue === 'function' ? initialValue() : initialValue;\n }\n\n return ref.current;\n}\n\nfunction updateClassName(box, action, classNames) {\n classNames.split(/\\s+/).forEach(function (name) {\n if (name) {\n box.classList[action](name);\n }\n });\n}\n\nvar classNamePlugin = {\n name: 'className',\n defaultValue: '',\n fn: function fn(instance) {\n var box = instance.popper.firstElementChild;\n\n var isDefaultRenderFn = function isDefaultRenderFn() {\n var _instance$props$rende;\n\n return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);\n };\n\n function add() {\n if (instance.props.className && !isDefaultRenderFn()) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['@tippyjs/react: Cannot use `className` prop in conjunction with', '`render` prop. Place the className on the element you are', 'rendering.'].join(' '));\n }\n\n return;\n }\n\n updateClassName(box, 'add', instance.props.className);\n }\n\n function remove() {\n if (isDefaultRenderFn()) {\n updateClassName(box, 'remove', instance.props.className);\n }\n }\n\n return {\n onCreate: add,\n onBeforeUpdate: remove,\n onAfterUpdate: add\n };\n }\n};\n\nfunction TippyGenerator(tippy) {\n function Tippy(_ref) {\n var children = _ref.children,\n content = _ref.content,\n visible = _ref.visible,\n singleton = _ref.singleton,\n render = _ref.render,\n reference = _ref.reference,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$ignoreAttributes = _ref.ignoreAttributes,\n ignoreAttributes = _ref$ignoreAttributes === void 0 ? true : _ref$ignoreAttributes,\n __source = _ref.__source,\n __self = _ref.__self,\n restOfNativeProps = _objectWithoutPropertiesLoose(_ref, [\"children\", \"content\", \"visible\", \"singleton\", \"render\", \"reference\", \"disabled\", \"ignoreAttributes\", \"__source\", \"__self\"]);\n\n var isControlledMode = visible !== undefined;\n var isSingletonMode = singleton !== undefined;\n\n var _useState = useState(false),\n mounted = _useState[0],\n setMounted = _useState[1];\n\n var _useState2 = useState({}),\n attrs = _useState2[0],\n setAttrs = _useState2[1];\n\n var _useState3 = useState(),\n singletonContent = _useState3[0],\n setSingletonContent = _useState3[1];\n\n var mutableBox = useMutableBox(function () {\n return {\n container: ssrSafeCreateDiv(),\n renders: 1\n };\n });\n var props = Object.assign({\n ignoreAttributes: ignoreAttributes\n }, restOfNativeProps, {\n content: mutableBox.container\n });\n\n if (isControlledMode) {\n if (process.env.NODE_ENV !== 'production') {\n ['trigger', 'hideOnClick', 'showOnCreate'].forEach(function (nativeStateProp) {\n if (props[nativeStateProp] !== undefined) {\n console.warn([\"@tippyjs/react: Cannot specify `\" + nativeStateProp + \"` prop in\", \"controlled mode (`visible` prop)\"].join(' '));\n }\n });\n }\n\n props.trigger = 'manual';\n props.hideOnClick = false;\n }\n\n if (isSingletonMode) {\n disabled = true;\n }\n\n var computedProps = props;\n var plugins = props.plugins || [];\n\n if (render) {\n computedProps = Object.assign({}, props, {\n plugins: isSingletonMode ? [].concat(plugins, [{\n fn: function fn() {\n return {\n onTrigger: function onTrigger(_, event) {\n var _singleton$data$child = singleton.data.children.find(function (_ref2) {\n var instance = _ref2.instance;\n return instance.reference === event.currentTarget;\n }),\n content = _singleton$data$child.content;\n\n setSingletonContent(content);\n }\n };\n }\n }]) : plugins,\n render: function render() {\n return {\n popper: mutableBox.container\n };\n }\n });\n }\n\n var deps = [reference].concat(children ? [children.type] : []); // CREATE\n\n useIsomorphicLayoutEffect(function () {\n var element = reference;\n\n if (reference && reference.hasOwnProperty('current')) {\n element = reference.current;\n }\n\n var instance = tippy(element || mutableBox.ref || ssrSafeCreateDiv(), Object.assign({}, computedProps, {\n plugins: [classNamePlugin].concat(props.plugins || [])\n }));\n mutableBox.instance = instance;\n\n if (disabled) {\n instance.disable();\n }\n\n if (visible) {\n instance.show();\n }\n\n if (isSingletonMode) {\n singleton.hook({\n instance: instance,\n content: content,\n props: computedProps\n });\n }\n\n setMounted(true);\n return function () {\n instance.destroy();\n singleton == null ? void 0 : singleton.cleanup(instance);\n };\n }, deps); // UPDATE\n\n useIsomorphicLayoutEffect(function () {\n var _instance$popperInsta;\n\n // Prevent this effect from running on 1st render\n if (mutableBox.renders === 1) {\n mutableBox.renders++;\n return;\n }\n\n var instance = mutableBox.instance;\n instance.setProps(deepPreserveProps(instance.props, computedProps)); // Fixes #264\n\n (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.forceUpdate();\n\n if (disabled) {\n instance.disable();\n } else {\n instance.enable();\n }\n\n if (isControlledMode) {\n if (visible) {\n instance.show();\n } else {\n instance.hide();\n }\n }\n\n if (isSingletonMode) {\n singleton.hook({\n instance: instance,\n content: content,\n props: computedProps\n });\n }\n });\n useIsomorphicLayoutEffect(function () {\n var _instance$props$poppe;\n\n if (!render) {\n return;\n }\n\n var instance = mutableBox.instance;\n instance.setProps({\n popperOptions: Object.assign({}, instance.props.popperOptions, {\n modifiers: [].concat((((_instance$props$poppe = instance.props.popperOptions) == null ? void 0 : _instance$props$poppe.modifiers) || []).filter(function (_ref3) {\n var name = _ref3.name;\n return name !== '$$tippyReact';\n }), [{\n name: '$$tippyReact',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: function fn(_ref4) {\n var _state$modifiersData;\n\n var state = _ref4.state;\n var hideData = (_state$modifiersData = state.modifiersData) == null ? void 0 : _state$modifiersData.hide; // WARNING: this is a high-risk path that can cause an infinite\n // loop. This expression _must_ evaluate to false when required\n\n if (attrs.placement !== state.placement || attrs.referenceHidden !== (hideData == null ? void 0 : hideData.isReferenceHidden) || attrs.escaped !== (hideData == null ? void 0 : hideData.hasPopperEscaped)) {\n setAttrs({\n placement: state.placement,\n referenceHidden: hideData == null ? void 0 : hideData.isReferenceHidden,\n escaped: hideData == null ? void 0 : hideData.hasPopperEscaped\n });\n }\n\n state.attributes.popper = {};\n }\n }])\n })\n });\n }, [attrs.placement, attrs.referenceHidden, attrs.escaped].concat(deps));\n return /*#__PURE__*/React.createElement(React.Fragment, null, children ? /*#__PURE__*/cloneElement(children, {\n ref: function ref(node) {\n mutableBox.ref = node;\n preserveRef(children.ref, node);\n }\n }) : null, mounted && /*#__PURE__*/createPortal(render ? render(toDataAttributes(attrs), singletonContent, mutableBox.instance) : content, mutableBox.container));\n }\n\n return Tippy;\n}\n\nfunction useSingletonGenerator(createSingleton) {\n return function useSingleton(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$overrides = _ref.overrides,\n overrides = _ref$overrides === void 0 ? [] : _ref$overrides;\n\n var _useState = useState(false),\n mounted = _useState[0],\n setMounted = _useState[1];\n\n var mutableBox = useMutableBox({\n children: [],\n renders: 1\n });\n useIsomorphicLayoutEffect(function () {\n if (!mounted) {\n setMounted(true);\n return;\n }\n\n var children = mutableBox.children,\n sourceData = mutableBox.sourceData;\n\n if (!sourceData) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['@tippyjs/react: The `source` variable from `useSingleton()` has', 'not been passed to a component.'].join(' '));\n }\n\n return;\n }\n\n var instance = createSingleton(children.map(function (child) {\n return child.instance;\n }), Object.assign({}, sourceData.props, {\n popperOptions: sourceData.instance.props.popperOptions,\n overrides: overrides,\n plugins: [classNamePlugin].concat(sourceData.props.plugins || [])\n }));\n mutableBox.instance = instance;\n\n if (disabled) {\n instance.disable();\n }\n\n return function () {\n instance.destroy();\n mutableBox.children = children.filter(function (_ref2) {\n var instance = _ref2.instance;\n return !instance.state.isDestroyed;\n });\n };\n }, [mounted]);\n useIsomorphicLayoutEffect(function () {\n if (!mounted) {\n return;\n }\n\n if (mutableBox.renders === 1) {\n mutableBox.renders++;\n return;\n }\n\n var children = mutableBox.children,\n instance = mutableBox.instance,\n sourceData = mutableBox.sourceData;\n\n if (!(instance && sourceData)) {\n return;\n }\n\n var _sourceData$props = sourceData.props,\n content = _sourceData$props.content,\n props = _objectWithoutPropertiesLoose(_sourceData$props, [\"content\"]);\n\n instance.setProps(deepPreserveProps(instance.props, Object.assign({}, props, {\n overrides: overrides\n })));\n instance.setInstances(children.map(function (child) {\n return child.instance;\n }));\n\n if (disabled) {\n instance.disable();\n } else {\n instance.enable();\n }\n });\n return useMemo(function () {\n var source = {\n data: mutableBox,\n hook: function hook(data) {\n mutableBox.sourceData = data;\n },\n cleanup: function cleanup() {\n mutableBox.sourceData = null;\n }\n };\n var target = {\n hook: function hook(data) {\n if (!mutableBox.children.find(function (_ref3) {\n var instance = _ref3.instance;\n return data.instance === instance;\n })) {\n mutableBox.children.push(data);\n\n if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {\n mutableBox.instance.setInstances(mutableBox.children.map(function (child) {\n return child.instance;\n }));\n }\n }\n },\n cleanup: function cleanup(instance) {\n mutableBox.children = mutableBox.children.filter(function (data) {\n return data.instance !== instance;\n });\n\n if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {\n mutableBox.instance.setInstances(mutableBox.children.map(function (child) {\n return child.instance;\n }));\n }\n }\n };\n return [source, target];\n }, []);\n };\n}\n\nvar forwardRef = (function (Tippy, defaultProps) {\n return /*#__PURE__*/forwardRef$1(function TippyWrapper(_ref, _ref2) {\n var children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, [\"children\"]);\n\n return (\n /*#__PURE__*/\n // If I spread them separately here, Babel adds the _extends ponyfill for\n // some reason\n React.createElement(Tippy, Object.assign({}, defaultProps, props), children ? /*#__PURE__*/cloneElement(children, {\n ref: function ref(node) {\n preserveRef(_ref2, node);\n preserveRef(children.ref, node);\n }\n }) : null)\n );\n });\n});\n\nvar useSingleton = /*#__PURE__*/useSingletonGenerator(createSingleton);\nvar index = /*#__PURE__*/forwardRef( /*#__PURE__*/TippyGenerator(tippy));\n\nexport default index;\nexport { useSingleton };\n//# sourceMappingURL=tippy-react.esm.js.map\n","import { FinalizationRegistry as FinalizationRegistryMaybeUndefined } from \"./FinalizationRegistryWrapper\";\nimport { createReactionCleanupTrackingUsingFinalizationRegister } from \"./createReactionCleanupTrackingUsingFinalizationRegister\";\nimport { createTimerBasedReactionCleanupTracking } from \"./createTimerBasedReactionCleanupTracking\";\nvar _a = FinalizationRegistryMaybeUndefined\n ? createReactionCleanupTrackingUsingFinalizationRegister(FinalizationRegistryMaybeUndefined)\n : createTimerBasedReactionCleanupTracking(), addReactionToTrack = _a.addReactionToTrack, recordReactionAsCommitted = _a.recordReactionAsCommitted, resetCleanupScheduleForTests = _a.resetCleanupScheduleForTests, forceCleanupTimerToRunNowForTests = _a.forceCleanupTimerToRunNowForTests;\nexport { addReactionToTrack, recordReactionAsCommitted, resetCleanupScheduleForTests, forceCleanupTimerToRunNowForTests };\n//# sourceMappingURL=reactionCleanupTracking.js.map","export function createTrackingData(reaction) {\n var trackingData = {\n reaction: reaction,\n mounted: false,\n changedBeforeMount: false,\n cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS\n };\n return trackingData;\n}\n/**\n * The minimum time before we'll clean up a Reaction created in a render\n * for a component that hasn't managed to run its effects. This needs to\n * be big enough to ensure that a component won't turn up and have its\n * effects run without being re-rendered.\n */\nexport var CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 10000;\n/**\n * The frequency with which we'll check for leaked reactions.\n */\nexport var CLEANUP_TIMER_LOOP_MILLIS = 10000;\n//# sourceMappingURL=reactionCleanupTrackingCommon.js.map","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX || 0;\n var deltaY = y - _this.state.lastY || 0;\n\n var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);\n\n deltaX = _snapToGrid4[0];\n deltaY = _snapToGrid4[1];\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props, _this$props2, _this$props2$nodeRef;\n\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 ? void 0 : (_this$props2$nodeRef = _this$props2.nodeRef) === null || _this$props2$nodeRef === void 0 ? void 0 : _this$props2$nodeRef.current : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\n});","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var boundNodeEl\n /*: HTMLElement*/\n = boundNode; // for Flow, can't seem to refine correctly\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files'; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, [\"open\"]);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function \n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch]); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n\n if (typeof onFileDialogCancel === 'function') {\n onFileDialogCancel();\n }\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancel]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [multiple, accept, minSize, maxSize, maxFiles, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected, noDragEventsBubbling]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, [\"refKey\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"]);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb))\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, [\"refKey\", \"onChange\", \"onClick\"]);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false,\n isDragActive: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n });\n\n default:\n return state;\n }\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __extends } from 'tslib';\nimport React from 'react';\nimport normalizeWheel from 'normalize-wheel';\n\n/**\r\n * Compute the dimension of the crop area based on media size,\r\n * aspect ratio and optionally rotation\r\n */\n\nfunction getCropSize(mediaWidth, mediaHeight, containerWidth, containerHeight, aspect, rotation) {\n if (rotation === void 0) {\n rotation = 0;\n }\n\n var _a = translateSize(mediaWidth, mediaHeight, rotation),\n width = _a.width,\n height = _a.height;\n\n var fittingWidth = Math.min(width, containerWidth);\n var fittingHeight = Math.min(height, containerHeight);\n\n if (fittingWidth > fittingHeight * aspect) {\n return {\n width: fittingHeight * aspect,\n height: fittingHeight\n };\n }\n\n return {\n width: fittingWidth,\n height: fittingWidth / aspect\n };\n}\n/**\r\n * Ensure a new media position stays in the crop area.\r\n */\n\nfunction restrictPosition(position, mediaSize, cropSize, zoom, rotation) {\n if (rotation === void 0) {\n rotation = 0;\n }\n\n var _a = translateSize(mediaSize.width, mediaSize.height, rotation),\n width = _a.width,\n height = _a.height;\n\n return {\n x: restrictPositionCoord(position.x, width, cropSize.width, zoom),\n y: restrictPositionCoord(position.y, height, cropSize.height, zoom)\n };\n}\n\nfunction restrictPositionCoord(position, mediaSize, cropSize, zoom) {\n var maxPosition = mediaSize * zoom / 2 - cropSize / 2;\n return Math.min(maxPosition, Math.max(position, -maxPosition));\n}\n\nfunction getDistanceBetweenPoints(pointA, pointB) {\n return Math.sqrt(Math.pow(pointA.y - pointB.y, 2) + Math.pow(pointA.x - pointB.x, 2));\n}\nfunction getRotationBetweenPoints(pointA, pointB) {\n return Math.atan2(pointB.y - pointA.y, pointB.x - pointA.x) * 180 / Math.PI;\n}\n/**\r\n * Compute the output cropped area of the media in percentages and pixels.\r\n * x/y are the top-left coordinates on the src media\r\n */\n\nfunction computeCroppedArea(crop, mediaSize, cropSize, aspect, zoom, rotation, restrictPosition) {\n if (rotation === void 0) {\n rotation = 0;\n }\n\n if (restrictPosition === void 0) {\n restrictPosition = true;\n } // if the media is rotated by the user, we cannot limit the position anymore\n // as it might need to be negative.\n\n\n var limitAreaFn = restrictPosition && rotation === 0 ? limitArea : noOp;\n var croppedAreaPercentages = {\n x: limitAreaFn(100, ((mediaSize.width - cropSize.width / zoom) / 2 - crop.x / zoom) / mediaSize.width * 100),\n y: limitAreaFn(100, ((mediaSize.height - cropSize.height / zoom) / 2 - crop.y / zoom) / mediaSize.height * 100),\n width: limitAreaFn(100, cropSize.width / mediaSize.width * 100 / zoom),\n height: limitAreaFn(100, cropSize.height / mediaSize.height * 100 / zoom)\n }; // we compute the pixels size naively\n\n var widthInPixels = Math.round(limitAreaFn(mediaSize.naturalWidth, croppedAreaPercentages.width * mediaSize.naturalWidth / 100));\n var heightInPixels = Math.round(limitAreaFn(mediaSize.naturalHeight, croppedAreaPercentages.height * mediaSize.naturalHeight / 100));\n var isImgWiderThanHigh = mediaSize.naturalWidth >= mediaSize.naturalHeight * aspect; // then we ensure the width and height exactly match the aspect (to avoid rounding approximations)\n // if the media is wider than high, when zoom is 0, the crop height will be equals to iamge height\n // thus we want to compute the width from the height and aspect for accuracy.\n // Otherwise, we compute the height from width and aspect.\n\n var sizePixels = isImgWiderThanHigh ? {\n width: Math.round(heightInPixels * aspect),\n height: heightInPixels\n } : {\n width: widthInPixels,\n height: Math.round(widthInPixels / aspect)\n };\n\n var croppedAreaPixels = __assign(__assign({}, sizePixels), {\n x: Math.round(limitAreaFn(mediaSize.naturalWidth - sizePixels.width, croppedAreaPercentages.x * mediaSize.naturalWidth / 100)),\n y: Math.round(limitAreaFn(mediaSize.naturalHeight - sizePixels.height, croppedAreaPercentages.y * mediaSize.naturalHeight / 100))\n });\n\n return {\n croppedAreaPercentages: croppedAreaPercentages,\n croppedAreaPixels: croppedAreaPixels\n };\n}\n/**\r\n * Ensure the returned value is between 0 and max\r\n */\n\nfunction limitArea(max, value) {\n return Math.min(max, Math.max(0, value));\n}\n\nfunction noOp(_max, value) {\n return value;\n}\n/**\r\n * Compute the crop and zoom from the croppedAreaPixels\r\n */\n\n\nfunction getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize) {\n var mediaZoom = mediaSize.width / mediaSize.naturalWidth;\n\n if (cropSize) {\n var isHeightMaxSize_1 = cropSize.height > cropSize.width;\n return isHeightMaxSize_1 ? cropSize.height / mediaZoom / croppedAreaPixels.height : cropSize.width / mediaZoom / croppedAreaPixels.width;\n }\n\n var aspect = croppedAreaPixels.width / croppedAreaPixels.height;\n var isHeightMaxSize = mediaSize.naturalWidth >= mediaSize.naturalHeight * aspect;\n return isHeightMaxSize ? mediaSize.naturalHeight / croppedAreaPixels.height : mediaSize.naturalWidth / croppedAreaPixels.width;\n}\n/**\r\n * Compute the crop and zoom from the croppedAreaPixels\r\n */\n\n\nfunction getInitialCropFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize) {\n var mediaZoom = mediaSize.width / mediaSize.naturalWidth;\n var zoom = getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize);\n var cropZoom = mediaZoom * zoom;\n var crop = {\n x: ((mediaSize.naturalWidth - croppedAreaPixels.width) / 2 - croppedAreaPixels.x) * cropZoom,\n y: ((mediaSize.naturalHeight - croppedAreaPixels.height) / 2 - croppedAreaPixels.y) * cropZoom\n };\n return {\n crop: crop,\n zoom: zoom\n };\n}\n/**\r\n * Return the point that is the center of point a and b\r\n */\n\nfunction getCenter(a, b) {\n return {\n x: (b.x + a.x) / 2,\n y: (b.y + a.y) / 2\n };\n}\n/**\r\n *\r\n * Returns an x,y point once rotated around xMid,yMid\r\n */\n\nfunction rotateAroundMidPoint(x, y, xMid, yMid, degrees) {\n var cos = Math.cos;\n var sin = Math.sin;\n var radian = degrees * Math.PI / 180; // Convert to radians\n // Subtract midpoints, so that midpoint is translated to origin\n // and add it in the end again\n\n var xr = (x - xMid) * cos(radian) - (y - yMid) * sin(radian) + xMid;\n var yr = (x - xMid) * sin(radian) + (y - yMid) * cos(radian) + yMid;\n return [xr, yr];\n}\n/**\r\n * Returns the new bounding area of a rotated rectangle.\r\n */\n\nfunction translateSize(width, height, rotation) {\n var centerX = width / 2;\n var centerY = height / 2;\n var outerBounds = [rotateAroundMidPoint(0, 0, centerX, centerY, rotation), rotateAroundMidPoint(width, 0, centerX, centerY, rotation), rotateAroundMidPoint(width, height, centerX, centerY, rotation), rotateAroundMidPoint(0, height, centerX, centerY, rotation)];\n var minX = Math.min.apply(Math, outerBounds.map(function (p) {\n return p[0];\n }));\n var maxX = Math.max.apply(Math, outerBounds.map(function (p) {\n return p[0];\n }));\n var minY = Math.min.apply(Math, outerBounds.map(function (p) {\n return p[1];\n }));\n var maxY = Math.max.apply(Math, outerBounds.map(function (p) {\n return p[1];\n }));\n return {\n width: maxX - minX,\n height: maxY - minY\n };\n}\n/**\r\n * Combine multiple class names into a single string.\r\n */\n\nfunction classNames() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return args.filter(function (value) {\n if (typeof value === 'string' && value.length > 0) {\n return true;\n }\n\n return false;\n }).join(' ').trim();\n}\n\nvar css_248z = \".reactEasyCrop_Container {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n overflow: hidden;\\n user-select: none;\\n touch-action: none;\\n cursor: move;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.reactEasyCrop_Image,\\n.reactEasyCrop_Video {\\n will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\\n}\\n\\n.reactEasyCrop_Contain {\\n max-width: 100%;\\n max-height: 100%;\\n margin: auto;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n}\\n.reactEasyCrop_Cover_Horizontal {\\n width: 100%;\\n height: auto;\\n}\\n.reactEasyCrop_Cover_Vertical {\\n width: auto;\\n height: 100%;\\n}\\n\\n.reactEasyCrop_CropArea {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n border: 1px solid rgba(255, 255, 255, 0.5);\\n box-sizing: border-box;\\n box-shadow: 0 0 0 9999em;\\n color: rgba(0, 0, 0, 0.5);\\n overflow: hidden;\\n}\\n\\n.reactEasyCrop_CropAreaRound {\\n border-radius: 50%;\\n}\\n\\n.reactEasyCrop_CropAreaGrid::before {\\n content: ' ';\\n box-sizing: border-box;\\n position: absolute;\\n border: 1px solid rgba(255, 255, 255, 0.5);\\n top: 0;\\n bottom: 0;\\n left: 33.33%;\\n right: 33.33%;\\n border-top: 0;\\n border-bottom: 0;\\n}\\n\\n.reactEasyCrop_CropAreaGrid::after {\\n content: ' ';\\n box-sizing: border-box;\\n position: absolute;\\n border: 1px solid rgba(255, 255, 255, 0.5);\\n top: 33.33%;\\n bottom: 33.33%;\\n left: 0;\\n right: 0;\\n border-left: 0;\\n border-right: 0;\\n}\\n\";\n\nvar MIN_ZOOM = 1;\nvar MAX_ZOOM = 3;\n\nvar Cropper =\n/** @class */\nfunction (_super) {\n __extends(Cropper, _super);\n\n function Cropper() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.imageRef = null;\n _this.videoRef = null;\n _this.containerRef = null;\n _this.styleRef = null;\n _this.containerRect = null;\n _this.mediaSize = {\n width: 0,\n height: 0,\n naturalWidth: 0,\n naturalHeight: 0\n };\n _this.dragStartPosition = {\n x: 0,\n y: 0\n };\n _this.dragStartCrop = {\n x: 0,\n y: 0\n };\n _this.lastPinchDistance = 0;\n _this.lastPinchRotation = 0;\n _this.rafDragTimeout = null;\n _this.rafPinchTimeout = null;\n _this.wheelTimer = null;\n _this.state = {\n cropSize: null,\n hasWheelJustStarted: false\n }; // this is to prevent Safari on iOS >= 10 to zoom the page\n\n _this.preventZoomSafari = function (e) {\n return e.preventDefault();\n };\n\n _this.cleanEvents = function () {\n document.removeEventListener('mousemove', _this.onMouseMove);\n document.removeEventListener('mouseup', _this.onDragStopped);\n document.removeEventListener('touchmove', _this.onTouchMove);\n document.removeEventListener('touchend', _this.onDragStopped);\n };\n\n _this.clearScrollEvent = function () {\n if (_this.containerRef) _this.containerRef.removeEventListener('wheel', _this.onWheel);\n\n if (_this.wheelTimer) {\n clearTimeout(_this.wheelTimer);\n }\n };\n\n _this.onMediaLoad = function () {\n _this.computeSizes();\n\n _this.emitCropData();\n\n _this.setInitialCrop();\n\n if (_this.props.onMediaLoaded) {\n _this.props.onMediaLoaded(_this.mediaSize);\n }\n };\n\n _this.setInitialCrop = function () {\n var _a = _this.props,\n initialCroppedAreaPixels = _a.initialCroppedAreaPixels,\n cropSize = _a.cropSize;\n\n if (!initialCroppedAreaPixels) {\n return;\n }\n\n var _b = getInitialCropFromCroppedAreaPixels(initialCroppedAreaPixels, _this.mediaSize, cropSize),\n crop = _b.crop,\n zoom = _b.zoom;\n\n _this.props.onCropChange(crop);\n\n _this.props.onZoomChange && _this.props.onZoomChange(zoom);\n };\n\n _this.computeSizes = function () {\n var _a, _b, _c, _d, _e, _f;\n\n var mediaRef = _this.imageRef || _this.videoRef;\n\n if (mediaRef && _this.containerRef) {\n _this.containerRect = _this.containerRef.getBoundingClientRect();\n _this.mediaSize = {\n width: mediaRef.offsetWidth,\n height: mediaRef.offsetHeight,\n naturalWidth: ((_a = _this.imageRef) === null || _a === void 0 ? void 0 : _a.naturalWidth) || ((_b = _this.videoRef) === null || _b === void 0 ? void 0 : _b.videoWidth) || 0,\n naturalHeight: ((_c = _this.imageRef) === null || _c === void 0 ? void 0 : _c.naturalHeight) || ((_d = _this.videoRef) === null || _d === void 0 ? void 0 : _d.videoHeight) || 0\n };\n var cropSize = _this.props.cropSize ? _this.props.cropSize : getCropSize(mediaRef.offsetWidth, mediaRef.offsetHeight, _this.containerRect.width, _this.containerRect.height, _this.props.aspect, _this.props.rotation);\n\n if (((_e = _this.state.cropSize) === null || _e === void 0 ? void 0 : _e.height) !== cropSize.height || ((_f = _this.state.cropSize) === null || _f === void 0 ? void 0 : _f.width) !== cropSize.width) {\n _this.props.onCropSizeChange && _this.props.onCropSizeChange(cropSize);\n }\n\n _this.setState({\n cropSize: cropSize\n }, _this.recomputeCropPosition);\n }\n };\n\n _this.onMouseDown = function (e) {\n e.preventDefault();\n document.addEventListener('mousemove', _this.onMouseMove);\n document.addEventListener('mouseup', _this.onDragStopped);\n\n _this.onDragStart(Cropper.getMousePoint(e));\n };\n\n _this.onMouseMove = function (e) {\n return _this.onDrag(Cropper.getMousePoint(e));\n };\n\n _this.onTouchStart = function (e) {\n document.addEventListener('touchmove', _this.onTouchMove, {\n passive: false\n }); // iOS 11 now defaults to passive: true\n\n document.addEventListener('touchend', _this.onDragStopped);\n\n if (e.touches.length === 2) {\n _this.onPinchStart(e);\n } else if (e.touches.length === 1) {\n _this.onDragStart(Cropper.getTouchPoint(e.touches[0]));\n }\n };\n\n _this.onTouchMove = function (e) {\n // Prevent whole page from scrolling on iOS.\n e.preventDefault();\n\n if (e.touches.length === 2) {\n _this.onPinchMove(e);\n } else if (e.touches.length === 1) {\n _this.onDrag(Cropper.getTouchPoint(e.touches[0]));\n }\n };\n\n _this.onDragStart = function (_a) {\n var _b, _c;\n\n var x = _a.x,\n y = _a.y;\n _this.dragStartPosition = {\n x: x,\n y: y\n };\n _this.dragStartCrop = __assign({}, _this.props.crop);\n (_c = (_b = _this.props).onInteractionStart) === null || _c === void 0 ? void 0 : _c.call(_b);\n };\n\n _this.onDrag = function (_a) {\n var x = _a.x,\n y = _a.y;\n if (_this.rafDragTimeout) window.cancelAnimationFrame(_this.rafDragTimeout);\n _this.rafDragTimeout = window.requestAnimationFrame(function () {\n if (!_this.state.cropSize) return;\n if (x === undefined || y === undefined) return;\n var offsetX = x - _this.dragStartPosition.x;\n var offsetY = y - _this.dragStartPosition.y;\n var requestedPosition = {\n x: _this.dragStartCrop.x + offsetX,\n y: _this.dragStartCrop.y + offsetY\n };\n var newPosition = _this.props.restrictPosition ? restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : requestedPosition;\n\n _this.props.onCropChange(newPosition);\n });\n };\n\n _this.onDragStopped = function () {\n var _a, _b;\n\n _this.cleanEvents();\n\n _this.emitCropData();\n\n (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n\n _this.onWheel = function (e) {\n e.preventDefault();\n var point = Cropper.getMousePoint(e);\n var pixelY = normalizeWheel(e).pixelY;\n var newZoom = _this.props.zoom - pixelY * _this.props.zoomSpeed / 200;\n\n _this.setNewZoom(newZoom, point);\n\n if (!_this.state.hasWheelJustStarted) {\n _this.setState({\n hasWheelJustStarted: true\n }, function () {\n var _a, _b;\n\n return (_b = (_a = _this.props).onInteractionStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n });\n }\n\n if (_this.wheelTimer) {\n clearTimeout(_this.wheelTimer);\n }\n\n _this.wheelTimer = window.setTimeout(function () {\n return _this.setState({\n hasWheelJustStarted: false\n }, function () {\n var _a, _b;\n\n return (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a);\n });\n }, 250);\n };\n\n _this.getPointOnContainer = function (_a) {\n var x = _a.x,\n y = _a.y;\n\n if (!_this.containerRect) {\n throw new Error('The Cropper is not mounted');\n }\n\n return {\n x: _this.containerRect.width / 2 - (x - _this.containerRect.left),\n y: _this.containerRect.height / 2 - (y - _this.containerRect.top)\n };\n };\n\n _this.getPointOnMedia = function (_a) {\n var x = _a.x,\n y = _a.y;\n var _b = _this.props,\n crop = _b.crop,\n zoom = _b.zoom;\n return {\n x: (x + crop.x) / zoom,\n y: (y + crop.y) / zoom\n };\n };\n\n _this.setNewZoom = function (zoom, point) {\n if (!_this.state.cropSize || !_this.props.onZoomChange) return;\n\n var zoomPoint = _this.getPointOnContainer(point);\n\n var zoomTarget = _this.getPointOnMedia(zoomPoint);\n\n var newZoom = Math.min(_this.props.maxZoom, Math.max(zoom, _this.props.minZoom));\n var requestedPosition = {\n x: zoomTarget.x * newZoom - zoomPoint.x,\n y: zoomTarget.y * newZoom - zoomPoint.y\n };\n var newPosition = _this.props.restrictPosition ? restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, newZoom, _this.props.rotation) : requestedPosition;\n\n _this.props.onCropChange(newPosition);\n\n _this.props.onZoomChange(newZoom);\n };\n\n _this.getCropData = function () {\n if (!_this.state.cropSize) {\n return null;\n } // this is to ensure the crop is correctly restricted after a zoom back (https://github.com/ricardo-ch/react-easy-crop/issues/6)\n\n\n var restrictedPosition = _this.props.restrictPosition ? restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop;\n return computeCroppedArea(restrictedPosition, _this.mediaSize, _this.state.cropSize, _this.getAspect(), _this.props.zoom, _this.props.rotation, _this.props.restrictPosition);\n };\n\n _this.emitCropData = function () {\n var cropData = _this.getCropData();\n\n if (!cropData) return;\n var croppedAreaPercentages = cropData.croppedAreaPercentages,\n croppedAreaPixels = cropData.croppedAreaPixels;\n\n if (_this.props.onCropComplete) {\n _this.props.onCropComplete(croppedAreaPercentages, croppedAreaPixels);\n }\n\n if (_this.props.onCropAreaChange) {\n _this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels);\n }\n };\n\n _this.emitCropAreaChange = function () {\n var cropData = _this.getCropData();\n\n if (!cropData) return;\n var croppedAreaPercentages = cropData.croppedAreaPercentages,\n croppedAreaPixels = cropData.croppedAreaPixels;\n\n if (_this.props.onCropAreaChange) {\n _this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels);\n }\n };\n\n _this.recomputeCropPosition = function () {\n if (!_this.state.cropSize) return;\n var newPosition = _this.props.restrictPosition ? restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop;\n\n _this.props.onCropChange(newPosition);\n\n _this.emitCropData();\n };\n\n return _this;\n }\n\n Cropper.prototype.componentDidMount = function () {\n window.addEventListener('resize', this.computeSizes);\n\n if (this.containerRef) {\n this.props.zoomWithScroll && this.containerRef.addEventListener('wheel', this.onWheel, {\n passive: false\n });\n this.containerRef.addEventListener('gesturestart', this.preventZoomSafari);\n this.containerRef.addEventListener('gesturechange', this.preventZoomSafari);\n }\n\n if (!this.props.disableAutomaticStylesInjection) {\n this.styleRef = document.createElement('style');\n this.styleRef.setAttribute('type', 'text/css');\n this.styleRef.innerHTML = css_248z;\n document.head.appendChild(this.styleRef);\n } // when rendered via SSR, the image can already be loaded and its onLoad callback will never be called\n\n\n if (this.imageRef && this.imageRef.complete) {\n this.onMediaLoad();\n }\n };\n\n Cropper.prototype.componentWillUnmount = function () {\n var _a;\n\n window.removeEventListener('resize', this.computeSizes);\n\n if (this.containerRef) {\n this.containerRef.removeEventListener('gesturestart', this.preventZoomSafari);\n this.containerRef.removeEventListener('gesturechange', this.preventZoomSafari);\n }\n\n if (this.styleRef) {\n (_a = this.styleRef.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(this.styleRef);\n }\n\n this.cleanEvents();\n this.props.zoomWithScroll && this.clearScrollEvent();\n };\n\n Cropper.prototype.componentDidUpdate = function (prevProps) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n\n if (prevProps.rotation !== this.props.rotation) {\n this.computeSizes();\n this.recomputeCropPosition();\n } else if (prevProps.aspect !== this.props.aspect) {\n this.computeSizes();\n } else if (prevProps.zoom !== this.props.zoom) {\n this.recomputeCropPosition();\n } else if (((_a = prevProps.cropSize) === null || _a === void 0 ? void 0 : _a.height) !== ((_b = this.props.cropSize) === null || _b === void 0 ? void 0 : _b.height) || ((_c = prevProps.cropSize) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = this.props.cropSize) === null || _d === void 0 ? void 0 : _d.width)) {\n this.computeSizes();\n } else if (((_e = prevProps.crop) === null || _e === void 0 ? void 0 : _e.x) !== ((_f = this.props.crop) === null || _f === void 0 ? void 0 : _f.x) || ((_g = prevProps.crop) === null || _g === void 0 ? void 0 : _g.y) !== ((_h = this.props.crop) === null || _h === void 0 ? void 0 : _h.y)) {\n this.emitCropAreaChange();\n }\n\n if (prevProps.zoomWithScroll !== this.props.zoomWithScroll && this.containerRef) {\n this.props.zoomWithScroll ? this.containerRef.addEventListener('wheel', this.onWheel, {\n passive: false\n }) : this.clearScrollEvent();\n }\n\n if (prevProps.video !== this.props.video) {\n (_j = this.videoRef) === null || _j === void 0 ? void 0 : _j.load();\n }\n };\n\n Cropper.prototype.getAspect = function () {\n var _a = this.props,\n cropSize = _a.cropSize,\n aspect = _a.aspect;\n\n if (cropSize) {\n return cropSize.width / cropSize.height;\n }\n\n return aspect;\n };\n\n Cropper.prototype.onPinchStart = function (e) {\n var pointA = Cropper.getTouchPoint(e.touches[0]);\n var pointB = Cropper.getTouchPoint(e.touches[1]);\n this.lastPinchDistance = getDistanceBetweenPoints(pointA, pointB);\n this.lastPinchRotation = getRotationBetweenPoints(pointA, pointB);\n this.onDragStart(getCenter(pointA, pointB));\n };\n\n Cropper.prototype.onPinchMove = function (e) {\n var _this = this;\n\n var pointA = Cropper.getTouchPoint(e.touches[0]);\n var pointB = Cropper.getTouchPoint(e.touches[1]);\n var center = getCenter(pointA, pointB);\n this.onDrag(center);\n if (this.rafPinchTimeout) window.cancelAnimationFrame(this.rafPinchTimeout);\n this.rafPinchTimeout = window.requestAnimationFrame(function () {\n var distance = getDistanceBetweenPoints(pointA, pointB);\n var newZoom = _this.props.zoom * (distance / _this.lastPinchDistance);\n\n _this.setNewZoom(newZoom, center);\n\n _this.lastPinchDistance = distance;\n var rotation = getRotationBetweenPoints(pointA, pointB);\n var newRotation = _this.props.rotation + (rotation - _this.lastPinchRotation);\n _this.props.onRotationChange && _this.props.onRotationChange(newRotation);\n _this.lastPinchRotation = rotation;\n });\n };\n\n Cropper.prototype.render = function () {\n var _this = this;\n\n var _a = this.props,\n image = _a.image,\n video = _a.video,\n mediaProps = _a.mediaProps,\n transform = _a.transform,\n _b = _a.crop,\n x = _b.x,\n y = _b.y,\n rotation = _a.rotation,\n zoom = _a.zoom,\n cropShape = _a.cropShape,\n showGrid = _a.showGrid,\n _c = _a.style,\n containerStyle = _c.containerStyle,\n cropAreaStyle = _c.cropAreaStyle,\n mediaStyle = _c.mediaStyle,\n _d = _a.classes,\n containerClassName = _d.containerClassName,\n cropAreaClassName = _d.cropAreaClassName,\n mediaClassName = _d.mediaClassName,\n objectFit = _a.objectFit;\n return /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n ref: function ref(el) {\n return _this.containerRef = el;\n },\n \"data-testid\": \"container\",\n style: containerStyle,\n className: classNames('reactEasyCrop_Container', containerClassName)\n }, image ? /*#__PURE__*/React.createElement(\"img\", __assign({\n alt: \"\",\n className: classNames('reactEasyCrop_Image', objectFit === 'contain' && 'reactEasyCrop_Contain', objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal', objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical', mediaClassName)\n }, mediaProps, {\n src: image,\n ref: function ref(el) {\n return _this.imageRef = el;\n },\n style: __assign(__assign({}, mediaStyle), {\n transform: transform || \"translate(\" + x + \"px, \" + y + \"px) rotate(\" + rotation + \"deg) scale(\" + zoom + \")\"\n }),\n onLoad: this.onMediaLoad\n })) : video && /*#__PURE__*/React.createElement(\"video\", __assign({\n autoPlay: true,\n loop: true,\n muted: true,\n className: classNames('reactEasyCrop_Video', objectFit === 'contain' && 'reactEasyCrop_Contain', objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal', objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical', mediaClassName)\n }, mediaProps, {\n ref: function ref(el) {\n return _this.videoRef = el;\n },\n onLoadedMetadata: this.onMediaLoad,\n style: __assign(__assign({}, mediaStyle), {\n transform: transform || \"translate(\" + x + \"px, \" + y + \"px) rotate(\" + rotation + \"deg) scale(\" + zoom + \")\"\n }),\n controls: false\n }), (Array.isArray(video) ? video : [{\n src: video\n }]).map(function (item) {\n return /*#__PURE__*/React.createElement(\"source\", __assign({\n key: item.src\n }, item));\n })), this.state.cropSize && /*#__PURE__*/React.createElement(\"div\", {\n style: __assign(__assign({}, cropAreaStyle), {\n width: this.state.cropSize.width,\n height: this.state.cropSize.height\n }),\n \"data-testid\": \"cropper\",\n className: classNames('reactEasyCrop_CropArea', cropShape === 'round' && 'reactEasyCrop_CropAreaRound', showGrid && 'reactEasyCrop_CropAreaGrid', cropAreaClassName)\n }));\n };\n\n Cropper.defaultProps = {\n zoom: 1,\n rotation: 0,\n aspect: 4 / 3,\n maxZoom: MAX_ZOOM,\n minZoom: MIN_ZOOM,\n cropShape: 'rect',\n objectFit: 'contain',\n showGrid: true,\n style: {},\n classes: {},\n mediaProps: {},\n zoomSpeed: 1,\n restrictPosition: true,\n zoomWithScroll: true\n };\n\n Cropper.getMousePoint = function (e) {\n return {\n x: Number(e.clientX),\n y: Number(e.clientY)\n };\n };\n\n Cropper.getTouchPoint = function (touch) {\n return {\n x: Number(touch.clientX),\n y: Number(touch.clientY)\n };\n };\n\n return Cropper;\n}(React.Component);\n\nexport default Cropper;\n//# sourceMappingURL=index.module.js.map\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true // focus-lock sidecar is not required on the server\n // however, it might be required for JSDOM tests\n // ssr: true,\n\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n // report incorrect integration - https://github.com/theKashey/react-focus-lock/issues/123\n if (!observed.current && typeof Container !== 'string') {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), // first tabbed element guard\n hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n hasPositiveIndices: undefined,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","export function deferAction(action) {\n setTimeout(action, 1);\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","/* eslint-disable no-mixed-operators */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && ( // find host equal to active element and check nested active element\n el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !( // active element is \"inside\" working area\n focusInside(workingArea) || // check for shadow-dom contained elements\n activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n deferAction(function () {\n focusWasOutsideWindow = 'meanwhile';\n });\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\n\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\n\nvar ALL_INITIALIZERS = [];\nvar READY_INITIALIZERS = [];\n\nfunction isWebpackReady(getModuleIds) {\n if ((typeof __webpack_modules__ === \"undefined\" ? \"undefined\" : _typeof(__webpack_modules__)) !== \"object\") {\n return false;\n }\n\n return getModuleIds().every(function (moduleId) {\n return typeof moduleId !== \"undefined\" && typeof __webpack_modules__[moduleId] !== \"undefined\";\n });\n}\n\nfunction load(loader) {\n var promise = loader();\n\n var state = {\n loading: true,\n loaded: null,\n error: null\n };\n\n state.promise = promise.then(function (loaded) {\n state.loading = false;\n state.loaded = loaded;\n return loaded;\n }).catch(function (err) {\n state.loading = false;\n state.error = err;\n throw err;\n });\n\n return state;\n}\n\nfunction loadMap(obj) {\n var state = {\n loading: false,\n loaded: {},\n error: null\n };\n\n var promises = [];\n\n try {\n Object.keys(obj).forEach(function (key) {\n var result = load(obj[key]);\n\n if (!result.loading) {\n state.loaded[key] = result.loaded;\n state.error = result.error;\n } else {\n state.loading = true;\n }\n\n promises.push(result.promise);\n\n result.promise.then(function (res) {\n state.loaded[key] = res;\n }).catch(function (err) {\n state.error = err;\n });\n });\n } catch (err) {\n state.error = err;\n }\n\n state.promise = Promise.all(promises).then(function (res) {\n state.loading = false;\n return res;\n }).catch(function (err) {\n state.loading = false;\n throw err;\n });\n\n return state;\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj;\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props);\n}\n\nfunction createLoadableComponent(loadFn, options) {\n var _class, _temp;\n\n if (!options.loading) {\n throw new Error(\"react-loadable requires a `loading` component\");\n }\n\n var opts = Object.assign({\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null\n }, options);\n\n var res = null;\n\n function init() {\n if (!res) {\n res = loadFn(opts.loader);\n }\n return res.promise;\n }\n\n ALL_INITIALIZERS.push(init);\n\n if (typeof opts.webpack === \"function\") {\n READY_INITIALIZERS.push(function () {\n if (isWebpackReady(opts.webpack)) {\n return init();\n }\n });\n }\n\n return _temp = _class = function (_React$Component) {\n _inherits(LoadableComponent, _React$Component);\n\n function LoadableComponent(props) {\n _classCallCheck(this, LoadableComponent);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.retry = function () {\n _this.setState({ error: null, loading: true, timedOut: false });\n res = loadFn(opts.loader);\n _this._loadModule();\n };\n\n init();\n\n _this.state = {\n error: res.error,\n pastDelay: false,\n timedOut: false,\n loading: res.loading,\n loaded: res.loaded\n };\n return _this;\n }\n\n LoadableComponent.preload = function preload() {\n return init();\n };\n\n LoadableComponent.prototype.componentWillMount = function componentWillMount() {\n this._mounted = true;\n this._loadModule();\n };\n\n LoadableComponent.prototype._loadModule = function _loadModule() {\n var _this2 = this;\n\n if (this.context.loadable && Array.isArray(opts.modules)) {\n opts.modules.forEach(function (moduleName) {\n _this2.context.loadable.report(moduleName);\n });\n }\n\n if (!res.loading) {\n return;\n }\n\n if (typeof opts.delay === \"number\") {\n if (opts.delay === 0) {\n this.setState({ pastDelay: true });\n } else {\n this._delay = setTimeout(function () {\n _this2.setState({ pastDelay: true });\n }, opts.delay);\n }\n }\n\n if (typeof opts.timeout === \"number\") {\n this._timeout = setTimeout(function () {\n _this2.setState({ timedOut: true });\n }, opts.timeout);\n }\n\n var update = function update() {\n if (!_this2._mounted) {\n return;\n }\n\n _this2.setState({\n error: res.error,\n loaded: res.loaded,\n loading: res.loading\n });\n\n _this2._clearTimeouts();\n };\n\n res.promise.then(function () {\n update();\n }).catch(function (err) {\n update();\n });\n };\n\n LoadableComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n this._mounted = false;\n this._clearTimeouts();\n };\n\n LoadableComponent.prototype._clearTimeouts = function _clearTimeouts() {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n };\n\n LoadableComponent.prototype.render = function render() {\n if (this.state.loading || this.state.error) {\n return React.createElement(opts.loading, {\n isLoading: this.state.loading,\n pastDelay: this.state.pastDelay,\n timedOut: this.state.timedOut,\n error: this.state.error,\n retry: this.retry\n });\n } else if (this.state.loaded) {\n return opts.render(this.state.loaded, this.props);\n } else {\n return null;\n }\n };\n\n return LoadableComponent;\n }(React.Component), _class.contextTypes = {\n loadable: PropTypes.shape({\n report: PropTypes.func.isRequired\n })\n }, _temp;\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts);\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== \"function\") {\n throw new Error(\"LoadableMap requires a `render(loaded, props)` function\");\n }\n\n return createLoadableComponent(loadMap, opts);\n}\n\nLoadable.Map = LoadableMap;\n\nvar Capture = function (_React$Component2) {\n _inherits(Capture, _React$Component2);\n\n function Capture() {\n _classCallCheck(this, Capture);\n\n return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments));\n }\n\n Capture.prototype.getChildContext = function getChildContext() {\n return {\n loadable: {\n report: this.props.report\n }\n };\n };\n\n Capture.prototype.render = function render() {\n return React.Children.only(this.props.children);\n };\n\n return Capture;\n}(React.Component);\n\nCapture.propTypes = {\n report: PropTypes.func.isRequired\n};\nCapture.childContextTypes = {\n loadable: PropTypes.shape({\n report: PropTypes.func.isRequired\n }).isRequired\n};\n\n\nLoadable.Capture = Capture;\n\nfunction flushInitializers(initializers) {\n var promises = [];\n\n while (initializers.length) {\n var init = initializers.pop();\n promises.push(init());\n }\n\n return Promise.all(promises).then(function () {\n if (initializers.length) {\n return flushInitializers(initializers);\n }\n });\n}\n\nLoadable.preloadAll = function () {\n return new Promise(function (resolve, reject) {\n flushInitializers(ALL_INITIALIZERS).then(resolve, reject);\n });\n};\n\nLoadable.preloadReady = function () {\n return new Promise(function (resolve, reject) {\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS).then(resolve, resolve);\n });\n};\n\nmodule.exports = Loadable;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _reactDraggable = require(\"react-draggable\");\nvar _utils = require(\"./utils\");\nvar _propTypes = require(\"./propTypes\");\nvar _excluded = [\"children\", \"className\", \"draggableOpts\", \"width\", \"height\", \"handle\", \"handleSize\", \"lockAspectRatio\", \"axis\", \"minConstraints\", \"maxConstraints\", \"onResize\", \"onResizeStop\", \"onResizeStart\", \"resizeHandles\", \"transformScale\"];\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n// The base component.\n// This component does not have state and relies on the parent to set its props based on callback data.\nvar Resizable = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Resizable, _React$Component);\n function Resizable() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleRefs = {};\n _this.lastHandleRect = null;\n _this.slack = null;\n return _this;\n }\n var _proto = Resizable.prototype;\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.resetData();\n };\n _proto.resetData = function resetData() {\n this.lastHandleRect = this.slack = null;\n }\n\n // Clamp width and height within provided constraints\n ;\n _proto.runConstraints = function runConstraints(width, height) {\n var _this$props = this.props,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio;\n // short circuit\n if (!minConstraints && !maxConstraints && !lockAspectRatio) return [width, height];\n\n // If constraining to min and max, we need to also fit width and height to aspect ratio.\n if (lockAspectRatio) {\n var ratio = this.props.width / this.props.height;\n var deltaW = width - this.props.width;\n var deltaH = height - this.props.height;\n\n // Find which coordinate was greater and should push the other toward it.\n // E.g.:\n // ratio = 1, deltaW = 10, deltaH = 5, deltaH should become 10.\n // ratio = 2, deltaW = 10, deltaH = 6, deltaW should become 12.\n if (Math.abs(deltaW) > Math.abs(deltaH * ratio)) {\n height = width / ratio;\n } else {\n width = height * ratio;\n }\n }\n var oldW = width,\n oldH = height;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n var _ref = this.slack || [0, 0],\n slackW = _ref[0],\n slackH = _ref[1];\n width += slackW;\n height += slackH;\n if (minConstraints) {\n width = Math.max(minConstraints[0], width);\n height = Math.max(minConstraints[1], height);\n }\n if (maxConstraints) {\n width = Math.min(maxConstraints[0], width);\n height = Math.min(maxConstraints[1], height);\n }\n\n // If the width or height changed, we must have introduced some slack. Record it for the next iteration.\n this.slack = [slackW + (oldW - width), slackH + (oldH - height)];\n return [width, height];\n }\n\n /**\n * Wrapper around drag events to provide more useful data.\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */;\n _proto.resizeHandler = function resizeHandler(handlerName, axis) {\n var _this2 = this;\n return function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n // Reset data in case it was left over somehow (should not be possible)\n if (handlerName === 'onResizeStart') _this2.resetData();\n\n // Axis restrictions\n var canDragX = (_this2.props.axis === 'both' || _this2.props.axis === 'x') && axis !== 'n' && axis !== 's';\n var canDragY = (_this2.props.axis === 'both' || _this2.props.axis === 'y') && axis !== 'e' && axis !== 'w';\n // No dragging possible.\n if (!canDragX && !canDragY) return;\n\n // Decompose axis for later use\n var axisV = axis[0];\n var axisH = axis[axis.length - 1]; // intentionally not axis[1], so that this catches axis === 'w' for example\n\n // Track the element being dragged to account for changes in position.\n // If a handle's position is changed between callbacks, we need to factor this in to the next callback.\n // Failure to do so will cause the element to \"skip\" when resized upwards or leftwards.\n var handleRect = node.getBoundingClientRect();\n if (_this2.lastHandleRect != null) {\n // If the handle has repositioned on either axis since last render,\n // we need to increase our callback values by this much.\n // Only checking 'n', 'w' since resizing by 's', 'w' won't affect the overall position on page,\n if (axisH === 'w') {\n var deltaLeftSinceLast = handleRect.left - _this2.lastHandleRect.left;\n deltaX += deltaLeftSinceLast;\n }\n if (axisV === 'n') {\n var deltaTopSinceLast = handleRect.top - _this2.lastHandleRect.top;\n deltaY += deltaTopSinceLast;\n }\n }\n // Storage of last rect so we know how much it has really moved.\n _this2.lastHandleRect = handleRect;\n\n // Reverse delta if using top or left drag handles.\n if (axisH === 'w') deltaX = -deltaX;\n if (axisV === 'n') deltaY = -deltaY;\n\n // Update w/h by the deltas. Also factor in transformScale.\n var width = _this2.props.width + (canDragX ? deltaX / _this2.props.transformScale : 0);\n var height = _this2.props.height + (canDragY ? deltaY / _this2.props.transformScale : 0);\n\n // Run user-provided constraints.\n var _this2$runConstraints = _this2.runConstraints(width, height);\n width = _this2$runConstraints[0];\n height = _this2$runConstraints[1];\n var dimensionsChanged = width !== _this2.props.width || height !== _this2.props.height;\n\n // Call user-supplied callback if present.\n var cb = typeof _this2.props[handlerName] === 'function' ? _this2.props[handlerName] : null;\n // Don't call 'onResize' if dimensions haven't changed.\n var shouldSkipCb = handlerName === 'onResize' && !dimensionsChanged;\n if (cb && !shouldSkipCb) {\n e.persist == null ? void 0 : e.persist();\n cb(e, {\n node: node,\n size: {\n width: width,\n height: height\n },\n handle: axis\n });\n }\n\n // Reset internal data\n if (handlerName === 'onResizeStop') _this2.resetData();\n };\n }\n\n // Render a resize handle given an axis & DOM ref. Ref *must* be attached for\n // the underlying draggable library to work properly.\n ;\n _proto.renderResizeHandle = function renderResizeHandle(handleAxis, ref) {\n var handle = this.props.handle;\n // No handle provided, make the default\n if (!handle) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"react-resizable-handle react-resizable-handle-\" + handleAxis,\n ref: ref\n });\n }\n // Handle is a function, such as:\n // `handle={(handleAxis) => }`\n if (typeof handle === 'function') {\n return handle(handleAxis, ref);\n }\n // Handle is a React component (composite or DOM).\n var isDOMElement = typeof handle.type === 'string';\n var props = _objectSpread({\n ref: ref\n }, isDOMElement ? {} : {\n handleAxis: handleAxis\n });\n return /*#__PURE__*/React.cloneElement(handle, props);\n };\n _proto.render = function render() {\n var _this3 = this;\n // Pass along only props not meant for the ``.`\n // eslint-disable-next-line no-unused-vars\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n draggableOpts = _this$props2.draggableOpts,\n width = _this$props2.width,\n height = _this$props2.height,\n handle = _this$props2.handle,\n handleSize = _this$props2.handleSize,\n lockAspectRatio = _this$props2.lockAspectRatio,\n axis = _this$props2.axis,\n minConstraints = _this$props2.minConstraints,\n maxConstraints = _this$props2.maxConstraints,\n onResize = _this$props2.onResize,\n onResizeStop = _this$props2.onResizeStop,\n onResizeStart = _this$props2.onResizeStart,\n resizeHandles = _this$props2.resizeHandles,\n transformScale = _this$props2.transformScale,\n p = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n\n // What we're doing here is getting the child of this element, and cloning it with this element's props.\n // We are then defining its children as:\n // 1. Its original children (resizable's child's children), and\n // 2. One or more draggable handles.\n return (0, _utils.cloneElement)(children, _objectSpread(_objectSpread({}, p), {}, {\n className: (className ? className + \" \" : '') + \"react-resizable\",\n children: [].concat(children.props.children, resizeHandles.map(function (handleAxis) {\n var _this3$handleRefs$han;\n // Create a ref to the handle so that `` doesn't have to use ReactDOM.findDOMNode().\n var ref = (_this3$handleRefs$han = _this3.handleRefs[handleAxis]) != null ? _this3$handleRefs$han : _this3.handleRefs[handleAxis] = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(_reactDraggable.DraggableCore, _extends({}, draggableOpts, {\n nodeRef: ref,\n key: \"resizableHandle-\" + handleAxis,\n onStop: _this3.resizeHandler('onResizeStop', handleAxis),\n onStart: _this3.resizeHandler('onResizeStart', handleAxis),\n onDrag: _this3.resizeHandler('onResize', handleAxis)\n }), _this3.renderResizeHandle(handleAxis, ref));\n }))\n }));\n };\n return Resizable;\n}(React.Component);\nexports.default = Resizable;\nResizable.propTypes = _propTypes.resizableProps;\nResizable.defaultProps = {\n axis: 'both',\n handleSize: [20, 20],\n lockAspectRatio: false,\n minConstraints: [20, 20],\n maxConstraints: [Infinity, Infinity],\n resizeHandles: ['se'],\n transformScale: 1\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Resizable = _interopRequireDefault(require(\"./Resizable\"));\nvar _propTypes2 = require(\"./propTypes\");\nvar _excluded = [\"handle\", \"handleSize\", \"onResize\", \"onResizeStart\", \"onResizeStop\", \"draggableOpts\", \"minConstraints\", \"maxConstraints\", \"lockAspectRatio\", \"axis\", \"width\", \"height\", \"resizeHandles\", \"style\", \"transformScale\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ResizableBox = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ResizableBox, _React$Component);\n function ResizableBox() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n width: _this.props.width,\n height: _this.props.height,\n propsWidth: _this.props.width,\n propsHeight: _this.props.height\n };\n _this.onResize = function (e, data) {\n var size = data.size;\n if (_this.props.onResize) {\n e.persist == null ? void 0 : e.persist();\n _this.setState(size, function () {\n return _this.props.onResize && _this.props.onResize(e, data);\n });\n } else {\n _this.setState(size);\n }\n };\n return _this;\n }\n ResizableBox.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n // If parent changes height/width, set that in our state.\n if (state.propsWidth !== props.width || state.propsHeight !== props.height) {\n return {\n width: props.width,\n height: props.height,\n propsWidth: props.width,\n propsHeight: props.height\n };\n }\n return null;\n };\n var _proto = ResizableBox.prototype;\n _proto.render = function render() {\n // Basic wrapper around a Resizable instance.\n // If you use Resizable directly, you are responsible for updating the child component\n // with a new width and height.\n var _this$props = this.props,\n handle = _this$props.handle,\n handleSize = _this$props.handleSize,\n onResize = _this$props.onResize,\n onResizeStart = _this$props.onResizeStart,\n onResizeStop = _this$props.onResizeStop,\n draggableOpts = _this$props.draggableOpts,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio,\n axis = _this$props.axis,\n width = _this$props.width,\n height = _this$props.height,\n resizeHandles = _this$props.resizeHandles,\n style = _this$props.style,\n transformScale = _this$props.transformScale,\n props = _objectWithoutPropertiesLoose(_this$props, _excluded);\n return /*#__PURE__*/React.createElement(_Resizable.default, {\n axis: axis,\n draggableOpts: draggableOpts,\n handle: handle,\n handleSize: handleSize,\n height: this.state.height,\n lockAspectRatio: lockAspectRatio,\n maxConstraints: maxConstraints,\n minConstraints: minConstraints,\n onResizeStart: onResizeStart,\n onResize: this.onResize,\n onResizeStop: onResizeStop,\n resizeHandles: resizeHandles,\n transformScale: transformScale,\n width: this.state.width\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: this.state.width + 'px',\n height: this.state.height + 'px'\n })\n })));\n };\n return ResizableBox;\n}(React.Component);\nexports.default = ResizableBox;\n// PropTypes are identical to , except that children are not strictly required to be present.\nResizableBox.propTypes = _objectSpread(_objectSpread({}, _propTypes2.resizableProps), {}, {\n children: _propTypes.default.element\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.resizableProps = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDraggable = require(\"react-draggable\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar resizableProps = {\n /*\n * Restricts resizing to a particular axis (default: 'both')\n * 'both' - allows resizing by width or height\n * 'x' - only allows the width to be changed\n * 'y' - only allows the height to be changed\n * 'none' - disables resizing altogether\n * */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n className: _propTypes.default.string,\n /*\n * Require that one and only one child be present.\n * */\n children: _propTypes.default.element.isRequired,\n /*\n * These will be passed wholesale to react-draggable's DraggableCore\n * */\n draggableOpts: _propTypes.default.shape({\n allowAnyClick: _propTypes.default.bool,\n cancel: _propTypes.default.string,\n children: _propTypes.default.node,\n disabled: _propTypes.default.bool,\n enableUserSelectHack: _propTypes.default.bool,\n offsetParent: _propTypes.default.node,\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n handle: _propTypes.default.string,\n nodeRef: _propTypes.default.object,\n onStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onStop: _propTypes.default.func,\n onMouseDown: _propTypes.default.func,\n scale: _propTypes.default.number\n }),\n /*\n * Initial height\n * */\n height: function height() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var props = args[0];\n // Required if resizing height or both\n if (props.axis === 'both' || props.axis === 'y') {\n var _PropTypes$number;\n return (_PropTypes$number = _propTypes.default.number).isRequired.apply(_PropTypes$number, args);\n }\n return _propTypes.default.number.apply(_propTypes.default, args);\n },\n /*\n * Customize cursor resize handle\n * */\n handle: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),\n /*\n * If you change this, be sure to update your css\n * */\n handleSize: _propTypes.default.arrayOf(_propTypes.default.number),\n lockAspectRatio: _propTypes.default.bool,\n /*\n * Max X & Y measure\n * */\n maxConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n /*\n * Min X & Y measure\n * */\n minConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n /*\n * Called on stop resize event\n * */\n onResizeStop: _propTypes.default.func,\n /*\n * Called on start resize event\n * */\n onResizeStart: _propTypes.default.func,\n /*\n * Called on resize event\n * */\n onResize: _propTypes.default.func,\n /*\n * Defines which resize handles should be rendered (default: 'se')\n * 's' - South handle (bottom-center)\n * 'w' - West handle (left-center)\n * 'e' - East handle (right-center)\n * 'n' - North handle (top-center)\n * 'sw' - Southwest handle (bottom-left)\n * 'nw' - Northwest handle (top-left)\n * 'se' - Southeast handle (bottom-right)\n * 'ne' - Northeast handle (top-center)\n * */\n resizeHandles: _propTypes.default.arrayOf(_propTypes.default.oneOf(['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'])),\n /*\n * If `transform: scale(n)` is set on the parent, this should be set to `n`.\n * */\n transformScale: _propTypes.default.number,\n /*\n * Initial width\n */\n width: function width() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var props = args[0];\n // Required if resizing width or both\n if (props.axis === 'both' || props.axis === 'x') {\n var _PropTypes$number2;\n return (_PropTypes$number2 = _propTypes.default.number).isRequired.apply(_PropTypes$number2, args);\n }\n return _propTypes.default.number.apply(_propTypes.default, args);\n }\n};\nexports.resizableProps = resizableProps;","\"use strict\";\n\nexports.__esModule = true;\nexports.cloneElement = cloneElement;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// React.addons.cloneWithProps look-alike that merges style & className.\nfunction cloneElement(element, props) {\n if (props.style && element.props.style) {\n props.style = _objectSpread(_objectSpread({}, element.props.style), props.style);\n }\n if (props.className && element.props.className) {\n props.className = element.props.className + \" \" + props.className;\n }\n return /*#__PURE__*/_react.default.cloneElement(element, props);\n}","'use strict';\nmodule.exports = function() {\n throw new Error(\"Don't instantiate Resizable directly! Use require('react-resizable').Resizable\");\n};\n\nmodule.exports.Resizable = require('./build/Resizable').default;\nmodule.exports.ResizableBox = require('./build/ResizableBox').default;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext =\n/*#__PURE__*/\ncreateNamedContext(\"Router-History\");\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext$1(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createRef, createElement, Component, createContext } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport PropTypes from 'prop-types';\n\nvar Manager = function () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n _defineProperty(this, \"refs\", {});\n }\n\n _createClass(Manager, [{\n key: \"add\",\n value: function add(collection, ref) {\n if (!this.refs[collection]) {\n this.refs[collection] = [];\n }\n\n this.refs[collection].push(ref);\n }\n }, {\n key: \"remove\",\n value: function remove(collection, ref) {\n var index = this.getIndex(collection, ref);\n\n if (index !== -1) {\n this.refs[collection].splice(index, 1);\n }\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.active;\n }\n }, {\n key: \"getActive\",\n value: function getActive() {\n var _this = this;\n\n return this.refs[this.active.collection].find(function (_ref) {\n var node = _ref.node;\n return node.sortableInfo.index == _this.active.index;\n });\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(collection, ref) {\n return this.refs[collection].indexOf(ref);\n }\n }, {\n key: \"getOrderedRefs\",\n value: function getOrderedRefs() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n return this.refs[collection].sort(sortByIndex);\n }\n }]);\n\n return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n var index1 = _ref2.node.sortableInfo.index;\n var index2 = _ref3.node.sortableInfo.index;\n return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined') {\n console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n }\n }\n\n array = array.slice();\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n}\nfunction omit(obj, keysToOmit) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (keysToOmit.indexOf(key) === -1) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\nvar events = {\n end: ['touchend', 'touchcancel', 'mouseup'],\n move: ['touchmove', 'mousemove'],\n start: ['touchstart', 'mousedown']\n};\nvar vendorPrefix = function () {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return '';\n }\n\n var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n switch (pre) {\n case 'ms':\n return 'ms';\n\n default:\n return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n }\n}();\nfunction setInlineStyles(node, styles) {\n Object.keys(styles).forEach(function (key) {\n node.style[key] = styles[key];\n });\n}\nfunction setTranslate3d(node, translate) {\n node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\nfunction setTransitionDuration(node, duration) {\n node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\nfunction closest(el, fn) {\n while (el) {\n if (fn(el)) {\n return el;\n }\n\n el = el.parentNode;\n }\n\n return null;\n}\nfunction limit(min, max, value) {\n return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n if (stringValue.substr(-2) === 'px') {\n return parseFloat(stringValue);\n }\n\n return 0;\n}\n\nfunction getElementMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n bottom: getPixelValue(style.marginBottom),\n left: getPixelValue(style.marginLeft),\n right: getPixelValue(style.marginRight),\n top: getPixelValue(style.marginTop)\n };\n}\nfunction provideDisplayName(prefix, Component$$1) {\n var componentName = Component$$1.displayName || Component$$1.name;\n return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n var boundingClientRect = node.getBoundingClientRect();\n return {\n top: boundingClientRect.top + scrollDelta.top,\n left: boundingClientRect.left + scrollDelta.left\n };\n}\nfunction getPosition(event) {\n if (event.touches && event.touches.length) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n return {\n x: event.changedTouches[0].pageX,\n y: event.changedTouches[0].pageY\n };\n } else {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n}\nfunction isTouchEvent(event) {\n return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\nfunction getEdgeOffset(node, parent) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n left: 0,\n top: 0\n };\n\n if (!node) {\n return undefined;\n }\n\n var nodeOffset = {\n left: offset.left + node.offsetLeft,\n top: offset.top + node.offsetTop\n };\n\n if (node.parentNode === parent) {\n return nodeOffset;\n }\n\n return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n if (newIndex < oldIndex && newIndex > prevIndex) {\n return newIndex - 1;\n } else if (newIndex > oldIndex && newIndex < prevIndex) {\n return newIndex + 1;\n } else {\n return newIndex;\n }\n}\nfunction getLockPixelOffset(_ref) {\n var lockOffset = _ref.lockOffset,\n width = _ref.width,\n height = _ref.height;\n var offsetX = lockOffset;\n var offsetY = lockOffset;\n var unit = 'px';\n\n if (typeof lockOffset === 'string') {\n var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n offsetX = parseFloat(lockOffset);\n offsetY = parseFloat(lockOffset);\n unit = match[1];\n }\n\n invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n if (unit === '%') {\n offsetX = offsetX * width / 100;\n offsetY = offsetY * height / 100;\n }\n\n return {\n x: offsetX,\n y: offsetY\n };\n}\nfunction getLockPixelOffsets(_ref2) {\n var height = _ref2.height,\n width = _ref2.width,\n lockOffset = _ref2.lockOffset;\n var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n var _offsets = _slicedToArray(offsets, 2),\n minLockOffset = _offsets[0],\n maxLockOffset = _offsets[1];\n\n return [getLockPixelOffset({\n height: height,\n lockOffset: minLockOffset,\n width: width\n }), getLockPixelOffset({\n height: height,\n lockOffset: maxLockOffset,\n width: width\n })];\n}\n\nfunction isScrollable(el) {\n var computedStyle = window.getComputedStyle(el);\n var overflowRegex = /(auto|scroll)/;\n var properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.find(function (property) {\n return overflowRegex.test(computedStyle[property]);\n });\n}\n\nfunction getScrollingParent(el) {\n if (!(el instanceof HTMLElement)) {\n return null;\n } else if (isScrollable(el)) {\n return el;\n } else {\n return getScrollingParent(el.parentNode);\n }\n}\nfunction getContainerGridGap(element) {\n var style = window.getComputedStyle(element);\n\n if (style.display === 'grid') {\n return {\n x: getPixelValue(style.gridColumnGap),\n y: getPixelValue(style.gridRowGap)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar KEYCODE = {\n TAB: 9,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nvar NodeType = {\n Anchor: 'A',\n Button: 'BUTTON',\n Canvas: 'CANVAS',\n Input: 'INPUT',\n Option: 'OPTION',\n Textarea: 'TEXTAREA',\n Select: 'SELECT'\n};\nfunction cloneNode(node) {\n var selector = 'input, textarea, select, canvas, [contenteditable]';\n var fields = node.querySelectorAll(selector);\n var clonedNode = node.cloneNode(true);\n\n var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n clonedFields.forEach(function (field, i) {\n if (field.type !== 'file') {\n field.value = fields[i].value;\n }\n\n if (field.type === 'radio' && field.name) {\n field.name = \"__sortableClone__\".concat(field.name);\n }\n\n if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n var destCtx = field.getContext('2d');\n destCtx.drawImage(fields[i], 0, 0);\n }\n });\n return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableHandle, _React$Component);\n\n function WithSortableHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WithSortableHandle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n return _this;\n }\n\n _createClass(WithSortableHandle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = findDOMNode(this);\n node.sortableHandle = true;\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, this.props));\n }\n }]);\n\n return WithSortableHandle;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\nfunction isSortableHandle(node) {\n return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n function AutoScroller(container, onScrollCallback) {\n _classCallCheck(this, AutoScroller);\n\n this.container = container;\n this.onScrollCallback = onScrollCallback;\n }\n\n _createClass(AutoScroller, [{\n key: \"clear\",\n value: function clear() {\n if (this.interval == null) {\n return;\n }\n\n clearInterval(this.interval);\n this.interval = null;\n }\n }, {\n key: \"update\",\n value: function update(_ref) {\n var _this = this;\n\n var translate = _ref.translate,\n minTranslate = _ref.minTranslate,\n maxTranslate = _ref.maxTranslate,\n width = _ref.width,\n height = _ref.height;\n var direction = {\n x: 0,\n y: 0\n };\n var speed = {\n x: 1,\n y: 1\n };\n var acceleration = {\n x: 10,\n y: 10\n };\n var _this$container = this.container,\n scrollTop = _this$container.scrollTop,\n scrollLeft = _this$container.scrollLeft,\n scrollHeight = _this$container.scrollHeight,\n scrollWidth = _this$container.scrollWidth,\n clientHeight = _this$container.clientHeight,\n clientWidth = _this$container.clientWidth;\n var isTop = scrollTop === 0;\n var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n var isLeft = scrollLeft === 0;\n var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n direction.y = 1;\n speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n direction.x = 1;\n speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n direction.y = -1;\n speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n direction.x = -1;\n speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n }\n\n if (this.interval) {\n this.clear();\n this.isAutoScrolling = false;\n }\n\n if (direction.x !== 0 || direction.y !== 0) {\n this.interval = setInterval(function () {\n _this.isAutoScrolling = true;\n var offset = {\n left: speed.x * direction.x,\n top: speed.y * direction.y\n };\n _this.container.scrollTop += offset.top;\n _this.container.scrollLeft += offset.left;\n\n _this.onScrollCallback(offset);\n }, 5);\n }\n }\n }]);\n\n return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n var node = _ref.node;\n return {\n height: node.offsetHeight,\n width: node.offsetWidth\n };\n}\n\nfunction defaultShouldCancelStart(event) {\n var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n return true;\n }\n\n if (closest(event.target, function (el) {\n return el.contentEditable === 'true';\n })) {\n return true;\n }\n\n return false;\n}\n\nvar propTypes = {\n axis: PropTypes.oneOf(['x', 'y', 'xy']),\n contentWindow: PropTypes.any,\n disableAutoscroll: PropTypes.bool,\n distance: PropTypes.number,\n getContainer: PropTypes.func,\n getHelperDimensions: PropTypes.func,\n helperClass: PropTypes.string,\n helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n hideSortableGhost: PropTypes.bool,\n keyboardSortingTransitionDuration: PropTypes.number,\n lockAxis: PropTypes.string,\n lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n lockToContainerEdges: PropTypes.bool,\n onSortEnd: PropTypes.func,\n onSortMove: PropTypes.func,\n onSortOver: PropTypes.func,\n onSortStart: PropTypes.func,\n pressDelay: PropTypes.number,\n pressThreshold: PropTypes.number,\n keyCodes: PropTypes.shape({\n lift: PropTypes.arrayOf(PropTypes.number),\n drop: PropTypes.arrayOf(PropTypes.number),\n cancel: PropTypes.arrayOf(PropTypes.number),\n up: PropTypes.arrayOf(PropTypes.number),\n down: PropTypes.arrayOf(PropTypes.number)\n }),\n shouldCancelStart: PropTypes.func,\n transitionDuration: PropTypes.number,\n updateBeforeSortStart: PropTypes.func,\n useDragHandle: PropTypes.bool,\n useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n lift: [KEYCODE.SPACE],\n drop: [KEYCODE.SPACE],\n cancel: [KEYCODE.ESC],\n up: [KEYCODE.UP, KEYCODE.LEFT],\n down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n axis: 'y',\n disableAutoscroll: false,\n distance: 0,\n getHelperDimensions: defaultGetHelperDimensions,\n hideSortableGhost: true,\n lockOffset: '50%',\n lockToContainerEdges: false,\n pressDelay: 0,\n pressThreshold: 5,\n keyCodes: defaultKeyCodes,\n shouldCancelStart: defaultShouldCancelStart,\n transitionDuration: 300,\n useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\nfunction validateProps(props) {\n invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer(true, e);\n }\n\n if (result && result.then) {\n return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n }\n\n return finalizer(false, value);\n}\nvar SortableContext = createContext({\n manager: {}\n});\nfunction sortableContainer(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableContainer, _React$Component);\n\n function WithSortableContainer(props) {\n var _this;\n\n _classCallCheck(this, WithSortableContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n var _this$props = _this.props,\n distance = _this$props.distance,\n shouldCancelStart = _this$props.shouldCancelStart;\n\n if (event.button === 2 || shouldCancelStart(event)) {\n return;\n }\n\n _this.touched = true;\n _this.position = getPosition(event);\n var node = closest(event.target, function (el) {\n return el.sortableInfo != null;\n });\n\n if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n var useDragHandle = _this.props.useDragHandle;\n var _node$sortableInfo = node.sortableInfo,\n index = _node$sortableInfo.index,\n collection = _node$sortableInfo.collection,\n disabled = _node$sortableInfo.disabled;\n\n if (disabled) {\n return;\n }\n\n if (useDragHandle && !closest(event.target, isSortableHandle)) {\n return;\n }\n\n _this.manager.active = {\n collection: collection,\n index: index\n };\n\n if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n event.preventDefault();\n }\n\n if (!distance) {\n if (_this.props.pressDelay === 0) {\n _this.handlePress(event);\n } else {\n _this.pressTimer = setTimeout(function () {\n return _this.handlePress(event);\n }, _this.props.pressDelay);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n return node.sortableInfo.manager === _this.manager;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n var _this$props2 = _this.props,\n distance = _this$props2.distance,\n pressThreshold = _this$props2.pressThreshold;\n\n if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n var position = getPosition(event);\n var delta = {\n x: _this.position.x - position.x,\n y: _this.position.y - position.y\n };\n var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n _this.delta = delta;\n\n if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n clearTimeout(_this.cancelTimer);\n _this.cancelTimer = setTimeout(_this.cancel, 0);\n } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n _this.handlePress(event);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n _this.touched = false;\n\n _this.cancel();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n var distance = _this.props.distance;\n var sorting = _this.state.sorting;\n\n if (!sorting) {\n if (!distance) {\n clearTimeout(_this.pressTimer);\n }\n\n _this.manager.active = null;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n try {\n var active = _this.manager.getActive();\n\n var _temp6 = function () {\n if (active) {\n var _temp7 = function _temp7() {\n var index = _node.sortableInfo.index;\n var margin = getElementMargin(_node);\n var gridGap = getContainerGridGap(_this.container);\n\n var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n var dimensions = _getHelperDimensions({\n index: index,\n node: _node,\n collection: _collection\n });\n\n _this.node = _node;\n _this.margin = margin;\n _this.gridGap = gridGap;\n _this.width = dimensions.width;\n _this.height = dimensions.height;\n _this.marginOffset = {\n x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n };\n _this.boundingClientRect = _node.getBoundingClientRect();\n _this.containerBoundingRect = containerBoundingRect;\n _this.index = index;\n _this.newIndex = index;\n _this.axis = {\n x: _axis.indexOf('x') >= 0,\n y: _axis.indexOf('y') >= 0\n };\n _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n if (_isKeySorting) {\n _this.initialOffset = getPosition(_objectSpread({}, event, {\n pageX: _this.boundingClientRect.left,\n pageY: _this.boundingClientRect.top\n }));\n } else {\n _this.initialOffset = getPosition(event);\n }\n\n _this.initialScroll = {\n left: _this.scrollContainer.scrollLeft,\n top: _this.scrollContainer.scrollTop\n };\n _this.initialWindowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n setInlineStyles(_this.helper, {\n boxSizing: 'border-box',\n height: \"\".concat(_this.height, \"px\"),\n left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n pointerEvents: 'none',\n position: 'fixed',\n top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n width: \"\".concat(_this.width, \"px\")\n });\n\n if (_isKeySorting) {\n _this.helper.focus();\n }\n\n if (_hideSortableGhost) {\n _this.sortableGhost = _node;\n setInlineStyles(_node, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n _this.minTranslate = {};\n _this.maxTranslate = {};\n\n if (_isKeySorting) {\n var _ref = _useWindowAsScrollContainer ? {\n top: 0,\n left: 0,\n width: _this.contentWindow.innerWidth,\n height: _this.contentWindow.innerHeight\n } : _this.containerBoundingRect,\n containerTop = _ref.top,\n containerLeft = _ref.left,\n containerWidth = _ref.width,\n containerHeight = _ref.height;\n\n var containerBottom = containerTop + containerHeight;\n var containerRight = containerLeft + containerWidth;\n\n if (_this.axis.x) {\n _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n }\n } else {\n if (_this.axis.x) {\n _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n }\n }\n\n if (_helperClass) {\n _helperClass.split(' ').forEach(function (className) {\n return _this.helper.classList.add(className);\n });\n }\n\n _this.listenerNode = event.touches ? event.target : _this.contentWindow;\n\n if (_isKeySorting) {\n _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n });\n }\n\n _this.setState({\n sorting: true,\n sortingIndex: index\n });\n\n if (_onSortStart) {\n _onSortStart({\n node: _node,\n index: index,\n collection: _collection,\n isKeySorting: _isKeySorting,\n nodes: _this.manager.getOrderedRefs(),\n helper: _this.helper\n }, event);\n }\n\n if (_isKeySorting) {\n _this.keyMove(0);\n }\n };\n\n var _this$props3 = _this.props,\n _axis = _this$props3.axis,\n _getHelperDimensions = _this$props3.getHelperDimensions,\n _helperClass = _this$props3.helperClass,\n _hideSortableGhost = _this$props3.hideSortableGhost,\n updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n _onSortStart = _this$props3.onSortStart,\n _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n var _node = active.node,\n _collection = active.collection;\n var _isKeySorting = _this.manager.isKeySorting;\n\n var _temp8 = function () {\n if (typeof updateBeforeSortStart === 'function') {\n _this._awaitingUpdateBeforeSortStart = true;\n\n var _temp9 = _finallyRethrows(function () {\n var index = _node.sortableInfo.index;\n return Promise.resolve(updateBeforeSortStart({\n collection: _collection,\n index: index,\n node: _node,\n isKeySorting: _isKeySorting\n }, event)).then(function () {});\n }, function (_wasThrown, _result) {\n _this._awaitingUpdateBeforeSortStart = false;\n if (_wasThrown) throw _result;\n return _result;\n });\n\n if (_temp9 && _temp9.then) return _temp9.then(function () {});\n }\n }();\n\n return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n }\n }();\n\n return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n var onSortMove = _this.props.onSortMove;\n\n if (typeof event.preventDefault === 'function' && event.cancelable) {\n event.preventDefault();\n }\n\n _this.updateHelperPosition(event);\n\n _this.animateNodes();\n\n _this.autoscroll();\n\n if (onSortMove) {\n onSortMove(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n var _this$props4 = _this.props,\n hideSortableGhost = _this$props4.hideSortableGhost,\n onSortEnd = _this$props4.onSortEnd;\n var _this$manager = _this.manager,\n collection = _this$manager.active.collection,\n isKeySorting = _this$manager.isKeySorting;\n\n var nodes = _this.manager.getOrderedRefs();\n\n if (_this.listenerNode) {\n if (isKeySorting) {\n _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n });\n }\n }\n\n _this.helper.parentNode.removeChild(_this.helper);\n\n if (hideSortableGhost && _this.sortableGhost) {\n setInlineStyles(_this.sortableGhost, {\n opacity: '',\n visibility: ''\n });\n }\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node2 = nodes[i];\n var el = _node2.node;\n _node2.edgeOffset = null;\n _node2.boundingClientRect = null;\n setTranslate3d(el, null);\n setTransitionDuration(el, null);\n _node2.translate = null;\n }\n\n _this.autoScroller.clear();\n\n _this.manager.active = null;\n _this.manager.isKeySorting = false;\n\n _this.setState({\n sorting: false,\n sortingIndex: null\n });\n\n if (typeof onSortEnd === 'function') {\n onSortEnd({\n collection: collection,\n newIndex: _this.newIndex,\n oldIndex: _this.index,\n isKeySorting: isKeySorting,\n nodes: nodes\n }, event);\n }\n\n _this.touched = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n var disableAutoscroll = _this.props.disableAutoscroll;\n var isKeySorting = _this.manager.isKeySorting;\n\n if (disableAutoscroll) {\n _this.autoScroller.clear();\n\n return;\n }\n\n if (isKeySorting) {\n var translate = _objectSpread({}, _this.translate);\n\n var scrollX = 0;\n var scrollY = 0;\n\n if (_this.axis.x) {\n translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n scrollX = _this.translate.x - translate.x;\n }\n\n if (_this.axis.y) {\n translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n scrollY = _this.translate.y - translate.y;\n }\n\n _this.translate = translate;\n setTranslate3d(_this.helper, _this.translate);\n _this.scrollContainer.scrollLeft += scrollX;\n _this.scrollContainer.scrollTop += scrollY;\n return;\n }\n\n _this.autoScroller.update({\n height: _this.height,\n maxTranslate: _this.maxTranslate,\n minTranslate: _this.minTranslate,\n translate: _this.translate,\n width: _this.width\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n _this.translate.x += offset.left;\n _this.translate.y += offset.top;\n\n _this.animateNodes();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n var keyCode = event.keyCode;\n var _this$props5 = _this.props,\n shouldCancelStart = _this$props5.shouldCancelStart,\n _this$props5$keyCodes = _this$props5.keyCodes,\n customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n _this.keyLift(event);\n } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n _this.keyDrop(event);\n } else if (keyCodes.cancel.includes(keyCode)) {\n _this.newIndex = _this.manager.active.index;\n\n _this.keyDrop(event);\n } else if (keyCodes.up.includes(keyCode)) {\n _this.keyMove(-1);\n } else if (keyCodes.down.includes(keyCode)) {\n _this.keyMove(1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n var _node$sortableInfo2 = node.sortableInfo,\n index = _node$sortableInfo2.index,\n collection = _node$sortableInfo2.collection;\n _this.initialFocusedNode = target;\n _this.manager.isKeySorting = true;\n _this.manager.active = {\n index: index,\n collection: collection\n };\n\n _this.handlePress(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n var nodes = _this.manager.getOrderedRefs();\n\n var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n var newIndex = _this.newIndex + shift;\n var prevIndex = _this.newIndex;\n\n if (newIndex < 0 || newIndex > lastIndex) {\n return;\n }\n\n _this.prevIndex = prevIndex;\n _this.newIndex = newIndex;\n var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n var target = nodes.find(function (_ref2) {\n var node = _ref2.node;\n return node.sortableInfo.index === targetIndex;\n });\n var targetNode = target.node;\n var scrollDelta = _this.containerScrollDelta;\n var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n var targetTranslate = target.translate || {\n x: 0,\n y: 0\n };\n var targetPosition = {\n top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n };\n var shouldAdjustForSize = prevIndex < newIndex;\n var sizeAdjustment = {\n x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n };\n\n _this.handleSortMove({\n pageX: targetPosition.left + sizeAdjustment.x,\n pageY: targetPosition.top + sizeAdjustment.y,\n ignoreTransition: shift === 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n _this.handleSortEnd(event);\n\n if (_this.initialFocusedNode) {\n _this.initialFocusedNode.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n if (_this.manager.active) {\n _this.keyDrop(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n var useDragHandle = _this.props.useDragHandle;\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n });\n\n var manager = new Manager();\n validateProps(props);\n _this.manager = manager;\n _this.wrappedInstance = createRef();\n _this.sortableContextValue = {\n manager: manager\n };\n _this.events = {\n end: _this.handleEnd,\n move: _this.handleMove,\n start: _this.handleStart\n };\n return _this;\n }\n\n _createClass(WithSortableContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n var container = this.getContainer();\n Promise.resolve(container).then(function (containerNode) {\n _this2.container = containerNode;\n _this2.document = _this2.container.ownerDocument || document;\n var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n Object.keys(_this2.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this2.container.addEventListener(eventName, _this2.events[key], false);\n });\n });\n\n _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.helper && this.helper.parentNode) {\n this.helper.parentNode.removeChild(this.helper);\n }\n\n if (!this.container) {\n return;\n }\n\n Object.keys(this.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this3.container.removeEventListener(eventName, _this3.events[key]);\n });\n });\n this.container.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"updateHelperPosition\",\n value: function updateHelperPosition(event) {\n var _this$props6 = this.props,\n lockAxis = _this$props6.lockAxis,\n lockOffset = _this$props6.lockOffset,\n lockToContainerEdges = _this$props6.lockToContainerEdges,\n transitionDuration = _this$props6.transitionDuration,\n _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n var isKeySorting = this.manager.isKeySorting;\n var ignoreTransition = event.ignoreTransition;\n var offset = getPosition(event);\n var translate = {\n x: offset.x - this.initialOffset.x,\n y: offset.y - this.initialOffset.y\n };\n translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n this.translate = translate;\n\n if (lockToContainerEdges) {\n var _getLockPixelOffsets = getLockPixelOffsets({\n height: this.height,\n lockOffset: lockOffset,\n width: this.width\n }),\n _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n minLockOffset = _getLockPixelOffsets2[0],\n maxLockOffset = _getLockPixelOffsets2[1];\n\n var minOffset = {\n x: this.width / 2 - minLockOffset.x,\n y: this.height / 2 - minLockOffset.y\n };\n var maxOffset = {\n x: this.width / 2 - maxLockOffset.x,\n y: this.height / 2 - maxLockOffset.y\n };\n translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n }\n\n if (lockAxis === 'x') {\n translate.y = 0;\n } else if (lockAxis === 'y') {\n translate.x = 0;\n }\n\n if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n }\n\n setTranslate3d(this.helper, translate);\n }\n }, {\n key: \"animateNodes\",\n value: function animateNodes() {\n var _this$props7 = this.props,\n transitionDuration = _this$props7.transitionDuration,\n hideSortableGhost = _this$props7.hideSortableGhost,\n onSortOver = _this$props7.onSortOver;\n var containerScrollDelta = this.containerScrollDelta,\n windowScrollDelta = this.windowScrollDelta;\n var nodes = this.manager.getOrderedRefs();\n var sortingOffset = {\n left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n };\n var isKeySorting = this.manager.isKeySorting;\n var prevIndex = this.newIndex;\n this.newIndex = null;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node3 = nodes[i].node;\n var index = _node3.sortableInfo.index;\n var width = _node3.offsetWidth;\n var height = _node3.offsetHeight;\n var offset = {\n height: this.height > height ? height / 2 : this.height / 2,\n width: this.width > width ? width / 2 : this.width / 2\n };\n var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n var translate = {\n x: 0,\n y: 0\n };\n var edgeOffset = nodes[i].edgeOffset;\n\n if (!edgeOffset) {\n edgeOffset = getEdgeOffset(_node3, this.container);\n nodes[i].edgeOffset = edgeOffset;\n\n if (isKeySorting) {\n nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n }\n }\n\n var nextNode = i < nodes.length - 1 && nodes[i + 1];\n var prevNode = i > 0 && nodes[i - 1];\n\n if (nextNode && !nextNode.edgeOffset) {\n nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n if (isKeySorting) {\n nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n }\n }\n\n if (index === this.index) {\n if (hideSortableGhost) {\n this.sortableGhost = _node3;\n setInlineStyles(_node3, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n continue;\n }\n\n if (transitionDuration) {\n setTransitionDuration(_node3, transitionDuration);\n }\n\n if (this.axis.x) {\n if (this.axis.y) {\n if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n translate.x = this.width + this.marginOffset.x;\n\n if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n if (nextNode) {\n translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n if (this.newIndex === null) {\n this.newIndex = index;\n }\n } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n translate.x = -(this.width + this.marginOffset.x);\n\n if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n if (prevNode) {\n translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n this.newIndex = index;\n }\n } else {\n if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n translate.x = -(this.width + this.marginOffset.x);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n translate.x = this.width + this.marginOffset.x;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n } else if (this.axis.y) {\n if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n translate.y = -(this.height + this.marginOffset.y);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n translate.y = this.height + this.marginOffset.y;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n\n setTranslate3d(_node3, translate);\n nodes[i].translate = translate;\n }\n\n if (this.newIndex == null) {\n this.newIndex = this.index;\n }\n\n if (isKeySorting) {\n this.newIndex = prevIndex;\n }\n\n var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n if (onSortOver && this.newIndex !== oldIndex) {\n onSortOver({\n collection: this.manager.active.collection,\n index: this.index,\n newIndex: this.newIndex,\n oldIndex: oldIndex,\n isKeySorting: isKeySorting,\n nodes: nodes,\n helper: this.helper\n });\n }\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"getContainer\",\n value: function getContainer() {\n var getContainer = this.props.getContainer;\n\n if (typeof getContainer !== 'function') {\n return findDOMNode(this);\n }\n\n return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(SortableContext.Provider, {\n value: this.sortableContextValue\n }, createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps))));\n }\n }, {\n key: \"helperContainer\",\n get: function get() {\n var helperContainer = this.props.helperContainer;\n\n if (typeof helperContainer === 'function') {\n return helperContainer();\n }\n\n return this.props.helperContainer || this.document.body;\n }\n }, {\n key: \"containerScrollDelta\",\n get: function get() {\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n if (useWindowAsScrollContainer) {\n return {\n left: 0,\n top: 0\n };\n }\n\n return {\n left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n top: this.scrollContainer.scrollTop - this.initialScroll.top\n };\n }\n }, {\n key: \"windowScrollDelta\",\n get: function get() {\n return {\n left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n };\n }\n }]);\n\n return WithSortableContainer;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _temp;\n}\n\nvar propTypes$1 = {\n index: PropTypes.number.isRequired,\n collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\nfunction sortableElement(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableElement, _React$Component);\n\n function WithSortableElement() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WithSortableElement);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableElement)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n return _this;\n }\n\n _createClass(WithSortableElement, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.register();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.node) {\n if (prevProps.index !== this.props.index) {\n this.node.sortableInfo.index = this.props.index;\n }\n\n if (prevProps.disabled !== this.props.disabled) {\n this.node.sortableInfo.disabled = this.props.disabled;\n }\n }\n\n if (prevProps.collection !== this.props.collection) {\n this.unregister(prevProps.collection);\n this.register();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unregister();\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this$props = this.props,\n collection = _this$props.collection,\n disabled = _this$props.disabled,\n index = _this$props.index;\n var node = findDOMNode(this);\n node.sortableInfo = {\n collection: collection,\n disabled: disabled,\n index: index,\n manager: this.context.manager\n };\n this.node = node;\n this.ref = {\n node: node\n };\n this.context.manager.add(collection, this.ref);\n }\n }, {\n key: \"unregister\",\n value: function unregister() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n this.context.manager.remove(collection, this.ref);\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps$1)));\n }\n }]);\n\n return WithSortableElement;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextType\", SortableContext), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n collection: 0\n }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import React, { useRef } from 'react';\n\n// vector add\nfunction addV(v1, v2) {\n return v1.map(function (v, i) {\n return v + v2[i];\n });\n} // vector substract\n\nfunction subV(v1, v2) {\n return v1.map(function (v, i) {\n return v - v2[i];\n });\n}\n/**\r\n * Calculates distance\r\n * @param movement the difference between current and initial vectors\r\n * @returns distance\r\n */\n\nfunction calculateDistance(movement) {\n return Math.hypot.apply(Math, movement);\n}\nfunction calculateAllGeometry(movement, delta) {\n if (delta === void 0) {\n delta = movement;\n }\n\n var dl = calculateDistance(delta);\n var alpha = dl === 0 ? 0 : 1 / dl;\n var direction = delta.map(function (v) {\n return alpha * v;\n });\n var distance = calculateDistance(movement);\n return {\n distance: distance,\n direction: direction\n };\n}\n/**\r\n * Calculates all kinematics\r\n * @template T the expected vector type\r\n * @param movement the difference between current and initial vectors\r\n * @param delta the difference between current and previous vectors\r\n * @param delta_t the time difference between current and previous timestamps\r\n * @returns all kinematics\r\n */\n\nfunction calculateAllKinematics(movement, delta, dt) {\n var dl = calculateDistance(delta);\n var alpha = dl === 0 ? 0 : 1 / dl;\n var beta = dt === 0 ? 0 : 1 / dt;\n var velocity = beta * dl;\n var velocities = delta.map(function (v) {\n return beta * v;\n });\n var direction = delta.map(function (v) {\n return alpha * v;\n });\n var distance = calculateDistance(movement);\n return {\n velocities: velocities,\n velocity: velocity,\n distance: distance,\n direction: direction\n };\n}\n/**\r\n * Because IE doesn't support `Math.sign` function, so we use the polyfill version of the function.\r\n * This polyfill function is suggested by Mozilla:\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign#Polyfill\r\n * @param x target number\r\n */\n\nfunction sign(x) {\n if (Math.sign) return Math.sign(x);\n return Number(x > 0) - Number(x < 0) || +x;\n}\n\nfunction minMax(value, min, max) {\n return Math.max(min, Math.min(value, max));\n} // Based on @aholachek ;)\n// https://twitter.com/chpwn/status/285540192096497664\n// iOS constant = 0.55\n// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5\n\n\nfunction rubberband2(distance, constant) {\n // default constant from the article is 0.7\n return Math.pow(distance, constant * 5);\n}\n\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity) return rubberband2(distance, constant);\n return distance * dimension * constant / (dimension + constant * distance);\n}\n\nfunction rubberbandIfOutOfBounds(position, min, max, constant) {\n if (constant === void 0) {\n constant = 0.15;\n }\n\n if (constant === 0) return minMax(position, min, max);\n if (position < min) return -rubberband(min - position, max - min, constant) + min;\n if (position > max) return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction noop() {}\n/**\r\n * TODO Beware that only optimized cases are covered in tests =)\r\n * TODO Need to cover general case as well\r\n *\r\n * @param fns\r\n */\n\nfunction chainFns() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n if (fns.length === 0) return noop;\n if (fns.length === 1) return fns[0];\n return function () {\n var result;\n\n for (var _iterator = _createForOfIteratorHelperLoose(fns), _step; !(_step = _iterator()).done;) {\n var fn = _step.value;\n result = fn.apply(this, arguments) || result;\n }\n\n return result;\n };\n}\n/**\r\n * Expects a simple value or 2D vector (an array with 2 elements) and\r\n * always returns 2D vector. If simple value is passed, returns a\r\n * vector with this value as both coordinates.\r\n *\r\n * @param value\r\n */\n\nfunction ensureVector(value, fallback) {\n if (value === undefined) {\n if (fallback === undefined) {\n throw new Error('Must define fallback value if undefined is expected');\n }\n\n value = fallback;\n }\n\n if (Array.isArray(value)) return value;\n return [value, value];\n}\n/**\r\n * Helper for defining a default value\r\n *\r\n * @param value\r\n * @param fallback\r\n */\n\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\n/**\r\n * Resolves getters (functions) by calling them\r\n * If simple value is given it just passes through\r\n *\r\n * @param v\r\n */\n\nfunction valueFn(v) {\n if (typeof v === 'function') {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n // @ts-ignore\n return v.apply(void 0, args);\n } else {\n return v;\n }\n}\n\nfunction resolveWith(config, resolvers) {\n if (config === void 0) {\n config = {};\n }\n\n var result = {};\n\n for (var _i = 0, _Object$entries = Object.entries(resolvers); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n resolver = _Object$entries$_i[1];\n\n switch (typeof resolver) {\n case 'function':\n result[key] = resolver.call(result, config[key], key, config);\n break;\n\n case 'object':\n result[key] = resolveWith(config[key], resolver);\n break;\n\n case 'boolean':\n if (resolver) result[key] = config[key];\n break;\n }\n }\n\n return result;\n}\n\n/**\r\n * Whether the browser supports GestureEvent (ie Safari)\r\n * @returns true if the browser supports gesture event\r\n */\nfunction supportsGestureEvents() {\n try {\n // TODO [TS] possibly find GestureEvent definitions?\n // @ts-ignore: no type definitions for webkit GestureEvents\n return 'constructor' in GestureEvent;\n } catch (e) {\n return false;\n }\n}\nfunction supportsTouchEvents() {\n return typeof window !== 'undefined' && 'ontouchstart' in window;\n}\nfunction supportsPointerEvents() {\n return typeof window !== 'undefined' && 'onpointerdown' in window;\n}\n\nfunction getEventTouches(event) {\n if ('pointerId' in event) return null;\n return event.type === 'touchend' ? event.changedTouches : event.targetTouches;\n}\n\nfunction getTouchIds(event) {\n return Array.from(getEventTouches(event)).map(function (t) {\n return t.identifier;\n });\n}\nfunction getGenericEventData(event) {\n var buttons = 'buttons' in event ? event.buttons : 0;\n var shiftKey = event.shiftKey,\n altKey = event.altKey,\n metaKey = event.metaKey,\n ctrlKey = event.ctrlKey; // TODO check if this might create some overrides?\n\n return {\n buttons: buttons,\n shiftKey: shiftKey,\n altKey: altKey,\n metaKey: metaKey,\n ctrlKey: ctrlKey\n };\n}\n\nvar identity = function identity(xy) {\n return xy;\n};\n/**\r\n * Gets pointer event values.\r\n * @param event\r\n * @returns pointer event values\r\n */\n\n\nfunction getPointerEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n var touchEvents = getEventTouches(event);\n\n var _ref = touchEvents ? touchEvents[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n return transform([clientX, clientY]);\n}\n/**\r\n * Gets two touches event data\r\n * @param event\r\n * @returns two touches event data\r\n */\n\nfunction getTwoTouchesEventValues(event, pointerIds, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n var _Array$from$filter = Array.from(event.touches).filter(function (t) {\n return pointerIds.includes(t.identifier);\n }),\n A = _Array$from$filter[0],\n B = _Array$from$filter[1];\n\n if (!A || !B) throw Error(\"The event doesn't have two pointers matching the pointerIds\");\n var dx = B.clientX - A.clientX;\n var dy = B.clientY - A.clientY;\n var cx = (B.clientX + A.clientX) / 2;\n var cy = (B.clientY + A.clientY) / 2; // const e: any = 'nativeEvent' in event ? event.nativeEvent : event\n\n var distance = Math.hypot(dx, dy); // FIXME rotation has inconsistant values so we're not using it atm\n // const angle = (e.rotation as number) ?? -(Math.atan2(dx, dy) * 180) / Math.PI\n\n var angle = -(Math.atan2(dx, dy) * 180) / Math.PI;\n var values = transform([distance, angle]);\n var origin = transform([cx, cy]);\n return {\n values: values,\n origin: origin\n };\n}\n/**\r\n * Gets scroll event values\r\n * @param event\r\n * @returns scroll event values\r\n */\n\nfunction getScrollEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n // If the currentTarget is the window then we return the scrollX/Y position.\n // If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top\n var _event$currentTarget = event.currentTarget,\n scrollX = _event$currentTarget.scrollX,\n scrollY = _event$currentTarget.scrollY,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop;\n return transform([scrollX || scrollLeft || 0, scrollY || scrollTop || 0]);\n} // wheel delta defaults from https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n/**\r\n * Gets wheel event values.\r\n * @param event\r\n * @returns wheel event values\r\n */\n\nfunction getWheelEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n var deltaX = event.deltaX,\n deltaY = event.deltaY,\n deltaMode = event.deltaMode; // normalize wheel values, especially for Firefox\n\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n return transform([deltaX, deltaY]);\n}\n/**\r\n * Gets webkit gesture event values.\r\n * @param event\r\n * @returns webkit gesture event values\r\n */\n\nfunction getWebkitGestureEventValues(event, transform) {\n if (transform === void 0) {\n transform = identity;\n }\n\n return transform([event.scale, event.rotation]);\n}\n\nvar DEFAULT_DRAG_DELAY = 180;\nvar DEFAULT_RUBBERBAND = 0.15;\nvar DEFAULT_SWIPE_VELOCITY = 0.5;\nvar DEFAULT_SWIPE_DISTANCE = 50;\nvar DEFAULT_SWIPE_DURATION = 250;\nvar InternalGestureOptionsNormalizers = {\n threshold: function threshold(value) {\n if (value === void 0) {\n value = 0;\n }\n\n return ensureVector(value);\n },\n rubberband: function rubberband(value) {\n if (value === void 0) {\n value = 0;\n }\n\n switch (value) {\n case true:\n return ensureVector(DEFAULT_RUBBERBAND);\n\n case false:\n return ensureVector(0);\n\n default:\n return ensureVector(value);\n }\n },\n enabled: function enabled(value) {\n if (value === void 0) {\n value = true;\n }\n\n return value;\n },\n triggerAllEvents: function triggerAllEvents(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n initial: function initial(value) {\n if (value === void 0) {\n value = 0;\n }\n\n if (typeof value === 'function') return value;\n return ensureVector(value);\n },\n transform: true\n};\n\nvar InternalCoordinatesOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {\n axis: true,\n lockDirection: function lockDirection(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n bounds: function bounds(value) {\n if (value === void 0) {\n value = {};\n }\n\n if (typeof value === 'function') return function (state) {\n return InternalCoordinatesOptionsNormalizers.bounds(value(state));\n };\n var _value2 = value,\n _value2$left = _value2.left,\n left = _value2$left === void 0 ? -Infinity : _value2$left,\n _value2$right = _value2.right,\n right = _value2$right === void 0 ? Infinity : _value2$right,\n _value2$top = _value2.top,\n top = _value2$top === void 0 ? -Infinity : _value2$top,\n _value2$bottom = _value2.bottom,\n bottom = _value2$bottom === void 0 ? Infinity : _value2$bottom;\n return [[left, right], [top, bottom]];\n }\n});\n\nvar isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;\nvar InternalGenericOptionsNormalizers = {\n enabled: function enabled(value) {\n if (value === void 0) {\n value = true;\n }\n\n return value;\n },\n domTarget: true,\n window: /*#__PURE__*/function (_window) {\n function window(_x) {\n return _window.apply(this, arguments);\n }\n\n window.toString = function () {\n return _window.toString();\n };\n\n return window;\n }(function (value) {\n if (value === void 0) {\n value = isBrowser ? window : undefined;\n }\n\n return value;\n }),\n eventOptions: function eventOptions(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$passive = _ref.passive,\n passive = _ref$passive === void 0 ? true : _ref$passive,\n _ref$capture = _ref.capture,\n capture = _ref$capture === void 0 ? false : _ref$capture;\n\n return {\n passive: passive,\n capture: capture\n };\n },\n transform: true\n};\n\nvar InternalDistanceAngleOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {\n bounds: function bounds(_value, _key, _ref2) {\n var _ref2$distanceBounds = _ref2.distanceBounds,\n distanceBounds = _ref2$distanceBounds === void 0 ? {} : _ref2$distanceBounds,\n _ref2$angleBounds = _ref2.angleBounds,\n angleBounds = _ref2$angleBounds === void 0 ? {} : _ref2$angleBounds;\n\n var _distanceBounds = function _distanceBounds(state) {\n var D = assignDefault(valueFn(distanceBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D.min, D.max];\n };\n\n var _angleBounds = function _angleBounds(state) {\n var A = assignDefault(valueFn(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A.min, A.max];\n };\n\n if (typeof distanceBounds !== 'function' && typeof angleBounds !== 'function') return [_distanceBounds(), _angleBounds()];\n return function (state) {\n return [_distanceBounds(state), _angleBounds(state)];\n };\n }\n});\n\nvar InternalDragOptionsNormalizers = /*#__PURE__*/_extends({}, InternalCoordinatesOptionsNormalizers, {\n useTouch: function useTouch(value) {\n if (value === void 0) {\n value = false;\n }\n\n var supportsTouch = supportsTouchEvents();\n var supportsPointer = supportsPointerEvents();\n if (value && supportsTouch) return true;\n if (supportsTouch && !supportsPointer) return true;\n return false;\n },\n experimental_preventWindowScrollY: function experimental_preventWindowScrollY(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n threshold: function threshold(v, _k, _ref3) {\n var _ref3$filterTaps = _ref3.filterTaps,\n filterTaps = _ref3$filterTaps === void 0 ? false : _ref3$filterTaps,\n _ref3$lockDirection = _ref3.lockDirection,\n lockDirection = _ref3$lockDirection === void 0 ? false : _ref3$lockDirection,\n _ref3$axis = _ref3.axis,\n axis = _ref3$axis === void 0 ? undefined : _ref3$axis;\n var A = ensureVector(v, filterTaps ? 3 : lockDirection ? 1 : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n return A;\n },\n swipeVelocity: function swipeVelocity(v) {\n if (v === void 0) {\n v = DEFAULT_SWIPE_VELOCITY;\n }\n\n return ensureVector(v);\n },\n swipeDistance: function swipeDistance(v) {\n if (v === void 0) {\n v = DEFAULT_SWIPE_DISTANCE;\n }\n\n return ensureVector(v);\n },\n swipeDuration: function swipeDuration(value) {\n if (value === void 0) {\n value = DEFAULT_SWIPE_DURATION;\n }\n\n return value;\n },\n delay: function delay(value) {\n if (value === void 0) {\n value = 0;\n }\n\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n\n case false:\n return 0;\n\n default:\n return value;\n }\n }\n});\n\nfunction getInternalGenericOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n // TODO warn when passive is set to true and domTarget is undefined\n return resolveWith(config, InternalGenericOptionsNormalizers);\n}\nfunction getInternalCoordinatesOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalCoordinatesOptionsNormalizers);\n}\nfunction getInternalDistanceAngleOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalDistanceAngleOptionsNormalizers);\n}\nfunction getInternalDragOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalDragOptionsNormalizers);\n}\n\nfunction _buildMoveConfig(_ref) {\n var domTarget = _ref.domTarget,\n eventOptions = _ref.eventOptions,\n window = _ref.window,\n enabled = _ref.enabled,\n rest = _objectWithoutPropertiesLoose(_ref, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.move = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction _buildHoverConfig(_ref2) {\n var domTarget = _ref2.domTarget,\n eventOptions = _ref2.eventOptions,\n window = _ref2.window,\n enabled = _ref2.enabled,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.hover = _extends({\n enabled: true\n }, rest);\n return opts;\n}\nfunction _buildDragConfig(_ref3) {\n var domTarget = _ref3.domTarget,\n eventOptions = _ref3.eventOptions,\n window = _ref3.window,\n enabled = _ref3.enabled,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.drag = getInternalDragOptions(rest);\n return opts;\n}\nfunction _buildPinchConfig(_ref4) {\n var domTarget = _ref4.domTarget,\n eventOptions = _ref4.eventOptions,\n window = _ref4.window,\n enabled = _ref4.enabled,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.pinch = getInternalDistanceAngleOptions(rest);\n return opts;\n}\nfunction _buildScrollConfig(_ref5) {\n var domTarget = _ref5.domTarget,\n eventOptions = _ref5.eventOptions,\n window = _ref5.window,\n enabled = _ref5.enabled,\n rest = _objectWithoutPropertiesLoose(_ref5, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.scroll = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction _buildWheelConfig(_ref6) {\n var domTarget = _ref6.domTarget,\n eventOptions = _ref6.eventOptions,\n window = _ref6.window,\n enabled = _ref6.enabled,\n rest = _objectWithoutPropertiesLoose(_ref6, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.wheel = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction buildComplexConfig(config, actions) {\n if (config === void 0) {\n config = {};\n }\n\n if (actions === void 0) {\n actions = new Set();\n }\n\n var _config = config,\n drag = _config.drag,\n wheel = _config.wheel,\n move = _config.move,\n scroll = _config.scroll,\n pinch = _config.pinch,\n hover = _config.hover,\n eventOptions = _config.eventOptions,\n window = _config.window,\n transform = _config.transform,\n domTarget = _config.domTarget,\n enabled = _config.enabled;\n var mergedConfig = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n transform: transform,\n window: window,\n enabled: enabled\n });\n if (actions.has('onDrag')) mergedConfig.drag = getInternalDragOptions(drag);\n if (actions.has('onWheel')) mergedConfig.wheel = getInternalCoordinatesOptions(wheel);\n if (actions.has('onScroll')) mergedConfig.scroll = getInternalCoordinatesOptions(scroll);\n if (actions.has('onMove')) mergedConfig.move = getInternalCoordinatesOptions(move);\n if (actions.has('onPinch')) mergedConfig.pinch = getInternalDistanceAngleOptions(pinch);\n if (actions.has('onHover')) mergedConfig.hover = _extends({\n enabled: true\n }, hover);\n return mergedConfig;\n}\n\nfunction getInitial(mixed) {\n return _extends({\n _active: false,\n _blocked: false,\n _intentional: [false, false],\n _movement: [0, 0],\n _initial: [0, 0],\n _bounds: [[-Infinity, Infinity], [-Infinity, Infinity]],\n _threshold: [0, 0],\n _lastEventType: undefined,\n _dragStarted: false,\n _dragPreventScroll: false,\n _dragIsTap: true,\n _dragDelayed: false,\n event: undefined,\n intentional: false,\n values: [0, 0],\n velocities: [0, 0],\n delta: [0, 0],\n movement: [0, 0],\n offset: [0, 0],\n lastOffset: [0, 0],\n direction: [0, 0],\n initial: [0, 0],\n previous: [0, 0],\n first: false,\n last: false,\n active: false,\n timeStamp: 0,\n startTime: 0,\n elapsedTime: 0,\n cancel: noop,\n canceled: false,\n memo: undefined,\n args: undefined\n }, mixed);\n}\n\nfunction getInitialState() {\n var shared = {\n hovering: false,\n scrolling: false,\n wheeling: false,\n dragging: false,\n moving: false,\n pinching: false,\n touches: 0,\n buttons: 0,\n down: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n ctrlKey: false,\n locked: false\n };\n var drag = getInitial({\n _pointerId: undefined,\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0,\n tap: false,\n swipe: [0, 0]\n });\n var pinch = getInitial({\n // @ts-expect-error when used _pointerIds we can assert its type will be [number, number]\n _pointerIds: [],\n da: [0, 0],\n vdva: [0, 0],\n // @ts-expect-error origin can never be passed as undefined in userland\n origin: undefined,\n turns: 0\n });\n var wheel = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n var move = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n var scroll = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n return {\n shared: shared,\n drag: drag,\n pinch: pinch,\n wheel: wheel,\n move: move,\n scroll: scroll\n };\n}\n\nvar RecognizersMap = /*#__PURE__*/new Map();\n\nvar identity$1 = function identity(xy) {\n return xy;\n};\n/**\r\n * @private\r\n * Recognizer abstract class.\r\n */\n\n\nvar Recognizer = /*#__PURE__*/function () {\n /**\r\n * Creates an instance of a gesture recognizer.\r\n * @param stateKey drag, move, pinch, etc.\r\n * @param controller the controller attached to the gesture\r\n * @param [args] the args that should be passed to the gesture handler\r\n */\n function Recognizer(controller, args) {\n var _this = this;\n\n if (args === void 0) {\n args = [];\n }\n\n this.controller = controller;\n this.args = args;\n this.debounced = true; // Convenience method to set a timeout for a given gesture\n\n this.setTimeout = function (callback, ms) {\n var _window;\n\n if (ms === void 0) {\n ms = 140;\n }\n\n clearTimeout(_this.controller.timeouts[_this.stateKey]);\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n _this.controller.timeouts[_this.stateKey] = (_window = window).setTimeout.apply(_window, [callback, ms].concat(args));\n }; // Convenience method to clear a timeout for a given gesture\n\n\n this.clearTimeout = function () {\n clearTimeout(_this.controller.timeouts[_this.stateKey]);\n };\n /**\r\n * Fires the gesture handler\r\n */\n\n\n this.fireGestureHandler = function (forceFlag) {\n if (forceFlag === void 0) {\n forceFlag = false;\n }\n\n /**\r\n * If the gesture has been blocked (this can happen when the gesture has started in an unwanted direction),\r\n * clean everything and don't do anything.\r\n */\n if (_this.state._blocked) {\n // we need debounced gestures to end by themselves\n if (!_this.debounced) {\n _this.state._active = false;\n\n _this.clean();\n }\n\n return null;\n } // If the gesture has no intentional dimension, don't fire the handler.\n\n\n if (!forceFlag && !_this.state.intentional && !_this.config.triggerAllEvents) return null;\n\n if (_this.state.intentional) {\n var prev_active = _this.state.active;\n var next_active = _this.state._active;\n _this.state.active = next_active;\n _this.state.first = next_active && !prev_active;\n _this.state.last = prev_active && !next_active;\n _this.controller.state.shared[_this.ingKey] = next_active; // Sets dragging, pinching, etc. to the gesture active state\n }\n\n var touches = _this.controller.pointerIds.size || _this.controller.touchIds.size;\n var down = _this.controller.state.shared.buttons > 0 || touches > 0;\n\n var state = _extends({}, _this.controller.state.shared, _this.state, _this.mapStateValues(_this.state), {\n locked: !!document.pointerLockElement,\n touches: touches,\n down: down\n }); // @ts-expect-error\n\n\n var newMemo = _this.handler(state); // Sets memo to the returned value of the handler (unless it's not undefined)\n\n\n _this.state.memo = newMemo !== void 0 ? newMemo : _this.state.memo;\n return state;\n };\n\n this.controller = controller;\n this.args = args;\n } // Returns the gesture config\n\n\n var _proto = Recognizer.prototype;\n\n // Convenience method to update the shared state\n _proto.updateSharedState = function updateSharedState(sharedState) {\n Object.assign(this.controller.state.shared, sharedState);\n } // Convenience method to update the gesture state\n ;\n\n _proto.updateGestureState = function updateGestureState(gestureState) {\n Object.assign(this.state, gestureState);\n }\n /**\r\n * Returns state properties depending on the movement and state.\r\n *\r\n * Should be overriden for custom behavior, doesn't do anything in the implementation\r\n * below.\r\n */\n ;\n\n _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {\n return {\n _intentional: _intentional,\n _blocked: false\n };\n }\n /**\r\n * Returns basic movement properties for the gesture based on the next values and current state.\r\n */\n ;\n\n _proto.getMovement = function getMovement(values) {\n var rubberband = this.config.rubberband;\n var _this$state = this.state,\n _bounds = _this$state._bounds,\n _initial = _this$state._initial,\n _active = _this$state._active,\n wasIntentional = _this$state._intentional,\n lastOffset = _this$state.lastOffset,\n prevMovement = _this$state.movement,\n _T = _this$state._threshold;\n var M = this.getInternalMovement(values, this.state);\n var i0 = wasIntentional[0] === false ? getIntentionalDisplacement(M[0], _T[0]) : wasIntentional[0];\n var i1 = wasIntentional[1] === false ? getIntentionalDisplacement(M[1], _T[1]) : wasIntentional[1]; // Get gesture specific state properties based on intentionality and movement.\n\n var intentionalityCheck = this.checkIntentionality([i0, i1], M);\n\n if (intentionalityCheck._blocked) {\n return _extends({}, intentionalityCheck, {\n _movement: M,\n delta: [0, 0]\n });\n }\n\n var _intentional = intentionalityCheck._intentional;\n var _movement = M;\n /**\r\n * The movement sent to the handler has 0 in its dimensions when intentionality is false.\r\n * It is calculated from the actual movement minus the threshold.\r\n */\n\n var movement = [_intentional[0] !== false ? M[0] - _intentional[0] : 0, _intentional[1] !== false ? M[1] - _intentional[1] : 0];\n var offset = addV(movement, lastOffset);\n /**\r\n * Rubberband should be 0 when the gesture is no longer active, so that movement\r\n * and offset can return within their bounds.\r\n */\n\n var _rubberband = _active ? rubberband : [0, 0];\n\n movement = computeRubberband(_bounds, addV(movement, _initial), _rubberband);\n return _extends({}, intentionalityCheck, {\n intentional: _intentional[0] !== false || _intentional[1] !== false,\n _initial: _initial,\n _movement: _movement,\n movement: movement,\n values: values,\n offset: computeRubberband(_bounds, offset, _rubberband),\n delta: subV(movement, prevMovement)\n });\n } // Cleans the gesture. Can be overriden by gestures.\n ;\n\n _proto.clean = function clean() {\n this.clearTimeout();\n };\n\n _createClass(Recognizer, [{\n key: \"config\",\n get: function get() {\n return this.controller.config[this.stateKey];\n } // Is the gesture enabled\n\n }, {\n key: \"enabled\",\n get: function get() {\n return this.controller.config.enabled && this.config.enabled;\n } // Returns the controller state for a given gesture\n\n }, {\n key: \"state\",\n get: function get() {\n return this.controller.state[this.stateKey];\n } // Returns the gesture handler\n\n }, {\n key: \"handler\",\n get: function get() {\n return this.controller.handlers[this.stateKey];\n }\n }, {\n key: \"transform\",\n get: function get() {\n return this.config.transform || this.controller.config.transform || identity$1;\n }\n }]);\n\n return Recognizer;\n}(); //--------------------------------------------\n\nfunction getIntentionalDisplacement(movement, threshold) {\n if (Math.abs(movement) >= threshold) {\n return sign(movement) * threshold;\n } else {\n return false;\n }\n}\n\nfunction computeRubberband(bounds, _ref, _ref2) {\n var Vx = _ref[0],\n Vy = _ref[1];\n var Rx = _ref2[0],\n Ry = _ref2[1];\n var _bounds$ = bounds[0],\n X1 = _bounds$[0],\n X2 = _bounds$[1],\n _bounds$2 = bounds[1],\n Y1 = _bounds$2[0],\n Y2 = _bounds$2[1];\n return [rubberbandIfOutOfBounds(Vx, X1, X2, Rx), rubberbandIfOutOfBounds(Vy, Y1, Y2, Ry)];\n}\n/**\r\n * Returns a generic, common payload for all gestures from an event.\r\n */\n\n\nfunction getGenericPayload(_ref3, event, isStartEvent) {\n var state = _ref3.state;\n var timeStamp = event.timeStamp,\n _lastEventType = event.type;\n var previous = state.values;\n var elapsedTime = isStartEvent ? 0 : timeStamp - state.startTime;\n return {\n _lastEventType: _lastEventType,\n event: event,\n timeStamp: timeStamp,\n elapsedTime: elapsedTime,\n previous: previous\n };\n}\n/**\r\n * Returns the reinitialized start state for the gesture.\r\n * Should be common to all gestures.\r\n */\n\nfunction getStartGestureState(_ref4, values, event, initial) {\n var state = _ref4.state,\n config = _ref4.config,\n stateKey = _ref4.stateKey,\n args = _ref4.args,\n transform = _ref4.transform;\n var offset = state.offset;\n var startTime = event.timeStamp;\n var initialFn = config.initial,\n bounds = config.bounds,\n threshold = config.threshold; // the _threshold is the difference between a [0,0] offset converted to\n // its new space coordinates\n\n var _threshold = subV(transform(threshold), transform([0, 0])).map(Math.abs);\n\n var _state = _extends({}, getInitialState()[stateKey], {\n _active: true,\n args: args,\n values: values,\n initial: initial != null ? initial : values,\n _threshold: _threshold,\n offset: offset,\n lastOffset: offset,\n startTime: startTime\n });\n\n return _extends({}, _state, {\n _initial: valueFn(initialFn, _state),\n _bounds: valueFn(bounds, _state)\n });\n}\n\n/**\r\n * The controller will keep track of the state for all gestures and also keep\r\n * track of timeouts, and window listeners.\r\n */\n\nvar Controller = function Controller(classes) {\n var _this = this;\n\n this.classes = classes;\n this.pointerIds = new Set(); // register Pointer Events pointerIds\n\n this.touchIds = new Set(); // register Touch Events identifiers\n\n this.supportsTouchEvents = supportsTouchEvents();\n this.supportsGestureEvents = supportsGestureEvents();\n\n this.bind = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var bindings = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(_this.classes), _step; !(_step = _iterator()).done;) {\n var RecognizerClass = _step.value;\n new RecognizerClass(_this, args).addBindings(bindings);\n } // // we also add event bindings for native handlers\n\n\n var _loop = function _loop(eventKey) {\n addBindings(bindings, eventKey, function (event) {\n return _this.nativeRefs[eventKey](_extends({}, _this.state.shared, {\n event: event,\n args: args\n }));\n });\n };\n\n for (var eventKey in _this.nativeRefs) {\n _loop(eventKey);\n }\n\n if (_this.config.domTarget) {\n // If config.domTarget is set we add event listeners to it and return the clean function.\n return updateDomListeners(_this, bindings);\n } else {\n // If not, we return an object that contains gesture handlers mapped to react handler event keys.\n return getPropsListener(_this, bindings);\n }\n };\n\n this.effect = function () {\n if (_this.config.domTarget) _this.bind();\n return _this.clean;\n };\n /**\r\n * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.\r\n */\n\n\n this.clean = function () {\n var domTarget = getDomTargetFromConfig(_this.config);\n var eventOptions = _this.config.eventOptions;\n if (domTarget) removeListeners(domTarget, takeAll(_this.domListeners), eventOptions);\n Object.values(_this.timeouts).forEach(clearTimeout);\n clearAllWindowListeners(_this);\n };\n\n this.classes = classes;\n this.state = getInitialState();\n this.timeouts = {};\n this.domListeners = [];\n this.windowListeners = {};\n};\nfunction addEventIds(controller, event) {\n if ('pointerId' in event) {\n controller.pointerIds.add(event.pointerId);\n } else {\n controller.touchIds = new Set(getTouchIds(event));\n }\n}\nfunction removeEventIds(controller, event) {\n if ('pointerId' in event) {\n controller.pointerIds[\"delete\"](event.pointerId);\n } else {\n getTouchIds(event).forEach(function (id) {\n return controller.touchIds[\"delete\"](id);\n });\n }\n}\nfunction clearAllWindowListeners(controller) {\n var _controller$config = controller.config,\n el = _controller$config.window,\n eventOptions = _controller$config.eventOptions,\n windowListeners = controller.windowListeners;\n if (!el) return;\n\n for (var stateKey in windowListeners) {\n var handlers = windowListeners[stateKey];\n removeListeners(el, handlers, eventOptions);\n }\n\n controller.windowListeners = {};\n}\nfunction clearWindowListeners(_ref, stateKey, options) {\n var config = _ref.config,\n windowListeners = _ref.windowListeners;\n\n if (options === void 0) {\n options = config.eventOptions;\n }\n\n if (!config.window) return;\n removeListeners(config.window, windowListeners[stateKey], options);\n delete windowListeners[stateKey];\n}\nfunction updateWindowListeners(_ref2, stateKey, listeners, options) {\n var config = _ref2.config,\n windowListeners = _ref2.windowListeners;\n\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = config.eventOptions;\n }\n\n if (!config.window) return;\n removeListeners(config.window, windowListeners[stateKey], options);\n addListeners(config.window, windowListeners[stateKey] = listeners, options);\n}\n\nfunction updateDomListeners(_ref3, bindings) {\n var config = _ref3.config,\n domListeners = _ref3.domListeners;\n var domTarget = getDomTargetFromConfig(config);\n if (!domTarget) throw new Error('domTarget must be defined');\n var eventOptions = config.eventOptions;\n removeListeners(domTarget, takeAll(domListeners), eventOptions);\n\n for (var _i = 0, _Object$entries = Object.entries(bindings); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n fns = _Object$entries$_i[1];\n var name = key.slice(2).toLowerCase();\n domListeners.push([name, chainFns.apply(void 0, fns)]);\n }\n\n addListeners(domTarget, domListeners, eventOptions);\n}\n\nfunction getPropsListener(_ref4, bindings) {\n var config = _ref4.config;\n var props = {};\n var captureString = config.eventOptions.capture ? 'Capture' : '';\n\n for (var _i2 = 0, _Object$entries2 = Object.entries(bindings); _i2 < _Object$entries2.length; _i2++) {\n var _Object$entries2$_i = _Object$entries2[_i2],\n event = _Object$entries2$_i[0],\n fns = _Object$entries2$_i[1];\n var fnsArray = Array.isArray(fns) ? fns : [fns];\n var key = event + captureString;\n props[key] = chainFns.apply(void 0, fnsArray);\n }\n\n return props;\n}\n\nfunction takeAll(array) {\n if (array === void 0) {\n array = [];\n }\n\n return array.splice(0, array.length);\n}\n\nfunction getDomTargetFromConfig(_ref5) {\n var domTarget = _ref5.domTarget;\n return domTarget && 'current' in domTarget ? domTarget.current : domTarget;\n}\n/**\r\n * bindings is an object which keys match ReactEventHandlerKeys.\r\n * Since a recognizer might want to bind a handler function to an event key already used by a previously\r\n * added recognizer, we need to make sure that each event key is an array of all the functions mapped for\r\n * that key.\r\n */\n\n\nfunction addBindings(bindings, name, fn) {\n if (!bindings[name]) bindings[name] = [];\n bindings[name].push(fn);\n}\n\nfunction addListeners(el, listeners, options) {\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = {};\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(listeners), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n eventName = _step2$value[0],\n eventHandler = _step2$value[1];\n el.addEventListener(eventName, eventHandler, options);\n }\n}\n\nfunction removeListeners(el, listeners, options) {\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = {};\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(listeners), _step3; !(_step3 = _iterator3()).done;) {\n var _step3$value = _step3.value,\n eventName = _step3$value[0],\n eventHandler = _step3$value[1];\n el.removeEventListener(eventName, eventHandler, options);\n }\n}\n\n/* eslint-disable react-hooks/exhaustive-deps */\n/**\r\n * Utility hook called by all gesture hooks and that will be responsible for the internals.\r\n *\r\n * @param handlers\r\n * @param classes\r\n * @param config\r\n * @param nativeHandlers - native handlers such as onClick, onMouseDown, etc.\r\n */\n\nfunction useRecognizers(handlers, config, nativeHandlers) {\n if (nativeHandlers === void 0) {\n nativeHandlers = {};\n }\n\n var classes = resolveClasses(handlers);\n var controller = React.useMemo(function () {\n return new Controller(classes);\n }, []);\n controller.config = config;\n controller.handlers = handlers;\n controller.nativeRefs = nativeHandlers;\n React.useEffect(controller.effect, []); // @ts-ignore\n\n if (controller.config.domTarget) return deprecationNoticeForDomTarget; // @ts-ignore\n\n return controller.bind;\n}\n\nfunction deprecationNoticeForDomTarget() {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\"Deprecation notice: When the `domTarget` option is specified, you don't need to write `useEffect(bind, [bind])` anymore: event binding is now made handled internally to this lib.\\n\\nNext version won't return anything when `domTarget` is provided, therefore your code will break if you try to call `useEffect`.\");\n }\n}\n\nfunction resolveClasses(internalHandlers) {\n var classes = new Set();\n if (internalHandlers.drag) classes.add(RecognizersMap.get('drag'));\n if (internalHandlers.wheel) classes.add(RecognizersMap.get('wheel'));\n if (internalHandlers.scroll) classes.add(RecognizersMap.get('scroll'));\n if (internalHandlers.move) classes.add(RecognizersMap.get('move'));\n if (internalHandlers.pinch) classes.add(RecognizersMap.get('pinch'));\n if (internalHandlers.hover) classes.add(RecognizersMap.get('hover'));\n return classes;\n}\n\n/**\r\n * @private\r\n * Abstract class for coordinates-based gesture recongizers\r\n */\n\nvar CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) {\n _inheritsLoose(CoordinatesRecognizer, _Recognizer);\n\n function CoordinatesRecognizer() {\n return _Recognizer.apply(this, arguments) || this;\n }\n\n var _proto = CoordinatesRecognizer.prototype;\n\n /**\r\n * Returns the real movement (without taking intentionality into account)\r\n */\n _proto.getInternalMovement = function getInternalMovement(values, state) {\n return subV(values, state.initial);\n }\n /**\r\n * In coordinates-based gesture, this function will detect the first intentional axis,\r\n * lock the gesture axis if lockDirection is specified in the config, block the gesture\r\n * if the first intentional axis doesn't match the specified axis in config.\r\n */\n ;\n\n _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {\n if (_intentional[0] === false && _intentional[1] === false) {\n return {\n _intentional: _intentional,\n axis: this.state.axis\n };\n }\n\n var _movement$map = _movement.map(Math.abs),\n absX = _movement$map[0],\n absY = _movement$map[1];\n\n var axis = this.state.axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined);\n if (!this.config.axis && !this.config.lockDirection) return {\n _intentional: _intentional,\n _blocked: false,\n axis: axis\n };\n if (!axis) return {\n _intentional: [false, false],\n _blocked: false,\n axis: axis\n };\n if (!!this.config.axis && axis !== this.config.axis) return {\n _intentional: _intentional,\n _blocked: true,\n axis: axis\n };\n _intentional[axis === 'x' ? 1 : 0] = false;\n return {\n _intentional: _intentional,\n _blocked: false,\n axis: axis\n };\n };\n\n _proto.getKinematics = function getKinematics(values, event) {\n var state = this.getMovement(values);\n\n if (!state._blocked) {\n var dt = event.timeStamp - this.state.timeStamp;\n Object.assign(state, calculateAllKinematics(state.movement, state.delta, dt));\n }\n\n return state;\n };\n\n _proto.mapStateValues = function mapStateValues(state) {\n return {\n xy: state.values,\n vxvy: state.velocities\n };\n };\n\n return CoordinatesRecognizer;\n}(Recognizer);\n\nvar TAP_DISTANCE_THRESHOLD = 3;\n\nfunction persistEvent(event) {\n 'persist' in event && typeof event.persist === 'function' && event.persist();\n}\n\nvar DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(DragRecognizer, _CoordinatesRecognize);\n\n function DragRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'dragging';\n _this.stateKey = 'drag'; // TODO add back when setPointerCapture is widely wupported\n // https://caniuse.com/#search=setPointerCapture\n\n _this.setPointerCapture = function (event) {\n // don't perform pointere capture when user wants to use touch events or\n // when a pointerLockElement exists as this would throw an error\n if (_this.config.useTouch || document.pointerLockElement) return;\n var target = event.target,\n pointerId = event.pointerId;\n\n if (target && 'setPointerCapture' in target) {\n // this would work in the DOM but doesn't with react three fiber\n // target.addEventListener('pointermove', this.onDragChange, this.controller.config.eventOptions)\n // @ts-expect-error\n target.setPointerCapture(pointerId);\n }\n\n _this.updateGestureState({\n _dragTarget: target,\n _dragPointerId: pointerId\n });\n };\n\n _this.releasePointerCapture = function () {\n if (_this.config.useTouch || document.pointerLockElement) return;\n var _this$state = _this.state,\n _dragTarget = _this$state._dragTarget,\n _dragPointerId = _this$state._dragPointerId;\n\n if (_dragPointerId && _dragTarget && 'releasePointerCapture' in _dragTarget) {\n // this would work in the DOM but doesn't with react three fiber\n // target.removeEventListener('pointermove', this.onDragChange, this.controller.config.eventOptions)\n if (!('hasPointerCapture' in _dragTarget) || _dragTarget.hasPointerCapture(_dragPointerId)) try {\n _dragTarget.releasePointerCapture(_dragPointerId);\n } catch (e) {}\n }\n };\n\n _this.preventScroll = function (event) {\n if (_this.state._dragPreventScroll && event.cancelable) {\n event.preventDefault();\n }\n };\n\n _this.getEventId = function (event) {\n if (_this.config.useTouch) return event.changedTouches[0].identifier;\n return event.pointerId;\n };\n\n _this.isValidEvent = function (event) {\n // if we were using pointer events only event.isPrimary === 1 would suffice\n return _this.state._pointerId === _this.getEventId(event);\n };\n\n _this.shouldPreventWindowScrollY = _this.config.experimental_preventWindowScrollY && _this.controller.supportsTouchEvents;\n\n _this.setUpWindowScrollDetection = function (event) {\n persistEvent(event); // we add window listeners that will prevent the scroll when the user has started dragging\n\n updateWindowListeners(_this.controller, _this.stateKey, [['touchmove', _this.preventScroll], ['touchend', _this.clean.bind(_assertThisInitialized(_this))], ['touchcancel', _this.clean.bind(_assertThisInitialized(_this))]], {\n passive: false\n });\n\n _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), 250, event);\n };\n\n _this.setUpDelayedDragTrigger = function (event) {\n _this.state._dragDelayed = true;\n persistEvent(event);\n\n _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), _this.config.delay, event);\n };\n\n _this.setStartState = function (event) {\n var values = getPointerEventValues(event, _this.transform);\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n _pointerId: _this.getEventId(event)\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n };\n\n _this.onDragStart = function (event) {\n addEventIds(_this.controller, event);\n if (!_this.enabled || _this.state._active) return;\n\n _this.setStartState(event);\n\n _this.setPointerCapture(event);\n\n if (_this.shouldPreventWindowScrollY) _this.setUpWindowScrollDetection(event);else if (_this.config.delay > 0) _this.setUpDelayedDragTrigger(event);else _this.startDrag(event, true); // we pass the values to the startDrag event\n };\n\n _this.onDragChange = function (event) {\n if ( // if the gesture was canceled or\n _this.state.canceled || // if onDragStart wasn't fired or\n !_this.state._active || // if the event pointerId doesn't match the one that initiated the drag\n !_this.isValidEvent(event) || // if the event has the same timestamp as the previous event\n // note that checking type equality is ONLY for tests ¯\\_(ツ)_/¯\n _this.state._lastEventType === event.type && event.timeStamp === _this.state.timeStamp) return;\n var values;\n\n if (document.pointerLockElement) {\n var movementX = event.movementX,\n movementY = event.movementY;\n values = addV(_this.transform([movementX, movementY]), _this.state.values);\n } else values = getPointerEventValues(event, _this.transform);\n\n var kinematics = _this.getKinematics(values, event); // if startDrag hasn't fired\n\n\n if (!_this.state._dragStarted) {\n // If the gesture isn't active then respond to the event only if\n // it's been delayed via the `delay` option, in which case start\n // the gesture immediately.\n if (_this.state._dragDelayed) {\n _this.startDrag(event);\n\n return;\n } // if the user wants to prevent vertical window scroll when user starts dragging\n\n\n if (_this.shouldPreventWindowScrollY) {\n if (!_this.state._dragPreventScroll && kinematics.axis) {\n // if the user is dragging horizontally then we should allow the drag\n if (kinematics.axis === 'x') {\n _this.startDrag(event);\n } else {\n _this.state._active = false;\n return;\n }\n } else return;\n } else return;\n }\n\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData);\n\n var genericPayload = getGenericPayload(_assertThisInitialized(_this), event); // This verifies if the drag can be assimilated to a tap by checking\n // if the real distance of the drag (ie not accounting for the threshold) is\n // greater than the TAP_DISTANCE_THRESHOLD.\n\n var realDistance = calculateDistance(kinematics._movement);\n var _dragIsTap = _this.state._dragIsTap;\n if (_dragIsTap && realDistance >= TAP_DISTANCE_THRESHOLD) _dragIsTap = false;\n\n _this.updateGestureState(_extends({}, genericPayload, kinematics, {\n _dragIsTap: _dragIsTap\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onDragEnd = function (event) {\n removeEventIds(_this.controller, event); // if the event pointerId doesn't match the one that initiated the drag\n // we don't want to end the drag\n\n if (!_this.isValidEvent(event)) return;\n\n _this.clean(); // if the gesture is no longer active (ie canceled)\n // don't do anything\n\n\n if (!_this.state._active) return;\n _this.state._active = false;\n var tap = _this.state._dragIsTap;\n var _this$state$velocitie = _this.state.velocities,\n vx = _this$state$velocitie[0],\n vy = _this$state$velocitie[1];\n var _this$state$movement = _this.state.movement,\n mx = _this$state$movement[0],\n my = _this$state$movement[1];\n var _this$state$_intentio = _this.state._intentional,\n ix = _this$state$_intentio[0],\n iy = _this$state$_intentio[1];\n var _this$config$swipeVel = _this.config.swipeVelocity,\n svx = _this$config$swipeVel[0],\n svy = _this$config$swipeVel[1];\n var _this$config$swipeDis = _this.config.swipeDistance,\n sx = _this$config$swipeDis[0],\n sy = _this$config$swipeDis[1];\n var sd = _this.config.swipeDuration;\n\n var endState = _extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values));\n\n var swipe = [0, 0];\n\n if (endState.elapsedTime < sd) {\n if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = sign(vx);\n if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = sign(vy);\n }\n\n _this.updateSharedState({\n buttons: 0\n });\n\n _this.updateGestureState(_extends({}, endState, {\n tap: tap,\n swipe: swipe\n }));\n\n _this.fireGestureHandler(_this.config.filterTaps && tap === true);\n };\n\n _this.clean = function () {\n _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this));\n\n _this.state._dragStarted = false;\n\n _this.releasePointerCapture();\n\n clearWindowListeners(_this.controller, _this.stateKey);\n };\n\n _this.onCancel = function () {\n if (_this.state.canceled) return;\n\n _this.updateGestureState({\n canceled: true,\n _active: false\n });\n\n _this.updateSharedState({\n buttons: 0\n });\n\n setTimeout(function () {\n return _this.fireGestureHandler();\n }, 0);\n };\n\n _this.onClick = function (event) {\n if (!_this.state._dragIsTap) event.stopPropagation();\n };\n\n return _this;\n }\n\n var _proto = DragRecognizer.prototype;\n\n _proto.startDrag = function startDrag(event, onDragIsStart) {\n if (onDragIsStart === void 0) {\n onDragIsStart = false;\n }\n\n // startDrag can happen after a timeout, so we need to check if the gesture is still active\n // as the user might have lift up the pointer in between.\n if ( // if the gesture isn't active (probably means)\n !this.state._active || // if the drag has already started we should ignore subsequent attempts\n this.state._dragStarted) return;\n if (!onDragIsStart) this.setStartState(event);\n this.updateGestureState({\n _dragStarted: true,\n _dragPreventScroll: true,\n cancel: this.onCancel\n });\n this.clearTimeout();\n this.fireGestureHandler();\n };\n\n _proto.addBindings = function addBindings$1(bindings) {\n if (this.config.useTouch) {\n addBindings(bindings, 'onTouchStart', this.onDragStart);\n\n addBindings(bindings, 'onTouchMove', this.onDragChange); // this is needed for react-three-fiber\n\n\n addBindings(bindings, 'onTouchEnd', this.onDragEnd);\n\n addBindings(bindings, 'onTouchCancel', this.onDragEnd);\n } else {\n addBindings(bindings, 'onPointerDown', this.onDragStart);\n\n addBindings(bindings, 'onPointerMove', this.onDragChange); // this is needed for react-three-fiber\n\n\n addBindings(bindings, 'onPointerUp', this.onDragEnd);\n\n addBindings(bindings, 'onPointerCancel', this.onDragEnd);\n }\n\n if (this.config.filterTaps) {\n var handler = this.controller.config.eventOptions.capture ? 'onClick' : 'onClickCapture';\n\n addBindings(bindings, handler, this.onClick);\n }\n };\n\n return DragRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Inlined from https://github.com/alexreardon/memoize-one\r\n */\nfunction memoizeOne(resultFn, isEqual) {\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\n/**\r\n * Taken from https://github.com/FormidableLabs/react-fast-compare\r\n *\r\n * Dropped comments and ArrayBuffer handling\r\n */\nfunction equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n var it;\n\n if (typeof Map === 'function' && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (typeof Set === 'function' && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n if (typeof Element !== 'undefined' && a instanceof Element) return false;\n\n for (i = length; i-- !== 0;) {\n if (keys[i] === '_owner' && a.$$typeof) continue;\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n\n return true;\n } // true if both NaN, false otherwise — NaN !== NaN → true\n // eslint-disable-next-line no-self-compare\n\n\n return a !== a && b !== b;\n}\n\nfunction isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // eslint-disable-next-line no-console\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n\n throw error;\n }\n}\n\n/**\r\n * Drag hook.\r\n *\r\n * @param handler - the function fired every time the drag gesture updates\r\n * @param [config={}] - the config object including generic options and drag options\r\n */\n\nfunction useDrag(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('drag', DragRecognizer);\n var buildDragConfig = useRef();\n\n if (!buildDragConfig.current) {\n buildDragConfig.current = memoizeOne(_buildDragConfig, isEqual);\n }\n\n return useRecognizers({\n drag: handler\n }, buildDragConfig.current(config));\n}\n\n/**\r\n * @private\r\n * Abstract class for distance/angle-based gesture recongizers\r\n */\n\nvar DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) {\n _inheritsLoose(DistanceAngleRecognizer, _Recognizer);\n\n function DistanceAngleRecognizer() {\n return _Recognizer.apply(this, arguments) || this;\n }\n\n var _proto = DistanceAngleRecognizer.prototype;\n\n _proto.getInternalMovement = function getInternalMovement(values, state) {\n var prev_a = state.values[1]; // not be defined if ctrl+wheel is used for zoom only\n\n var d = values[0],\n _values$ = values[1],\n a = _values$ === void 0 ? prev_a : _values$;\n var delta_a = a - prev_a;\n var next_turns = state.turns;\n if (Math.abs(delta_a) > 270) next_turns += sign(delta_a);\n return subV([d, a - 360 * next_turns], state.initial);\n };\n\n _proto.getKinematics = function getKinematics(values, event) {\n var state = this.getMovement(values);\n var turns = (values[1] - state._movement[1] - this.state.initial[1]) / 360;\n var dt = event.timeStamp - this.state.timeStamp;\n\n var _calculateAllKinemati = calculateAllKinematics(state.movement, state.delta, dt),\n kinematics = _objectWithoutPropertiesLoose(_calculateAllKinemati, [\"distance\", \"velocity\"]);\n\n return _extends({\n turns: turns\n }, state, kinematics);\n };\n\n _proto.mapStateValues = function mapStateValues(state) {\n return {\n da: state.values,\n vdva: state.velocities\n };\n };\n\n return DistanceAngleRecognizer;\n}(Recognizer);\n\nvar ZOOM_CONSTANT = 7;\nvar WEBKIT_DISTANCE_SCALE_FACTOR = 260;\nvar PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) {\n _inheritsLoose(PinchRecognizer, _DistanceAngleRecogni);\n\n function PinchRecognizer() {\n var _this;\n\n _this = _DistanceAngleRecogni.apply(this, arguments) || this;\n _this.ingKey = 'pinching';\n _this.stateKey = 'pinch';\n\n _this.onPinchStart = function (event) {\n addEventIds(_this.controller, event);\n var touchIds = _this.controller.touchIds;\n if (!_this.enabled) return;\n\n if (_this.state._active) {\n // check that the pointerIds that initiated the gesture\n // are still enabled. This is useful for when the page\n // loses track of the pointers (minifying gesture on iPad).\n if (_this.state._pointerIds.every(function (id) {\n return touchIds.has(id);\n })) return; // something was wrong with the pointers but we let it go.\n } // until we reach two fingers on the target don't react\n\n\n if (touchIds.size < 2) return;\n\n var _pointerIds = Array.from(touchIds).slice(0, 2);\n\n var _getTwoTouchesEventVa = getTwoTouchesEventValues(event, _pointerIds, _this.transform),\n values = _getTwoTouchesEventVa.values,\n origin = _getTwoTouchesEventVa.origin;\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n _pointerIds: _pointerIds,\n cancel: _this.onCancel,\n origin: origin\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onPinchChange = function (event) {\n var _this$state = _this.state,\n canceled = _this$state.canceled,\n _active = _this$state._active;\n if (canceled || !_active || // if the event has the same timestamp as the previous event\n event.timeStamp === _this.state.timeStamp) return;\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData);\n\n try {\n var _getTwoTouchesEventVa2 = getTwoTouchesEventValues(event, _this.state._pointerIds, _this.transform),\n values = _getTwoTouchesEventVa2.values,\n origin = _getTwoTouchesEventVa2.origin;\n\n var kinematics = _this.getKinematics(values, event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {\n origin: origin\n }));\n\n _this.fireGestureHandler();\n } catch (e) {\n _this.onPinchEnd(event);\n }\n };\n\n _this.onPinchEnd = function (event) {\n removeEventIds(_this.controller, event);\n var pointerIds = getTouchIds(event); // if none of the lifted pointerIds is in the state pointerIds don't do anything\n\n if (_this.state._pointerIds.every(function (id) {\n return !pointerIds.includes(id);\n })) return;\n\n _this.clean();\n\n if (!_this.state._active) return;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {\n _active: false\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onCancel = function () {\n if (_this.state.canceled) return;\n\n _this.updateGestureState({\n _active: false,\n canceled: true\n });\n\n setTimeout(function () {\n return _this.fireGestureHandler();\n }, 0);\n };\n /**\r\n * PINCH WITH WEBKIT GESTURES\r\n */\n\n\n _this.onGestureStart = function (event) {\n if (!_this.enabled) return;\n event.preventDefault();\n var values = getWebkitGestureEventValues(event, _this.transform);\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n origin: [event.clientX, event.clientY],\n cancel: _this.onCancel\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onGestureChange = function (event) {\n var _this$state2 = _this.state,\n canceled = _this$state2.canceled,\n _active = _this$state2._active;\n if (canceled || !_active) return;\n event.preventDefault();\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData); // this normalizes the values of the Safari's WebKitEvent by calculating\n // the delta and then multiplying it by a constant.\n\n\n var values = getWebkitGestureEventValues(event, _this.transform);\n values[0] = (values[0] - _this.state.event.scale) * WEBKIT_DISTANCE_SCALE_FACTOR + _this.state.values[0];\n\n var kinematics = _this.getKinematics(values, event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {\n origin: [event.clientX, event.clientY]\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onGestureEnd = function (event) {\n _this.clean();\n\n if (!_this.state._active) return;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {\n _active: false,\n origin: [event.clientX, event.clientY]\n }));\n\n _this.fireGestureHandler();\n };\n /**\r\n * PINCH WITH WHEEL\r\n */\n\n\n _this.wheelShouldRun = function (event) {\n return _this.enabled && event.ctrlKey;\n };\n\n _this.getWheelValuesFromEvent = function (event) {\n var _getWheelEventValues = getWheelEventValues(event, _this.transform),\n delta_d = _getWheelEventValues[1];\n\n var _this$state$values = _this.state.values,\n prev_d = _this$state$values[0],\n prev_a = _this$state$values[1]; // ZOOM_CONSTANT is based on Safari trackpad natural zooming\n\n var _delta_d = -delta_d * ZOOM_CONSTANT; // new distance is the previous state distance added to the delta\n\n\n var d = prev_d + _delta_d;\n var a = prev_a !== void 0 ? prev_a : 0;\n return {\n values: [d, a],\n origin: [event.clientX, event.clientY],\n delta: [_delta_d, a]\n };\n };\n\n _this.onWheel = function (event) {\n if (!_this.wheelShouldRun(event)) return;\n\n _this.setTimeout(_this.onWheelEnd);\n\n if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);\n };\n\n _this.onWheelStart = function (event) {\n var _this$getWheelValuesF = _this.getWheelValuesFromEvent(event),\n values = _this$getWheelValuesF.values,\n delta = _this$getWheelValuesF.delta,\n origin = _this$getWheelValuesF.origin;\n\n if (event.cancelable) event.preventDefault();else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('To properly support zoom on trackpads, try using the `domTarget` option and `config.eventOptions.passive` set to `false`. This message will only appear in development mode.');\n }\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true), {\n offset: values,\n delta: delta,\n origin: origin\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onWheelChange = function (event) {\n if (event.cancelable) event.preventDefault();\n\n _this.updateSharedState(getGenericEventData(event));\n\n var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event),\n values = _this$getWheelValuesF2.values,\n origin = _this$getWheelValuesF2.origin,\n delta = _this$getWheelValuesF2.delta;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event), {\n origin: origin,\n delta: delta\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onWheelEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n _this.state._active = false;\n\n _this.updateGestureState(_this.getMovement(_this.state.values));\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n // Only try to use gesture events when they are supported and domTarget is set\n // as React doesn't support gesture handlers.\n if (this.controller.config.domTarget && !this.controller.supportsTouchEvents && this.controller.supportsGestureEvents) {\n addBindings(bindings, 'onGestureStart', this.onGestureStart);\n\n addBindings(bindings, 'onGestureChange', this.onGestureChange);\n\n addBindings(bindings, 'onGestureEnd', this.onGestureEnd);\n } else {\n addBindings(bindings, 'onTouchStart', this.onPinchStart);\n\n addBindings(bindings, 'onTouchMove', this.onPinchChange);\n\n addBindings(bindings, 'onTouchEnd', this.onPinchEnd);\n\n addBindings(bindings, 'onTouchCancel', this.onPinchEnd);\n\n addBindings(bindings, 'onWheel', this.onWheel);\n }\n };\n\n return PinchRecognizer;\n}(DistanceAngleRecognizer);\n\n/**\r\n * Pinch hook.\r\n *\r\n * @param handler - the function fired every time the pinch gesture updates\r\n * @param [config={}] - the config object including generic options and pinch options\r\n */\n\nfunction usePinch(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('pinch', PinchRecognizer);\n var buildPinchConfig = useRef();\n\n if (!buildPinchConfig.current) {\n buildPinchConfig.current = memoizeOne(_buildPinchConfig, isEqual);\n }\n\n return useRecognizers({\n pinch: handler\n }, buildPinchConfig.current(config));\n}\n\nvar WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(WheelRecognizer, _CoordinatesRecognize);\n\n function WheelRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'wheeling';\n _this.stateKey = 'wheel';\n _this.debounced = true;\n\n _this.handleEvent = function (event) {\n if (event.ctrlKey && 'pinch' in _this.controller.handlers) return;\n if (!_this.enabled) return;\n\n _this.setTimeout(_this.onEnd);\n\n _this.updateSharedState(getGenericEventData(event));\n\n var values = addV(getWheelEventValues(event, _this.transform), _this.state.values);\n\n if (!_this.state._active) {\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n var movement = _this.getMovement(values);\n\n var geometry = calculateAllGeometry(movement.delta);\n\n _this.updateGestureState(movement);\n\n _this.updateGestureState(geometry);\n } else {\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n }\n\n _this.fireGestureHandler();\n };\n\n _this.onEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n\n var movement = _this.getMovement(_this.state.values);\n\n _this.updateGestureState(movement);\n\n _this.updateGestureState({\n _active: false,\n velocities: [0, 0],\n velocity: 0\n });\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = WheelRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onWheel', this.handleEvent);\n };\n\n return WheelRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Wheel hook.\r\n *\r\n * @param handler - the function fired every time the wheel gesture updates\r\n * @param the config object including generic options and wheel options\r\n */\n\nfunction useWheel(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('wheel', WheelRecognizer);\n var buildWheelConfig = useRef();\n\n if (!buildWheelConfig.current) {\n buildWheelConfig.current = memoizeOne(_buildWheelConfig, isEqual);\n }\n\n return useRecognizers({\n wheel: handler\n }, buildWheelConfig.current(config));\n}\n\nvar MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(MoveRecognizer, _CoordinatesRecognize);\n\n function MoveRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'moving';\n _this.stateKey = 'move';\n _this.debounced = true;\n\n _this.onMove = function (event) {\n if (!_this.enabled) return;\n\n _this.setTimeout(_this.onMoveEnd);\n\n if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event);\n };\n\n _this.onMoveStart = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var values = getPointerEventValues(event, _this.transform);\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onMoveChange = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var values = getPointerEventValues(event, _this.transform);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n\n _this.fireGestureHandler();\n };\n\n _this.onMoveEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n var values = _this.state.values;\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.updateGestureState({\n velocities: [0, 0],\n velocity: 0,\n _active: false\n });\n\n _this.fireGestureHandler();\n };\n\n _this.hoverTransform = function () {\n return _this.controller.config.hover.transform || _this.controller.config.transform;\n };\n\n _this.onPointerEnter = function (event) {\n _this.controller.state.shared.hovering = true;\n if (!_this.controller.config.enabled) return;\n\n if (_this.controller.config.hover.enabled) {\n var values = getPointerEventValues(event, _this.hoverTransform());\n\n var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event, true), {\n args: _this.args,\n values: values,\n active: true,\n hovering: true\n });\n\n _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));\n }\n\n if ('move' in _this.controller.handlers) _this.onMoveStart(event);\n };\n\n _this.onPointerLeave = function (event) {\n _this.controller.state.shared.hovering = false;\n if ('move' in _this.controller.handlers) _this.onMoveEnd();\n if (!_this.controller.config.hover.enabled) return;\n var values = getPointerEventValues(event, _this.hoverTransform());\n\n var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event), {\n args: _this.args,\n values: values,\n active: false\n });\n\n _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));\n };\n\n return _this;\n }\n\n var _proto = MoveRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n if ('move' in this.controller.handlers) {\n addBindings(bindings, 'onPointerMove', this.onMove);\n }\n\n if ('hover' in this.controller.handlers) {\n addBindings(bindings, 'onPointerEnter', this.onPointerEnter);\n\n addBindings(bindings, 'onPointerLeave', this.onPointerLeave);\n }\n };\n\n return MoveRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Move hook.\r\n *\r\n * @param handler - the function fired every time the move gesture updates\r\n * @param [config={}] - the config object including generic options and move options\r\n */\n\nfunction useMove(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('move', MoveRecognizer);\n var buildMoveConfig = useRef();\n\n if (!buildMoveConfig.current) {\n buildMoveConfig.current = memoizeOne(_buildMoveConfig, isEqual);\n }\n\n return useRecognizers({\n move: handler\n }, buildMoveConfig.current(config));\n}\n\n/**\r\n * Hover hook.\r\n *\r\n * @param handler - the function fired every time the hover gesture updates\r\n * @param [config={}] - the config object including generic options and hover options\r\n */\n\nfunction useHover(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('hover', MoveRecognizer);\n var buildHoverConfig = useRef();\n\n if (!buildHoverConfig.current) {\n buildHoverConfig.current = memoizeOne(_buildHoverConfig, isEqual);\n }\n\n return useRecognizers({\n hover: handler\n }, buildHoverConfig.current(config));\n}\n\nvar ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(ScrollRecognizer, _CoordinatesRecognize);\n\n function ScrollRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'scrolling';\n _this.stateKey = 'scroll';\n _this.debounced = true;\n\n _this.handleEvent = function (event) {\n if (!_this.enabled) return;\n\n _this.clearTimeout();\n\n _this.setTimeout(_this.onEnd);\n\n var values = getScrollEventValues(event, _this.transform);\n\n _this.updateSharedState(getGenericEventData(event));\n\n if (!_this.state._active) {\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n var movementDetection = _this.getMovement(values);\n\n var geometry = calculateAllGeometry(movementDetection.delta);\n\n _this.updateGestureState(movementDetection);\n\n _this.updateGestureState(geometry);\n } else {\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n }\n\n _this.fireGestureHandler();\n };\n\n _this.onEnd = function () {\n _this.clean();\n\n if (!_this.state._active) return;\n\n _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {\n _active: false,\n velocities: [0, 0],\n velocity: 0\n }));\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = ScrollRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onScroll', this.handleEvent);\n };\n\n return ScrollRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Scroll hook.\r\n *\r\n * @param handler - the function fired every time the scroll gesture updates\r\n * @param [config={}] - the config object including generic options and scroll options\r\n */\n\nfunction useScroll(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('scroll', ScrollRecognizer);\n var buildScrollConfig = useRef();\n\n if (!buildScrollConfig.current) {\n buildScrollConfig.current = memoizeOne(_buildScrollConfig, isEqual);\n }\n\n return useRecognizers({\n scroll: handler\n }, buildScrollConfig.current(config));\n}\n\nvar RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;\n\nfunction sortHandlers(handlers) {\n var _native = {};\n var handle = {};\n var actions = new Set();\n\n for (var key in handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handle[key] = handlers[key];\n } else {\n _native[key] = handlers[key];\n }\n }\n\n return [handle, _native, actions];\n}\n/**\r\n * @public\r\n *\r\n * The most complete gesture hook, allowing support for multiple gestures.\r\n *\r\n * @param {Handlers} handlers - an object with on[Gesture] keys containg gesture handlers\r\n * @param {UseGestureConfig} [config={}] - the full config object\r\n * @returns {(...args: any[]) => HookReturnType}\r\n */\n\n\nfunction useGesture(_handlers, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _sortHandlers = sortHandlers(_handlers),\n handlers = _sortHandlers[0],\n nativeHandlers = _sortHandlers[1],\n actions = _sortHandlers[2];\n\n RecognizersMap.set('drag', DragRecognizer);\n RecognizersMap.set('hover', MoveRecognizer);\n RecognizersMap.set('move', MoveRecognizer);\n RecognizersMap.set('pinch', PinchRecognizer);\n RecognizersMap.set('scroll', ScrollRecognizer);\n RecognizersMap.set('wheel', WheelRecognizer);\n var mergedConfig = buildComplexConfig(config, actions);\n var internalHandlers = {};\n if (actions.has('onDrag')) internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag');\n if (actions.has('onWheel')) internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel');\n if (actions.has('onScroll')) internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll');\n if (actions.has('onMove')) internalHandlers.move = includeStartEndHandlers(handlers, 'onMove');\n if (actions.has('onPinch')) internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch');\n if (actions.has('onHover')) internalHandlers.hover = handlers.onHover;\n return useRecognizers(internalHandlers, mergedConfig, nativeHandlers);\n}\n\nfunction includeStartEndHandlers(handlers, handlerKey) {\n var startKey = handlerKey + 'Start';\n var endKey = handlerKey + 'End';\n\n var fn = function fn(state) {\n var memo = undefined;\n if (state.first && startKey in handlers) handlers[startKey](state);\n if (handlerKey in handlers) memo = handlers[handlerKey](state);\n if (state.last && endKey in handlers) handlers[endKey](state);\n return memo;\n };\n\n return fn;\n}\n\nexport { addV, rubberbandIfOutOfBounds, subV, useDrag, useGesture, useHover, useMove, usePinch, useScroll, useWheel };\n//# sourceMappingURL=reactusegesture.esm.js.map\n","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k