UNPKG

72.7 kBSource Map (JSON)View Raw
1{"mappings":"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","sources":["packages/@react-aria/utils/src/index.ts","packages/@react-aria/utils/src/useId.ts","packages/@react-aria/utils/src/useLayoutEffect.ts","packages/@react-aria/utils/src/chain.ts","packages/@react-aria/utils/src/mergeProps.ts","packages/@react-aria/utils/src/mergeRefs.ts","packages/@react-aria/utils/src/filterDOMProps.ts","packages/@react-aria/utils/src/focusWithoutScrolling.ts","packages/@react-aria/utils/src/getOffset.ts","packages/@react-aria/utils/src/runAfterTransition.ts","packages/@react-aria/utils/src/useDrag1D.ts","packages/@react-aria/utils/src/useGlobalListeners.ts","packages/@react-aria/utils/src/useLabels.ts","packages/@react-aria/utils/src/useObjectRef.ts","packages/@react-aria/utils/src/useUpdateEffect.ts","packages/@react-aria/utils/src/useResizeObserver.ts","packages/@react-aria/utils/src/useSyncRef.ts","packages/@react-aria/utils/src/getScrollParent.ts","packages/@react-aria/utils/src/useViewportSize.ts","packages/@react-aria/utils/src/useDescription.ts","packages/@react-aria/utils/src/platform.ts","packages/@react-aria/utils/src/useEvent.ts","packages/@react-aria/utils/src/useValueEffect.ts","packages/@react-aria/utils/src/scrollIntoView.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nexport {useId, mergeIds, useSlotId} from './useId';\nexport {chain} from './chain';\nexport {mergeProps} from './mergeProps';\nexport {mergeRefs} from './mergeRefs';\nexport {filterDOMProps} from './filterDOMProps';\nexport {focusWithoutScrolling} from './focusWithoutScrolling';\nexport {getOffset} from './getOffset';\nexport {runAfterTransition} from './runAfterTransition';\nexport {useDrag1D} from './useDrag1D';\nexport {useGlobalListeners} from './useGlobalListeners';\nexport {useLabels} from './useLabels';\nexport {useObjectRef} from './useObjectRef';\nexport {useUpdateEffect} from './useUpdateEffect';\nexport {useLayoutEffect} from './useLayoutEffect';\nexport {useResizeObserver} from './useResizeObserver';\nexport {useSyncRef} from './useSyncRef';\nexport {getScrollParent} from './getScrollParent';\nexport {useViewportSize} from './useViewportSize';\nexport {useDescription} from './useDescription';\nexport {isMac, isIPhone, isIPad, isIOS, isAppleDevice, isWebKit, isChrome, isAndroid} from './platform';\nexport {useEvent} from './useEvent';\nexport {useValueEffect} from './useValueEffect';\nexport {scrollIntoView} from './scrollIntoView';\nexport {clamp, snapValueToStep} from '@react-stately/utils';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\nlet idsUpdaterMap: Map<string, (v: string) => void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n let [value, setValue] = useState(defaultId);\n let nextId = useRef(null);\n\n let res = useSSRSafeId(value);\n\n let updateValue = useCallback((val) => {\n nextId.current = val;\n }, []);\n\n idsUpdaterMap.set(res, updateValue);\n\n useLayoutEffect(() => {\n let r = res;\n return () => {\n idsUpdaterMap.delete(r);\n };\n }, [res]);\n\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n useEffect(() => {\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n\n return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n if (idA === idB) {\n return idA;\n }\n\n let setIdA = idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n\n let setIdB = idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n\n return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray<any> = []): string {\n let id = useId();\n let [resolvedId, setResolvedId] = useValueEffect(id);\n let updateId = useCallback(() => {\n setResolvedId(function *() {\n yield id;\n\n yield document.getElementById(id) ? id : null;\n });\n }, [id, setResolvedId]);\n\n useLayoutEffect(updateId, [id, updateId, ...depArray]);\n\n return resolvedId;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\n\n// During SSR, React emits a warning when calling useLayoutEffect.\n// Since neither useLayoutEffect nor useEffect run on the server,\n// we can suppress this by replace it with a noop on the server.\nexport const useLayoutEffect = typeof window !== 'undefined'\n ? React.useLayoutEffect\n : () => {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n return (...args: any[]) => {\n for (let callback of callbacks) {\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n [key: string]: any\n}\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes<T> = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? V : never;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps<T extends Props[]>(...args: T): UnionToIntersection<TupleTypes<T>> {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result: Props = {...args[0]};\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n\n // Chain events\n if (\n typeof a === 'function' &&\n typeof b === 'function' &&\n // This is a lot faster than a regex.\n key[0] === 'o' &&\n key[1] === 'n' &&\n key.charCodeAt(2) >= /* 'A' */ 65 &&\n key.charCodeAt(2) <= /* 'Z' */ 90\n ) {\n result[key] = chain(a, b);\n\n // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n } else if (\n (key === 'className' || key === 'UNSAFE_className') &&\n typeof a === 'string' &&\n typeof b === 'string'\n ) {\n result[key] = clsx(a, b);\n } else if (key === 'id' && a && b) {\n result.id = mergeIds(a, b);\n // Override others\n } else {\n result[key] = b !== undefined ? b : a;\n }\n }\n }\n\n return result as UnionToIntersection<TupleTypes<T>>;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ForwardedRef} from 'react';\n\n/**\n * Merges multiple refs into one. Works with either callback or object refs.\n */\nexport function mergeRefs<T>(...refs: ForwardedRef<T>[]): ForwardedRef<T> {\n return (value: T) => {\n for (let ref of refs) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\n\nconst DOMPropNames = new Set([\n 'id'\n]);\n\nconst labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n\ninterface Options {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean,\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set<string>\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n let {labelable, propNames} = opts;\n let filteredProps = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) && (\n DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n propNames?.has(prop) ||\n propRe.test(prop)\n )\n ) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n element: HTMLElement,\n scrollTop: number,\n scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: FocusableElement) {\n if (supportsPreventScroll()) {\n element.focus({preventScroll: true});\n } else {\n let scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\n\nlet supportsPreventScrollCached: boolean = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n var focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: FocusableElement): ScrollableElement[] {\n var parent = element.parentNode;\n var scrollableElements: ScrollableElement[] = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getOffset(element, reverse, orientation = 'horizontal') {\n let rect = element.getBoundingClientRect();\n if (reverse) {\n return orientation === 'horizontal' ? rect.right : rect.bottom;\n }\n return orientation === 'horizontal' ? rect.left : rect.top;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map<EventTarget, Set<string>>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n let onTransitionStart = (e: TransitionEvent) => {\n // Add the transitioning property to the list for this element.\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(e.target, transitions);\n\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd);\n }\n\n transitions.add(e.propertyName);\n };\n\n let onTransitionEnd = (e: TransitionEvent) => {\n // Remove property from list of transitioning properties.\n let properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n transitionsByElement.delete(e.target);\n }\n\n // If no transitioning elements, call all of the queued callbacks.\n if (transitionsByElement.size === 0) {\n for (let cb of transitionCallbacks) {\n cb();\n }\n\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn: () => void) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(() => {\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getOffset} from './getOffset';\nimport {Orientation} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useRef} from 'react';\n\ninterface UseDrag1DProps {\n containerRef: MutableRefObject<HTMLElement>,\n reverse?: boolean,\n orientation?: Orientation,\n onHover?: (hovered: boolean) => void,\n onDrag?: (dragging: boolean) => void,\n onPositionChange?: (position: number) => void,\n onIncrement?: () => void,\n onDecrement?: () => void,\n onIncrementToMax?: () => void,\n onDecrementToMin?: () => void,\n onCollapseToggle?: () => void\n}\n\n// Keep track of elements that we are currently handling dragging for via useDrag1D.\n// If there's an ancestor and a descendant both using useDrag1D(), and the user starts\n// dragging the descendant, we don't want useDrag1D events to fire for the ancestor.\nconst draggingElements: HTMLElement[] = [];\n\n// created for splitview, this should be reusable for things like sliders/dials\n// It also handles keyboard events on the target allowing for increment/decrement by a given stepsize as well as minifying/maximizing and toggling between minified and previous size\n// It can also take a 'reverse' param to say if we should measure from the right/bottom instead of the top/left\n// It can also handle either a vertical or horizontal movement, but not both at the same time\n\nexport function useDrag1D(props: UseDrag1DProps): HTMLAttributes<HTMLElement> {\n console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');\n let {containerRef, reverse, orientation, onHover, onDrag, onPositionChange, onIncrement, onDecrement, onIncrementToMax, onDecrementToMin, onCollapseToggle} = props;\n let getPosition = (e) => orientation === 'horizontal' ? e.clientX : e.clientY;\n let getNextOffset = (e: MouseEvent) => {\n let containerOffset = getOffset(containerRef.current, reverse, orientation);\n let mouseOffset = getPosition(e);\n let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n return nextOffset;\n };\n let dragging = useRef(false);\n let prevPosition = useRef(0);\n\n // Keep track of the current handlers in a ref so that the events can access them.\n let handlers = useRef({onPositionChange, onDrag});\n handlers.current.onDrag = onDrag;\n handlers.current.onPositionChange = onPositionChange;\n\n let onMouseDragged = (e: MouseEvent) => {\n e.preventDefault();\n let nextOffset = getNextOffset(e);\n if (!dragging.current) {\n dragging.current = true;\n if (handlers.current.onDrag) {\n handlers.current.onDrag(true);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n }\n if (prevPosition.current === nextOffset) {\n return;\n }\n prevPosition.current = nextOffset;\n if (onPositionChange) {\n onPositionChange(nextOffset);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n dragging.current = false;\n let nextOffset = getNextOffset(e);\n if (handlers.current.onDrag) {\n handlers.current.onDrag(false);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n\n draggingElements.splice(draggingElements.indexOf(target), 1);\n window.removeEventListener('mouseup', onMouseUp, false);\n window.removeEventListener('mousemove', onMouseDragged, false);\n };\n\n let onMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n const target = e.currentTarget;\n // If we're already handling dragging on a descendant with useDrag1D, then\n // we don't want to handle the drag motion on this target as well.\n if (draggingElements.some(elt => target.contains(elt))) {\n return;\n }\n draggingElements.push(target);\n window.addEventListener('mousemove', onMouseDragged, false);\n window.addEventListener('mouseup', onMouseUp, false);\n };\n\n let onMouseEnter = () => {\n if (onHover) {\n onHover(true);\n }\n };\n\n let onMouseOut = () => {\n if (onHover) {\n onHover(false);\n }\n };\n\n let onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Right':\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Down':\n case 'ArrowDown':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n if (onDecrementToMin) {\n onDecrementToMin();\n }\n break;\n case 'End':\n e.preventDefault();\n if (onIncrementToMax) {\n onIncrementToMax();\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (onCollapseToggle) {\n onCollapseToggle();\n }\n break;\n }\n };\n\n return {onMouseDown, onMouseEnter, onMouseOut, onKeyDown};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n addGlobalListener<K extends keyof DocumentEventMap>(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n removeGlobalListener<K extends keyof DocumentEventMap>(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n let globalListeners = useRef(new Map());\n let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = options?.once ? (...args) => {\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {type, eventTarget, fn, options});\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n let fn = globalListeners.current.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [removeGlobalListener]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return removeAllGlobalListeners;\n }, [removeAllGlobalListeners]);\n\n return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n let {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n } = props;\n\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = useId(id);\n if (labelledBy && label) {\n let ids = new Set([...labelledBy.trim().split(/\\s+/), id]);\n labelledBy = [...ids].join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, useRef} from 'react';\nimport {useLayoutEffect} from './';\n\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria Hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */\nexport function useObjectRef<T>(forwardedRef?: ((instance: T | null) => void) | MutableRefObject<T | null> | null): MutableRefObject<T> {\n const objRef = useRef<T>();\n\n /**\n * We're using `useLayoutEffect` here instead of `useEffect` because we want\n * to make sure that the `ref` value is up to date before other places in the\n * the execution cycle try to read it.\n */\n useLayoutEffect(() => {\n if (!forwardedRef) {\n return;\n }\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(objRef.current);\n } else {\n forwardedRef.current = objRef.current;\n }\n }, [forwardedRef]);\n\n return objRef;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {EffectCallback, useEffect, useRef} from 'react';\n\n// Like useEffect, but only called for updates after the initial render.\nexport function useUpdateEffect(effect: EffectCallback, dependencies: any[]) {\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n","import {RefObject, useEffect} from 'react';\n\nfunction hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType<T> = {\n ref: RefObject<T | undefined>,\n onResize: () => void\n}\n\nexport function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>) {\n const {ref, onResize} = options;\n\n useEffect(() => {\n let element = ref?.current;\n if (!element) {\n return;\n }\n\n if (!hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n\n const resizeObserverInstance = new window.ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n resizeObserverInstance.observe(element);\n\n return () => {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n\n }, [onResize, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue<T> {\n ref?: MutableRefObject<T>\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef<T>(context: ContextValue<T>, ref: RefObject<T>) {\n useLayoutEffect(() => {\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return () => {\n context.ref.current = null;\n };\n }\n }, [context, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getScrollParent(node: Element): Element {\n while (node && !isScrollable(node)) {\n node = node.parentElement;\n }\n\n return node || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\n\ninterface ViewportSize {\n width: number,\n height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n let [size, setSize] = useState(() => getViewportSize());\n\n useEffect(() => {\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = () => {\n setSize(size => {\n let newSize = getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) {\n return size;\n }\n return newSize;\n });\n };\n\n if (!visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n visualViewport.addEventListener('resize', onResize);\n }\n\n return () => {\n if (!visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n return {\n width: visualViewport?.width || window.innerWidth,\n height: visualViewport?.height || window.innerHeight\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map<string, {refCount: number, element: Element}>();\n\nexport function useDescription(description: string): AriaLabelingProps {\n let [id, setId] = useState(null);\n\n useLayoutEffect(() => {\n if (!description) {\n return;\n }\n\n let desc = descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${descriptionId++}`;\n setId(id);\n\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {refCount: 0, element: node};\n descriptionNodes.set(description, desc);\n } else {\n setId(desc.element.id);\n }\n\n desc.refCount++;\n return () => {\n if (--desc.refCount === 0) {\n desc.element.remove();\n descriptionNodes.delete(description);\n }\n };\n }, [description]);\n\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n window.navigator['userAgentData']?.brands.some((brand: {brand: string, version: string}) => re.test(brand.brand))\n ) ||\n re.test(window.navigator.userAgent);\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator['userAgentData']?.platform || window.navigator.platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect, useRef} from 'react';\n\nexport function useEvent<K extends keyof GlobalEventHandlersEventMap>(\n ref: RefObject<EventTarget>,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n let handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n let isDisabled = handler == null;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let element = ref.current;\n let handler = (e: GlobalEventHandlersEventMap[K]) => handlerRef.current.call(this, e);\n\n element.addEventListener(event, handler, options);\n return () => {\n element.removeEventListener(event, handler, options);\n };\n }, [ref, event, options, isDisabled]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Dispatch, useCallback, useRef, useState} from 'react';\nimport {useLayoutEffect} from './';\n\ntype SetValueAction<S> = (prev: S) => Generator<any, void, unknown>;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect<S>(defaultValue: S | (() => S)): [S, Dispatch<SetValueAction<S>>] {\n let [value, setValue] = useState(defaultValue);\n let valueRef = useRef(value);\n let effect = useRef(null);\n\n valueRef.current = value;\n\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = useRef(null);\n nextRef.current = () => {\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) {\n nextRef.current();\n } else {\n setValue(newValue.value);\n }\n };\n\n useLayoutEffect(() => {\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) {\n nextRef.current();\n }\n });\n\n let queue = useCallback(fn => {\n effect.current = fn(valueRef.current);\n nextRef.current();\n }, [effect, nextRef]);\n\n return [value, queue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n let offsetX = relativeOffset(scrollView, element, 'left');\n let offsetY = relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n let maxX = x + scrollView.offsetWidth;\n let maxY = y + scrollView.offsetHeight;\n\n if (offsetX <= x) {\n x = offsetX;\n } else if (offsetX + width > maxX) {\n x += offsetX + width - maxX;\n }\n if (offsetY <= y) {\n y = offsetY;\n } else if (offsetY + height > maxY) {\n y += offsetY + height - maxY;\n }\n\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(ancestor: HTMLElement, child: HTMLElement, axis: 'left'|'top') {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while (child.offsetParent) {\n sum += child[prop];\n if (child.offsetParent === ancestor) {\n // Stop once we have found the ancestor we are interested in.\n break;\n } else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent as HTMLElement;\n }\n return sum;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
\No newline at end of file