{"version":3,"file":"js/vendor/restart/hooks.e4e6cded.js","mappings":"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","sources":["webpack://NX/./node_modules/@restart/hooks/esm/useResizeObserver.js","webpack://NX/./node_modules/@restart/hooks/esm/useMediaQuery.js","webpack://NX/./node_modules/@restart/hooks/esm/useBreakpoint.js","webpack://NX/./node_modules/@restart/hooks/esm/useCallbackRef.js","webpack://NX/./node_modules/@restart/hooks/esm/useCommittedRef.js","webpack://NX/./node_modules/@restart/hooks/esm/useEventCallback.js","webpack://NX/./node_modules/@restart/hooks/esm/useEventListener.js","webpack://NX/./node_modules/@restart/hooks/esm/useForceUpdate.js","webpack://NX/./node_modules/@restart/hooks/esm/useIsomorphicEffect.js","webpack://NX/./node_modules/@restart/hooks/esm/useMergedRefs.js","webpack://NX/./node_modules/@restart/hooks/esm/useMounted.js","webpack://NX/./node_modules/@restart/hooks/esm/usePrevious.js","webpack://NX/./node_modules/@restart/hooks/esm/useSafeState.js","webpack://NX/./node_modules/@restart/hooks/esm/useTimeout.js","webpack://NX/./node_modules/@restart/hooks/esm/useUpdateEffect.js","webpack://NX/./node_modules/@restart/hooks/esm/useWillUnmount.js","webpack://NX/./node_modules/@restart/hooks/esm/useUpdatedRef.js"],"sourcesContent":["import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nvar targetMap = new WeakMap();\nvar resizeObserver;\n\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n *
\n * {JSON.stringify(rect)}\n *
\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\n\n\nexport default function useResizeObserver(element) {\n var _useState = useState(null),\n rect = _useState[0],\n setRect = _useState[1];\n\n useEffect(function () {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, function (rect) {\n setRect(rect);\n });\n return function () {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}","import useEffect from './useIsomorphicEffect';\nimport { useState } from 'react';\nvar matchersByWindow = new WeakMap();\n\nvar getMatcher = function getMatcher(query, targetWindow) {\n if (!query || !targetWindow) return undefined;\n var matchers = matchersByWindow.get(targetWindow) || new Map();\n matchersByWindow.set(targetWindow, matchers);\n var mql = matchers.get(query);\n\n if (!mql) {\n mql = targetWindow.matchMedia(query);\n mql.refCount = 0;\n matchers.set(mql.media, mql);\n }\n\n return mql;\n};\n/**\n * Match a media query and get updates as the match changes. The media string is\n * passed directly to `window.matchMedia` and run as a Layout Effect, so initial\n * matches are returned before the browser has a chance to paint.\n *\n * ```tsx\n * function Page() {\n * const isWide = useMediaQuery('min-width: 1000px')\n *\n * return isWide ? \"very wide\" : 'not so wide'\n * }\n * ```\n *\n * Media query lists are also reused globally, hook calls for the same query\n * will only create a matcher once under the hood.\n *\n * @param query A media query\n * @param targetWindow The window to match against, uses the globally available one as a default.\n */\n\n\nexport default function useMediaQuery(query, targetWindow) {\n if (targetWindow === void 0) {\n targetWindow = typeof window === 'undefined' ? undefined : window;\n }\n\n var mql = getMatcher(query, targetWindow);\n\n var _useState = useState(function () {\n return mql ? mql.matches : false;\n }),\n matches = _useState[0],\n setMatches = _useState[1];\n\n useEffect(function () {\n var mql = getMatcher(query, targetWindow);\n\n if (!mql) {\n return setMatches(false);\n }\n\n var matchers = matchersByWindow.get(targetWindow);\n\n var handleChange = function handleChange() {\n setMatches(mql.matches);\n };\n\n mql.refCount++;\n mql.addListener(handleChange);\n handleChange();\n return function () {\n mql.removeListener(handleChange);\n mql.refCount--;\n\n if (mql.refCount <= 0) {\n matchers == null ? void 0 : matchers.delete(mql.media);\n }\n\n mql = undefined;\n };\n }, [query]);\n return matches;\n}","import useMediaQuery from './useMediaQuery';\nimport { useMemo } from 'react';\n\n/**\n * Create a responsive hook we a set of breakpoint names and widths.\n * You can use any valid css units as well as a numbers (for pixels).\n *\n * **NOTE:** The object key order is important! it's assumed to be in order from smallest to largest\n *\n * ```ts\n * const useBreakpoint = createBreakpointHook({\n * xs: 0,\n * sm: 576,\n * md: 768,\n * lg: 992,\n * xl: 1200,\n * })\n * ```\n *\n * **Watch out!** using string values will sometimes construct media queries using css `calc()` which\n * is NOT supported in media queries by all browsers at the moment. use numbers for\n * the widest range of browser support.\n *\n * @param breakpointValues A object hash of names to breakpoint dimensions\n */\nexport function createBreakpointHook(breakpointValues) {\n var names = Object.keys(breakpointValues);\n\n function and(query, next) {\n if (query === next) {\n return next;\n }\n\n return query ? query + \" and \" + next : next;\n }\n\n function getNext(breakpoint) {\n return names[Math.min(names.indexOf(breakpoint) + 1, names.length - 1)];\n }\n\n function getMaxQuery(breakpoint) {\n var next = getNext(breakpoint);\n var value = breakpointValues[next];\n if (typeof value === 'number') value = value - 0.2 + \"px\";else value = \"calc(\" + value + \" - 0.2px)\";\n return \"(max-width: \" + value + \")\";\n }\n\n function getMinQuery(breakpoint) {\n var value = breakpointValues[breakpoint];\n\n if (typeof value === 'number') {\n value = value + \"px\";\n }\n\n return \"(min-width: \" + value + \")\";\n }\n /**\n * Match a set of breakpoints\n *\n * ```tsx\n * const MidSizeOnly = () => {\n * const isMid = useBreakpoint({ lg: 'down', sm: 'up' });\n *\n * if (isMid) return
On a Reasonable sized Screen!
\n * return null;\n * }\n * ```\n * @param breakpointMap An object map of breakpoints and directions, queries are constructed using \"and\" to join\n * breakpoints together\n * @param window Optionally specify the target window to match against (useful when rendering into iframes)\n */\n\n\n function useBreakpoint(breakpointOrMap, direction, window) {\n var breakpointMap;\n\n if (typeof breakpointOrMap === 'object') {\n breakpointMap = breakpointOrMap;\n window = direction;\n direction = true;\n } else {\n var _breakpointMap;\n\n direction = direction || true;\n breakpointMap = (_breakpointMap = {}, _breakpointMap[breakpointOrMap] = direction, _breakpointMap);\n }\n\n var query = useMemo(function () {\n return Object.entries(breakpointMap).reduce(function (query, _ref) {\n var key = _ref[0],\n direction = _ref[1];\n\n if (direction === 'up' || direction === true) {\n query = and(query, getMinQuery(key));\n }\n\n if (direction === 'down' || direction === true) {\n query = and(query, getMaxQuery(key));\n }\n\n return query;\n }, '');\n }, [JSON.stringify(breakpointMap)]);\n return useMediaQuery(query, window);\n }\n\n return useBreakpoint;\n}\nvar useBreakpoint = createBreakpointHook({\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n});\nexport default useBreakpoint;","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()\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
\n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n return useState(null);\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 before 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 { 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 } 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 { useReducer } from 'react';\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return \n * ```\n */\n\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are stricting equal to the last state value\n var _useReducer = useReducer(function (state) {\n return !state;\n }, false),\n dispatch = _useReducer[1];\n\n return dispatch;\n}","import { useEffect, useLayoutEffect } from 'react';\nvar isReactNative = typeof global !== 'undefined' && // @ts-ignore\nglobal.navigator && // @ts-ignore\nglobal.navigator.product === 'ReactNative';\nvar isDOM = typeof document !== 'undefined';\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\n\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","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();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return