{"version":3,"file":"2028.ee5eefdd.js","mappings":"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","sources":["webpack://@finviz/website/./js/main/components/popover/popover.tsx","webpack://@finviz/website/./js/main/components/popover/hooks.ts","webpack://@finviz/website/./js/main/components/popover/popover-trigger.tsx","webpack://@finviz/website/./js/main/components/select/hooks.ts","webpack://@finviz/website/./js/main/components/select/select-button.tsx","webpack://@finviz/website/./js/main/components/select/select.tsx","webpack://@finviz/website/./js/main/components/select/select-with-tooltip.tsx","webpack://@finviz/website/./js/main/components/select/native-select.tsx","webpack://@finviz/website/./js/main/components/select/select-list.tsx","webpack://@finviz/website/./js/main/hooks/use-popover-maxHeight.ts","webpack://@finviz/website/./js/main/hooks/use-window-size.tsx"],"sourcesContent":["import classnames from 'classnames'\r\nimport * as React from 'react'\r\nimport * as Reakit from 'reakit/Popover'\r\nimport { Portal } from 'reakit/Portal'\r\n\r\nimport { usePopoverMaxHeight } from '../../hooks/use-popover-maxHeight'\r\nimport { useWindowSize } from '../../hooks/use-window-size'\r\nimport { Box, BoxProps, BoxTheme } from '../box'\r\nimport { getExtendedDialogState, useZIndex } from '../dialog'\r\nimport { TooltipArrow } from '../tooltip/tooltip-arrow'\r\nimport { PopoverStateReturn } from './hooks'\r\n\r\nexport interface PopoverProps extends BoxProps, Pick {\r\n /**\r\n * The returned object from `usePopoverState`\r\n */\r\n state: PopoverStateReturn\r\n\r\n /**\r\n * Focus the popover when it opens\r\n *\r\n * @default true\r\n */\r\n focusOnShow?: Reakit.PopoverProps['unstable_autoFocusOnShow']\r\n\r\n /**\r\n * Focus the anchor element when it closes\r\n *\r\n * @default true\r\n */\r\n focusOnHide?: Reakit.PopoverProps['unstable_autoFocusOnHide']\r\n\r\n /**\r\n * Focus the anchor element when it closes\r\n *\r\n * @default undefined\r\n */\r\n finalFocusRef?: Reakit.PopoverProps['unstable_finalFocusRef']\r\n\r\n /**\r\n * Hides when clicked outside of popover, works with changing focus from the trigger component to another one\r\n *\r\n * @default true\r\n */\r\n hideOnClickOutside?: Reakit.PopoverProps['hideOnClickOutside']\r\n\r\n /**\r\n * Overlay click callback or if false is provided, overlay click calls hide func on popover state object\r\n *\r\n * @default undefined\r\n */\r\n onOverlayClick?: (() => void) | false\r\n\r\n /**\r\n * Popover wrapper css style object\r\n *\r\n * @default undefined\r\n */\r\n popoverWrapperStyle?: React.CSSProperties\r\n\r\n /**\r\n * Show popover arrow\r\n *\r\n * @default false\r\n */\r\n hasArrow?: boolean\r\n\r\n /**\r\n * Enable or disable backdrop click events\r\n *\r\n * @default true\r\n */\r\n hasBackdrop?: boolean\r\n\r\n /**\r\n * Set the popover to height to be limited by the viewport instead of having full height\r\n *\r\n * @default false\r\n */\r\n hasViewportHeightLimit?: boolean\r\n\r\n /**\r\n * Set the popover max-width to be limited by the trigger button\r\n */\r\n hasButtonWidthLimit?: boolean\r\n\r\n /**\r\n * Can be used together with `hasViewportHeightLimit` to limit the height of the popover\r\n *\r\n * @default undefined\r\n */\r\n popoverMaxHeight?: number\r\n}\r\n\r\nexport function Popover({\r\n state,\r\n children,\r\n focusOnShow = true,\r\n focusOnHide = true,\r\n finalFocusRef,\r\n 'aria-label': ariaLabel,\r\n hide,\r\n hideOnClickOutside = true,\r\n hasArrow = false,\r\n hasBackdrop = true,\r\n onOverlayClick,\r\n popoverWrapperStyle,\r\n popoverMaxHeight = Number.MAX_SAFE_INTEGER,\r\n theme = 'light',\r\n hasViewportHeightLimit = false,\r\n hasButtonWidthLimit = false,\r\n ...props\r\n}: PopoverProps) {\r\n const zIndex = useZIndex()\r\n const { isFullyClosed } = getExtendedDialogState(state)\r\n const { innerHeight } = useWindowSize({ isWatching: !isFullyClosed })\r\n\r\n const buttonElement = state.unstable_referenceRef.current\r\n const maxHeightStyle = usePopoverMaxHeight({\r\n maxHeightLimit: popoverMaxHeight,\r\n hasViewportHeightLimit,\r\n offsets: state.offsets,\r\n state,\r\n })\r\n\r\n React.useEffect(() => {\r\n if (!buttonElement || !state.visible || !(hasViewportHeightLimit || hasButtonWidthLimit)) return\r\n\r\n const buttonRect = buttonElement.getBoundingClientRect()\r\n const popoverId = buttonElement.getAttribute('aria-controls')\r\n const popoverWrapper = popoverId ? document.getElementById(popoverId) : null\r\n\r\n // Limit popover max-width to be width of the trigger button\r\n if (hasButtonWidthLimit) {\r\n popoverWrapper?.style.setProperty('max-width', `${buttonRect.width}px`)\r\n }\r\n }, [\r\n state.visible,\r\n state.offsets,\r\n buttonElement,\r\n hasViewportHeightLimit,\r\n hasButtonWidthLimit,\r\n innerHeight,\r\n state.placement,\r\n popoverMaxHeight,\r\n ])\r\n\r\n if (isFullyClosed) return null\r\n\r\n return (\r\n \r\n \r\n {({ onTransitionEnd, onAnimationEnd, ...innerProps }) => (\r\n <>\r\n {\r\n // prevents from page scroll when clicked outside of popover\r\n event.preventDefault()\r\n }}\r\n />\r\n \r\n \r\n {hasArrow && (\r\n \r\n \r\n \r\n )}\r\n {children}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\nimport * as Reakit from 'reakit/Popover'\r\n\r\nimport { COMPONENT_ANIMATION_DURATION } from '../constants'\r\n\r\nexport type PopoverStateReturn = ReturnType\r\n\r\nconst DEFAULT_OFFSET: [number, number] = [0, 5]\r\nconst HOVER_TIMEOUT = 150\r\n\r\nconst preventDefault = (ev: React.MouseEvent) => {\r\n ev.preventDefault()\r\n}\r\n\r\n/**\r\n * Hook which provides state to dialogs\r\n */\r\nexport function usePopoverState(settings?: Reakit.PopoverInitialState) {\r\n const offsets = (settings?.unstable_offset ?? DEFAULT_OFFSET) as [number, number]\r\n const popover = Reakit.usePopoverState({\r\n ...settings,\r\n placement: settings?.placement ?? 'bottom-start',\r\n unstable_offset: offsets,\r\n animated: COMPONENT_ANIMATION_DURATION,\r\n modal: false,\r\n })\r\n\r\n return { ...popover, offsets }\r\n}\r\n\r\nexport function useHoverPopover(settings?: Reakit.PopoverInitialState) {\r\n const popover = usePopoverState(settings)\r\n const showTimeout = React.useRef(null)\r\n const hideTimeout = React.useRef(null)\r\n\r\n const clearTimeouts = React.useRef(() => {\r\n if (showTimeout.current !== null) {\r\n window.clearTimeout(showTimeout.current)\r\n }\r\n if (hideTimeout.current !== null) {\r\n window.clearTimeout(hideTimeout.current)\r\n }\r\n })\r\n\r\n const showPopover = React.useRef(() => {\r\n clearTimeouts.current()\r\n showTimeout.current = window.setTimeout(() => {\r\n popover.show()\r\n }, HOVER_TIMEOUT)\r\n })\r\n\r\n const hidePopover = React.useRef(() => {\r\n clearTimeouts.current()\r\n hideTimeout.current = window.setTimeout(() => {\r\n popover.hide()\r\n }, HOVER_TIMEOUT)\r\n })\r\n\r\n // Unmount cleanup\r\n React.useEffect(() => () => clearTimeouts.current(), [])\r\n\r\n return {\r\n ...popover,\r\n show: showPopover.current,\r\n hide: hidePopover.current,\r\n onMouseOver: showPopover.current,\r\n onMouseOut: hidePopover.current,\r\n onMouseDown: preventDefault,\r\n }\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\nimport * as Reakit from 'reakit/Popover'\r\n\r\nimport { useZIndex } from '../dialog'\r\n\r\ninterface PopoverButtonProps extends Reakit.PopoverDisclosureHTMLProps {\r\n state: Reakit.PopoverStateReturn\r\n as?: React.ElementType\r\n}\r\n/**\r\n * The trigger button component which handles ref & focus return, etc.\r\n */\r\nexport const PopoverTrigger = React.forwardRef(\r\n ({ state, ...props }: PopoverButtonProps, ref: React.ForwardedRef) => {\r\n const zIndex = useZIndex()\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n }\r\n)\r\n","import * as React from 'react'\r\n\r\nimport { PopoverStateReturn } from '../popover'\r\nimport { SelectItem } from './types'\r\n\r\nfunction getSelectedItemIndex(items: SelectItem[], value: unknown) {\r\n if (!value && value !== 0) return -1\r\n\r\n return items.findIndex((item) => item.value === value)\r\n}\r\n\r\n/**\r\n * Hook which handles select state and returns onChange handler\r\n */\r\nexport function useSelect>(\r\n state: PopoverStateReturn,\r\n defaultValue: ValueType | undefined,\r\n items: ItemType[],\r\n onChange: (item: ItemType) => void\r\n) {\r\n const [selectedIndex, setSelectedIndex] = React.useState(getSelectedItemIndex(items, defaultValue))\r\n const closePopover = React.useRef(() => state.hide())\r\n\r\n // Update select value on change from outside\r\n React.useEffect(() => {\r\n const newIndex = getSelectedItemIndex(items, defaultValue)\r\n setSelectedIndex(newIndex)\r\n }, [items, selectedIndex, defaultValue])\r\n\r\n const onItemChange = React.useCallback(\r\n (index: number, closeOnSelect = true) => {\r\n const selectedItem = items[index]\r\n setSelectedIndex(index)\r\n\r\n if (closeOnSelect) closePopover.current()\r\n onChange(selectedItem)\r\n\r\n if (!selectedItem.href || !selectedItem.reloadDocument) {\r\n return\r\n }\r\n\r\n if (typeof selectedItem.href === 'string') {\r\n window.location.href = selectedItem.href\r\n return\r\n }\r\n\r\n const newUrl = new URL(selectedItem.href.pathname!, window.location.href)\r\n newUrl.search = selectedItem.href.search ?? ''\r\n newUrl.hash = selectedItem.href.hash ?? ''\r\n\r\n window.location.href = newUrl.toString()\r\n },\r\n [items, onChange, setSelectedIndex]\r\n )\r\n\r\n return { selectedIndex, onItemChange }\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button, ButtonHTMLProps, ButtonProps, ButtonSize, ButtonTheme, ButtonThemeType } from '../button'\r\nimport { Delayed } from '../delayed'\r\nimport { Icon } from '../icon'\r\nimport { PopoverStateReturn, PopoverTrigger } from '../popover'\r\nimport { Spinner } from '../spinner'\r\n\r\nfunction getButtonProps(theme: ButtonTheme, active: boolean): Omit {\r\n switch (theme) {\r\n case ButtonTheme.light:\r\n return {\r\n theme: 'transparent',\r\n contentClass: 'font-normal truncate',\r\n className: classnames(\r\n 'border bg-white disabled:border-gray-100 disabled:bg-gray-50 disabled:text-gray-500 dark:bg-gray-800',\r\n {\r\n 'border-gray-100 hover:border-gray-300 disabled:hover:border-gray-100 dark:border-gray-600 dark:hover:border-gray-400 dark:disabled:border-gray-700':\r\n !active,\r\n 'border-blue-400 dark:border-blue-400': active,\r\n }\r\n ),\r\n rightContent: ,\r\n }\r\n case ButtonTheme.dark:\r\n return {\r\n theme: 'transparent',\r\n contentClass: 'font-normal truncate',\r\n className: classnames('border bg-gray-800 text-gray-50 disabled:border-gray-700 disabled:text-gray-500', {\r\n 'border-gray-600 hover:border-gray-400': !active,\r\n 'border-blue-400': active,\r\n }),\r\n rightContent: ,\r\n }\r\n default:\r\n return {}\r\n }\r\n}\r\n\r\nexport interface SelectButtonProps extends ButtonProps, ButtonHTMLProps {\r\n /**\r\n * Theme for the button\r\n *\r\n * @default light\r\n */\r\n theme?: ButtonThemeType\r\n\r\n isLoading?: boolean\r\n\r\n state?: PopoverStateReturn\r\n\r\n isPopoverTrigger?: boolean\r\n}\r\n\r\nexport function SelectButton({\r\n state,\r\n size = 'regular',\r\n theme = 'light',\r\n isPopoverTrigger = true,\r\n isLoading,\r\n ...props\r\n}: SelectButtonProps) {\r\n const themeProps = React.useMemo(() => getButtonProps(ButtonTheme[theme], !!props.active), [theme, props.active])\r\n\r\n return (\r\n \r\n \r\n \r\n ) : (\r\n props.rightContent ?? themeProps.rightContent\r\n )\r\n }\r\n >\r\n {props.children}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\nimport { useInRouterContext } from 'react-router-dom'\r\nimport * as Reakit from 'reakit/Popover'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { getExtendedDialogState } from '../dialog'\r\nimport { ListItem } from '../list'\r\nimport { PopoverStateReturn, usePopoverState } from '../popover'\r\nimport { Label } from '../typography'\r\nimport { useSelect } from './hooks'\r\nimport { NativeSelect, NativeSelectInRouterContext } from './native-select'\r\nimport { SelectButton, SelectButtonProps } from './select-button'\r\nimport { SelectList, SelectListProps } from './select-list'\r\nimport { SelectItem } from './types'\r\n\r\n/**\r\n * All non-select props get passed to the button element, these are the supported props\r\n */\r\ntype ButtonPassthroughProps = Omit\r\n\r\nexport interface SelectProps extends ButtonPassthroughProps {\r\n /**\r\n * Optional popover state settings\r\n */\r\n popoverStateSettings?: Reakit.PopoverInitialState\r\n\r\n /**\r\n * Name of the select, will be included in `onChange` event\r\n */\r\n name?: Name\r\n\r\n /**\r\n * Current selected value\r\n */\r\n value?: ValueType\r\n\r\n /**\r\n * List of items to display in the select\r\n */\r\n items: ItemType[]\r\n\r\n /**\r\n * Callback when selected item changes\r\n */\r\n onChange?: (item: ItemType, name: Name) => void\r\n\r\n /**\r\n * Label to display above the select\r\n */\r\n label?: React.ReactNode\r\n\r\n /**\r\n * Text for the button (usually the selected value). Falls back to placeholder if not set\r\n */\r\n buttonContent?: React.ReactNode\r\n\r\n /**\r\n * Placeholder when no value is selected\r\n */\r\n placeholder?: string\r\n\r\n /**\r\n * Additional props to the popover list\r\n */\r\n listProps?: Omit\r\n\r\n /**\r\n * Optional label className override\r\n */\r\n labelClassName?: string\r\n\r\n /**\r\n * Optional label layout switch\r\n */\r\n isHorizontalLabel?: boolean\r\n\r\n /**\r\n * Optional label title className override\r\n */\r\n labelTitleClassName?: string\r\n\r\n /**\r\n * Should use native select element on mobile devices\r\n *\r\n * @default true\r\n */\r\n isNativeMobileSelect?: boolean\r\n\r\n /**\r\n * Should use native select element\r\n *\r\n * @default false\r\n */\r\n isAlwaysNativeSelect?: boolean\r\n\r\n /**\r\n * Set the popover to height to be limited by the viewport instead of having full height\r\n *\r\n * @default false\r\n */\r\n hasPopoverViewportHeightLimit?: boolean\r\n\r\n /**\r\n * Set the popover max-width to be limited by the trigger button\r\n */\r\n hasPopoverButtonWidthLimit?: boolean\r\n\r\n /**\r\n * Triggered when popover state visibility/animating changes\r\n */\r\n onIsInteractingChange?: (isInteracting: boolean) => void\r\n}\r\n\r\nexport function Select, Name = never>({\r\n children,\r\n popoverStateSettings,\r\n onIsInteractingChange,\r\n ...props\r\n}: SelectProps) {\r\n const popoverState = usePopoverState(popoverStateSettings)\r\n const { isFullyClosed } = getExtendedDialogState(popoverState)\r\n\r\n React.useEffect(() => {\r\n onIsInteractingChange?.(!isFullyClosed)\r\n }, [onIsInteractingChange, isFullyClosed])\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport interface StatelessSelectProps extends SelectProps {\r\n /**\r\n * Popover state for handling list in popover\r\n */\r\n popoverState: PopoverStateReturn\r\n}\r\n\r\nexport function StatelessSelect, Name = never>({\r\n // Select\r\n name,\r\n label,\r\n isHorizontalLabel,\r\n value,\r\n items = [],\r\n onChange,\r\n labelClassName,\r\n labelTitleClassName,\r\n 'aria-label': ariaLabel,\r\n // Button\r\n theme,\r\n buttonContent,\r\n placeholder = 'Select value',\r\n // Popover\r\n popoverState,\r\n listProps,\r\n isNativeMobileSelect = true,\r\n isAlwaysNativeSelect = false,\r\n hasPopoverViewportHeightLimit = false,\r\n hasPopoverButtonWidthLimit = true,\r\n children,\r\n ...props\r\n}: StatelessSelectProps) {\r\n const { selectedIndex, onItemChange } = useSelect(popoverState, value, items, (item) => onChange?.(item, name!))\r\n const showMobileSelect = isNativeMobileSelect && isMobile()\r\n const isNativeSelect = isAlwaysNativeSelect || showMobileSelect\r\n\r\n /** Items can have `href` and be router Links. We need a way to account for this in native select */\r\n const isInRouterContext = useInRouterContext()\r\n const NativeSelectComponent = isInRouterContext ? NativeSelectInRouterContext : NativeSelect\r\n\r\n return (\r\n \r\n \r\n {buttonContent ?? items[selectedIndex!]?.label ?? placeholder}\r\n \r\n {isNativeSelect ? (\r\n