UNPKG

571 kBSource Map (JSON)View Raw
1{"version":3,"file":"react-widgets.js","mappings":"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","sources":["webpack://ReactWidgets/webpack/universalModuleDefinition","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useCallbackRef.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useEventCallback.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useCommittedRef.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useEventListener.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useFocusManager.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useGlobalListener.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useMergedRefs.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useMounted.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useCustomEffect.js","webpack://ReactWidgets/../../node_modules/lodash-es/eq.js","webpack://ReactWidgets/../../node_modules/lodash-es/_assocIndexOf.js","webpack://ReactWidgets/../../node_modules/lodash-es/_listCacheDelete.js","webpack://ReactWidgets/../../node_modules/lodash-es/_ListCache.js","webpack://ReactWidgets/../../node_modules/lodash-es/_listCacheClear.js","webpack://ReactWidgets/../../node_modules/lodash-es/_listCacheGet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_listCacheHas.js","webpack://ReactWidgets/../../node_modules/lodash-es/_listCacheSet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_freeGlobal.js","webpack://ReactWidgets/../../node_modules/lodash-es/_root.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Symbol.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getRawTag.js","webpack://ReactWidgets/../../node_modules/lodash-es/_objectToString.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseGetTag.js","webpack://ReactWidgets/../../node_modules/lodash-es/isObject.js","webpack://ReactWidgets/../../node_modules/lodash-es/isFunction.js","webpack://ReactWidgets/../../node_modules/lodash-es/_coreJsData.js","webpack://ReactWidgets/../../node_modules/lodash-es/_isMasked.js","webpack://ReactWidgets/../../node_modules/lodash-es/_toSource.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseIsNative.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getNative.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getValue.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Map.js","webpack://ReactWidgets/../../node_modules/lodash-es/_nativeCreate.js","webpack://ReactWidgets/../../node_modules/lodash-es/_hashGet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_hashHas.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Hash.js","webpack://ReactWidgets/../../node_modules/lodash-es/_hashClear.js","webpack://ReactWidgets/../../node_modules/lodash-es/_hashDelete.js","webpack://ReactWidgets/../../node_modules/lodash-es/_hashSet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getMapData.js","webpack://ReactWidgets/../../node_modules/lodash-es/_isKeyable.js","webpack://ReactWidgets/../../node_modules/lodash-es/_MapCache.js","webpack://ReactWidgets/../../node_modules/lodash-es/_mapCacheClear.js","webpack://ReactWidgets/../../node_modules/lodash-es/_mapCacheDelete.js","webpack://ReactWidgets/../../node_modules/lodash-es/_mapCacheGet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_mapCacheHas.js","webpack://ReactWidgets/../../node_modules/lodash-es/_mapCacheSet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Stack.js","webpack://ReactWidgets/../../node_modules/lodash-es/_stackClear.js","webpack://ReactWidgets/../../node_modules/lodash-es/_stackDelete.js","webpack://ReactWidgets/../../node_modules/lodash-es/_stackGet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_stackHas.js","webpack://ReactWidgets/../../node_modules/lodash-es/_stackSet.js","webpack://ReactWidgets/../../node_modules/lodash-es/_SetCache.js","webpack://ReactWidgets/../../node_modules/lodash-es/_setCacheAdd.js","webpack://ReactWidgets/../../node_modules/lodash-es/_setCacheHas.js","webpack://ReactWidgets/../../node_modules/lodash-es/_arraySome.js","webpack://ReactWidgets/../../node_modules/lodash-es/_equalArrays.js","webpack://ReactWidgets/../../node_modules/lodash-es/_cacheHas.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Uint8Array.js","webpack://ReactWidgets/../../node_modules/lodash-es/_mapToArray.js","webpack://ReactWidgets/../../node_modules/lodash-es/_setToArray.js","webpack://ReactWidgets/../../node_modules/lodash-es/_equalByTag.js","webpack://ReactWidgets/../../node_modules/lodash-es/isArray.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getSymbols.js","webpack://ReactWidgets/../../node_modules/lodash-es/_arrayFilter.js","webpack://ReactWidgets/../../node_modules/lodash-es/stubArray.js","webpack://ReactWidgets/../../node_modules/lodash-es/isObjectLike.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseIsArguments.js","webpack://ReactWidgets/../../node_modules/lodash-es/isArguments.js","webpack://ReactWidgets/../../node_modules/lodash-es/isBuffer.js","webpack://ReactWidgets/../../node_modules/lodash-es/stubFalse.js","webpack://ReactWidgets/../../node_modules/lodash-es/_isIndex.js","webpack://ReactWidgets/../../node_modules/lodash-es/isLength.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseIsTypedArray.js","webpack://ReactWidgets/../../node_modules/lodash-es/_nodeUtil.js","webpack://ReactWidgets/../../node_modules/lodash-es/isTypedArray.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseUnary.js","webpack://ReactWidgets/../../node_modules/lodash-es/_arrayLikeKeys.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseTimes.js","webpack://ReactWidgets/../../node_modules/lodash-es/_isPrototype.js","webpack://ReactWidgets/../../node_modules/lodash-es/_nativeKeys.js","webpack://ReactWidgets/../../node_modules/lodash-es/_overArg.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseKeys.js","webpack://ReactWidgets/../../node_modules/lodash-es/keys.js","webpack://ReactWidgets/../../node_modules/lodash-es/isArrayLike.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getAllKeys.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseGetAllKeys.js","webpack://ReactWidgets/../../node_modules/lodash-es/_arrayPush.js","webpack://ReactWidgets/../../node_modules/lodash-es/_equalObjects.js","webpack://ReactWidgets/../../node_modules/lodash-es/_DataView.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Promise.js","webpack://ReactWidgets/../../node_modules/lodash-es/_Set.js","webpack://ReactWidgets/../../node_modules/lodash-es/_WeakMap.js","webpack://ReactWidgets/../../node_modules/lodash-es/_getTag.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseIsEqualDeep.js","webpack://ReactWidgets/../../node_modules/lodash-es/_baseIsEqual.js","webpack://ReactWidgets/../../node_modules/lodash-es/isEqual.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useImmediateUpdateEffect.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useStableMemo.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useMutationObserver.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useTimeout.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useWillUnmount.js","webpack://ReactWidgets/../../node_modules/@restart/hooks/esm/useUpdatedRef.js","webpack://ReactWidgets/./src/A11y.ts","webpack://ReactWidgets/./src/Accessors.ts","webpack://ReactWidgets/./src/AddToListOption.tsx","webpack://ReactWidgets/./src/Button.tsx","webpack://ReactWidgets/./src/Calendar.tsx","webpack://ReactWidgets/./src/CalendarButton.tsx","webpack://ReactWidgets/./src/CalendarHeader.tsx","webpack://ReactWidgets/./src/CalendarView.tsx","webpack://ReactWidgets/./src/Century.tsx","webpack://ReactWidgets/./src/Combobox.tsx","webpack://ReactWidgets/./src/DatePicker.tsx","webpack://ReactWidgets/./src/DatePickerInput.tsx","webpack://ReactWidgets/./src/DateTimePartInput.tsx","webpack://ReactWidgets/./src/Decade.tsx","webpack://ReactWidgets/./src/DropdownList.tsx","webpack://ReactWidgets/./src/DropdownListInput.tsx","webpack://ReactWidgets/./src/Filter.ts","webpack://ReactWidgets/./src/FocusListContext.ts","webpack://ReactWidgets/./src/Icon.tsx","webpack://ReactWidgets/./src/Input.tsx","webpack://ReactWidgets/./src/InputAddon.tsx","webpack://ReactWidgets/./src/IntlLocalizer.ts","webpack://ReactWidgets/./src/List.tsx","webpack://ReactWidgets/./src/ListOption.tsx","webpack://ReactWidgets/./src/ListOptionGroup.tsx","webpack://ReactWidgets/./src/Listbox.tsx","webpack://ReactWidgets/./src/Localization.tsx","webpack://ReactWidgets/./src/Month.tsx","webpack://ReactWidgets/./src/Multiselect.tsx","webpack://ReactWidgets/./src/MultiselectInput.tsx","webpack://ReactWidgets/./src/MultiselectTag.tsx","webpack://ReactWidgets/./src/MultiselectTagList.tsx","webpack://ReactWidgets/./src/NumberInput.tsx","webpack://ReactWidgets/./src/NumberPicker.tsx","webpack://ReactWidgets/./src/PickerCaret.tsx","webpack://ReactWidgets/./src/Popup.tsx","webpack://ReactWidgets/./src/PropTypes.ts","webpack://ReactWidgets/./src/SlideDownTransition.tsx","webpack://ReactWidgets/./src/SlideTransitionGroup.tsx","webpack://ReactWidgets/./src/TimeInput.tsx","webpack://ReactWidgets/./src/Widget.tsx","webpack://ReactWidgets/./src/WidgetHelpers.ts","webpack://ReactWidgets/./src/WidgetPicker.tsx","webpack://ReactWidgets/./src/Year.tsx","webpack://ReactWidgets/./src/_.ts","webpack://ReactWidgets/./src/canShowCreate.tsx","webpack://ReactWidgets/./src/dates.ts","webpack://ReactWidgets/./src/messages.tsx","webpack://ReactWidgets/./src/useAutoFocus.ts","webpack://ReactWidgets/./src/useDropdownToggle.ts","webpack://ReactWidgets/./src/useFocusManager.ts","webpack://ReactWidgets/./src/useTabTrap.ts","webpack://ReactWidgets/../../node_modules/classnames/index.js","webpack://ReactWidgets/../../node_modules/date-arithmetic/index.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/activeElement.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/canUseDOM.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/closest.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/hyphenate.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/hyphenateStyle.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/isTransform.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/css.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/getComputedStyle.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/ownerWindow.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/isWindow.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/isDocument.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/getScrollAccessor.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/scrollLeft.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/scrollTop.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/height.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/offset.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/contains.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/matches.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/ownerDocument.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/querySelectorAll.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/addEventListener.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/listen.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/removeEventListener.js","webpack://ReactWidgets/../../node_modules/dom-helpers/esm/transitionEnd.js","webpack://ReactWidgets/../../node_modules/invariant/browser.js","webpack://ReactWidgets/../../node_modules/object-assign/index.js","webpack://ReactWidgets/../../node_modules/prop-types/checkPropTypes.js","webpack://ReactWidgets/../../node_modules/prop-types/factoryWithThrowingShims.js","webpack://ReactWidgets/../../node_modules/prop-types/factoryWithTypeCheckers.js","webpack://ReactWidgets/../../node_modules/prop-types/index.js","webpack://ReactWidgets/../../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://ReactWidgets/../../node_modules/react-is/cjs/react-is.development.js","webpack://ReactWidgets/../../node_modules/react-is/cjs/react-is.production.min.js","webpack://ReactWidgets/../../node_modules/react-is/index.js","webpack://ReactWidgets/../../node_modules/react-transition-group/esm/utils/PropTypes.js","webpack://ReactWidgets/../../node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://ReactWidgets/../../node_modules/react-transition-group/esm/Transition.js","webpack://ReactWidgets/../../node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://ReactWidgets/../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack://ReactWidgets/../../node_modules/uncontrollable/lib/esm/utils.js","webpack://ReactWidgets/../../node_modules/uncontrollable/lib/esm/hook.js","webpack://ReactWidgets/../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://ReactWidgets/../../node_modules/uncontrollable/lib/esm/uncontrollable.js","webpack://ReactWidgets/external {\"root\":\"React\",\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\"}","webpack://ReactWidgets/external {\"root\":\"ReactDOM\",\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://ReactWidgets/../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ReactWidgets/../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://ReactWidgets/../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://ReactWidgets/webpack/bootstrap","webpack://ReactWidgets/webpack/runtime/compat get default export","webpack://ReactWidgets/webpack/runtime/define property getters","webpack://ReactWidgets/webpack/runtime/hasOwnProperty shorthand","webpack://ReactWidgets/webpack/runtime/make namespace object","webpack://ReactWidgets/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactWidgets\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactWidgets\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__5427__, __WEBPACK_EXTERNAL_MODULE__2797__) {\nreturn ","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef<HTMLDivElement>()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return <div ref={attachRef} />\n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import { useEffect } from 'react';\nimport useEventCallback from './useEventCallback';\n\n/**\n * Attaches an event handler outside directly to specified DOM element\n * bypassing the react synthetic event system.\n *\n * @param element The target to listen for events on\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useEventListener(eventTarget, event, listener, capture) {\n if (capture === void 0) {\n capture = false;\n }\n\n var handler = useEventCallback(listener);\n useEffect(function () {\n var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;\n target.addEventListener(event, handler, capture);\n return function () {\n return target.removeEventListener(event, handler, capture);\n };\n }, [eventTarget]);\n}","import { useCallback, useRef } from 'react';\nimport useEventCallback from './useEventCallback';\nimport useMounted from './useMounted';\n\n/**\n * useFocusManager provides a way to track and manage focus as it moves around\n * a container element. An `onChange` is fired when focus enters or leaves the\n * element, but not when it moves around inside the element, similar to\n * `pointerenter` and `pointerleave` DOM events.\n *\n * ```tsx\n * const [focused, setFocusState] = useState(false)\n *\n * const { onBlur, onFocus } = useFocusManager({\n * onChange: nextFocused => setFocusState(nextFocused)\n * })\n *\n * return (\n * <div tabIndex=\"-1\" onFocus={onFocus} onBlur={onBlur}>\n * {String(focused)}\n * <input />\n * <input />\n *\n * <button>A button</button>\n * </div>\n * ```\n *\n */\nexport default function useFocusManager(opts) {\n var isMounted = useMounted();\n var lastFocused = useRef();\n var handle = useRef();\n var willHandle = useEventCallback(opts.willHandle);\n var didHandle = useEventCallback(opts.didHandle);\n var onChange = useEventCallback(opts.onChange);\n var isDisabled = useEventCallback(opts.isDisabled);\n var handleFocusChange = useCallback(function (focused, event) {\n if (event && event.persist) event.persist();\n if (willHandle && willHandle(focused, event) === false) return;\n clearTimeout(handle.current);\n handle.current = setTimeout(function () {\n if (focused !== lastFocused.current) {\n if (didHandle) didHandle(focused, event); // only fire a change when unmounted if its a blur\n\n if (isMounted() || !focused) {\n lastFocused.current = focused;\n onChange && onChange(focused, event);\n }\n }\n });\n }, [isMounted, willHandle, didHandle, onChange, lastFocused]);\n var handleBlur = useCallback(function (event) {\n if (!isDisabled()) handleFocusChange(false, event);\n }, [handleFocusChange, isDisabled]);\n var handleFocus = useCallback(function (event) {\n if (!isDisabled()) handleFocusChange(true, event);\n }, [handleFocusChange, isDisabled]);\n return {\n onBlur: handleBlur,\n onFocus: handleFocus\n };\n}","import useEventListener from './useEventListener';\nimport { useCallback } from 'react';\n\n/**\n * Attaches an event handler outside directly to the `document`,\n * bypassing the react synthetic event system.\n *\n * ```ts\n * useGlobalListener('keydown', (event) => {\n * console.log(event.key)\n * })\n * ```\n *\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useGlobalListener(event, handler, capture) {\n if (capture === void 0) {\n capture = false;\n }\n\n var documentTarget = useCallback(function () {\n return document;\n }, []);\n return useEventListener(documentTarget, event, handler, capture);\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return <button ref={mergedRef} {...props}/>\n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\n\nfunction useMergedRefs(refA, refB) {\n return useMemo(function () {\n return mergeRefs(refA, refB);\n }, [refA, refB]);\n}\n\nexport default useMergedRefs;","import { useRef, useEffect } from 'react';\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\n\nexport default function useMounted() {\n var mounted = useRef(true);\n var isMounted = useRef(function () {\n return mounted.current;\n });\n useEffect(function () {\n return function () {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","import { useRef, useEffect, useDebugValue } from 'react';\nimport useMounted from './useMounted';\n\nfunction useCustomEffect(effect, dependencies, isEqualOrOptions) {\n var isMounted = useMounted();\n\n var _ref = typeof isEqualOrOptions === 'function' ? {\n isEqual: isEqualOrOptions\n } : isEqualOrOptions,\n isEqual = _ref.isEqual,\n _ref$effectHook = _ref.effectHook,\n effectHook = _ref$effectHook === void 0 ? useEffect : _ref$effectHook;\n\n var dependenciesRef = useRef();\n dependenciesRef.current = dependencies;\n var cleanupRef = useRef(null);\n effectHook(function () {\n // If the ref the is `null` it's either the first effect or the last effect\n // ran and was cleared, meaning _this_ update should run, b/c the equality\n // check failed on in the cleanup of the last effect.\n if (cleanupRef.current === null) {\n var cleanup = effect();\n\n cleanupRef.current = function () {\n if (isMounted() && isEqual(dependenciesRef.current, dependencies)) {\n return;\n }\n\n cleanupRef.current = null;\n if (cleanup) cleanup();\n };\n }\n\n return cleanupRef.current;\n });\n useDebugValue(effect);\n}\n\nexport default useCustomEffect;","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import { useRef } from 'react';\nimport useStableMemo from './useStableMemo';\nimport useWillUnmount from './useWillUnmount';\n/**\n * An _immediate_ effect that runs an effect callback when its dependency array\n * changes. This is helpful for updates should must run during render, most\n * commonly state derived from props; a more ergonomic version of https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops\n *\n * ```ts\n * function Example({ value }) {\n * const [intermediaryValue, setValue] = useState(value);\n *\n * useImmediateUpdateEffect(() => {\n * setValue(value)\n * }, [value])\n * ```\n *\n * @category effects\n */\n\nfunction useImmediateUpdateEffect(effect, deps) {\n var firstRef = useRef(true);\n var tearDown = useRef();\n useWillUnmount(function () {\n if (tearDown.current) tearDown.current();\n });\n useStableMemo(function () {\n if (firstRef.current) {\n firstRef.current = false;\n return;\n }\n\n if (tearDown.current) tearDown.current();\n tearDown.current = effect();\n }, deps);\n}\n\nexport default useImmediateUpdateEffect;","import { useRef } from 'react';\n\nfunction isEqual(a, b) {\n if (a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Identical to `useMemo` _except_ that it provides a semantic guarantee that\n * values will not be invalidated unless the dependencies change. This is unlike\n * the built in `useMemo` which may discard memoized values for performance reasons.\n *\n * @param factory A function that returns a value to be memoized\n * @param deps A dependency array\n */\nexport default function useStableMemo(factory, deps) {\n var isValid = true;\n var valueRef = useRef(); // initial hook call\n\n if (!valueRef.current) {\n valueRef.current = {\n deps: deps,\n result: factory()\n }; // subsequent calls\n } else {\n isValid = !!(deps && valueRef.current.deps && isEqual(deps, valueRef.current.deps));\n }\n\n var cache = isValid ? valueRef.current : {\n deps: deps,\n result: factory()\n }; // must update immediately so any sync renders here don't cause an infinite loop\n\n valueRef.current = cache;\n return cache.result;\n}","import useCustomEffect from './useCustomEffect';\nimport isEqual from \"lodash-es/isEqual\";\nimport useImmediateUpdateEffect from './useImmediateUpdateEffect';\nimport useEventCallback from './useEventCallback';\n\nfunction isDepsEqual(_ref, _ref2) {\n var nextElement = _ref[0],\n nextConfig = _ref[1];\n var prevElement = _ref2[0],\n prevConfig = _ref2[1];\n return nextElement === prevElement && isEqual(nextConfig, prevConfig);\n}\n/**\n * Observe mutations on a DOM node or tree of DOM nodes.\n * Depends on the `MutationObserver` api.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef(null);\n *\n * useMutationObserver(element, { subtree: true }, (records) => {\n *\n * });\n *\n * return (\n * <div ref={attachRef} />\n * )\n * ```\n *\n * @param element The DOM element to observe\n * @param config The observer configuration\n * @param callback A callback fired when a mutation occurs\n */\n\n\nfunction useMutationObserver(element, config, callback) {\n var fn = useEventCallback(callback);\n useCustomEffect(function () {\n if (!element) return; // The behavior around reusing mutation observers is confusing\n // observing again _should_ disable the last listener but doesn't\n // seem to always be the case, maybe just in JSDOM? In any case the cost\n // to redeclaring it is gonna be fairly low anyway, so make it simple\n\n var observer = new MutationObserver(fn);\n observer.observe(element, config);\n return function () {\n observer.disconnect();\n };\n }, [element, config], {\n isEqual: isDepsEqual,\n // Intentionally done in render, otherwise observer will miss any\n // changes made to the DOM during this update\n effectHook: useImmediateUpdateEffect\n });\n}\n\nexport default useMutationObserver;","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\n\nvar MAX_DELAY_MS = Math.pow(2, 31) - 1;\n\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n var delayMs = timeoutAtMs - Date.now();\n handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(function () {\n return setChainedTimeout(handleRef, fn, timeoutAtMs);\n }, MAX_DELAY_MS);\n}\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n * <div className=\"App\">\n * {hello ? <h3>Hello</h3> : null}\n * </div>\n * );\n * ```\n */\n\n\nexport default function useTimeout() {\n var isMounted = useMounted(); // types are confused between node and web here IDK\n\n var handleRef = useRef();\n useWillUnmount(function () {\n return clearTimeout(handleRef.current);\n });\n return useMemo(function () {\n var clear = function clear() {\n return clearTimeout(handleRef.current);\n };\n\n function set(fn, delayMs) {\n if (delayMs === void 0) {\n delayMs = 0;\n }\n\n if (!isMounted()) return;\n clear();\n\n if (delayMs <= MAX_DELAY_MS) {\n // For simplicity, if the timeout is short, just set a normal timeout.\n handleRef.current = setTimeout(fn, delayMs);\n } else {\n setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n }\n }\n\n return {\n set: set,\n clear: clear\n };\n }, []);\n}","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\n\nexport default function useWillUnmount(fn) {\n var onUnmount = useUpdatedRef(fn);\n useEffect(function () {\n return function () {\n return onUnmount.current();\n };\n }, []);\n}","import { useRef } from 'react';\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\n\nexport default function useUpdatedRef(value) {\n var valueRef = useRef(value);\n valueRef.current = value;\n return valueRef;\n}","import { useEffect, RefObject } from 'react'\n\n/**\n * Do a \"hard\" set on the aria, so that it's always announced\n * even if the id hasn't changed, this saves us from having to have a different id\n * per item.\n */\nexport const setActiveDescendant = (ref: Element | null, activeId: string) => {\n if (!ref) return\n\n ref.removeAttribute('aria-activedescendant')\n if (activeId) ref.setAttribute('aria-activedescendant', activeId)\n}\n\nexport const useActiveDescendant = (\n ref: RefObject<Element>,\n id: string,\n visible: boolean | null | undefined,\n deps: any[],\n) => {\n useEffect(() => {\n setActiveDescendant(ref.current, visible ? id : '')\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, id, visible, ...deps])\n}\n","import { useMemo } from 'react'\nimport { DataItem, Value } from './types'\n\nexport type Accessors = ReturnType<typeof useAccessors>\n\nexport type DataKeyAccessorFn = (item: DataItem) => DataItem\n\nexport type DataKeyAccessor = string | DataKeyAccessorFn\n\nexport type TextAccessorFn = (item: DataItem) => string\n\nexport type TextAccessor = string | TextAccessorFn\n\nexport const dataValue = (\n dataItem: DataItem,\n field?: DataKeyAccessor,\n): unknown => {\n if (typeof field === 'function') return field(dataItem)\n if (dataItem == null) return dataItem\n if (\n typeof field === 'string' &&\n typeof dataItem === 'object' &&\n field in dataItem!\n )\n return (dataItem as any)![field]\n\n return dataItem\n}\n\nexport const dataText = (\n dataItem: DataItem,\n textField?: TextAccessor,\n): string => {\n const value = dataValue(dataItem, textField)\n return value == null ? '' : String(value)\n}\n\n/**\n * I don't know that the shallow equal makes sense here but am too afraid to\n * remove it.\n */\nexport function valueMatcher(\n a: DataItem,\n b: DataItem,\n dataKey?: DataKeyAccessor,\n) {\n return dataValue(a, dataKey) === dataValue(b, dataKey)\n}\n\nexport function dataIndexOf(\n data: readonly DataItem[],\n value: Value,\n dataKey?: DataKeyAccessor,\n) {\n const valueDataKey = dataValue(value, dataKey)\n let idx = -1\n\n while (++idx < data.length) {\n const datum = data[idx]\n if (datum === value || dataValue(datum, dataKey) === valueDataKey)\n return idx\n }\n\n return -1\n}\n\nexport function dataItem<TDataItem = DataItem>(\n data: readonly TDataItem[],\n value: Value,\n dataKey?: DataKeyAccessor,\n): TDataItem {\n const idx = dataIndexOf(data, value, dataKey)\n // This isn't strictly safe, but we want to allow items that aren't in the list\n return idx !== -1 ? data[idx] : (value as TDataItem)\n}\n\nexport const useAccessors = (\n textField?: TextAccessor,\n dataKey?: DataKeyAccessor,\n) => {\n return useMemo(\n () => ({\n text: (item: DataItem) => dataText(item, textField),\n value: (item: DataItem) => dataValue(item, dataKey),\n indexOf: (data: readonly DataItem[], value: Value) =>\n dataIndexOf(data, value, dataKey),\n matches: (a: DataItem, b: DataItem) => valueMatcher(a, b, dataKey),\n findOrSelf: <TDataItem>(data: readonly TDataItem[], value: Value) =>\n dataItem(data, value, dataKey),\n includes: (data: readonly DataItem[], value: Value) =>\n dataIndexOf(data, value, dataKey) !== -1,\n }),\n [textField, dataKey],\n )\n}\n","import * as PropTypes from 'prop-types'\nimport React, { ReactNode } from 'react'\n\nimport ListOption from './ListOption'\n\nexport const CREATE_OPTION = {}\n\nconst propTypes = {\n searchTerm: PropTypes.string,\n focused: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n activeId: PropTypes.string,\n}\n\nexport interface AddToListOptionProps {\n children: ReactNode\n onSelect: (event: React.MouseEvent) => void\n}\n\nfunction AddToListOption({ children, ...props }: AddToListOptionProps) {\n return (\n <ListOption\n {...props}\n dataItem={CREATE_OPTION}\n className={'rw-list-option-create'}\n selected={false}\n >\n {children}\n </ListOption>\n )\n}\n\nAddToListOption.propTypes = propTypes\n\nexport default AddToListOption\n","import cn from 'classnames'\nimport * as React from 'react'\nimport { ReactNode } from 'react'\nimport { Spinner } from './Icon'\n\nexport interface Props extends React.HTMLProps<HTMLButtonElement> {\n label?: string\n icon?: ReactNode\n busy?: boolean\n spinner?: ReactNode\n children?: ReactNode\n}\n\nfunction Button({\n className,\n disabled,\n label,\n icon,\n busy,\n children,\n spinner = Spinner,\n ...props\n}: Props) {\n return (\n <button\n tabIndex={-1}\n {...props}\n title={label}\n type=\"button\"\n disabled={disabled}\n aria-label={label}\n aria-disabled={disabled}\n className={cn(className, 'rw-btn')}\n >\n {busy ? spinner : icon}\n {children}\n </button>\n )\n}\n\nexport default Button\n","import cn from 'classnames'\nimport { DateUnit } from 'date-arithmetic'\nimport PropTypes from 'prop-types'\nimport React, { useEffect, useRef } from 'react'\nimport { useUncontrolledProp } from 'uncontrollable'\nimport CalendarHeader from './CalendarHeader'\nimport Century from './Century'\nimport Decade from './Decade'\nimport { useLocalizer, DateFormats } from './Localization'\nimport Month, { RenderDayProp } from './Month'\nimport SlideTransitionGroup from './SlideTransitionGroup'\nimport Widget from './Widget'\nimport Year from './Year'\nimport { WidgetHTMLProps, WidgetProps, InferFormat } from './shared'\n\nimport dates from './dates'\nimport useAutoFocus from './useAutoFocus'\nimport useFocusManager from './useFocusManager'\nimport { notify, useInstanceId } from './WidgetHelpers'\n\ntype Direction = 'DOWN' | 'UP' | 'LEFT' | 'RIGHT'\n\ntype SlideDirection = 'bottom' | 'top' | 'left' | 'right'\n\nlet last: <T>(array: T[]) => T = (a) => a[a.length - 1]\n\nconst CELL_CLASSNAME = 'rw-cell'\nconst FOCUSED_CELL_SELECTOR = `.${CELL_CLASSNAME}[tabindex]`\n\nconst MIN = new Date(1900, 0, 1)\nconst MAX = new Date(2099, 11, 31)\n\nconst VIEW_OPTIONS: View[] = ['month', 'year', 'decade', 'century']\n\nconst VIEW_UNIT: Record<View, DateUnit> = {\n month: 'day',\n year: 'month',\n decade: 'year',\n century: 'decade',\n}\n\nconst VIEW = {\n month: Month,\n year: Year,\n decade: Decade,\n century: Century,\n}\n\nconst ARROWS_TO_DIRECTION = {\n ArrowDown: 'DOWN',\n ArrowUp: 'UP',\n ArrowRight: 'RIGHT',\n ArrowLeft: 'LEFT',\n}\n\nconst OPPOSITE_DIRECTION: Record<'RIGHT' | 'LEFT', 'RIGHT' | 'LEFT'> = {\n LEFT: 'RIGHT',\n RIGHT: 'LEFT',\n}\n\nconst MULTIPLIER = {\n year: 1,\n decade: 10,\n century: 100,\n}\n\nfunction inRangeValue(_value: Date | undefined | null, min: Date, max: Date) {\n let value = dateOrNull(_value)\n if (value === null) return value\n return dates.max(dates.min(value, max), min)\n}\n\nconst propTypes = {\n /**\n * @example ['disabled', ['new Date()']]\n */\n disabled: PropTypes.bool,\n /**\n * @example ['readOnly', ['new Date()']]\n */\n readOnly: PropTypes.bool,\n\n /**\n * @example ['onChangePicker', [ ['new Date()'] ]]\n */\n onChange: PropTypes.func,\n\n /**\n * The selected Date.\n *\n * ```tsx live\n * import { Calendar } from 'react-widgets';\n *\n * <Calendar value={new Date()} />\n * ```\n * @example false\n */\n value: PropTypes.instanceOf(Date),\n\n /**\n * The minimum date that the Calendar can navigate from.\n *\n * @example ['prop', ['min', 'new Date()']]\n */\n min: PropTypes.instanceOf(Date),\n\n /**\n * The maximum date that the Calendar can navigate to.\n *\n * @example ['prop', ['max', 'new Date()']]\n */\n max: PropTypes.instanceOf(Date),\n\n /**\n * Default current date at which the calendar opens. If none is provided, opens at today's date or the `value` date (if any).\n */\n currentDate: PropTypes.instanceOf(Date),\n\n /**\n * Change event Handler that is called when the currentDate is changed. The handler is called with the currentDate object.\n */\n onCurrentDateChange: PropTypes.func,\n\n /** Specify the navigate into the past header icon */\n navigatePrevIcon: PropTypes.node,\n\n /** Specify the navigate into the future header icon */\n navigateNextIcon: PropTypes.node,\n\n /**\n * Controls the currently displayed calendar view. Use `defaultView` to set a unique starting view.\n *\n * @type {(\"month\"|\"year\"|\"decade\"|\"century\")}\n * @controllable onViewChange\n */\n view(props: any, ...args: any[]) {\n // @ts-ignore\n return PropTypes.oneOf(props.views || VIEW_OPTIONS)(props, ...args)\n },\n\n /**\n * Defines a list of views the Calendar can traverse through, starting with the\n * first in the list to the last.\n *\n * @type array<\"month\"|\"year\"|\"decade\"|\"century\">\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(VIEW_OPTIONS)),\n\n /**\n * A callback fired when the `view` changes.\n *\n * @controllable view\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback fired when the Calendar navigates between views, or forward and backwards in time.\n *\n * @type function(date: ?Date, direction: string, view: string)\n */\n onNavigate: PropTypes.func,\n culture: PropTypes.string,\n autoFocus: PropTypes.bool,\n\n /**\n * Show or hide the Calendar footer.\n *\n * @example ['prop', ['footer', true]]\n */\n footer: PropTypes.bool,\n\n /**\n * Provide a custom component to render the days of the month. The Component is provided the following props\n *\n * - `date`: a `Date` object for the day of the month to render\n * - `label`: a formatted `string` of the date to render. To adjust the format of the `label` string use the `dateFormat` prop, listed below.\n */\n renderDay: PropTypes.func,\n\n formats: PropTypes.shape({\n /**\n * A formatter for the header button of the month view.\n *\n * @example ['dateFormat', ['headerFormat', \"{ date: 'medium' }\"]]\n */\n header: PropTypes.any,\n\n /**\n * A formatter for the Calendar footer, formats today's Date as a string.\n *\n * @example ['dateFormat', ['footerFormat', \"{ date: 'medium' }\", \"date => 'Today is: ' + formatter(date)\"]]\n */\n footer: PropTypes.any,\n\n /**\n * A formatter calendar days of the week, the default formats each day as a Narrow name: \"Mo\", \"Tu\", etc.\n *\n * @example ['prop', { day: \"day => \\n['🎉', 'M', 'T','W','Th', 'F', '🎉'][day.getDay()]\" }]\n */\n day: PropTypes.any,\n\n /**\n * A formatter for day of the month\n *\n * @example ['prop', { date: \"dt => String(dt.getDate())\" }]\n */\n date: PropTypes.any,\n\n /**\n * A formatter for month name.\n *\n * @example ['dateFormat', ['monthFormat', \"{ raw: 'MMMM' }\", null, { defaultView: '\"year\"' }]]\n */\n month: PropTypes.any,\n\n /**\n * A formatter for month name.\n *\n * @example ['dateFormat', ['yearFormat', \"{ raw: 'yy' }\", null, { defaultView: '\"decade\"' }]]\n */\n year: PropTypes.any,\n\n /**\n * A formatter for decade, the default formats the first and last year of the decade like: 2000 - 2009.\n */\n decade: PropTypes.any,\n\n /**\n * A formatter for century, the default formats the first and last year of the century like: 1900 - 1999.\n */\n century: PropTypes.any,\n }),\n\n messages: PropTypes.shape({\n moveBack: PropTypes.string,\n moveForward: PropTypes.string,\n }),\n\n onKeyDown: PropTypes.func,\n\n /** @ignore */\n tabIndex: PropTypes.any,\n}\n\nconst useViewState = (views: View[], view = views[0], currentDate: Date) => {\n const lastView = useRef(view)\n const lastDate = useRef(currentDate)\n\n let slideDirection: SlideDirection\n if (view !== lastView.current) {\n slideDirection =\n views.indexOf(lastView.current) > views.indexOf(view) ? 'top' : 'bottom'\n } else if (lastDate.current !== currentDate) {\n slideDirection = dates.gt(currentDate, lastDate.current) ? 'left' : 'right'\n }\n\n useEffect(() => {\n lastDate.current = currentDate\n lastView.current = view\n })\n\n return slideDirection!\n}\n\ntype View = 'month' | 'year' | 'decade' | 'century'\n\nexport interface CalendarProps<TLocalizer = unknown>\n extends WidgetHTMLProps,\n WidgetProps {\n bordered?: boolean\n views?: View[]\n disabled?: boolean\n readOnly?: boolean\n\n value?: Date | null\n defaultValue?: Date\n onChange?: (nextValue: Date) => void\n\n min?: Date\n max?: Date\n\n view?: View\n defaultView?: View\n onViewChange?: (nextView: View) => void\n\n currentDate?: Date\n defaultCurrentDate?: Date\n onCurrentDateChange?: (nextDate: Date) => void\n\n onNavigate?: (\n date: Date,\n slideDirection: SlideDirection,\n nextView: View,\n ) => void\n renderDay?: RenderDayProp\n formats?: DateFormats<InferFormat<TLocalizer>>\n\n messages?: {\n moveBack?: string\n moveForward?: string\n moveToday?: string\n }\n}\n\n/**\n * @public\n */\nfunction Calendar({\n id,\n autoFocus,\n bordered = true,\n views = VIEW_OPTIONS,\n tabIndex = 0,\n disabled,\n readOnly,\n className,\n\n value,\n defaultValue,\n onChange,\n\n currentDate: pCurrentDate,\n defaultCurrentDate,\n onCurrentDateChange,\n\n min = MIN,\n max = MAX,\n\n view,\n defaultView = views[0],\n onViewChange,\n\n onKeyDown,\n onNavigate,\n renderDay,\n messages,\n formats,\n ...elementProps\n}: CalendarProps) {\n const [currentValue, handleChange] = useUncontrolledProp(\n value,\n defaultValue,\n onChange,\n )\n const [currentDate, handleCurrentDateChange] = useUncontrolledProp(\n pCurrentDate,\n defaultCurrentDate || currentValue || new Date(),\n onCurrentDateChange,\n )\n const [currentView, handleViewChange] = useUncontrolledProp(\n view,\n defaultView,\n onViewChange,\n )\n\n const localizer = useLocalizer(messages, formats)\n const ref = useRef<HTMLDivElement>(null)\n\n const viewId = useInstanceId(id, '_calendar')\n const labelId = useInstanceId(id, '_calendar_label')\n\n useAutoFocus(!!autoFocus, ref)\n\n const slideDirection = useViewState(views, currentView, currentDate!)\n\n const [, focused] = useFocusManager(\n ref,\n { disabled },\n {\n willHandle() {\n if (tabIndex == -1) return false\n },\n },\n )\n\n const lastValue = useRef(currentValue)\n useEffect(() => {\n const inValue = inRangeValue(currentValue, min, max)\n const last = lastValue.current\n lastValue.current = currentValue\n\n if (!dates.eq(inValue, dateOrNull(last), VIEW_UNIT[currentView]))\n maybeSetCurrentDate(inValue)\n })\n\n const isDisabled = disabled || readOnly\n\n /**\n * Handlers\n */\n\n const handleViewChangeImpl = () => {\n navigate('UP')\n }\n\n const handleMoveBack = () => {\n navigate('LEFT')\n }\n\n const handleMoveForward = () => {\n navigate('RIGHT')\n }\n\n const handleDateChange = (date: Date) => {\n if (views[0] === currentView) {\n maybeSetCurrentDate(date)\n\n notify(handleChange, [date])\n\n focus()\n return\n }\n\n navigate('DOWN', date)\n }\n\n const handleMoveToday = () => {\n let date = new Date()\n let firstView = views[0]\n\n notify(onChange, [date])\n\n if (dates.inRange(date, min, max, firstView)) {\n focus()\n maybeSetCurrentDate(date)\n notify(handleViewChange, [firstView])\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n let ctrl = e.ctrlKey || e.metaKey\n let key = e.key\n let direction: Direction = ARROWS_TO_DIRECTION[\n key as keyof typeof ARROWS_TO_DIRECTION\n ] as Direction\n let unit = VIEW_UNIT[currentView]\n\n if (key === 'Enter') {\n e.preventDefault()\n return handleDateChange(currentDate)\n }\n\n if (direction) {\n if (ctrl) {\n e.preventDefault()\n navigate(direction)\n } else {\n const isRTL =\n getComputedStyle(e.currentTarget).getPropertyValue('direction') ===\n 'rtl'\n\n if (isRTL && direction in OPPOSITE_DIRECTION)\n direction = OPPOSITE_DIRECTION[direction as 'LEFT' | 'RIGHT']\n\n let nextDate = Calendar.move(\n currentDate,\n min,\n max,\n currentView,\n direction,\n )\n\n if (!dates.eq(currentDate, nextDate, unit)) {\n e.preventDefault()\n\n if (dates.gt(nextDate, currentDate, currentView))\n navigate('RIGHT', nextDate)\n else if (dates.lt(nextDate, currentDate, currentView))\n navigate('LEFT', nextDate)\n else maybeSetCurrentDate(nextDate)\n }\n }\n }\n\n notify(onKeyDown, [e])\n }\n\n function navigate(direction: Direction, date?: Date) {\n let nextView = currentView\n let slideDir: SlideDirection =\n direction === 'LEFT' || direction === 'UP' ? 'right' : 'left'\n\n if (direction === 'UP')\n nextView = views[views.indexOf(currentView) + 1] || nextView\n\n if (direction === 'DOWN')\n nextView = views[views.indexOf(currentView) - 1] || nextView\n\n if (!date)\n date =\n ['LEFT', 'RIGHT'].indexOf(direction) !== -1\n ? nextDate(direction)\n : currentDate\n\n if (dates.inRange(date!, min, max, nextView)) {\n notify(onNavigate, [date!, slideDir, nextView])\n\n //this.focus()\n maybeSetCurrentDate(date)\n notify(handleViewChange, [nextView])\n }\n }\n\n const focus = () => {\n const node = ref.current?.querySelector(FOCUSED_CELL_SELECTOR) as any\n node?.focus()\n }\n\n const moveFocus = (node: HTMLElement, hadFocus: boolean) => {\n let current = document.activeElement\n\n if (hadFocus && (!current || !node.contains(current))) {\n node.focus()\n }\n }\n\n function maybeSetCurrentDate(date: Date | null | undefined) {\n let inRangeDate = inRangeValue(\n date ? new Date(date) : currentDate,\n min,\n max,\n )\n\n if (\n date === currentDate ||\n dates.eq(inRangeDate, dateOrNull(currentDate), VIEW_UNIT[currentView])\n )\n return\n\n notify(handleCurrentDateChange, [inRangeDate!])\n }\n\n function nextDate(direction: Direction) {\n let method = direction === 'LEFT' ? 'subtract' : 'add'\n\n let unit = currentView === 'month' ? currentView : 'year'\n let multi = (MULTIPLIER as any)[currentView] || 1\n\n return (dates as any)[method](currentDate, 1 * multi, unit)\n }\n\n function getHeaderLabel() {\n switch (currentView) {\n case 'month':\n return localizer.formatDate(currentDate, 'header')\n\n case 'year':\n return localizer.formatDate(currentDate, 'year')\n\n case 'decade':\n return localizer.formatDate(\n dates.startOf(currentDate, 'decade'),\n 'decade',\n )\n case 'century':\n return localizer.formatDate(\n dates.startOf(currentDate, 'century'),\n 'century',\n )\n }\n }\n\n let View = VIEW[currentView]\n let todayNotInRange = !dates.inRange(new Date(), min, max, currentView!)\n\n let key = currentView + '_' + dates[currentView](currentDate)\n\n // let elementProps = Props.pickElementProps(this),\n // let viewProps = pick(uncontrolledProps, View)\n\n const prevDisabled =\n isDisabled || !dates.inRange(nextDate('LEFT'), min, max, currentView!)\n\n const nextDisabled =\n isDisabled || !dates.inRange(nextDate('RIGHT'), min, max, currentView!)\n\n return (\n <Widget\n {...elementProps}\n role=\"group\"\n ref={ref}\n focused={focused}\n disabled={disabled}\n readOnly={readOnly}\n tabIndex={tabIndex}\n className={cn(\n className,\n 'rw-calendar',\n bordered && 'rw-calendar-contained',\n )}\n >\n <CalendarHeader\n label={getHeaderLabel()}\n labelId={labelId}\n localizer={localizer}\n upDisabled={isDisabled || currentView === last(views)}\n prevDisabled={prevDisabled}\n todayDisabled={isDisabled || todayNotInRange}\n nextDisabled={nextDisabled}\n onViewChange={handleViewChangeImpl}\n onMoveLeft={handleMoveBack}\n onMoveRight={handleMoveForward}\n onMoveToday={handleMoveToday}\n />\n <Calendar.Transition\n direction={slideDirection}\n onTransitionEnd={moveFocus}\n >\n <View\n key={key}\n min={min}\n max={max}\n id={viewId}\n value={currentValue}\n localizer={localizer}\n disabled={isDisabled}\n focusedItem={currentDate}\n onChange={handleDateChange}\n onKeyDown={handleKeyDown}\n aria-labelledby={labelId}\n renderDay={renderDay}\n />\n </Calendar.Transition>\n </Widget>\n )\n}\n\nfunction dateOrNull(dt?: Date | null) {\n if (dt && !isNaN(dt.getTime())) return dt\n return null\n}\n\nCalendar.displayName = 'Calendar'\n\nCalendar.propTypes = propTypes\n\n// Calendar.defaultProps = {\n// min: new Date(1900, 0, 1),\n// max: new Date(2099, 11, 31),\n// views: VIEW_OPTIONS,\n// tabIndex: '0',\n// }\n\nCalendar.Transition = SlideTransitionGroup\n\nCalendar.move = (\n date: Date,\n min: Date,\n max: Date,\n view: View,\n direction: Direction,\n) => {\n let isMonth = view === 'month'\n let isUpOrDown = direction === 'UP' || direction === 'DOWN'\n let rangeUnit = view && VIEW_UNIT[view]\n let addUnit = isMonth && isUpOrDown ? 'week' : VIEW_UNIT[view]\n let amount = isMonth || !isUpOrDown ? 1 : 4\n let newDate\n\n if (direction === 'UP' || direction === 'LEFT') amount *= -1\n\n newDate = dates.add(date, amount, addUnit)\n\n return dates.inRange(newDate, min, max, rangeUnit) ? newDate : date\n}\n\nexport default Calendar\n","import cn from 'classnames'\nimport * as React from 'react'\nimport { ReactNode } from 'react'\nimport Button from './Button'\n\nexport interface Props extends React.HTMLProps<HTMLButtonElement> {\n label?: string\n icon?: ReactNode\n busy?: boolean\n spinner?: ReactNode\n children?: ReactNode\n}\n\nfunction CalendarButton({ className, ...props }: Props) {\n return (\n <Button\n {...props}\n tabIndex={undefined}\n className={cn(className, 'rw-calendar-btn')}\n />\n )\n}\n\nexport default CalendarButton\n","import React from 'react'\nimport CalendarButton from './CalendarButton'\nimport { caretDown, chevronLeft, chevronRight } from './Icon'\nimport { Localizer } from './Localization'\n\ninterface Props {\n label: string\n labelId?: string\n\n upDisabled: boolean\n prevDisabled: boolean\n todayDisabled: boolean\n nextDisabled: boolean\n onViewChange: () => void\n onMoveLeft: () => void\n onMoveToday: () => void\n onMoveRight: () => void\n\n navigatePrevIcon?: React.ReactNode\n navigateNextIcon?: React.ReactNode\n\n localizer: Localizer\n isRtl?: boolean\n}\n\nfunction CalendarHeader({\n localizer,\n label,\n labelId,\n onMoveRight,\n onMoveToday,\n onMoveLeft,\n onViewChange,\n prevDisabled,\n todayDisabled,\n upDisabled,\n nextDisabled,\n navigatePrevIcon = chevronLeft,\n navigateNextIcon = chevronRight,\n}: Props) {\n return (\n <div className=\"rw-calendar-header\">\n <CalendarButton\n id={labelId}\n onClick={onViewChange}\n className=\"rw-calendar-btn-view\"\n disabled={upDisabled}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {label} {caretDown}\n </CalendarButton>\n <CalendarButton\n className=\"rw-calendar-btn-left\"\n onClick={onMoveLeft}\n disabled={prevDisabled}\n label={localizer.messages.moveBack()}\n icon={navigatePrevIcon}\n />\n <CalendarButton\n className=\"rw-calendar-btn-today\"\n disabled={todayDisabled}\n onClick={onMoveToday}\n >\n {localizer.messages.moveToday()}\n </CalendarButton>\n <CalendarButton\n className=\"rw-calendar-btn-right\"\n onClick={onMoveRight}\n disabled={nextDisabled}\n label={localizer.messages.moveForward()}\n icon={navigateNextIcon}\n />\n </div>\n )\n}\n\nexport default CalendarHeader\n","import cn from 'classnames'\nimport React, { ReactNode, useEffect, useRef } from 'react'\nimport dates from './dates'\nimport useFocusManager from './useFocusManager'\n\nexport type DateUnit =\n | 'second'\n | 'minutes'\n | 'hours'\n | 'day'\n | 'week'\n | 'month'\n | 'year'\n | 'decade'\n | 'century'\n\nfunction clamp(date: Date, min: Date, max: Date) {\n return dates.max(dates.min(date, max), min)\n}\n\nexport interface CalendarViewProps {\n id: string\n className?: string\n children?: ReactNode\n focusedItem: Date\n onKeyDown: React.KeyboardEventHandler<HTMLTableElement>\n 'aria-labelledby': string\n}\n\nfunction CalendarView({\n className,\n focusedItem,\n onKeyDown,\n children,\n 'aria-labelledby': labelledby,\n}: CalendarViewProps) {\n const ref = useRef<HTMLTableElement>(null)\n const [focusEvents, focused] = useFocusManager(ref)\n\n useEffect(() => {\n const node = ref.current\n if (!node || !focused) return\n\n node.querySelector<HTMLElement>('.rw-cell[tabindex]')?.focus()\n }, [focusedItem, focused, ref])\n\n return (\n <div\n role=\"grid\"\n ref={ref}\n tabIndex={-1}\n {...focusEvents}\n onKeyDown={onKeyDown}\n aria-labelledby={labelledby}\n className={cn(className, 'rw-nav-view', 'rw-calendar-grid')}\n >\n {children}\n </div>\n )\n}\n\ninterface CellProps {\n onChange(date: Date): void\n now?: Date\n min: Date\n max: Date\n date: Date\n unit: DateUnit\n disabled?: boolean\n selected?: Date | null\n focusedItem?: Date\n viewUnit: 'month' | 'year' | 'decade' | 'century'\n children?: ReactNode\n label: string\n}\n\nfunction CalendarViewCell({\n onChange,\n min,\n max,\n date,\n unit,\n disabled,\n selected,\n focusedItem,\n viewUnit,\n children,\n label,\n}: CellProps) {\n const isEqual = (nextDate: Date | undefined) => dates.eq(date, nextDate, unit)\n\n const isEmpty = !dates.inRange(date, min, max, unit)\n const isDisabled = disabled || isEmpty\n\n // const isNow = now && isEqual(now)\n\n const isFocused = !disabled && !isEmpty && isEqual(focusedItem)\n const isSelected = selected && isEqual(selected)\n\n const isOffView =\n date &&\n focusedItem &&\n viewUnit &&\n dates[viewUnit](date) !== dates[viewUnit](focusedItem)\n\n const handleChange = () => {\n onChange(clamp(date, min, max))\n }\n\n return (\n <div\n role=\"gridcell\"\n title={label}\n aria-label={label}\n aria-readonly={disabled}\n aria-selected={Boolean(isSelected)}\n tabIndex={isFocused ? 0 : void 0}\n onClick={!isDisabled ? handleChange : undefined}\n className={cn(\n 'rw-cell',\n // isNow && 'rw-now',\n isDisabled && 'rw-state-disabled',\n isEmpty && 'rw-cell-not-allowed',\n isOffView && 'rw-cell-off-range',\n isSelected && 'rw-state-selected',\n )}\n >\n <span aria-hidden>{children}</span>\n </div>\n )\n}\n\nCalendarView.Body = (\n props: React.AllHTMLAttributes<HTMLTableSectionElement>,\n) => <div role=\"rowgroup\" className=\"rw-calendar-body\" {...props} />\n\nCalendarView.Row = (props: React.AllHTMLAttributes<HTMLTableRowElement>) => (\n <div role=\"row\" className=\"rw-calendar-row\" {...props} />\n)\nCalendarView.Cell = CalendarViewCell\n\nexport default CalendarView\n","import React, { useMemo } from 'react'\nimport CalendarView, { CalendarViewProps } from './CalendarView'\nimport { Localizer } from './Localization'\nimport { chunk } from './_'\nimport dates from './dates'\n\ninterface CenturyProps extends CalendarViewProps {\n disabled?: boolean\n onChange: (nextDate: Date) => void\n value?: Date | null\n min: Date\n max: Date\n localizer: Localizer\n}\n\nfunction CenturyView({\n focusedItem,\n disabled,\n onChange,\n value,\n localizer,\n min,\n max,\n ...props\n}: CenturyProps) {\n const chunks = useMemo(() => chunk(getCenturyDecades(focusedItem), 4), [\n focusedItem,\n ])\n\n return (\n <CalendarView {...props} focusedItem={focusedItem}>\n <CalendarView.Body>\n {chunks.map((row, rowIdx) => (\n <CalendarView.Row key={rowIdx}>\n {row.map((date, colIdx) => {\n let label = localizer.formatDate(\n dates.startOf(date, 'decade'),\n 'decade',\n )\n\n return (\n <CalendarView.Cell\n key={colIdx}\n unit=\"decade\"\n viewUnit=\"century\"\n label={label}\n date={date}\n min={min}\n max={max}\n onChange={onChange}\n focusedItem={focusedItem}\n selected={value}\n disabled={disabled}\n >\n {label}\n </CalendarView.Cell>\n )\n })}\n </CalendarView.Row>\n ))}\n </CalendarView.Body>\n </CalendarView>\n )\n}\n\nfunction getCenturyDecades(_date: Date) {\n let days = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n let date = dates.add(dates.startOf(_date, 'century'), -20, 'year')\n\n return days.map(() => (date = dates.add(date, 10, 'year')))\n}\n\nexport default CenturyView\n","import cn from 'classnames'\nimport * as PropTypes from 'prop-types'\nimport * as React from 'react'\nimport { useImperativeHandle, useMemo, useRef, useState } from 'react'\nimport { useUncontrolledProp } from 'uncontrollable'\nimport { caretDown } from './Icon'\nimport Input from './Input'\nimport List, { ListHandle } from './List'\nimport { FocusListContext, useFocusList } from './FocusListContext'\nimport BasePopup from './Popup'\nimport InputAddon from './InputAddon'\nimport Widget from './Widget'\nimport WidgetPicker from './WidgetPicker'\nimport { useMessagesWithDefaults } from './messages'\nimport {\n BaseListboxInputProps,\n ChangeHandler,\n Filterable,\n PopupWidgetProps,\n SelectHandler,\n WidgetHTMLProps,\n WidgetProps,\n} from './shared'\nimport { DataItem, WidgetHandle } from './types'\nimport { useActiveDescendant } from './A11y'\nimport * as CustomPropTypes from './PropTypes'\nimport { TextAccessorFn, useAccessors } from './Accessors'\nimport { useFilteredData } from './Filter'\nimport useDropdownToggle from './useDropdownToggle'\nimport useFocusManager from './useFocusManager'\nimport { notify, useFirstFocusedRender, useInstanceId } from './WidgetHelpers'\nimport { Spinner } from './Icon'\n\nfunction indexOf<TDataItem>(\n data: readonly TDataItem[],\n searchTerm: string,\n text: TextAccessorFn,\n) {\n if (!searchTerm.trim()) return -1\n for (let idx = 0; idx < data.length; idx++)\n if (text(data[idx]).toLowerCase() === searchTerm) return idx\n return -1\n}\n\nlet propTypes = {\n value: PropTypes.any,\n onChange: PropTypes.func,\n open: PropTypes.bool,\n onToggle: PropTypes.func,\n\n renderListItem: PropTypes.func,\n listComponent: PropTypes.elementType,\n\n renderListGroup: PropTypes.func,\n groupBy: CustomPropTypes.accessor,\n\n data: PropTypes.array,\n dataKey: CustomPropTypes.accessor,\n textField: CustomPropTypes.accessor,\n name: PropTypes.string,\n\n /** Do not show the auto complete list when it returns no results. */\n hideEmptyPopup: PropTypes.bool,\n\n /** Hide the combobox dropdown indicator. */\n hideCaret: PropTypes.bool,\n\n /**\n *\n * @type {(dataItem: ?any, metadata: { originalEvent: SyntheticEvent }) => void}\n */\n onSelect: PropTypes.func,\n\n autoFocus: PropTypes.bool,\n\n disabled: CustomPropTypes.disabled.acceptsArray,\n\n readOnly: CustomPropTypes.disabled,\n\n busy: PropTypes.bool,\n\n /** Specify the element used to render the select (down arrow) icon. */\n selectIcon: PropTypes.node,\n\n /** Specify the element used to render the busy indicator */\n busySpinner: PropTypes.node,\n\n dropUp: PropTypes.bool,\n popupTransition: PropTypes.elementType,\n\n placeholder: PropTypes.string,\n\n /** Adds a css class to the input container element. */\n containerClassName: PropTypes.string,\n\n inputProps: PropTypes.object,\n listProps: PropTypes.object,\n\n messages: PropTypes.shape({\n openCombobox: CustomPropTypes.message,\n emptyList: CustomPropTypes.message,\n emptyFilter: CustomPropTypes.message,\n }),\n}\n\nexport type ComboboxHandle = WidgetHandle\n\nexport interface ComboboxProps<TDataItem = DataItem>\n extends WidgetHTMLProps,\n WidgetProps,\n PopupWidgetProps,\n Filterable<TDataItem>,\n BaseListboxInputProps<TDataItem, string | TDataItem> {\n name?: string\n\n /**\n * If a `data` item matches the current typed value select it automatically.\n */\n autoSelectMatches?: boolean\n onChange?: ChangeHandler<TDataItem | string>\n onSelect?: SelectHandler<TDataItem | string>\n\n hideCaret?: boolean\n hideEmptyPopup?: boolean\n}\n\ndeclare interface Combobox {\n <TDataItem = DataItem>(\n props: ComboboxProps<TDataItem> & React.RefAttributes<ComboboxHandle>,\n ): React.ReactElement | null\n\n displayName?: string\n propTypes?: any\n}\n\n/**\n * ---\n * shortcuts:\n * - { key: alt + down arrow, label: open combobox }\n * - { key: alt + up arrow, label: close combobox }\n * - { key: down arrow, label: move focus to next item }\n * - { key: up arrow, label: move focus to previous item }\n * - { key: home, label: move focus to first item }\n * - { key: end, label: move focus to last item }\n * - { key: enter, label: select focused item }\n * - { key: any key, label: search list for item starting with key }\n * ---\n *\n * Select an item from the list, or input a custom value. The Combobox can also make suggestions as you type.\n\n * @public\n */\nconst ComboboxImpl: Combobox = React.forwardRef(function Combobox<TDataItem>(\n {\n id,\n className,\n containerClassName,\n placeholder,\n autoFocus,\n\n textField,\n dataKey,\n autoSelectMatches,\n\n focusFirstItem = false,\n\n value,\n defaultValue = '',\n onChange,\n\n open,\n defaultOpen = false,\n onToggle,\n\n filter = true,\n busy,\n disabled,\n readOnly,\n selectIcon = caretDown,\n hideCaret,\n hideEmptyPopup,\n busySpinner,\n dropUp,\n tabIndex,\n popupTransition,\n name,\n onSelect,\n onKeyDown,\n onBlur,\n onFocus,\n inputProps,\n listProps,\n groupBy,\n renderListItem,\n renderListGroup,\n optionComponent,\n listComponent: ListComponent = List,\n popupComponent: Popup = BasePopup,\n data: rawData = [],\n messages: userMessages,\n ...elementProps\n }: ComboboxProps<TDataItem>,\n outerRef: React.RefObject<ComboboxHandle>,\n) {\n let [currentValue, handleChange] = useUncontrolledProp(\n value,\n defaultValue,\n onChange,\n )\n const [currentOpen, handleOpen] = useUncontrolledProp(\n open,\n defaultOpen,\n onToggle,\n )\n\n const ref = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const listRef = useRef<ListHandle>(null)\n\n const [suggestion, setSuggestion] = useState<TDataItem | null>(null)\n const shouldFilter = useRef(false)\n\n const inputId = useInstanceId(id, '_input')\n const listId = useInstanceId(id, '_listbox')\n const activeId = useInstanceId(id, '_listbox_active_option')\n\n const accessors = useAccessors(textField, dataKey)\n const messages = useMessagesWithDefaults(userMessages)\n const toggle = useDropdownToggle(currentOpen, handleOpen)\n\n const isDisabled = disabled === true\n const isReadOnly = !!readOnly\n\n const data = useFilteredData(\n rawData,\n filter,\n shouldFilter.current ? accessors.text(currentValue) : void 0,\n accessors.text,\n )\n\n const selectedItem = useMemo(\n () => data[accessors.indexOf(data, currentValue)],\n [data, currentValue, accessors],\n )\n\n const list = useFocusList<TDataItem>({\n activeId,\n scope: ref,\n focusFirstItem,\n anchorItem: currentOpen ? selectedItem : undefined,\n })\n\n const [focusEvents, focused] = useFocusManager(\n ref,\n { disabled: isDisabled, onBlur, onFocus },\n {\n didHandle(focused) {\n if (!focused) {\n shouldFilter.current = false\n toggle.close()\n setSuggestion(null)\n list.focus(undefined)\n } else {\n focus({ preventScroll: true })\n }\n },\n },\n )\n\n useActiveDescendant(ref, activeId, currentOpen, [list.getFocused()])\n\n /**\n * Handlers\n */\n\n const handleClick = (e: React.MouseEvent) => {\n if (readOnly || isDisabled) return\n\n // prevents double clicks when in a <label>\n e.preventDefault()\n\n focus()\n toggle()\n }\n\n const handleSelect = (\n data: string | TDataItem,\n originalEvent: React.SyntheticEvent,\n ) => {\n toggle.close()\n shouldFilter.current = false\n\n setSuggestion(null)\n notify(onSelect, [data, { originalEvent }])\n change(data, originalEvent, true)\n focus({ preventScroll: true })\n }\n\n const handleInputKeyDown = ({\n key,\n }: React.KeyboardEvent<HTMLInputElement>) => {\n if (key === 'Backspace' || key === 'Delete') {\n list.focus(null)\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n let idx = autoSelectMatches\n ? indexOf(rawData, event.target.value.toLowerCase(), accessors.text)\n : -1\n\n shouldFilter.current = true\n\n setSuggestion(null)\n\n const nextValue = idx === -1 ? event.target.value : rawData[idx]\n\n change(nextValue, event)\n\n if (!nextValue) toggle.close()\n else toggle.open()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (readOnly) return\n\n let { key, altKey, shiftKey } = e\n\n notify(onKeyDown, [e])\n\n if (e.defaultPrevented) return\n\n const select = (item: TDataItem | undefined) =>\n item != null && handleSelect(item, e)\n\n const setFocused = (el?: HTMLElement) => {\n if (!el) return\n setSuggestion(list.toDataItem(el)!)\n list.focus(el)\n }\n\n if (key === 'End' && currentOpen && !shiftKey) {\n e.preventDefault()\n setFocused(list.last())\n } else if (key === 'Home' && currentOpen && !shiftKey) {\n e.preventDefault()\n setFocused(list.first())\n } else if (key === 'Escape' && currentOpen) {\n e.preventDefault()\n setSuggestion(null)\n toggle.close()\n } else if (key === 'Enter' && currentOpen) {\n e.preventDefault()\n select(list.getFocused()!)\n } else if (key === 'ArrowDown') {\n e.preventDefault()\n if (currentOpen) {\n setFocused(list.next())\n } else {\n return toggle.open()\n }\n } else if (key === 'ArrowUp') {\n e.preventDefault()\n if (altKey) return toggle.close()\n\n if (currentOpen) {\n setFocused(list.prev())\n }\n }\n }\n\n /**\n * Methods\n */\n\n function focus(opts?: FocusOptions) {\n if (inputRef.current) inputRef.current.focus(opts)\n }\n\n function change(\n nextValue: TDataItem | string,\n originalEvent?: React.SyntheticEvent,\n selected = false,\n ) {\n handleChange(nextValue, {\n lastValue: currentValue,\n originalEvent,\n source: selected ? 'listbox' : 'input',\n })\n }\n\n /**\n * Rendering\n */\n\n useImperativeHandle(outerRef, () => ({\n focus,\n }))\n\n let shouldRenderPopup = useFirstFocusedRender(focused, currentOpen!)\n\n let valueItem = accessors.findOrSelf(data, currentValue)\n let inputValue = accessors.text(suggestion || valueItem)\n\n let completeType = filter ? ('list' as const) : ('none' as const)\n\n let popupOpen = currentOpen && (!hideEmptyPopup || !!data.length)\n let inputReadOnly =\n // @ts-ignore\n inputProps?.readOnly != null ? inputProps?.readOnly : readOnly\n\n let inputAddon: React.ReactNode = false\n\n if (!hideCaret) {\n inputAddon = (\n <InputAddon\n busy={busy}\n icon={selectIcon}\n spinner={busySpinner}\n onClick={handleClick}\n disabled={!!isDisabled || isReadOnly}\n // FIXME\n label={messages.openCombobox()}\n />\n )\n } else if (busy) {\n inputAddon = (\n <span aria-hidden=\"true\" className=\"rw-btn rw-picker-caret\">\n {busySpinner || Spinner}\n </span>\n )\n }\n\n return (\n <Widget\n {...elementProps}\n ref={ref}\n open={currentOpen}\n dropUp={dropUp}\n focused={focused}\n disabled={isDisabled}\n readOnly={isReadOnly}\n {...focusEvents}\n onKeyDown={handleKeyDown}\n className={cn(className, 'rw-combobox')}\n >\n <WidgetPicker\n className={cn(\n containerClassName,\n hideCaret && 'rw-widget-input',\n hideCaret && !busy && 'rw-hide-caret',\n )}\n >\n <Input\n {...inputProps}\n role=\"combobox\"\n name={name}\n id={inputId}\n className={cn(\n // @ts-ignore\n inputProps && inputProps.className,\n 'rw-combobox-input',\n !hideCaret && 'rw-widget-input',\n )}\n autoFocus={autoFocus}\n tabIndex={tabIndex}\n disabled={isDisabled}\n readOnly={inputReadOnly}\n aria-busy={!!busy}\n aria-owns={listId}\n aria-autocomplete={completeType}\n aria-expanded={currentOpen}\n aria-haspopup={true}\n placeholder={placeholder}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n ref={inputRef}\n />\n {inputAddon}\n </WidgetPicker>\n <FocusListContext.Provider value={list.context}>\n {shouldRenderPopup && (\n <Popup\n dropUp={dropUp}\n open={popupOpen}\n transition={popupTransition}\n onEntering={() => listRef.current!.scrollIntoView()}\n >\n <ListComponent\n {...listProps}\n id={listId}\n tabIndex={-1}\n data={data}\n groupBy={groupBy}\n disabled={disabled}\n accessors={accessors}\n renderItem={renderListItem}\n renderGroup={renderListGroup}\n optionComponent={optionComponent}\n value={selectedItem}\n searchTerm={(valueItem && accessors.text(valueItem)) || ''}\n aria-hidden={!popupOpen}\n aria-labelledby={inputId}\n aria-live={popupOpen ? 'polite' : void 0}\n onChange={(d, meta) =>\n handleSelect(d as TDataItem, meta.originalEvent!)\n }\n ref={listRef}\n messages={{\n emptyList: rawData.length\n ? messages.emptyFilter\n : messages.emptyList,\n }}\n />\n </Popup>\n )}\n </FocusListContext.Provider>\n </Widget>\n )\n})\n\nComboboxImpl.displayName = 'Combobox'\nComboboxImpl.propTypes = propTypes\n\nexport default ComboboxImpl\n","import cn from 'classnames'\nimport PropTypes from 'prop-types'\nimport React, { useImperativeHandle, useRef, useCallback } from 'react'\nimport { useUncontrolled } from 'uncontrollable'\nimport Calendar, { CalendarProps } from './Calendar'\nimport DatePickerInput, { DatePickerInputProps } from './DatePickerInput'\nimport { calendar } from './Icon'\nimport { useLocalizer, DateFormats } from './Localization'\nimport BasePopup, { PopupProps } from './Popup'\nimport TimeInput, { TimeInputProps } from './TimeInput'\nimport Widget, { WidgetProps } from './Widget'\nimport WidgetPicker from './WidgetPicker'\nimport dates from './dates'\nimport useDropdownToggle from './useDropdownToggle'\nimport useTabTrap from './useTabTrap'\nimport useFocusManager from './useFocusManager'\nimport { notify, useFirstFocusedRender, useInstanceId } from './WidgetHelpers'\n\nimport { TransitionProps } from 'react-transition-group/Transition'\nimport { WidgetHTMLProps, InferFormat } from './shared'\nimport useEventCallback from '@restart/hooks/useEventCallback'\nimport InputAddon from './InputAddon'\n\nlet propTypes = {\n /**\n * @example ['valuePicker', [ ['new Date()', null] ]]\n */\n value: PropTypes.instanceOf(Date),\n\n /**\n * @example ['onChangePicker', [ ['new Date()', null] ]]\n */\n onChange: PropTypes.func,\n\n /**\n * @example ['openDate']\n */\n open: PropTypes.bool,\n onToggle: PropTypes.func,\n\n /**\n * Default current date at which the calendar opens. If none is provided, opens at today's date or the `value` date (if any).\n */\n currentDate: PropTypes.instanceOf(Date),\n\n /**\n * Change event Handler that is called when the currentDate is changed. The handler is called with the currentDate object.\n */\n onCurrentDateChange: PropTypes.func,\n\n onSelect: PropTypes.func,\n\n /**\n * The minimum Date that can be selected. Min only limits selection, it doesn't constrain the date values that\n * can be typed or pasted into the widget. If you need this behavior you can constrain values via\n * the `onChange` handler.\n *\n * @example ['prop', ['min', 'new Date()']]\n */\n min: PropTypes.instanceOf(Date),\n\n /**\n * The maximum Date that can be selected. Max only limits selection, it doesn't constrain the date values that\n * can be typed or pasted into the widget. If you need this behavior you can constrain values via\n * the `onChange` handler.\n *\n * @example ['prop', ['max', 'new Date()']]\n */\n max: PropTypes.instanceOf(Date),\n\n /**\n * A formatting options used to display the date value. This is a shorthand for\n * setting both `valueDisplayFormat` and `valueEditFormat`.\n */\n valueFormat: PropTypes.any,\n\n /**\n * A formatting options used to display the date value. For more information about formats\n * visit the [Localization page](./localization)\n *\n * ```tsx live\n * import { DatePicker } from 'react-widgets';\n *\n * <DatePicker\n * defaultValue={new Date()}\n * valueDisplayFormat={{ dateStyle: \"medium\" }}\n * />\n * ```\n */\n\n valueDisplayFormat: PropTypes.any,\n\n /**\n * A formatting options used while the date input has focus. Useful for showing a simpler format for inputing.\n * For more information about formats visit the [Localization page](./localization)\n *\n * ```tsx live\n * import { DatePicker } from 'react-widgets';\n *\n * <DatePicker\n * defaultValue={new Date()}\n * valueEditFormat={{ dateStyle: \"short\" }}\n * valueDisplayFormat={{ dateStyle: \"medium\" }}\n * />\n * ```\n */\n valueEditFormat: PropTypes.any,\n\n /**\n * Enable the time list component of the picker.\n */\n includeTime: PropTypes.bool,\n\n timePrecision: PropTypes.oneOf(['minutes', 'seconds', 'milliseconds']),\n\n timeInputProps: PropTypes.object,\n\n /** Specify the element used to render the calendar dropdown icon. */\n selectIcon: PropTypes.node,\n\n dropUp: PropTypes.bool,\n\n popupTransition: PropTypes.elementType,\n\n placeholder: PropTypes.string,\n name: PropTypes.string,\n autoFocus: PropTypes.bool,\n /**\n * @example ['disabled', ['new Date()']]\n */\n disabled: PropTypes.bool,\n /**\n * @example ['readOnly', ['new Date()']]\n */\n readOnly: PropTypes.bool,\n\n /**\n * Determines how the widget parses the typed date string into a Date object. You can provide an array of formats to try,\n * or provide a function that returns a date to handle parsing yourself. When `parse` is unspecified and\n * the `format` prop is a `string` parse will automatically use that format as its default.\n */\n parse: PropTypes.oneOfType([PropTypes.any, PropTypes.func]),\n\n /** @ignore */\n tabIndex: PropTypes.any,\n /** @ignore */\n 'aria-labelledby': PropTypes.string,\n /** @ignore */\n 'aria-describedby': PropTypes.string,\n\n /** @ignore */\n localizer: PropTypes.any,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n\n /** Adds a css class to the input container element. */\n containerClassName: PropTypes.string,\n\n calendarProps: PropTypes.object,\n inputProps: PropTypes.object,\n messages: PropTypes.shape({\n dateButton: PropTypes.string,\n }),\n}\n\nconst defaultProps = {\n ...(Calendar as any).defaultProps,\n\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n selectIcon: calendar,\n formats: {},\n}\n\nexport interface DatePickerProps<TLocalizer = unknown>\n extends Omit<WidgetHTMLProps, 'onChange' | 'defaultValue'>,\n Omit<WidgetProps, 'onChange' | 'onSelect' | 'defaultValue'> {\n /**\n * @example ['valuePicker', [ ['new Date()', null] ]]\n */\n value?: Date | null\n\n defaultValue?: Date | null\n\n /**\n * @example ['onChangePicker', [ ['new Date()', null] ]]\n */\n onChange?: (date: Date | null | undefined, rawValue: string) => void\n\n /**\n * @example ['openDateTime']\n */\n open?: boolean\n onToggle?: (isOpen: boolean) => void\n\n /**\n * Default current date at which the calendar opens. If none is provided, opens at today's date or the `value` date (if any).\n */\n currentDate?: Date\n\n /**\n * Change event Handler that is called when the currentDate is changed. The handler is called with the currentDate object.\n */\n onCurrentDateChange?: () => void\n\n onSelect?: (date: Date | null, rawValue: string) => void\n\n /**\n * The minimum Date that can be selected. Min only limits selection, it doesn't constrain the date values that\n * can be typed or pasted into the widget. If you need this behavior you can constrain values via\n * the `onChange` handler.\n *\n * @example ['prop', ['min', 'new Date()']]\n */\n min?: Date\n\n /**\n * The maximum Date that can be selected. Max only limits selection, it doesn't constrain the date values that\n * can be typed or pasted into the widget. If you need this behavior you can constrain values via\n * the `onChange` handler.\n *\n * @example ['prop', ['max', 'new Date()']]\n */\n max?: Date\n\n /**\n * The amount of minutes between each entry in the time list.\n *\n * @example ['prop', { step: 90 }]\n */\n step?: number\n\n /**\n * Enable the time list component of the picker.\n */\n includeTime?: boolean\n\n timePrecision?: 'minutes' | 'seconds' | 'milliseconds'\n\n timeInputProps?: Partial<TimeInputProps>\n\n /** Specify the element used to render the calendar dropdown icon. */\n selectIcon?: React.ReactNode\n\n /**\n * @example ['prop', { dropUp: true }]\n */\n dropUp?: boolean\n\n popupTransition?: React.ComponentType<TransitionProps>\n popupComponent?: React.ComponentType<PopupProps>\n\n placeholder?: string\n name?: string\n autoFocus?: boolean\n /**\n * @example ['disabled', ['new Date()']]\n */\n disabled?: boolean\n /**\n * @example ['readOnly', ['new Date()']]\n */\n readOnly?: boolean\n\n /**\n * Determines how the widget parses the typed date string into a Date object. You can provide a date format\n * or a function that returns a date to handle parsing yourself. When `parse` is unspecified and\n * the default `localizer.parse` is used and passed the string as well as `valueDisplayFormat` or `valueEditFormat`.\n */\n parse?: string | ((str: string, localizer?: TLocalizer) => Date | undefined)\n\n onKeyDown?: (e: React.KeyboardEvent<HTMLDivElement>) => void\n onKeyPress?: (e: React.KeyboardEvent<HTMLDivElement>) => void\n onBlur?: () => void\n onFocus?: () => void\n\n /** Adds a css class to the input container element. */\n containerClassName?: string\n\n calendarProps?: Partial<CalendarProps>\n inputProps?: Partial<DatePickerInputProps>\n\n valueFormat?: InferFormat<TLocalizer>\n valueDisplayFormat?: InferFormat<TLocalizer>\n valueEditFormat?: InferFormat<TLocalizer>\n\n formats?: DateFormats<InferFormat<TLocalizer>>\n\n messages?: CalendarProps['messages'] & {\n dateButton?: string\n }\n}\n\nexport interface DatePickerHandle {\n focus(): void\n}\n\n/**\n * ---\n * subtitle: DatePicker, TimePicker\n * localized: true\n * shortcuts:\n * - { key: alt + down arrow, label: open calendar or time }\n * - { key: alt + up arrow, label: close calendar or time }\n * - { key: down arrow, label: move focus to next item }\n * - { key: up arrow, label: move focus to previous item }\n * - { key: home, label: move focus to first item }\n * - { key: end, label: move focus to last item }\n * - { key: enter, label: select focused item }\n * - { key: any key, label: search list for item starting with key }\n * ---\n *\n * @public\n * @extends Calendar\n */\nconst DatePicker = React.forwardRef(\n (\n uncontrolledProps: DatePickerProps,\n outerRef: React.Ref<DatePickerHandle>,\n ) => {\n const {\n id,\n value,\n onChange,\n onSelect,\n onToggle,\n onKeyDown,\n onKeyPress,\n onCurrentDateChange,\n inputProps,\n calendarProps,\n timeInputProps,\n autoFocus,\n tabIndex,\n disabled,\n readOnly,\n className,\n // @ts-ignore\n valueFormat,\n valueDisplayFormat = valueFormat,\n valueEditFormat = valueFormat,\n containerClassName,\n name,\n selectIcon,\n placeholder,\n includeTime = false,\n min,\n max,\n open,\n dropUp,\n parse,\n messages,\n formats,\n currentDate,\n popupTransition,\n popupComponent: Popup = BasePopup,\n timePrecision,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n ...elementProps\n } = useUncontrolled(uncontrolledProps, {\n open: 'onToggle',\n value: 'onChange',\n currentDate: 'onCurrentDateChange',\n })\n const localizer = useLocalizer(messages, formats)\n\n const ref = useRef<HTMLInputElement>(null)\n const calRef = useRef<HTMLDivElement>(null)\n\n const tabTrap = useTabTrap(calRef)\n\n const inputId = useInstanceId(id, '_input')\n const dateId = useInstanceId(id, '_date')\n\n const currentFormat = includeTime ? 'datetime' : 'date'\n\n const toggle = useDropdownToggle(open, onToggle!)\n\n const [focusEvents, focused] = useFocusManager(ref, uncontrolledProps, {\n didHandle(focused) {\n if (!focused) {\n toggle.close()\n tabTrap.stop()\n } else if (open) {\n tabTrap.focus()\n }\n },\n })\n\n const dateParser = useCallback(\n (str: string) => {\n if (typeof parse == 'function') {\n return parse(str, localizer) ?? null\n }\n\n return (\n localizer.parseDate(\n str,\n parse ?? valueEditFormat ?? valueDisplayFormat,\n ) ?? null\n )\n },\n [localizer, parse, valueDisplayFormat, valueEditFormat],\n )\n /**\n * Handlers\n */\n\n const handleChange = useEventCallback(\n (date: Date | null | undefined, str: string, constrain?: boolean) => {\n if (readOnly || disabled) return\n if (constrain) date = inRangeValue(date)\n\n if (onChange) {\n if (date == null || value == null) {\n if (\n date != value //eslint-disable-line eqeqeq\n )\n onChange(date, str)\n } else if (!dates.eq(date, value)) {\n onChange(date, str)\n }\n }\n },\n )\n\n const handleKeyDown = useEventCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (readOnly) return\n\n notify(onKeyDown, [e])\n\n if (e.defaultPrevented) return\n\n if (e.key === 'Escape' && open) {\n toggle.close()\n } else if (e.altKey) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n toggle.open()\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n toggle.close()\n }\n }\n },\n )\n\n const handleKeyPress = useEventCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n notify(onKeyPress, [e])\n\n if (e.defaultPrevented) return\n },\n )\n\n const handleDateSelect = useEventCallback((date) => {\n let dateTime = dates.merge(date, value, currentDate)\n let dateStr = formatDate(date)\n\n if (!includeTime) toggle.close()\n\n notify(onSelect, [dateTime, dateStr])\n handleChange(dateTime, dateStr, true)\n ref.current?.focus()\n })\n\n const handleTimeChange = useEventCallback((date) => {\n handleChange(date, formatDate(date), true)\n })\n\n const handleCalendarClick = useEventCallback((e: React.MouseEvent) => {\n if (readOnly || disabled) return\n\n // prevents double clicks when in a <label>\n e.preventDefault()\n toggle()\n })\n\n const handleOpening = () => {\n tabTrap.start()\n requestAnimationFrame(() => {\n tabTrap.focus()\n })\n }\n\n const handleClosing = () => {\n tabTrap.stop()\n if (focused) focus()\n }\n\n /**\n * Methods\n */\n\n function focus() {\n if (open) calRef.current?.focus()\n else ref.current?.focus()\n }\n\n function inRangeValue(value: Date | null | undefined) {\n if (value == null) return value\n\n return dates.max(dates.min(value, max!), min!)\n }\n\n function formatDate(date: Date) {\n return date instanceof Date && !isNaN(date.getTime())\n ? localizer.formatDate(date, currentFormat)\n : ''\n }\n\n useImperativeHandle(outerRef, () => ({\n focus,\n }))\n\n let shouldRenderList = useFirstFocusedRender(focused, open!)\n\n const inputReadOnly =\n inputProps?.readOnly != null ? inputProps?.readOnly : readOnly\n return (\n <Widget\n {...elementProps}\n defaultValue={undefined}\n open={!!open}\n dropUp={dropUp}\n focused={focused}\n disabled={disabled}\n readOnly={readOnly}\n onKeyDown={handleKeyDown}\n onKeyPress={handleKeyPress}\n {...focusEvents}\n className={cn(className, 'rw-date-picker')}\n >\n <WidgetPicker className={containerClassName}>\n <DatePickerInput\n {...inputProps}\n id={inputId}\n ref={ref}\n role=\"combobox\"\n name={name}\n value={value}\n tabIndex={tabIndex}\n autoFocus={autoFocus}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={inputReadOnly}\n formatter={currentFormat}\n displayFormat={valueDisplayFormat}\n editFormat={valueEditFormat}\n editing={focused}\n localizer={localizer}\n parse={dateParser}\n onChange={handleChange}\n aria-haspopup\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n aria-expanded={!!open}\n aria-owns={dateId}\n />\n\n <InputAddon\n icon={selectIcon}\n label={localizer.messages.dateButton()}\n disabled={disabled || readOnly}\n onClick={handleCalendarClick}\n />\n </WidgetPicker>\n\n {!!shouldRenderList && (\n <Popup\n dropUp={dropUp}\n open={open}\n role=\"dialog\"\n ref={calRef}\n id={dateId}\n className=\"rw-calendar-popup\"\n transition={popupTransition}\n onEntering={handleOpening}\n onExited={handleClosing}\n >\n <Calendar\n min={min}\n max={max}\n bordered={false}\n {...calendarProps}\n messages={{\n ...messages,\n ...calendarProps?.messages,\n }}\n tabIndex={-1}\n value={value}\n autoFocus={false}\n onChange={handleDateSelect}\n currentDate={currentDate}\n onCurrentDateChange={onCurrentDateChange}\n aria-hidden={!open}\n aria-live=\"polite\"\n aria-labelledby={inputId}\n />\n {includeTime && (\n <TimeInput\n {...timeInputProps}\n value={value}\n precision={timePrecision}\n onChange={handleTimeChange}\n datePart={currentDate}\n />\n )}\n </Popup>\n )}\n </Widget>\n )\n },\n)\n\nDatePicker.displayName = 'DatePicker'\nDatePicker.propTypes = propTypes as any\nDatePicker.defaultProps = defaultProps\n\nexport default DatePicker\n","import React, { useMemo, useRef, useState } from 'react'\nimport { isNullOrInvalid } from './dates'\nimport Input, { InputProps } from './Input'\nimport { Localizer, RequiredDateMethods } from './Localization'\n\nexport interface DatePickerInputProps<TDateFormat = unknown>\n extends Omit<InputProps, 'value' | 'onChange'> {\n formatter: RequiredDateMethods\n editing: boolean\n editFormat?: TDateFormat\n displayFormat?: TDateFormat\n parse: (str: string) => Date | null\n value?: Date | null\n onChange: (date: Date | null, rawValue: string) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n localizer: Localizer<TDateFormat>\n\n disabled?: boolean\n readOnly?: boolean\n}\n\nconst DatePickerInput = React.forwardRef(\n (\n {\n value,\n formatter,\n editing,\n editFormat,\n displayFormat,\n localizer,\n parse,\n onChange,\n onBlur,\n disabled,\n readOnly,\n ...props\n }: DatePickerInputProps,\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const needsFlush = useRef(false)\n\n const nextTextValue = useMemo(\n () =>\n value instanceof Date && isValid(value)\n ? localizer.formatDate(\n value,\n formatter,\n editing ? editFormat : displayFormat,\n )\n : '',\n [value, formatter, localizer, displayFormat, editing, editFormat],\n )\n\n const [prevValue, setPrevValue] = useState(nextTextValue)\n const [textValue, setTextValue] = useState(nextTextValue)\n\n if (prevValue !== nextTextValue) {\n setPrevValue(nextTextValue)\n setTextValue(nextTextValue)\n }\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (onBlur) onBlur(event)\n\n if (needsFlush.current) {\n let date = parse(event.target.value)\n\n const dateIsInvalid = event.target.value != '' && isNullOrInvalid(date)\n if (dateIsInvalid) {\n setTextValue('')\n }\n needsFlush.current = false\n\n onChange(date, event.target.value)\n }\n }\n\n const handleChange = ({ target }: React.FormEvent<HTMLInputElement>) => {\n needsFlush.current = true\n setTextValue((target as HTMLInputElement).value)\n }\n\n return (\n <Input\n {...props}\n type=\"text\"\n ref={ref}\n className=\"rw-widget-input\"\n value={textValue}\n disabled={disabled}\n readOnly={readOnly}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n )\n },\n)\n\nDatePickerInput.displayName = 'DatePickerInput'\n\nexport default DatePickerInput\n\nfunction isValid(d: Date) {\n return !isNaN(d.getTime())\n}\n","import React from 'react'\n\nconst padStart = (\n value: string | number | null | undefined,\n len: number,\n padding: string,\n) => {\n let str = String(value ?? '')\n while (str.length < len) str = padding + str\n return str\n}\n\ninterface Props\n extends Omit<React.HTMLProps<HTMLInputElement>, 'value' | 'onChange'> {\n value: number | undefined | null\n valueText?: string\n pad?: number\n placeholder?: string\n min: number\n max: number\n emptyChar?: string\n onChange: React.ChangeEventHandler<HTMLInputElement>\n}\n\nconst DateTimePartInput = React.forwardRef<HTMLInputElement, Props>(\n (\n {\n value,\n valueText = String(value ?? ''),\n pad,\n placeholder,\n min,\n max,\n emptyChar,\n ...props\n },\n ref,\n ) => (\n <input\n {...props}\n ref={ref}\n data-focusable\n autoComplete=\"off\"\n role=\"spinbutton\"\n aria-valuenow={value ?? void 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuetext={valueText}\n // seems readonly is not valid\n aria-disabled={props.disabled || props.readOnly}\n arai-placeholder={placeholder}\n placeholder={placeholder}\n className=\"rw-time-part-input\"\n value={\n placeholder && !value\n ? ''\n : padStart(value, pad || 0, value == null ? emptyChar! : '0')\n }\n />\n ),\n)\n\nexport default DateTimePartInput\n","import React, { useMemo } from 'react'\nimport CalendarView, { CalendarViewProps } from './CalendarView'\nimport { Localizer } from './Localization'\nimport { chunk } from './_'\nimport dates from './dates'\n\ninterface DecadeProps extends CalendarViewProps {\n disabled?: boolean\n onChange: (nextDate: Date) => void\n value?: Date | null\n min: Date\n max: Date\n localizer: Localizer\n}\n\nfunction DecadeView({\n focusedItem,\n disabled,\n onChange,\n value,\n localizer,\n min,\n max,\n ...props\n}: DecadeProps) {\n const chunks = useMemo(() => chunk(getDecadeYears(focusedItem), 4), [\n focusedItem,\n ])\n\n return (\n <CalendarView {...props} focusedItem={focusedItem}>\n <CalendarView.Body>\n {chunks.map((row, rowIdx) => (\n <CalendarView.Row key={rowIdx}>\n {row.map((date, colIdx) => {\n let label = localizer.formatDate(date, 'year')\n\n return (\n <CalendarView.Cell\n key={colIdx}\n unit=\"year\"\n viewUnit=\"decade\"\n label={label}\n date={date}\n min={min}\n max={max}\n onChange={onChange}\n focusedItem={focusedItem}\n selected={value}\n disabled={disabled}\n >\n {label}\n </CalendarView.Cell>\n )\n })}\n </CalendarView.Row>\n ))}\n </CalendarView.Body>\n </CalendarView>\n )\n}\n\nfunction getDecadeYears(_date: Date) {\n let days = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n let date = dates.add(dates.startOf(_date, 'decade'), -2, 'year')\n\n return days.map(() => (date = dates.add(date, 1, 'year')))\n}\n\nexport default DecadeView\n","import cn from 'classnames'\nimport PropTypes from 'prop-types'\nimport React, { useImperativeHandle, useMemo, useRef, useState } from 'react'\nimport { useUncontrolledProp } from 'uncontrollable'\nimport useTimeout from '@restart/hooks/useTimeout'\nimport AddToListOption, { CREATE_OPTION } from './AddToListOption'\nimport DropdownListInput, {\n DropdownInputHandle,\n RenderValueProp,\n} from './DropdownListInput'\nimport { caretDown } from './Icon'\nimport List, { ListHandle } from './List'\nimport { FocusListContext, useFocusList } from './FocusListContext'\nimport BasePopup from './Popup'\nimport Widget from './Widget'\nimport WidgetPicker from './WidgetPicker'\nimport { useMessagesWithDefaults } from './messages'\nimport {\n BaseListboxInputProps,\n Filterable,\n PopupWidgetProps,\n Searchable,\n WidgetHTMLProps,\n WidgetProps,\n} from './shared'\nimport { DataItem, WidgetHandle } from './types'\nimport { useActiveDescendant } from './A11y'\nimport { useFilteredData, presets } from './Filter'\nimport * as CustomPropTypes from './PropTypes'\nimport canShowCreate from './canShowCreate'\nimport { useAccessors } from './Accessors'\nimport useAutoFocus from './useAutoFocus'\nimport useDropdownToggle from './useDropdownToggle'\nimport useFocusManager from './useFocusManager'\nimport { notify, useFirstFocusedRender, useInstanceId } from './WidgetHelpers'\nimport PickerCaret from './PickerCaret'\n\nconst propTypes = {\n value: PropTypes.any,\n\n /**\n * @type {function (\n * dataItems: ?any,\n * metadata: {\n * lastValue: ?any,\n * searchTerm: ?string\n * originalEvent: SyntheticEvent,\n * }\n * ): void}\n */\n onChange: PropTypes.func,\n open: PropTypes.bool,\n onToggle: PropTypes.func,\n\n data: PropTypes.array,\n dataKey: CustomPropTypes.accessor,\n textField: CustomPropTypes.accessor,\n allowCreate: PropTypes.oneOf([true, false, 'onFilter']),\n\n /**\n * A React render prop for customizing the rendering of the DropdownList\n * value\n */\n renderValue: PropTypes.func,\n renderListItem: PropTypes.func,\n listComponent: CustomPropTypes.elementType,\n optionComponent: CustomPropTypes.elementType,\n renderPopup: PropTypes.func,\n\n renderListGroup: PropTypes.func,\n groupBy: CustomPropTypes.accessor,\n\n /**\n *\n * @type {(dataItem: ?any, metadata: { originalEvent: SyntheticEvent }) => void}\n */\n onSelect: PropTypes.func,\n\n onCreate: PropTypes.func,\n\n /**\n * @type function(searchTerm: string, metadata: { action, lastSearchTerm, originalEvent? })\n */\n onSearch: PropTypes.func,\n\n searchTerm: PropTypes.string,\n busy: PropTypes.bool,\n\n /** Specify the element used to render the select (down arrow) icon. */\n selectIcon: PropTypes.node,\n\n /** Specify the element used to render the busy indicator */\n busySpinner: PropTypes.node,\n\n placeholder: PropTypes.string,\n\n dropUp: PropTypes.bool,\n popupTransition: CustomPropTypes.elementType,\n\n disabled: CustomPropTypes.disabled.acceptsArray,\n readOnly: CustomPropTypes.disabled,\n\n /** Adds a css class to the input container element. */\n containerClassName: PropTypes.string,\n\n inputProps: PropTypes.object,\n listProps: PropTypes.object,\n\n messages: PropTypes.shape({\n open: PropTypes.string,\n emptyList: CustomPropTypes.message,\n emptyFilter: CustomPropTypes.message,\n createOption: CustomPropTypes.message,\n }),\n}\n\nfunction useSearchWordBuilder(delay: number) {\n const timeout = useTimeout()\n const wordRef = useRef('')\n\n function search(character: string, cb: (word: string) => void) {\n let word = (wordRef.current + character).toLowerCase()\n\n if (!character) return\n\n wordRef.current = word\n\n timeout.set(() => {\n wordRef.current = ''\n cb(word)\n }, delay)\n }\n return search\n}\n\nexport type DropdownHandle = WidgetHandle\n\nexport interface DropdownProps<TDataItem>\n extends WidgetProps,\n WidgetHTMLProps,\n PopupWidgetProps,\n Searchable,\n Filterable<TDataItem>,\n BaseListboxInputProps<TDataItem> {\n name?: string\n autoFocus?: boolean\n autoComplete?: 'on' | 'off'\n\n onCreate?: (searchTerm: string) => void\n renderValue?: RenderValueProp<TDataItem>\n}\n\ndeclare interface DropdownList {\n <TDataItem = DataItem>(\n props: DropdownProps<TDataItem> & React.RefAttributes<DropdownHandle>,\n ): React.ReactElement | null\n\n displayName?: string\n propTypes?: any\n}\n\n/**\n * A `<select>` replacement for single value lists.\n * @public\n */\nconst DropdownListImpl: DropdownList = React.forwardRef(function DropdownList<\n TDataItem\n>(\n {\n id,\n autoFocus,\n textField,\n dataKey,\n\n value,\n defaultValue,\n onChange,\n\n open,\n defaultOpen = false,\n onToggle,\n\n searchTerm,\n defaultSearchTerm = '',\n onSearch,\n\n filter = true,\n allowCreate = false,\n delay = 500,\n\n focusFirstItem,\n\n className,\n containerClassName,\n placeholder,\n busy,\n disabled,\n readOnly,\n selectIcon = caretDown,\n busySpinner,\n dropUp,\n tabIndex,\n popupTransition,\n name,\n autoComplete,\n onSelect,\n onCreate,\n onKeyPress,\n onKeyDown,\n onClick,\n inputProps,\n listProps,\n renderListItem,\n renderListGroup,\n optionComponent,\n renderValue,\n groupBy,\n onBlur,\n onFocus,\n listComponent: ListComponent = List,\n popupComponent: Popup = BasePopup,\n data: rawData = [],\n messages: userMessages,\n ...elementProps\n }: DropdownProps<TDataItem>,\n outerRef: React.RefObject<DropdownHandle>,\n) {\n const [currentValue, handleChange] = useUncontrolledProp(\n value,\n defaultValue,\n onChange as any,\n )\n const [currentOpen, handleOpen] = useUncontrolledProp(\n open,\n defaultOpen,\n onToggle,\n )\n const [currentSearch, handleSearch] = useUncontrolledProp(\n searchTerm,\n defaultSearchTerm,\n onSearch,\n )\n\n const ref = useRef<HTMLDivElement>(null)\n const filterRef = useRef<DropdownInputHandle>(null)\n const listRef = useRef<ListHandle>(null)\n\n const inputId = useInstanceId(id, '_input')\n const listId = useInstanceId(id, '_listbox')\n const activeId = useInstanceId(id, '_listbox_active_option')\n\n const accessors = useAccessors(textField, dataKey)\n const messages = useMessagesWithDefaults(userMessages)\n\n useAutoFocus(!!autoFocus, ref)\n\n const toggle = useDropdownToggle(currentOpen, handleOpen!)\n\n const isDisabled = disabled === true\n // const disabledItems = toItemArray(disabled)\n const isReadOnly = !!readOnly\n\n const [focusEvents, focused] = useFocusManager(\n ref,\n { disabled: isDisabled, onBlur, onFocus },\n {\n didHandle(focused) {\n if (focused) {\n if (filter) focus()\n return\n }\n\n toggle.close()\n clearSearch()\n },\n },\n )\n\n const data = useFilteredData(\n rawData,\n currentOpen ? filter : false,\n currentSearch,\n accessors.text,\n )\n\n const selectedItem = useMemo(\n () => data[accessors.indexOf(data, currentValue)],\n [data, currentValue, accessors],\n )\n\n const list = useFocusList({\n activeId,\n scope: ref,\n focusFirstItem,\n anchorItem: currentOpen ? selectedItem : undefined,\n })\n\n const [autofilling, setAutofilling] = useState(false)\n\n const nextSearchChar = useSearchWordBuilder(delay)\n\n const focusedItem = list.getFocused()\n useActiveDescendant(ref, activeId, focusedItem && currentOpen, [focusedItem])\n\n const showCreateOption = canShowCreate(allowCreate, {\n searchTerm: currentSearch,\n data,\n accessors,\n })\n\n const handleCreate = (event?: React.SyntheticEvent) => {\n notify(onCreate, [currentSearch!])\n\n clearSearch(event)\n toggle.close()\n focus()\n }\n\n const handleSelect = (\n dataItem: TDataItem,\n originalEvent?: React.SyntheticEvent,\n ) => {\n if (readOnly || isDisabled) return\n if (dataItem === undefined) return\n\n originalEvent?.preventDefault()\n\n if (dataItem === CREATE_OPTION) {\n handleCreate(originalEvent)\n return\n }\n\n notify(onSelect, [dataItem, { originalEvent }])\n change(dataItem, originalEvent, true)\n toggle.close()\n focus()\n }\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (readOnly || isDisabled) return\n\n // prevents double clicks when in a <label>\n e.preventDefault()\n\n focus()\n toggle()\n notify(onClick, [e])\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (readOnly || isDisabled) return\n let { key, altKey, ctrlKey, shiftKey } = e\n notify(onKeyDown, [e])\n\n let closeWithFocus = () => {\n clearSearch()\n\n toggle.close()\n if (currentOpen) setTimeout(focus)\n }\n\n if (e.defaultPrevented) return\n\n if (key === 'End' && currentOpen && !shiftKey) {\n e.preventDefault()\n list.focus(list.last())\n } else if (key === 'Home' && currentOpen && !shiftKey) {\n e.preventDefault()\n list.focus(list.first())\n } else if (key === 'Escape' && (currentOpen || currentSearch)) {\n e.preventDefault()\n closeWithFocus()\n } else if (key === 'Enter' && currentOpen && ctrlKey && showCreateOption) {\n e.preventDefault()\n handleCreate(e)\n } else if ((key === 'Enter' || (key === ' ' && !filter)) && currentOpen) {\n e.preventDefault()\n if (list.hasFocused()) handleSelect(list.getFocused()!, e)\n } else if (key === 'ArrowDown') {\n e.preventDefault()\n\n if (!currentOpen) {\n toggle.open()\n return\n }\n\n list.focus(list.next())\n } else if (key === 'ArrowUp') {\n e.preventDefault()\n\n if (altKey) return closeWithFocus()\n\n list.focus(list.prev())\n }\n }\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (readOnly || isDisabled) return\n\n notify(onKeyPress, [e])\n if (e.defaultPrevented || filter) return\n\n nextSearchChar(String.fromCharCode(e.which), (word) => {\n if (!currentOpen) return\n\n let isValid = (item: TDataItem) =>\n presets.startsWith(\n accessors.text(item).toLowerCase(),\n word.toLowerCase(),\n )\n\n const [items, focusedItem] = list.get()\n const len = items.length\n const startIdx = items.indexOf(focusedItem!) + 1\n const offset = startIdx >= len ? 0 : startIdx\n\n let idx = 0\n let pointer = offset\n while (idx < len) {\n pointer = (idx + offset) % len\n let item = items[pointer]\n if (isValid(list.toDataItem(item)!)) break\n idx++\n }\n\n if (idx === len) return\n\n list.focus(items[pointer])\n })\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n // hitting space to open\n if (!currentOpen && !e.target.value.trim()) {\n e.preventDefault()\n } else {\n search(e.target.value, e, 'input')\n }\n\n toggle.open()\n }\n\n const handleAutofillChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let filledValue = e.target.value.toLowerCase()\n\n if (filledValue === '') return void change(null)\n\n for (const item of rawData) {\n if (\n String(accessors.value(item)).toLowerCase() === filledValue ||\n accessors.text(item).toLowerCase() === filledValue\n ) {\n change(item, e)\n break\n }\n }\n }\n\n function change(\n nextValue: unknown,\n originalEvent?: React.SyntheticEvent,\n selected = false,\n ) {\n if (!accessors.matches(nextValue, currentValue)) {\n notify(handleChange, [\n nextValue,\n {\n originalEvent,\n source: selected ? 'listbox' : 'input',\n lastValue: currentValue,\n searchTerm: currentSearch,\n },\n ])\n\n clearSearch(originalEvent)\n toggle.close()\n }\n }\n\n function focus() {\n if (filter) filterRef.current!.focus()\n else ref.current!.focus()\n }\n\n function clearSearch(originalEvent?: React.SyntheticEvent) {\n search('', originalEvent, 'clear')\n }\n\n function search(\n nextSearchTerm: string,\n originalEvent?: React.SyntheticEvent,\n action: 'input' | 'clear' = 'input',\n ) {\n if (currentSearch !== nextSearchTerm)\n handleSearch(nextSearchTerm, {\n action,\n originalEvent,\n lastSearchTerm: currentSearch,\n })\n }\n\n /**\n * Render\n */\n\n useImperativeHandle(outerRef, () => ({\n focus,\n }))\n\n let valueItem = accessors.findOrSelf(data, currentValue)\n\n let shouldRenderPopup = useFirstFocusedRender(focused, currentOpen!)\n\n const widgetProps: React.HTMLProps<HTMLDivElement> = {\n ...elementProps,\n role: 'combobox',\n id: inputId,\n //tab index when there is no filter input to take focus\n tabIndex: filter ? -1 : tabIndex || 0,\n // FIXME: only when item exists\n 'aria-owns': listId,\n 'aria-expanded': !!currentOpen,\n 'aria-haspopup': true,\n 'aria-busy': !!busy,\n 'aria-live': currentOpen ? 'polite' : undefined,\n 'aria-autocomplete': 'list',\n 'aria-disabled': isDisabled,\n 'aria-readonly': isReadOnly,\n }\n\n return (\n <FocusListContext.Provider value={list.context}>\n <Widget\n {...widgetProps}\n open={!!currentOpen}\n dropUp={!!dropUp}\n focused={!!focused}\n disabled={isDisabled}\n readOnly={isReadOnly}\n autofilling={autofilling}\n {...focusEvents}\n onKeyDown={handleKeyDown}\n onKeyPress={handleKeyPress}\n className={cn(className, 'rw-dropdown-list')}\n ref={ref}\n >\n <WidgetPicker\n onClick={handleClick}\n tabIndex={filter ? -1 : 0}\n className={cn(containerClassName, 'rw-widget-input')}\n >\n <DropdownListInput\n {...inputProps}\n value={valueItem}\n dataKeyAccessor={accessors.value}\n textAccessor={accessors.text}\n name={name}\n readOnly={readOnly}\n disabled={isDisabled}\n allowSearch={!!filter}\n searchTerm={currentSearch}\n ref={filterRef}\n autoComplete={autoComplete}\n onSearch={handleInputChange}\n onAutofill={setAutofilling}\n onAutofillChange={handleAutofillChange}\n placeholder={placeholder}\n renderValue={renderValue}\n />\n <PickerCaret\n visible\n busy={busy}\n icon={selectIcon}\n spinner={busySpinner}\n />\n </WidgetPicker>\n {shouldRenderPopup && (\n <Popup\n dropUp={dropUp}\n open={currentOpen}\n transition={popupTransition}\n onEntered={focus}\n onEntering={() => listRef.current!.scrollIntoView()}\n >\n <ListComponent\n {...listProps}\n id={listId}\n data={data}\n tabIndex={-1}\n disabled={disabled}\n groupBy={groupBy}\n searchTerm={currentSearch}\n accessors={accessors}\n renderItem={renderListItem}\n renderGroup={renderListGroup}\n optionComponent={optionComponent}\n value={selectedItem}\n onChange={(d, meta) =>\n handleSelect(d as TDataItem, meta.originalEvent!)\n }\n aria-live={currentOpen ? 'polite' : undefined}\n aria-labelledby={inputId}\n aria-hidden={!currentOpen}\n ref={listRef}\n messages={{\n emptyList: rawData.length\n ? messages.emptyFilter\n : messages.emptyList,\n }}\n />\n {showCreateOption && (\n <AddToListOption onSelect={handleCreate}>\n {messages.createOption(currentValue, currentSearch || '')}\n </AddToListOption>\n )}\n </Popup>\n )}\n </Widget>\n </FocusListContext.Provider>\n )\n})\n\nDropdownListImpl.displayName = 'DropdownList'\n\nDropdownListImpl.propTypes = propTypes\n\nexport default DropdownListImpl\n","import cn from 'classnames'\nimport React, { useImperativeHandle, useRef, useState } from 'react'\nimport { RenderProp, Value, WidgetHandle } from './types'\nimport { TextAccessorFn, DataKeyAccessorFn } from './Accessors'\n\nexport type RenderValueProp<TDataItem> = RenderProp<{\n item: TDataItem\n dataKey: Value\n text: string\n}>\n\nexport type DropdownInputHandle = WidgetHandle\n\ninterface Props<TDataItem> {\n name?: string\n autoComplete?: 'on' | 'off'\n value: TDataItem\n disabled?: boolean\n readOnly?: boolean\n allowSearch?: boolean\n placeholder?: string\n textAccessor: TextAccessorFn\n dataKeyAccessor: DataKeyAccessorFn\n searchTerm?: string\n onSearch?: React.ChangeEventHandler<HTMLInputElement>\n onAutofill(autofilling: boolean): void\n onAutofillChange(e: React.ChangeEvent<HTMLInputElement>): void\n renderValue?: RenderValueProp<TDataItem>\n}\n\nconst DropdownListInput = React.forwardRef(function <TDataItem>(\n {\n name,\n autoComplete,\n value,\n allowSearch,\n placeholder,\n textAccessor,\n dataKeyAccessor,\n searchTerm,\n onSearch,\n onAutofill,\n onAutofillChange,\n renderValue,\n disabled,\n readOnly,\n }: Props<TDataItem>,\n ref: React.Ref<DropdownInputHandle>,\n) {\n const [autofilling, setAutofilling] = useState(false)\n\n const searchRef = useRef<HTMLInputElement>(null)\n\n const handleAutofillDetect = ({\n animationName,\n }: React.AnimationEvent<HTMLInputElement>) => {\n let autofilling: boolean\n\n if (animationName === 'react-widgets-autofill-start') autofilling = true\n else if (animationName === 'react-widgets-autofill-cancel')\n autofilling = false\n else return\n\n setAutofilling(autofilling)\n onAutofill(autofilling)\n }\n\n const handleAutofill = (e: React.ChangeEvent<HTMLInputElement>) => {\n setAutofilling(false)\n onAutofillChange(e)\n }\n let dataKey = dataKeyAccessor(value)\n let text = value == null ? '' : textAccessor(value)\n\n let strValue = String(dataKey ?? '')\n if (strValue === String({})) strValue = ''\n\n const inputValue =\n !value && placeholder ? (\n <span className=\"rw-placeholder\">{placeholder}</span>\n ) : renderValue ? (\n renderValue({ item: value, dataKey, text })\n ) : (\n text\n )\n\n useImperativeHandle(ref, () => ({\n focus() {\n if (searchRef.current) searchRef.current.focus()\n },\n }))\n\n // There is some interaction between unmounting the search and value inputs\n // that cancels autofilling in Chrome, it may be due to an input the browser\n // was considering suddenly disappeared. hiding it seems to avoid the issue\n const style = autofilling ? { display: 'none' } : undefined\n\n return (\n <div className=\"rw-dropdown-list-input\">\n {autoComplete !== 'off' && (\n <input\n name={name}\n tabIndex={-1}\n disabled={disabled}\n readOnly={readOnly}\n value={strValue == null ? '' : strValue}\n autoComplete={autoComplete}\n onChange={handleAutofill}\n onAnimationStart={handleAutofillDetect}\n aria-hidden={!autofilling}\n className={cn('rw-detect-autofill', !autofilling && 'rw-sr')}\n />\n )}\n <>\n {allowSearch && (\n <input\n ref={searchRef}\n disabled={disabled}\n readOnly={readOnly}\n style={style}\n className=\"rw-dropdownlist-search\"\n autoComplete=\"off\"\n value={searchTerm || ''}\n size={(searchTerm || '').length + 2}\n onChange={onSearch}\n />\n )}\n {!searchTerm && (\n <span className=\"rw-dropdown-list-value\" style={style}>\n {inputValue}\n </span>\n )}\n </>\n </div>\n )\n})\n\nDropdownListInput.displayName = 'DropdownListInput'\n\nexport default DropdownListInput\n","import { dataText, TextAccessor } from './Accessors'\nimport { useMemo } from 'react'\n\nexport const presets = {\n eq: (a: any, b: any) => a === b,\n contains: (a: string, b: string) => a.indexOf(b) !== -1,\n startsWith: (a: string, b: string) => a.lastIndexOf(b, 0) === 0,\n}\n\nexport type FilterFunction<TDataItem> = (\n item: TDataItem,\n searchTerm: string,\n idx?: number,\n) => boolean\n\nexport type FilterPreset = keyof typeof presets\n\nexport type Filter<TDataItem> =\n | boolean\n | FilterPreset\n | FilterFunction<TDataItem>\n | null\n\nfunction normalizeFilter<TDataItem>(\n filter: Filter<TDataItem>,\n textField?: TextAccessor,\n): FilterFunction<TDataItem> | null {\n if (filter === false) return null\n if (typeof filter === 'function') return filter\n\n const filterPreset = presets[filter === true ? 'startsWith' : filter || 'eq']\n return (item: TDataItem, searchTerm: string) => {\n let textValue = dataText(item, textField)\n return filterPreset(textValue.toLowerCase(), searchTerm.toLowerCase())\n }\n}\n\nexport function useFilteredData<TDataItem>(\n data: readonly TDataItem[],\n filterer: Filter<TDataItem>,\n searchTerm = '',\n textAccessor?: TextAccessor,\n) {\n return useMemo(() => {\n const filter = normalizeFilter(filterer, textAccessor)\n\n if (!filter || !searchTerm.trim()) return data\n\n return data.filter((item, idx) => filter(item, searchTerm, idx))\n }, [data, filterer, searchTerm, textAccessor])\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport querySelectorAll from 'dom-helpers/querySelectorAll'\nimport React, {\n useCallback,\n useContext,\n useLayoutEffect,\n useMemo,\n useState,\n useRef,\n} from 'react'\nimport { TextAccessorFn } from './Accessors'\n\ntype FocusListContext = {\n focusedItem: any | undefined\n activeId?: string\n map: WeakMap<HTMLElement, any>\n}\n\nexport const FocusListContext = React.createContext<FocusListContext | null>(\n null,\n)\n\nexport interface FocusProps {\n children: any\n textAccessor: TextAccessorFn\n}\n\nexport interface FocusList<TDataItem = unknown> {\n size(): number;\n focus: (el: HTMLElement | null | undefined) => void\n first: () => HTMLElement | undefined\n last: () => HTMLElement | undefined\n prev(opts?: FocusOptions): HTMLElement | undefined\n next(opts?: FocusOptions): HTMLElement | undefined\n hasFocused: () => boolean\n getFocused: () => TDataItem | undefined\n toDataItem: (el: HTMLElement) => TDataItem | undefined\n context: FocusListContext\n get(): [HTMLElement[], HTMLElement | undefined]\n}\n\ninterface FocusOptions {\n behavior?: 'clear' | 'stop' | 'loop'\n}\n\nconst defaultOpts = { behavior: 'stop' as const }\n\ninterface FocusListOptions<TDataItem> {\n scope: React.MutableRefObject<HTMLElement | null>\n anchorItem?: TDataItem\n focusFirstItem?: boolean\n scopeSelector?: string\n activeId?: string\n}\n\nexport function useListOption<TDataItem, T extends HTMLElement>(\n dataItem: TDataItem,\n) {\n const ctx = useContext(FocusListContext)\n const prevElement = useRef<T | null>(null)\n\n // this is a bit convoluted because we want to use a ref object, a callback ref\n // causes an extra render which is fine except that it means the list hook for\n // anchor items fires before elements are processed\n const ref = useRef<T>(null)\n\n useLayoutEffect(\n () => () => {\n ctx?.map.delete(ref.current!)\n },\n [],\n )\n useLayoutEffect(() => {\n if (prevElement.current !== ref.current) {\n ctx?.map.delete(prevElement.current!)\n }\n\n prevElement.current = ref.current\n if (ref.current && ctx?.map.get(ref.current) !== dataItem) {\n ctx?.map.set(ref.current, dataItem)\n }\n })\n\n const focused = dataItem === ctx?.focusedItem\n return [ref, focused, focused ? ctx?.activeId : undefined] as const\n}\n\nexport const useFocusList = <TDataItem>({\n scope: listRef,\n anchorItem,\n focusFirstItem = false,\n scopeSelector = '',\n activeId,\n}: FocusListOptions<TDataItem>) => {\n const map = useMemo(() => new WeakMap<HTMLElement, any>(), [])\n\n const [focusedItem, setFocusedItem] = useState<TDataItem>()\n const itemSelector = `${scopeSelector} [data-rw-focusable]`.trim()\n\n const get = () => {\n const items = querySelectorAll(listRef.current!, itemSelector)\n return [items, items.find((e) => e.dataset.rwFocused === '')] as const\n }\n\n const list: any = useMemo(() => {\n return {\n size() {\n const [items] = get();\n return items.length;\n },\n get,\n toDataItem: (el: HTMLElement) => map.get(el),\n\n first() {\n const [[first]] = get()\n return first\n },\n focus(el: HTMLElement | null) {\n if (!el || map.has(el)) setFocusedItem(el ? map.get(el) : undefined)\n },\n last() {\n const [items] = get()\n return items[items.length - 1]\n },\n\n next({ behavior }: FocusOptions = defaultOpts) {\n const [items, focusedItem] = get()\n let nextIdx = items.indexOf(focusedItem!) + 1\n\n if (nextIdx >= items.length) {\n if (behavior === 'loop') return items[0]\n if (behavior === 'clear') return undefined\n return focusedItem\n }\n return items[nextIdx]\n },\n\n prev({ behavior }: FocusOptions = defaultOpts) {\n const [items, focusedItem] = get()\n let nextIdx = Math.max(0, items.indexOf(focusedItem!)) - 1\n\n if (nextIdx < 0) {\n if (behavior === 'loop') return items[items.length - 1]\n if (behavior === 'clear') return undefined\n return focusedItem\n }\n return items[nextIdx]\n },\n }\n }, [])\n\n useLayoutEffect(() => {\n if (!anchorItem) {\n list.focus(null)\n return\n }\n\n const element = get()[0].find((el) => list.toDataItem(el) === anchorItem)\n list.focus(element)\n }, [anchorItem])\n\n useLayoutEffect(() => {\n if (!listRef.current) return\n const [, focusedElement] = get()\n const hasItem = focusedElement != null\n\n if (\n (!hasItem && focusFirstItem) ||\n (hasItem && !listRef.current.contains(focusedElement!))\n ) {\n if (focusFirstItem) list.focus(list.first())\n else list.focus(null)\n }\n })\n\n const context = useMemo(\n () => ({\n map,\n focusedItem,\n activeId,\n }),\n [focusedItem, activeId],\n )\n\n list.context = context\n\n list.getFocused = useCallback(() => focusedItem, [focusedItem])\n list.hasFocused = () => focusedItem !== undefined\n\n return list as FocusList<TDataItem>\n}\n","import * as React from 'react'\n\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\nexport const caretUp = (\n <svg\n height=\"1em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 320 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M288.66 352H31.34c-17.82 0-26.74-21.54-14.14-34.14L145.86 189.2a20 20 0 0 1 28.28 0L302.8 317.86c12.6 12.6 3.68 34.14-14.14 34.14z\" />\n </svg>\n)\n\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\nexport const caretDown = (\n <svg\n height=\"1em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 320 512\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\" />\n </svg>\n)\n\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\nexport const chevronRight = (\n <svg\n height=\"1em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 320 512\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M285.48 272.97L91.13 467.31a24 24 0 0 1-33.94 0l-22.67-22.66a24 24 0 0 1-.04-33.9L188.5 256 34.48 101.25a24 24 0 0 1 .04-33.9L57.2 44.7a24 24 0 0 1 33.94 0l194.35 194.34a24 24 0 0 1 0 33.94z\" />\n </svg>\n)\n\nexport const chevronLeft = (\n <svg\n height=\"1em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 320 512\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M34.52 239.03L228.87 44.69a24 24 0 0 1 33.94 0l22.67 22.67a24 24 0 0 1 .04 33.9L131.49 256l154.02 154.75a24 24 0 0 1-.04 33.9l-22.67 22.67a24 24 0 0 1-33.94 0L34.52 272.97a24 24 0 0 1 0-33.94z\" />\n </svg>\n)\n\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\nexport const calendar = (\n <svg\n aria-hidden\n height=\"1em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 448 512\"\n className=\"rw-i-calendar\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\" />\n </svg>\n)\n\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\nexport const clock = (\n <svg\n aria-hidden\n height=\"1em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 512 512\"\n className=\"rw-i-clock\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6a12 12 0 0 1 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\" />\n </svg>\n)\n\nexport const times = (\n <svg\n height=\".8em\"\n fill=\"currentcolor\"\n viewBox=\"0 0 352 512\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\" />\n </svg>\n)\n\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\nexport const clear = (\n <svg\n aria-hidden\n height=\"1em\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n >\n <path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\" />\n </svg>\n)\n\n// https://codepen.io/aurer/pen/jEGbA\nexport const Spinner = (\n <svg\n height=\"1.4em\"\n viewBox=\"0 0 50 50\"\n xmlSpace=\"preserve\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"currentcolor\"\n d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\"\n >\n <animateTransform\n attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 25 25\"\n to=\"360 25 25\"\n dur=\"0.6s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n)\n","import cn from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\n\nexport interface InputProps extends React.AllHTMLAttributes<HTMLInputElement> {\n component?: React.ElementType\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n disabled,\n readOnly,\n value,\n tabIndex,\n type = 'text',\n component: Component = 'input',\n ...props\n },\n ref,\n ) => (\n <Component\n {...props}\n ref={ref}\n type={type}\n tabIndex={tabIndex || 0}\n autoComplete=\"off\"\n disabled={disabled}\n readOnly={readOnly}\n aria-disabled={disabled}\n aria-readonly={readOnly}\n value={value == null ? '' : value}\n className={cn(className, 'rw-input')}\n />\n ),\n)\n\nInput.displayName = 'Input'\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n value: PropTypes.string,\n type: PropTypes.string,\n tabIndex: PropTypes.number,\n component: PropTypes.any,\n}\n\nexport default Input\n","import cn from 'classnames'\nimport React from 'react'\nimport Button, { Props as ButtonProps } from './Button'\n\ninterface Props extends ButtonProps {\n className?: string\n children?: any\n}\nfunction InputAddon({ className, ...props }: Props) {\n return (\n <Button\n {...props}\n className={cn(className, 'rw-input-addon rw-picker-btn')}\n />\n )\n}\n\nexport default InputAddon\n","import {\n DateLocalizer,\n DateTimePart,\n NumberLocalizer,\n RequiredDateMethods,\n} from './Localization'\nimport dates from './dates'\n\ntype Formatters = {\n [Key in RequiredDateMethods]: (date?: number | Date) => string\n}\ntype UserDateFormat =\n | Intl.DateTimeFormatOptions\n | ((date: Date, culture?: string) => string)\n\n// assumes both are supported or none\nlet supportStyles = false\nnew Intl.DateTimeFormat(undefined, {\n // @ts-ignore\n get dateStyle() {\n supportStyles = true\n },\n})\n\nconst dateShort = { day: 'numeric', month: 'numeric', year: 'numeric' }\nconst timeShort = { hour: 'numeric', minute: 'numeric' }\n\nconst getFormatter = (\n culture: string | undefined,\n options: Intl.DateTimeFormatOptions,\n): Intl.DateTimeFormat['format'] => Intl.DateTimeFormat(culture, options).format\n\n/**\n * A `react-widgets` Localizer using native `Intl` APIs.\n *\n */\nclass IntlDateLocalizer implements DateLocalizer<Intl.DateTimeFormatOptions> {\n culture?: string\n\n firstOfWeek: () => number\n\n date!: (date: Date, format?: UserDateFormat) => string\n time!: (date: Date, format?: UserDateFormat) => string\n datetime!: (date: Date, format?: UserDateFormat) => string\n header!: (date: Date, format?: UserDateFormat) => string\n footer!: (date: Date, format?: UserDateFormat) => string\n weekday!: (date: Date, format?: UserDateFormat) => string\n dayOfMonth!: (date: Date, format?: UserDateFormat) => string\n month!: (date: Date, format?: UserDateFormat) => string\n year!: (date: Date, format?: UserDateFormat) => string\n decade!: (date: Date, format?: UserDateFormat) => string\n century!: (date: Date, format?: UserDateFormat) => string\n\n constructor({\n culture = undefined,\n firstOfWeek = 0,\n }: { culture?: string; firstOfWeek?: number } = {}) {\n this.culture = culture\n this.firstOfWeek = () => firstOfWeek\n\n function normalizeFormat(date: Date, format: UserDateFormat) {\n return typeof format === 'function'\n ? format(date, culture)\n : date.toLocaleString(culture, format)\n }\n\n const formats: Formatters = {\n date: getFormatter(\n culture,\n // @ts-ignore\n supportStyles ? { dateStyle: 'short' } : dateShort,\n ),\n time: getFormatter(\n culture,\n // @ts-ignore\n supportStyles ? { timeStyle: 'short' } : timeShort,\n ),\n datetime: getFormatter(\n culture,\n // @ts-ignore\n supportStyles\n ? { dateStyle: 'short', timeStyle: 'short' }\n : { ...dateShort, ...timeShort },\n ),\n header: getFormatter(culture, { month: 'short', year: 'numeric' }),\n weekday: getFormatter(culture, { weekday: 'narrow' }),\n dayOfMonth: getFormatter(culture, { day: '2-digit' }),\n month: getFormatter(culture, { month: 'short' }),\n year: getFormatter(culture, { year: 'numeric' }),\n decade: (date: Date) =>\n `${this.year(date)} - ${this.year(dates.endOf(date, 'decade'))}`,\n century: (date: Date) =>\n `${this.year(date)} - ${this.year(dates.endOf(date, 'century'))}`,\n }\n\n Object.keys(formats).forEach((key: RequiredDateMethods) => {\n this[key] = (date: Date, format?: UserDateFormat): string =>\n format ? normalizeFormat(date, format) : formats[key](date)\n })\n }\n\n toFormattedParts(\n date: Date,\n format: Intl.DateTimeFormatOptions = {\n dateStyle: 'short',\n timeStyle: 'short',\n },\n ): DateTimePart[] {\n return Intl.DateTimeFormat(this.culture, format)\n .formatToParts(date)\n .filter((p) => p.type !== 'timeZoneName') as any\n }\n\n parse(value: string) {\n const date = new Date(value)\n return isNaN(+date) ? null : date\n }\n}\n\ntype UserNumberFormat =\n | Intl.NumberFormatOptions\n | ((num: number, culture?: string) => string)\n\n/**\n * A number localization strategy based on `Intl.NumberFormat`.\n */\nclass IntlNumberLocalizer implements NumberLocalizer<Intl.NumberFormatOptions> {\n culture?: string\n decimalCharacter: () => string\n format: (num: number, format?: UserNumberFormat) => string\n\n constructor({ culture = undefined } = {}) {\n this.culture = culture\n\n const decimal =\n 'formatToParts' in Intl.NumberFormat(culture)\n ? Intl.NumberFormat(culture).formatToParts(1.1)[1].value\n : 1.1.toLocaleString(culture).match(/[^\\d]/)?.[0] || '.'\n\n const formatter = Intl.NumberFormat(culture).format\n\n this.decimalCharacter = () => decimal\n this.format = (num: number, format?: UserNumberFormat): string => {\n if (format) {\n return typeof format === 'function'\n ? format(num, culture)\n : num.toLocaleString(culture, format)\n }\n\n return formatter(num)\n }\n }\n\n parse(value: string) {\n return parseFloat(value.replace(this.decimalCharacter(), '.'))\n }\n}\n\nexport {\n IntlDateLocalizer as DateLocalizer,\n IntlNumberLocalizer as NumberLocalizer,\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport cn from 'classnames'\nimport PropTypes from 'prop-types'\nimport React, {\n useCallback,\n useImperativeHandle,\n useMemo,\n MutableRefObject,\n} from 'react'\nimport ListOption, { ListOptionProps } from './ListOption'\nimport ListOptionGroup from './ListOptionGroup'\nimport { UserProvidedMessages, useMessagesWithDefaults } from './messages'\n// import { WidgetHTMLProps } from './shared'\nimport { DataItem, RenderProp, Value } from './types'\nimport * as CustomPropTypes from './PropTypes'\nimport { groupBySortedKeys, makeArray, toItemArray } from './_'\nimport { Accessors } from './Accessors'\nimport { useInstanceId } from './WidgetHelpers'\nimport useMutationObserver from '@restart/hooks/useMutationObserver'\nimport useCallbackRef from '@restart/hooks/useCallbackRef'\nimport useMergedRefs from '@restart/hooks/useMergedRefs'\n\nconst whitelist = [\n 'style',\n 'className',\n 'role',\n 'id',\n 'autocomplete',\n 'size',\n 'tabIndex',\n 'maxLength',\n 'name',\n]\n\nconst whitelistRegex = [/^aria-/, /^data-/, /^on[A-Z]\\w+/]\n\nfunction pickElementProps<T>(props: T): Partial<T> {\n const result: Partial<T> = {}\n Object.keys(props).forEach((key) => {\n if (\n whitelist.indexOf(key) !== -1 ||\n whitelistRegex.some((r) => !!key.match(r))\n )\n (result as any)[key] = (props as any)[key]\n })\n\n return result\n}\n\nconst propTypes = {\n data: PropTypes.array,\n\n dataKey: CustomPropTypes.accessor,\n textField: CustomPropTypes.accessor,\n\n onSelect: PropTypes.func,\n onMove: PropTypes.func,\n onHoverOption: PropTypes.func,\n\n optionComponent: PropTypes.elementType,\n renderItem: PropTypes.func,\n renderGroup: PropTypes.func,\n\n focusedItem: PropTypes.any,\n selectedItem: PropTypes.any,\n searchTerm: PropTypes.string,\n\n disabled: CustomPropTypes.disabled.acceptsArray,\n\n messages: PropTypes.shape({\n emptyList: PropTypes.func.isRequired,\n }),\n}\n\nexport type GroupBy<TDataItem = unknown> =\n | ((item: TDataItem) => unknown)\n | string\n\nexport interface ListHandle {\n scrollIntoView(): void\n}\n\nexport type RenderItemProp<TDataItem> = RenderProp<{\n item: TDataItem\n searchTerm?: string\n index: number\n text: string\n value: unknown\n disabled: boolean\n}>\n\nexport type RenderGroupProp = RenderProp<{\n group: any\n}>\n\nexport type OptionComponentProp = React.ComponentType<ListOptionProps<any>>\n\nexport type ChangeHandler<TDataItem> = (\n dataItem: TDataItem | TDataItem[],\n metadata: {\n action?: 'insert' | 'remove'\n dataItem?: TDataItem\n lastValue: Value\n originalEvent?: React.SyntheticEvent\n },\n) => void\n\nexport interface ListProps<TDataItem> {\n data: readonly TDataItem[]\n value?: readonly TDataItem[] | TDataItem\n accessors: Accessors\n focusedItem?: TDataItem\n className?: string\n multiple?: boolean\n disabled?: boolean | readonly TDataItem[]\n messages?: UserProvidedMessages\n renderItem?: RenderItemProp<TDataItem>\n renderGroup?: RenderGroupProp\n searchTerm?: string\n groupBy?: GroupBy<TDataItem>\n optionComponent?: React.ElementType\n onChange: ChangeHandler<TDataItem>\n elementRef?: MutableRefObject<HTMLDivElement | null>\n [key: string]: any\n}\n\ndeclare interface List {\n <TDataItem = DataItem>(\n props: ListProps<TDataItem> & React.RefAttributes<ListHandle>,\n ): React.ReactElement | null\n\n displayName?: string\n propTypes?: any\n}\n\nexport const useScrollFocusedIntoView = (\n element: HTMLElement | null,\n observeChanges = false,\n) => {\n const scrollIntoView = useCallback(() => {\n if (!element) return\n\n let selectedItem = element.querySelector('[data-rw-focused]')\n\n if (selectedItem && selectedItem.scrollIntoView) {\n selectedItem.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n }\n }, [element])\n\n useMutationObserver(\n observeChanges ? element : null,\n {\n subtree: true,\n attributes: true,\n attributeFilter: ['data-rw-focused'],\n },\n scrollIntoView,\n )\n\n return scrollIntoView\n}\n\nexport function useHandleSelect<TDataItem>(\n multiple: boolean,\n dataItems: TDataItem[],\n onChange: ChangeHandler<TDataItem>,\n) {\n return (dataItem: TDataItem, event: React.SyntheticEvent) => {\n if (multiple === false) {\n onChange(dataItem, {\n dataItem,\n lastValue: dataItems[0],\n originalEvent: event,\n })\n return\n }\n\n const checked = dataItems.includes(dataItem)\n onChange(\n checked\n ? dataItems.filter((d) => d !== dataItem)\n : [...dataItems, dataItem],\n {\n dataItem,\n lastValue: dataItems,\n action: checked ? 'remove' : 'insert',\n originalEvent: event,\n },\n )\n }\n}\n\nconst List: List = React.forwardRef(function List<TDataItem>(\n {\n multiple = false,\n data = [],\n\n value,\n onChange,\n accessors,\n\n className,\n messages,\n disabled,\n renderItem,\n renderGroup,\n searchTerm,\n groupBy,\n elementRef,\n optionComponent: Option = ListOption,\n renderList,\n // onKeyDown,\n ...props\n }: ListProps<TDataItem>,\n outerRef: React.Ref<ListHandle>,\n) {\n const id = useInstanceId()\n\n const dataItems = makeArray(value, multiple)\n\n const groupedData = useMemo(\n () => (groupBy ? groupBySortedKeys<TDataItem>(groupBy, data) : undefined),\n [data, groupBy],\n )\n const [element, ref] = useCallbackRef<HTMLDivElement>()\n const disabledItems = toItemArray(disabled)\n const { emptyList } = useMessagesWithDefaults(messages)\n\n const divRef = useMergedRefs(ref, elementRef)\n\n const handleSelect = useHandleSelect(multiple, dataItems, onChange)\n\n const scrollIntoView = useScrollFocusedIntoView(element, true)\n\n let elementProps = pickElementProps(props)\n\n useImperativeHandle(outerRef, () => ({ scrollIntoView }), [scrollIntoView])\n\n function renderOption(item: TDataItem, idx: number) {\n const textValue = accessors.text(item)\n const itemIsDisabled = disabledItems.includes(item)\n const itemIsSelected = dataItems.includes(item)\n\n return (\n <Option\n dataItem={item}\n key={`item_${idx}`}\n searchTerm={searchTerm}\n onSelect={handleSelect}\n disabled={itemIsDisabled}\n selected={itemIsSelected}\n >\n {renderItem\n ? renderItem({\n item,\n searchTerm,\n index: idx,\n text: textValue,\n // TODO: probably remove\n value: accessors.value(item),\n disabled: itemIsDisabled,\n })\n : textValue}\n </Option>\n )\n }\n\n const items = groupedData\n ? groupedData.map(([group, items], idx) => (\n <div role=\"group\" key={`group_${idx}`}>\n <ListOptionGroup>\n {renderGroup ? renderGroup({ group }) : (group as string)}\n </ListOptionGroup>\n {items.map(renderOption)}\n </div>\n ))\n : data.map(renderOption)\n\n const rootProps = {\n id,\n tabIndex: 0,\n ref: divRef,\n ...elementProps,\n 'aria-multiselectable': !!multiple,\n className: cn(className, 'rw-list'),\n role: elementProps.role ?? 'listbox',\n children: React.Children.count(items) ? (\n items\n ) : (\n <div className=\"rw-list-empty\">{emptyList()}</div>\n ),\n }\n\n return renderList ? renderList(rootProps) : <div {...rootProps} />\n})\n\nList.displayName = 'List'\nList.propTypes = propTypes\n\nexport default List\n","import cn from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { useListOption } from './FocusListContext'\n\nconst propTypes = {\n activeId: PropTypes.string,\n dataItem: PropTypes.any,\n selected: PropTypes.bool.isRequired,\n onSelect: PropTypes.func.isRequired,\n component: PropTypes.any,\n}\n\nexport interface ListOptionProps<TDataItem>\n extends Omit<React.HTMLProps<HTMLDivElement>, 'onSelect'> {\n dataItem: TDataItem\n focused?: boolean\n selected: boolean\n searchTerm?: string\n disabled?: boolean\n onSelect: (dataItem: TDataItem, event: React.MouseEvent) => void\n component?: React.ElementType | null\n children?: React.ReactNode\n}\n\nfunction ListOption<TDataItem>({\n className,\n child