{"version":3,"file":"screener.f1a5dec2.js","mappings":"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","sources":["webpack://@finviz/website/./js/app/screener/filter-modal/currentvolume-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/default-filter.tsx","webpack://@finviz/website/./js/app/screener/date-range.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/earningsdate-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/epsrev-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/float-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/highlow-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/ipodate-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/options-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/period-range-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/sma-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/targetprice-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/volatility-filter.tsx","webpack://@finviz/website/./js/app/screener/filter-modal/filter-dialog.tsx","webpack://@finviz/website/./js/app/screener/use-custom-range-controller.tsx","webpack://@finviz/website/./js/app/screener/use-hide-custom-controller.tsx","webpack://@finviz/website/./js/app/screener/use-tickers-input-controller.tsx","webpack://@finviz/website/./js/app/screener/screener-premium.tsx","webpack://@finviz/website/./js/app/screener/screener-timeframe-bar.tsx","webpack://@finviz/website/./js/app/screener/index.tsx","webpack://@finviz/website/./js/main/components/checkbox.tsx","webpack://@finviz/website/./js/main/components/color-picker/draggable.tsx","webpack://@finviz/website/./js/main/components/color-picker/pointer.tsx","webpack://@finviz/website/./js/main/components/color-picker/util.ts","webpack://@finviz/website/./js/main/components/color-picker/alpha.tsx","webpack://@finviz/website/./js/main/components/color-picker/color-palette.tsx","webpack://@finviz/website/./js/main/components/color-picker/hue-saturation.tsx","webpack://@finviz/website/./js/main/components/color-picker/lightness.tsx","webpack://@finviz/website/./js/main/components/color-picker/color-preview.tsx","webpack://@finviz/website/./js/main/components/color-picker/picker-input.tsx","webpack://@finviz/website/./js/main/components/color-picker/picker.tsx","webpack://@finviz/website/./js/main/components/color-picker/picker-button.tsx","webpack://@finviz/website/./js/main/components/copy-to-clipboard/copy-to-clipboard.tsx","webpack://@finviz/website/./js/main/components/delayed.tsx","webpack://@finviz/website/./js/main/hooks/use-popover-maxHeight.ts","webpack://@finviz/website/./js/main/components/context-menu/context-menu.tsx","webpack://@finviz/website/./js/main/components/grid/grid.tsx","webpack://@finviz/website/./js/main/components/inner-state/inner-state.tsx","webpack://@finviz/website/./js/main/components/list/hooks.tsx","webpack://@finviz/website/./js/main/components/list/list-item.tsx","webpack://@finviz/website/./js/main/components/list/list.tsx","webpack://@finviz/website/./js/main/components/range.tsx","webpack://@finviz/website/./js/main/components/toolbar/interfaces.ts","webpack://@finviz/website/./js/main/components/toolbar/hooks.ts","webpack://@finviz/website/./js/main/components/toolbar/toolbar.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-button.tsx","webpack://@finviz/website/./js/main/components/toolbar/popover/hooks.ts","webpack://@finviz/website/./js/main/components/toolbar/popover/popover.tsx","webpack://@finviz/website/./js/main/components/toolbar/popover/popover-trigger.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-group.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-item.tsx","webpack://@finviz/website/./js/main/components/toolbar/toolbar-divider.tsx","webpack://@finviz/website/./js/main/components/tour/step-content.tsx","webpack://@finviz/website/./js/main/components/tour/utils.ts","webpack://@finviz/website/./js/main/components/tour/hooks.tsx","webpack://@finviz/website/./js/main/components/tabs/tab.tsx","webpack://@finviz/website/./js/main/components/tabs/tab-list.tsx","webpack://@finviz/website/./js/main/components/tabs/tab-panel.tsx","webpack://@finviz/website/./js/main/components/tabs/tabs.tsx","webpack://@finviz/website/./js/main/components/badge.tsx","webpack://@finviz/website/./js/main/components/notification/hooks.ts","webpack://@finviz/website/./js/main/components/notification/notification-wrapper.tsx","webpack://@finviz/website/./js/main/components/notification/with-notification-context.tsx","webpack://@finviz/website/./js/main/components/notification/notification.tsx","webpack://@finviz/website/./js/main/components/tooltip-input.tsx","webpack://@finviz/website/./js/main/hooks/use-window-size.tsx","webpack://@finviz/website/./js/main/hooks/useVisualViewport.ts","webpack://@finviz/website/../node_modules/copy-to-clipboard/index.js","webpack://@finviz/website/../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack://@finviz/website/../node_modules/react-dom/server.browser.js","webpack://@finviz/website/../node_modules/react-fast-compare/index.js","webpack://@finviz/website/../node_modules/react-popper/lib/esm/utils.js","webpack://@finviz/website/../node_modules/react-popper/lib/esm/usePopper.js","webpack://@finviz/website/../node_modules/react-router-dom/dist/index.js","webpack://@finviz/website/../node_modules/toggle-selection/index.js","webpack://@finviz/website/../node_modules/core-js/modules/es.string.replace-all.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/32VQXIYR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/5KB2YIDT.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/JJ3MV4KB.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab-list.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab-panel.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/tab/tab-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/CQMDBRG5.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tab/tab.js"],"sourcesContent":["import React from 'react'\r\n\r\nimport { Table, TableBody } from '../../../main/components/Table'\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DELIMITER = 'x'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\n\r\nexport default function CurrentVolumeFilter({ config, onSubmit }: FilterProps) {\r\n const [sharesRange, setSharesRange] = React.useState(DEFAULT_RANGE)\r\n const [usdRange, setUsdRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const parts = filter.split(DELIMITER)\r\n const [sharesRangeFrom = '', sharesRangeTo = ''] = parts[0].includes('to') ? parts[0].split('to') : []\r\n setSharesRange({ from: sharesRangeFrom, to: sharesRangeTo })\r\n\r\n if (parts.length === 2) {\r\n const [usdRangeFrom = '', usdRangeTo = ''] = parts[1].includes('to') ? parts[1].split('to') : []\r\n setUsdRange({\r\n from: usdRangeFrom && (Number(usdRangeFrom) / 1000).toFixed(2).replace('.00', ''),\r\n to: usdRangeTo && (Number(usdRangeTo) / 1000).toFixed(2).replace('.00', ''),\r\n })\r\n }\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([\r\n rangesToFilter([\r\n sharesRange,\r\n {\r\n from: usdRange.from && (Number(usdRange.from) * 1000).toFixed(2).replace('.00', ''),\r\n to: usdRange.to && (Number(usdRange.to) * 1000).toFixed(2).replace('.00', ''),\r\n },\r\n ]),\r\n ])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match all of the following:\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Shares\r\n {\r\n setSharesRange({ ...sharesRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n -\r\n {\r\n setSharesRange({ ...sharesRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n K
USD volume\r\n {\r\n setUsdRange({ ...usdRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n -\r\n {\r\n setUsdRange({ ...usdRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n M
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { Checkbox } from '../../../main/components/checkbox'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { getIsOptionDateRange } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nexport default function DefaultFilter({ config, onSubmit }: FilterProps) {\r\n const [state, setState] = React.useState([])\r\n\r\n React.useEffect(() => {\r\n setState(config.selectedValues)\r\n }, [config])\r\n\r\n const handleSelectAll = () => {\r\n setState(config.options.map(({ value }) => value).filter((item) => item !== 'stocksonly'))\r\n }\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n const filters = [...state.filter((value) => !getIsOptionDateRange(value))]\r\n\r\n onSubmit(filters)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match any of the following:\r\n \r\n
\r\n
\r\n {config.options.map(({ label, value }) => {\r\n const isChecked = state.includes(value)\r\n return (\r\n
\r\n \r\n setState(isChecked ? state.filter((selectedValue) => value !== selectedValue) : [...state, value])\r\n }\r\n >\r\n {label}\r\n \r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../main/components/button'\r\nimport { DatePicker } from '../../main/components/date-picker'\r\nimport { Icon } from '../../main/components/icon'\r\nimport { Input } from '../../main/components/input'\r\nimport { formatDateToStringUS } from '../shared/utils'\r\n\r\ninterface DateRangeProps {\r\n from?: string\r\n to?: string\r\n onChangeFrom: (from: string | undefined) => void\r\n onChangeTo: (to: string | undefined) => void\r\n}\r\n\r\nconst MIN_DATE = new Date('01/01/1900')\r\n\r\nexport function DateRange({ from, to, onChangeFrom, onChangeTo }: DateRangeProps) {\r\n return (\r\n
\r\n
\r\n {\r\n onChangeFrom(formatDateToStringUS(newFrom))\r\n }}\r\n >\r\n {\r\n onChangeFrom(undefined)\r\n }}\r\n >\r\n \r\n \r\n ) : undefined\r\n }\r\n value={from ?? ''}\r\n />\r\n \r\n
\r\n
\r\n {\r\n onChangeTo(formatDateToStringUS(newTo))\r\n }}\r\n >\r\n {\r\n onChangeTo(undefined)\r\n }}\r\n >\r\n \r\n \r\n ) : undefined\r\n }\r\n value={to ?? ''}\r\n />\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { Checkbox } from '../../../main/components/checkbox'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { formatDateToStringUS } from '../../shared/utils'\r\nimport { DateRange } from '../date-range'\r\nimport { dateRangeToFilterString, getInitialDateFromSelectedValues, getIsOptionDateRange } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nexport default function EarningDateFilter({ config, onSubmit }: FilterProps) {\r\n const [state, setState] = React.useState([])\r\n const [dateRange, setDateRange] = React.useState<{ from?: string; to?: string }>({})\r\n\r\n React.useEffect(() => {\r\n const initialDate = getInitialDateFromSelectedValues(config.selectedValues)\r\n\r\n if (initialDate) {\r\n setDateRange({ from: initialDate[0], to: initialDate[1] })\r\n }\r\n setState(config.selectedValues)\r\n }, [config])\r\n\r\n const handleSelectAll = () => {\r\n setState(config.options.map(({ value }) => value))\r\n }\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n const dateRangeStr = dateRangeToFilterString(dateRange)\r\n const filters = [...state.filter((value) => !getIsOptionDateRange(value)), dateRangeStr]\r\n\r\n onSubmit(filters)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match any of the following:\r\n \r\n
\r\n
\r\n {config.options.map(({ label, value }) => {\r\n const isChecked = state.includes(value)\r\n return (\r\n
\r\n \r\n setState(isChecked ? state.filter((selectedValue) => value !== selectedValue) : [...state, value])\r\n }\r\n >\r\n {label}\r\n \r\n
\r\n )\r\n })}\r\n
\r\n
\r\n \r\n Custom date range:\r\n \r\n {\r\n setDateRange({ ...dateRange, from })\r\n }}\r\n onChangeTo={(to) => {\r\n setDateRange({ ...dateRange, to })\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DELIMITER = 'x'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\n\r\nexport default function EarningsAndRevenueFilter({ config, onSubmit }: FilterProps) {\r\n const [earningsRange, setEarningsRange] = React.useState(DEFAULT_RANGE)\r\n const [revenueRange, setRevenueRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const parts = filter.split(DELIMITER)\r\n\r\n if (parts.length === 2) {\r\n const [eFrom = '', eTo = ''] = parts[0].includes('to') ? parts[0].split('to') : []\r\n const [rFrom = '', rTo = ''] = parts[1].includes('to') ? parts[1].split('to') : []\r\n\r\n setEarningsRange({ from: eFrom, to: eTo })\r\n setRevenueRange({ from: rFrom, to: rTo })\r\n }\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([rangesToFilter([earningsRange, revenueRange])])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match all of the following:\r\n \r\n
\r\n
\r\n
\r\n

EPS Surprise

\r\n
\r\n
\r\n {\r\n setEarningsRange({ ...earningsRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setEarningsRange({ ...earningsRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Revenue Surprise

\r\n
\r\n
\r\n {\r\n setRevenueRange({ ...revenueRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setRevenueRange({ ...revenueRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DELIMITER = 'x'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\n\r\nexport default function FloatFilter({ config, onSubmit }: FilterProps) {\r\n const [sharesRange, setSharesRange] = React.useState(DEFAULT_RANGE)\r\n const [pctRange, setPctRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const parts = filter.split(DELIMITER)\r\n\r\n const [aFrom = '', aTo = ''] = parts[0].includes('to') ? parts[0].split('to') : []\r\n const [bFrom = '', bTo = ''] = parts[1]?.includes('to') ? parts[1].split('to') : []\r\n\r\n setSharesRange({ from: aFrom, to: aTo })\r\n setPctRange({ from: bFrom, to: bTo })\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([rangesToFilter([sharesRange, pctRange])])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match any of the following:\r\n \r\n
\r\n
\r\n {\r\n setSharesRange({ ...sharesRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setSharesRange({ ...sharesRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n\r\n
\r\n {\r\n setPctRange({ ...pctRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setPctRange({ ...pctRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Select } from '../../../main/components'\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DELIMITER = 'x'\r\nconst SETTINGS_DELIMITER = '-'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\nconst PRICE_OPTIONS = [\r\n { value: 'a', label: 'Above' },\r\n { value: 'b', label: 'Below' },\r\n]\r\nconst EXTREMA_OPTIONS = [\r\n { value: 'h', label: 'High' },\r\n { value: 'l', label: 'Low' },\r\n]\r\n\r\nconst parseData = (filterValue: string): [{ from: string; to: string }, string, string] | undefined => {\r\n if (filterValue.indexOf(SETTINGS_DELIMITER) > 0) {\r\n const rangeAndOptions = filterValue.split(SETTINGS_DELIMITER)\r\n if (\r\n rangeAndOptions[1].length === 2 &&\r\n PRICE_OPTIONS.some(({ value }) => value === rangeAndOptions[1][0]) &&\r\n EXTREMA_OPTIONS.some(({ value }) => value === rangeAndOptions[1][1])\r\n ) {\r\n const [from = '', to = ''] = rangeAndOptions[0].includes('to') ? rangeAndOptions[0].split('to') : []\r\n\r\n return [{ from, to }, rangeAndOptions[1][0], rangeAndOptions[1][1]]\r\n }\r\n }\r\n}\r\n\r\nexport default function HighLowFilter({ config, onSubmit }: FilterProps) {\r\n const [price1, setPrice1] = React.useState(PRICE_OPTIONS[1].value)\r\n const [price2, setPrice2] = React.useState(PRICE_OPTIONS[0].value)\r\n const [extreme1, setExtreme1] = React.useState(EXTREMA_OPTIONS[0].value)\r\n const [extreme2, setExtreme2] = React.useState(EXTREMA_OPTIONS[1].value)\r\n const [range1, setRange1] = React.useState(DEFAULT_RANGE)\r\n const [range2, setRange2] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const parts = filter.split(DELIMITER)\r\n if (parts.length !== 2) {\r\n return\r\n }\r\n\r\n // Parse 1. part containing range, price and extreme\r\n const parsedData1 = parseData(parts[0])\r\n if (parsedData1 !== undefined) {\r\n const [{ from, to }, price, extreme] = parsedData1\r\n setRange1({ from, to })\r\n setPrice1(price)\r\n setExtreme1(extreme)\r\n }\r\n\r\n // Parse 2. part containing range, price and extreme\r\n const parsedData2 = parseData(parts[1])\r\n if (parsedData2 !== undefined) {\r\n const [{ from, to }, price, extreme] = parsedData2\r\n setRange2({ from, to })\r\n setPrice2(price)\r\n setExtreme2(extreme)\r\n }\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([\r\n rangesToFilter(\r\n [range1, range2],\r\n [`${SETTINGS_DELIMITER}${price1}${extreme1}`, `${SETTINGS_DELIMITER}${price2}${extreme2}`]\r\n ),\r\n ])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match any of the following:\r\n \r\n
\r\n
\r\n {\r\n setRange1({ ...range1, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setRange1({ ...range1, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n {\r\n setPrice1(item.value)\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setExtreme1(item.value)\r\n }}\r\n />\r\n
\r\n {\r\n setRange2({ ...range2, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setRange2({ ...range2, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n {\r\n setPrice2(item.value)\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setExtreme2(item.value)\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { formatDateToStringUS } from '../../shared/utils'\r\nimport { DateRange } from '../date-range'\r\nimport { dateRangeToFilterString, getInitialDateFromSelectedValues } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nexport default function IpoDateFilter({ config, onSubmit }: FilterProps) {\r\n const [dateRange, setDateRange] = React.useState<{ from?: string; to?: string }>({})\r\n\r\n React.useEffect(() => {\r\n const initialDate = getInitialDateFromSelectedValues(config.selectedValues)\r\n if (initialDate) {\r\n setDateRange({ from: initialDate[0], to: initialDate[1] })\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n const dateRangeStr = dateRangeToFilterString(dateRange)\r\n\r\n onSubmit([dateRangeStr])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {\r\n setDateRange({ ...dateRange, from })\r\n }}\r\n onChangeTo={(to) => {\r\n setDateRange({ ...dateRange, to })\r\n }}\r\n />\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Select } from '../../../main/components'\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Label } from '../../../main/components/typography'\r\nimport { FilterProps } from './types'\r\n\r\nconst ARRAY_DELIMITER = '|'\r\nconst OPTIONS = [\r\n { value: 'any', label: 'Any' },\r\n { value: 'yes', label: 'Yes' },\r\n { value: 'no', label: 'No' },\r\n]\r\n\r\nconst PRESETS_MAP: { [key: string]: string } = {\r\n 'option|short': 'optionshort',\r\n 'option|notshort': 'optionnotshort',\r\n 'notoption|short': 'notoptionshort',\r\n 'notoption|notshort': 'notoptionnotshort',\r\n}\r\n\r\nexport default function OptionsFilter({ onSubmit, config }: FilterProps) {\r\n const [optionable, setOptionable] = React.useState(OPTIONS[0].value)\r\n const [shortable, setShortable] = React.useState(OPTIONS[0].value)\r\n const [shortsalerestricted, setShortSaleRestricted] = React.useState(OPTIONS[0].value)\r\n const [halted, setHalted] = React.useState(OPTIONS[0].value)\r\n\r\n const setValues = React.useCallback((item: string) => {\r\n const getYesNo = (value: string) => (value.includes('not') ? 'no' : 'yes')\r\n switch (item) {\r\n case 'option':\r\n case 'notoption':\r\n setOptionable(getYesNo(item))\r\n break\r\n case 'short':\r\n case 'notshort':\r\n setShortable(getYesNo(item))\r\n break\r\n case 'shortsalerestricted':\r\n case 'notshortsalerestricted':\r\n setShortSaleRestricted(getYesNo(item))\r\n break\r\n case 'halted':\r\n case 'nothalted':\r\n setHalted(getYesNo(item))\r\n break\r\n case 'optionshort':\r\n setOptionable('yes')\r\n setShortable('yes')\r\n break\r\n case 'optionnotshort':\r\n setOptionable('yes')\r\n setShortable('no')\r\n break\r\n case 'notoptionshort':\r\n setOptionable('no')\r\n setShortable('yes')\r\n break\r\n case 'notoptionnotshort':\r\n setOptionable('no')\r\n setShortable('no')\r\n break\r\n }\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n config.selectedValues.forEach((item) => {\r\n setValues(item)\r\n })\r\n }, [config, setValues])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n const str = [\r\n { option: optionable },\r\n { short: shortable },\r\n { shortsalerestricted: shortsalerestricted },\r\n { halted: halted },\r\n ]\r\n .filter((item) => Object.values(item).every((value) => value !== 'any'))\r\n .map((item) => Object.entries(item).map(([key, value]) => `${value === 'yes' ? '' : 'not'}${key}`))\r\n .join(ARRAY_DELIMITER)\r\n\r\n onSubmit([PRESETS_MAP[str] ?? str])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Select } from '../../../main/components'\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { Label } from '../../../main/components/typography'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\n\r\ntype PeriodRangeFilterProps = {\r\n periodOptions: { value: string; label: string }[]\r\n useOverUnderLabels?: boolean\r\n} & FilterProps\r\n\r\nexport default function PeriodRangeFilter({\r\n onSubmit,\r\n config,\r\n periodOptions,\r\n useOverUnderLabels,\r\n}: PeriodRangeFilterProps) {\r\n const [selectedPeriod, setSelectedPeriod] = React.useState()\r\n const [periodRange, setPeriodRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const delimiterIndex = filter.lastIndexOf('-')\r\n const period = filter.substring(delimiterIndex + 1)\r\n const range = filter.substring(0, delimiterIndex)\r\n\r\n if (!periodOptions.some(({ value }) => value === period)) {\r\n return\r\n }\r\n setSelectedPeriod(period)\r\n\r\n if (range) {\r\n const [from, to] = range.split('to')\r\n setPeriodRange({ from, to })\r\n }\r\n }\r\n }, [config, periodOptions])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([selectedPeriod ? rangesToFilter([periodRange], [`-${selectedPeriod}`]) : null])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n setPeriodRange({ ...periodRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setPeriodRange({ ...periodRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Select } from '../../../main/components'\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DELIMITER = '-'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\nconst OPTIONS = [\r\n { value: 'a', label: 'Above' },\r\n { value: 'b', label: 'Below' },\r\n]\r\n\r\nexport default function SMAFilter({ onSubmit, config }: FilterProps) {\r\n const [option, setOption] = React.useState(OPTIONS[0].value)\r\n const [range, setRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const [filterRange, filterOption] = filter.split(DELIMITER)\r\n\r\n if (!OPTIONS.some(({ value }) => value === filterOption)) {\r\n return\r\n }\r\n setOption(filterOption)\r\n\r\n if (filterRange) {\r\n const [from, to] = filterRange.split('to')\r\n setRange({ from, to })\r\n }\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([rangesToFilter([range], [`${DELIMITER}${option}`])])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n {\r\n setRange({ ...range, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setRange({ ...range, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n {\r\n setOption(item.value)\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n

{config.filter.substring(3).toUpperCase()}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { Heading } from '../../../main/components/typography'\r\nimport { rangesToFilter } from '../utils'\r\nimport { FilterProps } from './types'\r\n\r\nconst DELIMITER = 'x'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\n\r\nexport default function TargetPriceFilter({ config, onSubmit }: FilterProps) {\r\n const [aboveRange, setAboveRange] = React.useState(DEFAULT_RANGE)\r\n const [belowRange, setBelowRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const parts = filter.split(DELIMITER)\r\n\r\n if (parts.length === 2) {\r\n const [aFrom = '', aTo = ''] = parts[0].includes('to') ? parts[0].split('to') : []\r\n const [bFrom = '', bTo = ''] = parts[1].includes('to') ? parts[1].split('to') : []\r\n\r\n setAboveRange({ from: aFrom, to: aTo })\r\n setBelowRange({ from: bFrom, to: bTo })\r\n }\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n onSubmit([rangesToFilter([aboveRange, belowRange])])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n Match any of the following:\r\n \r\n
\r\n
\r\n
\r\n {\r\n setAboveRange({ ...aboveRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setAboveRange({ ...aboveRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n

Above Price

\r\n
\r\n
\r\n\r\n
\r\n
\r\n {\r\n setBelowRange({ ...belowRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n {\r\n setBelowRange({ ...belowRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n

Below Price

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../../../main/components/button'\r\nimport { DialogBody, DialogDismiss, DialogFooter } from '../../../main/components/dialog'\r\nimport { Input } from '../../../main/components/input'\r\nimport { FilterProps } from './types'\r\n\r\nconst WEEK_MONTH_DELIMITER = 'x'\r\nconst DEFAULT_RANGE = { from: '', to: '' }\r\n\r\nexport default function VolatilityFilter({ config, onSubmit }: FilterProps) {\r\n const [weekRange, setWeekRange] = React.useState(DEFAULT_RANGE)\r\n const [monthRange, setMonthRange] = React.useState(DEFAULT_RANGE)\r\n\r\n React.useEffect(() => {\r\n const filter = config.selectedValues[0]\r\n if (filter) {\r\n const parts = filter.split(WEEK_MONTH_DELIMITER)\r\n\r\n if (parts.length === 2) {\r\n const [wFrom = '', wTo = ''] = parts[0].includes('to') ? parts[0].split('to') : []\r\n const [mFrom = '', mTo = ''] = parts[1].includes('to') ? parts[1].split('to') : []\r\n\r\n setWeekRange({ from: wFrom, to: wTo })\r\n setMonthRange({ from: mFrom, to: mTo })\r\n }\r\n }\r\n }, [config])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n const { from: wMin, to: wMax } = weekRange\r\n const { from: mMin, to: mMax } = monthRange\r\n const weekRangeStr = wMin || wMax ? `${wMin}to${wMax}` : null\r\n const monthRangeStr = mMin || mMax ? `${mMin}to${mMax}` : null\r\n\r\n let volatilityFilter = ''\r\n if (weekRangeStr) volatilityFilter += weekRangeStr\r\n if (weekRangeStr || monthRangeStr) volatilityFilter += WEEK_MONTH_DELIMITER\r\n if (monthRangeStr) volatilityFilter += monthRangeStr\r\n\r\n onSubmit([volatilityFilter])\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n

Week

\r\n
\r\n
\r\n {\r\n setWeekRange({ ...weekRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setWeekRange({ ...weekRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n\r\n
\r\n

Month

\r\n
\r\n
\r\n {\r\n setMonthRange({ ...monthRange, from: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setMonthRange({ ...monthRange, to: e.currentTarget.value })\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { Dialog, DialogHeader, DialogProps } from '../../../main/components/dialog'\r\nimport { decodeQueryString, encodeQueryString } from '../../queryString'\r\nimport { parseScreenerFilters, stringifyScreenerFilters } from '../utils'\r\nimport CurrentVolumeFilter from './currentvolume-filter'\r\nimport DefaultFilter from './default-filter'\r\nimport EarningDateFilter from './earningsdate-filter'\r\nimport EarningsAndRevenueFilter from './epsrev-filter'\r\nimport FloatFilter from './float-filter'\r\nimport HighLowFilter from './highlow-filter'\r\nimport IpoDateFilter from './ipodate-filter'\r\nimport OptionsFilter from './options-filter'\r\nimport PeriodRangeFilter from './period-range-filter'\r\nimport SMAFilter from './sma-filter'\r\nimport TargetPriceFilter from './targetprice-filter'\r\nimport { ConfigType } from './types'\r\nimport VolatilityFilter from './volatility-filter'\r\n\r\nconst PERFORMANCE_OPTIONS = [\r\n { value: 'i1', label: '1 Minute' },\r\n { value: 'i2', label: '2 Minutes' },\r\n { value: 'i3', label: '3 Minutes' },\r\n { value: 'i5', label: '5 Minutes' },\r\n { value: 'i10', label: '10 Minutes' },\r\n { value: 'i15', label: '15 Minutes' },\r\n { value: 'i30', label: '30 Minutes' },\r\n { value: 'h', label: '1 Hour' },\r\n { value: 'h2', label: '2 Hours' },\r\n { value: 'h4', label: '4 Hours' },\r\n { value: 'd', label: 'Day' },\r\n { value: '1w', label: 'Week' },\r\n { value: '4w', label: 'Month' },\r\n { value: '13w', label: 'Quarter' },\r\n { value: '26w', label: 'Half' },\r\n { value: '52w', label: 'Year' },\r\n { value: 'ytd', label: 'YTD' },\r\n]\r\n\r\nconst NET_FLOWS_FILTER_OPTIONS = [\r\n { value: '1m', label: '1 Month' },\r\n { value: '3m', label: '3 Month' },\r\n { value: 'ytd', label: 'YTD' },\r\n { value: '1y', label: '1 Year' },\r\n]\r\n\r\nconst RETURN_FILTER_OPTIONS = [\r\n { value: '1y', label: '1 Year' },\r\n { value: '3y', label: '3 Year' },\r\n { value: '5y', label: '5 Year' },\r\n { value: '10y', label: '10 Year' },\r\n { value: 'si', label: 'Since Inception' },\r\n]\r\n\r\ninterface FilterDialogProps {\r\n config: ConfigType | null\r\n dialogState: DialogProps['state']\r\n dialogBodyClassName?: string\r\n}\r\n\r\nexport function FilterDialog({ config, dialogState }: FilterDialogProps) {\r\n const handleSubmit = React.useCallback(\r\n (values: (string | null)[]) => {\r\n if (config) {\r\n const { filter } = config\r\n const filters = {\r\n ...parseScreenerFilters(),\r\n [filter]: values.filter((value) => !!value) as string[],\r\n }\r\n const urlQueryObject = decodeQueryString()\r\n window.location.href =\r\n 'screener.ashx?' + encodeQueryString({ ...urlQueryObject, f: stringifyScreenerFilters(filters) })\r\n }\r\n },\r\n [config]\r\n )\r\n\r\n if (!config) return null\r\n\r\n const getDialogComponent = () => {\r\n switch (config.filter) {\r\n case 'ipodate':\r\n return \r\n case 'earningsdate':\r\n return \r\n case 'ta_perf':\r\n case 'ta_perf2':\r\n return \r\n case 'ta_volatility':\r\n return \r\n case 'targetprice':\r\n return \r\n case 'ta_sma20':\r\n case 'ta_sma50':\r\n case 'ta_sma200':\r\n return \r\n case 'ta_highlow20d':\r\n case 'ta_highlow50d':\r\n case 'ta_highlow52w':\r\n case 'ta_alltime':\r\n return \r\n case 'sh_float':\r\n return \r\n case 'sh_curvol':\r\n return \r\n case 'etf_fundflows':\r\n return (\r\n \r\n )\r\n case 'etf_return':\r\n return (\r\n \r\n )\r\n case 'sh_opt':\r\n return \r\n case 'fa_epsrev':\r\n return \r\n default:\r\n return \r\n }\r\n }\r\n\r\n return (\r\n \r\n {config.title}\r\n {getDialogComponent()}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { eventListenerRegister } from './utils'\r\n\r\n// Don't break on number with plus in front (+5 -> 5)\r\nfunction ScreenerRemovePlus(value: string) {\r\n if (value && value[0] === '+') {\r\n return value.slice(1)\r\n }\r\n return value\r\n}\r\n\r\nfunction ScreenerValidateInputs(type: string, input1: HTMLInputElement, input2: HTMLInputElement) {\r\n const numberRegexp = type === 'range' ? /^([-+]?[0-9]+)$/ : /^([-+]?[0-9]*\\.?[0-9]+)$/\r\n const isMatchInput1 = numberRegexp.test(input1.value)\r\n const isMatchInput2 = numberRegexp.test(input2.value)\r\n\r\n if (input1.value !== '' && !isMatchInput1) {\r\n alert('Only ' + (type === 'range' ? 'whole ' : '') + 'numbers are allowed.')\r\n input1.focus()\r\n return false\r\n }\r\n if (input2.value !== '' && !isMatchInput2) {\r\n alert('Only ' + (type === 'range' ? 'whole ' : '') + 'numbers are allowed.')\r\n input2.focus()\r\n return false\r\n }\r\n\r\n if (isMatchInput1 && Math.abs(Number(input1.value)) > Number.MAX_SAFE_INTEGER) {\r\n alert('Number is too large.')\r\n input1.focus()\r\n return false\r\n }\r\n if (isMatchInput2 && Math.abs(Number(input2.value)) > Number.MAX_SAFE_INTEGER) {\r\n alert('Number is too large.')\r\n input2.focus()\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction ScreenerCustomRangeOnChange(this: HTMLElement) {\r\n const select = document.getElementById('fs_' + (this as HTMLElement).getAttribute('data-filter')) as HTMLInputElement,\r\n type = select.value,\r\n inputs = Array.from(this.parentNode!.parentNode!.parentNode!.querySelectorAll('input')),\r\n filter = select.getAttribute('data-filter'),\r\n query = select.getAttribute('data-url'),\r\n queryWithFilter = select.getAttribute('data-url-selected')!,\r\n regexp = new RegExp(filter + '_selected_filter')\r\n let q = query\r\n\r\n if (inputs[0].value !== '' || inputs[1].value !== '') {\r\n if (!ScreenerValidateInputs(type, inputs[0], inputs[1])) {\r\n return\r\n }\r\n const value = filter + '_' + ScreenerRemovePlus(inputs[0].value) + 'to' + ScreenerRemovePlus(inputs[1].value)\r\n q = queryWithFilter.replace(regexp, encodeURIComponent(value))\r\n }\r\n\r\n window.location.href = 'screener.ashx?' + q\r\n}\r\n\r\nexport function useCustomRangeController() {\r\n React.useEffect(() => {\r\n const inputs = Array.from(document.querySelectorAll('.js-custom-range input')) as HTMLElement[]\r\n const unregisterEventFuncs = [] as Array<() => void>\r\n for (let i = 0; i < inputs.length; i++) {\r\n const unregister = eventListenerRegister(inputs[i], 'change', ScreenerCustomRangeOnChange)\r\n unregisterEventFuncs.push(unregister)\r\n }\r\n\r\n return () => {\r\n unregisterEventFuncs.forEach((unregister) => {\r\n unregister()\r\n })\r\n }\r\n }, [])\r\n\r\n return null\r\n}\r\n","import React from 'react'\r\n\r\nimport { eventListenerRegister } from './utils'\r\n\r\nfunction HideCustom(this: HTMLElement) {\r\n const filter = this.getAttribute('data-filter')\r\n\r\n const el1 = document.getElementById('fsr_' + filter)\r\n const el2 = document.getElementById('fsm_' + filter)\r\n el1 && (el1.style.display = 'none')\r\n el2 && (el2.style.display = 'none')\r\n\r\n const select = document.getElementById('fs_' + filter) as HTMLSelectElement\r\n select.value = ''\r\n select.style.display = 'block'\r\n select.onchange?.(new Event('change'))\r\n\r\n return false\r\n}\r\n\r\nexport function useHideCustomControll() {\r\n React.useEffect(() => {\r\n const ranges = Array.from(document.getElementsByClassName('js-hide-custom-range')) as HTMLElement[]\r\n const unregisterEventFuncs = [] as Array<() => void>\r\n for (let i = 0; i < ranges.length; i++) {\r\n const unregister = eventListenerRegister(ranges[i], 'click', HideCustom)\r\n unregisterEventFuncs.push(unregister)\r\n }\r\n\r\n const hides = Array.from(document.getElementsByClassName('js-custom-modal-hide')) as HTMLElement[]\r\n for (let i = 0; i < hides.length; i++) {\r\n const unregister = eventListenerRegister(hides[i], 'click', HideCustom)\r\n unregisterEventFuncs.push(unregister)\r\n }\r\n\r\n return () => {\r\n unregisterEventFuncs.forEach((unregister) => {\r\n unregister()\r\n })\r\n }\r\n }, [])\r\n\r\n return null\r\n}\r\n","import { getSanitizedTicker } from 'finviz-charts/app/utils'\r\nimport React from 'react'\r\n\r\nimport { eventListenerRegister } from './utils'\r\n\r\nfunction ScreenerTickersInputOnChange(this: HTMLInputElement) {\r\n const inputValue = this.value,\r\n filter = this.getAttribute('data-filter'),\r\n query = this.getAttribute('data-url'),\r\n queryWithFilter = this.getAttribute('data-url-selected')!,\r\n regexp = new RegExp(filter + '_SELECTED-FILTER')\r\n let q = query\r\n\r\n if (inputValue !== '') {\r\n const sanitizedTickers = getSanitizedTicker(inputValue, true)\r\n\r\n if (sanitizedTickers === '') {\r\n alert('Separate multiple tickers by a comma, e.g.: SPY, QQQ, DIA.')\r\n return\r\n }\r\n\r\n const value = filter + '_' + sanitizedTickers.replaceAll(',', '|')\r\n q = queryWithFilter.replace(regexp, encodeURIComponent(value))\r\n }\r\n\r\n window.location.href = 'screener.ashx?' + q\r\n}\r\n\r\nexport function useTickersInputController() {\r\n React.useEffect(() => {\r\n const inputs = Array.from(document.querySelectorAll('.js-tickers-input')) as HTMLElement[]\r\n const unregisterEventFuncs = [] as Array<() => void>\r\n for (let i = 0; i < inputs.length; i++) {\r\n const unregister = eventListenerRegister(inputs[i], 'change', ScreenerTickersInputOnChange)\r\n unregisterEventFuncs.push(unregister)\r\n }\r\n\r\n return () => {\r\n unregisterEventFuncs.forEach((unregister) => {\r\n unregister()\r\n })\r\n }\r\n }, [])\r\n\r\n return null\r\n}\r\n","import React from 'react'\r\n\r\nimport { useDialogState } from '../../main/components/dialog'\r\nimport { FilterDialog } from './filter-modal/filter-dialog'\r\nimport { ConfigType } from './filter-modal/types'\r\nimport { useCustomRangeController } from './use-custom-range-controller'\r\nimport { useHideCustomControll } from './use-hide-custom-controller'\r\nimport { useTickersInputController } from './use-tickers-input-controller'\r\nimport {\r\n ScreenerRenderCustomModal,\r\n eventListenerRegister,\r\n getIsOptionDateRange,\r\n parseScreenerFilters,\r\n textContent,\r\n} from './utils'\r\n\r\nexport function ScreenerPremium() {\r\n useCustomRangeController()\r\n useTickersInputController()\r\n useHideCustomControll()\r\n const [activeSelectEl, setActiveSelectEl] = React.useState()\r\n const isInitRef = React.useRef(false)\r\n const dialogState = useDialogState({\r\n setOpen(open) {\r\n if (!open) {\r\n setActiveSelectEl(undefined)\r\n handleCancel()\r\n }\r\n },\r\n })\r\n\r\n const config = React.useMemo(() => {\r\n if (!activeSelectEl) {\r\n return null\r\n }\r\n const parentNode = activeSelectEl.parentNode! as HTMLElement\r\n const filter = activeSelectEl.getAttribute('data-filter')!\r\n const title = textContent(parentNode.previousElementSibling as HTMLElement)\r\n const selectedValues = parseScreenerFilters()[filter] ?? []\r\n const selectedOption = activeSelectEl.value\r\n const options = Array.from(activeSelectEl.options)\r\n .map((option) => ({ value: option.value, label: option.text }))\r\n .filter((opt) => {\r\n const isModal = opt.value.includes('modal')\r\n const isEmpty = opt.value === ''\r\n return !isModal && !isEmpty && !getIsOptionDateRange(opt.value)\r\n })\r\n\r\n return {\r\n selectedOption,\r\n filter,\r\n title,\r\n options,\r\n selectedValues,\r\n }\r\n }, [activeSelectEl])\r\n\r\n const handleCancel = React.useCallback(() => {\r\n const hiddenFsmElement = document.getElementById('fsm_' + config?.filter)\r\n if (activeSelectEl && (!hiddenFsmElement || hiddenFsmElement.style.display === 'none')) {\r\n activeSelectEl.value = activeSelectEl.getAttribute('data-selected')!\r\n activeSelectEl.onchange?.(new Event('change'))\r\n }\r\n }, [activeSelectEl, config])\r\n\r\n React.useEffect(() => {\r\n function ScreenerSelectOnChange(that: HTMLElement) {\r\n const filter = that.getAttribute('data-filter'),\r\n query = that.getAttribute('data-url'),\r\n queryWithFilter = that.getAttribute('data-url-selected'),\r\n el = document.getElementById('fs_' + filter) as HTMLInputElement,\r\n value = el.value\r\n let q = query\r\n\r\n if (value === 'range' || value === 'frange') {\r\n el.style.display = 'none'\r\n const customRange = document.getElementById('fsr_' + filter) as HTMLElement\r\n customRange.style.display = 'block'\r\n return\r\n } else if (value.includes('modal')) {\r\n ScreenerShowModal.call(document.getElementById('fs_' + filter))\r\n return\r\n } else if (value.length > 0) {\r\n const regexp = new RegExp(filter + '_selected_filter')\r\n q = queryWithFilter!.replace(regexp, filter + '_' + value)\r\n }\r\n window.location.href = 'screener.ashx?' + q\r\n }\r\n\r\n function ScreenerShowModal(this: any) {\r\n const filter = this.getAttribute('data-filter')\r\n const select = document.getElementById('fs_' + filter) as HTMLSelectElement\r\n setActiveSelectEl(select)\r\n dialogState.show()\r\n }\r\n\r\n const edits = Array.from(document.getElementsByClassName('js-custom-modal-edit')) as HTMLElement[]\r\n const unregisterEventFuncs = [] as Array<() => void>\r\n for (let i = 0; i < edits.length; i++) {\r\n const unregister = eventListenerRegister(edits[i], 'click', ScreenerShowModal)\r\n unregisterEventFuncs.push(unregister)\r\n }\r\n\r\n if (!isInitRef.current) {\r\n isInitRef.current = true\r\n const selects = Array.from(document.querySelectorAll('.filters-cells select, .screener-combo-text.is-selected'))\r\n for (let i = 0; i < selects.length; i++) {\r\n const select = selects[i] as HTMLSelectElement\r\n if (select.value === 'range' || select.value === 'frange') {\r\n ScreenerSelectOnChange(select)\r\n } else if (select.value === 'modal') {\r\n ScreenerRenderCustomModal(select)\r\n }\r\n }\r\n\r\n window.ScreenerSelectOnChange = ScreenerSelectOnChange\r\n }\r\n\r\n return () => {\r\n unregisterEventFuncs.forEach((unregister) => unregister())\r\n }\r\n }, [dialogState])\r\n\r\n return \r\n}\r\n","import React from 'react'\r\nimport { useSearchParams } from 'react-router-dom'\r\n\r\nimport {\r\n CustomDateRange,\r\n ITimeframeGroup,\r\n TimeframeBar,\r\n generatePathForTimeframeDateRange,\r\n getDateRangeGroupsWithHref,\r\n getDefaultDateRangeAnchorDate,\r\n getTimeframeFromDateRange,\r\n getTimeframeGroups,\r\n useCustomDateRangeDialog,\r\n useFavoriteTimeframes,\r\n} from '../../main/components/timeframe-bar'\r\nimport { TIMEFRAME } from '../../main/constants'\r\nimport { Instrument } from '../../main/types'\r\n\r\nfunction getSelectedTimeframeAndDateRange(urlQuery: { p?: string; dr?: string }) {\r\n const selectedTimeframe = (urlQuery.p ?? FinvizSettings.screenerCurrentTimeframe?.timeframe) as TIMEFRAME\r\n let selectedDateRange = urlQuery.dr\r\n if (!selectedDateRange && !urlQuery.p) {\r\n selectedDateRange = FinvizSettings.screenerCurrentTimeframe?.dateRange || undefined\r\n }\r\n\r\n return { selectedTimeframe, selectedDateRange }\r\n}\r\n\r\nexport function ScreenerTimeframeBar() {\r\n const isPremium = FinvizSettings.hasUserPremium\r\n const [searchParams] = useSearchParams()\r\n const { favoriteTimeframes, toggleFavoriteTimeframe } = useFavoriteTimeframes(isPremium)\r\n const currentQuery = React.useMemo(\r\n () => Object.fromEntries(searchParams) as { p?: string; dr?: string },\r\n [searchParams]\r\n )\r\n const containerRef = React.useRef(document.getElementById('screener-fullview-links')!)\r\n const { selectedTimeframe, selectedDateRange } = getSelectedTimeframeAndDateRange(currentQuery)\r\n\r\n React.useEffect(() => {\r\n containerRef.current.style.visibility = 'unset'\r\n }, [])\r\n\r\n const timeFrameGroupsWithHref = getTimeframeGroups(isPremium).map((timeFrameGroup: ITimeframeGroup) => ({\r\n label: timeFrameGroup.label,\r\n timeframes: timeFrameGroup.timeframes.map((timeFrame) => ({\r\n ...timeFrame,\r\n href: generatePathForTimeframeDateRange({\r\n isPremium,\r\n pathname: window.location.pathname,\r\n timeframe: timeFrame.value,\r\n utmCampaign: 'screener-charts-intraday',\r\n dateRangeQueryKey: 'dr',\r\n }),\r\n withReload: true,\r\n })),\r\n }))\r\n\r\n const dateRangeGroupsWithHref = getDateRangeGroupsWithHref({\r\n isPremium: FinvizSettings.hasUserPremium,\r\n customRange: selectedDateRange,\r\n isCustomAvailable: true,\r\n withReload: true,\r\n instrument: Instrument.Stock,\r\n generatePath: (dateRange) =>\r\n generatePathForTimeframeDateRange({\r\n isPremium,\r\n pathname: window.location.pathname,\r\n timeframe: dateRange.timeframe!,\r\n dateRange: dateRange.value,\r\n utmCampaign: 'screener-charts-daterange',\r\n dateRangeQueryKey: 'dr',\r\n }),\r\n })\r\n const { onDialogSubmit, customDateRangeDialogState, handleDateRangeSelect } = useCustomDateRangeDialog({\r\n instrument: Instrument.Stock,\r\n anchorDate: getDefaultDateRangeAnchorDate(),\r\n shouldReloadOnNavigate: true,\r\n pathGenerator: ({ dateRange, timeframe }) => ({\r\n pathname: window.location.pathname,\r\n search: new URLSearchParams({ ...currentQuery, p: timeframe, dr: dateRange ?? '' }).toString(),\r\n }),\r\n })\r\n\r\n return (\r\n <>\r\n {}}\r\n onDateRangeSelect={handleDateRangeSelect}\r\n onFavoriteTimeframeToggle={({ value }) => {\r\n toggleFavoriteTimeframe(value as TIMEFRAME)\r\n }}\r\n compactViewMaxBreakpointPx={0}\r\n isFavoritesEnabled={FinvizSettings.hasUserPremium}\r\n isTimeframeSelectEnabled={true}\r\n onCustomDateRangeClick={() => {\r\n if (isPremium) customDateRangeDialogState.show()\r\n }}\r\n />\r\n {\r\n const value = dateRange ?? ''\r\n const timeframe = getTimeframeFromDateRange({\r\n dateRange: value,\r\n instrument: Instrument.Stock,\r\n anchorDate: getDefaultDateRangeAnchorDate(),\r\n isPremium: isPremium,\r\n })\r\n return onDialogSubmit({ value, timeframe: timeframe })\r\n }}\r\n />\r\n \r\n )\r\n}\r\n","import ReactDOM from 'react-dom'\r\nimport { BrowserRouter } from 'react-router-dom'\r\n\r\nimport { ready } from '../shared/ready'\r\nimport { ScreenerPremium } from './screener-premium'\r\nimport { ScreenerTimeframeBar } from './screener-timeframe-bar'\r\n\r\nconst SCREENER_TIMEFRAME_REACT_ROOT_ID = 'screener-timeframe-container'\r\n\r\nconst screenerTimeframeReactMount = () => {\r\n const timeframeContainer = document.getElementById(SCREENER_TIMEFRAME_REACT_ROOT_ID)\r\n if (timeframeContainer) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n timeframeContainer\r\n )\r\n }\r\n}\r\n\r\nconst screenerTimeframeReactUnmount = () => {\r\n const timeframeContainer = document.getElementById(SCREENER_TIMEFRAME_REACT_ROOT_ID)\r\n if (timeframeContainer) ReactDOM.unmountComponentAtNode(timeframeContainer)\r\n}\r\n\r\nready(() => {\r\n const screener = document.getElementById('screener-react')\r\n if (screener && FinvizSettings.hasUserPremium) {\r\n ReactDOM.render(, screener)\r\n }\r\n screenerTimeframeReactMount()\r\n})\r\n\r\nwindow.ScreenerTimeframeReactMount = screenerTimeframeReactMount\r\nwindow.ScreenerTimeframeReactUnmount = screenerTimeframeReactUnmount\r\n","import classnames from 'classnames'\r\nimport { ForwardedRef, HTMLProps, PropsWithChildren, ReactNode, forwardRef } from 'react'\r\n\r\nimport { Icon } from './icon'\r\n\r\nexport enum ColorVariant {\r\n violet = 'violet',\r\n emerald = 'emerald',\r\n orange = 'orange',\r\n teal = 'teal',\r\n pink = 'pink',\r\n lime = 'lime',\r\n purple = 'purple',\r\n green = 'green',\r\n yellow = 'yellow',\r\n blue = 'blue',\r\n red = 'red',\r\n gray = 'gray',\r\n default = 'default',\r\n}\r\n\r\nexport enum CheckboxSize {\r\n none = '', // Do not set fixed size\r\n small = 'min-h-6 text-2xs', // 24px\r\n regular = 'min-h-7 text-sm', // 28px\r\n}\r\nexport type CheckboxSizeType = keyof typeof CheckboxSize\r\n\r\ninterface CheckboxProps extends Omit, 'label' | 'size'> {\r\n /**\r\n * Text that gets displayed on the right side of the checkbox\r\n */\r\n label?: ReactNode\r\n\r\n checked: boolean\r\n\r\n /**\r\n * Size of the checkbox\r\n *\r\n * @default \"regular\"\r\n */\r\n size?: CheckboxSizeType\r\n\r\n /**\r\n * Color of the checkbox\r\n *\r\n * @default \"default\"\r\n */\r\n color?: ColorVariant\r\n}\r\n\r\nfunction CheckboxComponent(\r\n {\r\n className,\r\n label,\r\n size = 'regular',\r\n color = ColorVariant.default,\r\n children,\r\n ...props\r\n }: PropsWithChildren,\r\n ref: ForwardedRef\r\n) {\r\n const checked = props.checked ?? props.defaultChecked\r\n\r\n return (\r\n \r\n
\r\n \r\n {checked && (\r\n \r\n )}\r\n
\r\n {label ?? children}\r\n \r\n )\r\n}\r\n\r\nexport const Checkbox = forwardRef(CheckboxComponent)\r\n","import classnames from 'classnames'\r\nimport { HTMLProps, PropsWithChildren, memo, useCallback, useLayoutEffect, useRef, useState } from 'react'\r\n\r\nexport interface Interaction {\r\n left: number\r\n top: number\r\n}\r\n\r\n/**\r\n * Clamp value between two bounds\r\n */\r\nfunction clamp(num: number, min = 0, max = 1) {\r\n return num > max ? max : num < min ? min : num\r\n}\r\n\r\n/**\r\n * Check if an event was triggered by touch\r\n */\r\nfunction isTouch(event: MouseEvent | TouchEvent): event is TouchEvent {\r\n return 'touches' in event\r\n}\r\n\r\n/**\r\n * Returns a relative position of the pointer inside the node's bounding box\r\n */\r\nfunction getRelativePosition(node: HTMLDivElement, event: MouseEvent | TouchEvent): Interaction {\r\n const rect = node.getBoundingClientRect()\r\n\r\n // Get user's pointer position from `touches` array if it's a `TouchEvent`\r\n const pointer = isTouch(event) ? event.touches[0] : (event as MouseEvent)\r\n\r\n return {\r\n left: clamp((pointer.pageX - (rect.left + window.pageXOffset)) / rect.width),\r\n top: clamp((pointer.pageY - (rect.top + window.pageYOffset)) / rect.height),\r\n }\r\n}\r\n\r\n/**\r\n * Browsers introduced an intervention, making touch events passive by default.\r\n * This workaround removes `preventDefault` call from the touch handlers.\r\n * @see https://github.com/facebook/react/issues/19651\r\n */\r\nfunction preventDefaultMove(event: MouseEvent | TouchEvent) {\r\n !isTouch(event) && event.preventDefault()\r\n}\r\n\r\ninterface Props {\r\n onMove: (interaction: Interaction) => void\r\n onKey: (offset: Interaction) => void\r\n}\r\n\r\nfunction DraggablePickerComponent({\r\n onMove,\r\n onKey,\r\n className,\r\n ...props\r\n}: PropsWithChildren & HTMLProps) {\r\n const container = useRef(null)\r\n const hasTouched = useRef(false)\r\n const [isDragging, setDragging] = useState(false)\r\n\r\n /**\r\n * Prevent mobile browsers from handling mouse events (conflicting with touch ones).\r\n * If we detected a touch interaction before, we prefer reacting to touch events only.\r\n */\r\n const isValid = useRef((event: MouseEvent | TouchEvent): boolean => {\r\n if (hasTouched.current && !isTouch(event)) return false\r\n if (!hasTouched.current) hasTouched.current = isTouch(event)\r\n return true\r\n })\r\n\r\n const handleMove = useCallback(\r\n (event: MouseEvent | TouchEvent) => {\r\n preventDefaultMove(event)\r\n\r\n // If user moves the pointer outside of the window or iframe bounds and release it there,\r\n // `mouseup`/`touchend` won't be fired. In order to stop the picker from following the cursor\r\n // after the user has moved the mouse/finger back to the document, we check `event.buttons`\r\n // and `event.touches`. It allows us to detect that the user is just moving his pointer\r\n // without pressing it down\r\n const isDown = isTouch(event) ? event.touches.length > 0 : event.buttons > 0\r\n\r\n if (isDown && container.current) {\r\n onMove(getRelativePosition(container.current, event))\r\n } else {\r\n setDragging(false)\r\n }\r\n },\r\n [onMove]\r\n )\r\n\r\n const handleMoveStart = useCallback(\r\n ({ nativeEvent }: React.MouseEvent | React.TouchEvent) => {\r\n preventDefaultMove(nativeEvent)\r\n\r\n if (!isValid.current(nativeEvent)) return\r\n\r\n // The node/ref must actually exist when user start an interaction.\r\n // We won't suppress the ESLint warning though, as it should probably be something to be aware of.\r\n onMove(getRelativePosition(container.current!, nativeEvent))\r\n setDragging(true)\r\n },\r\n [onMove]\r\n )\r\n\r\n const handleKeyDown = useCallback(\r\n (event: React.KeyboardEvent) => {\r\n const keyCode = event.which || event.keyCode\r\n\r\n // Ignore all keys except arrow ones\r\n if (keyCode < 37 || keyCode > 40) return\r\n // Do not scroll page by arrow keys when document is focused on the element\r\n event.preventDefault()\r\n // Send relative offset to the parent component.\r\n // We use codes (37←, 38↑, 39→, 40↓) instead of keys ('ArrowRight', 'ArrowDown', etc)\r\n // to reduce the size of the library\r\n onKey({\r\n left: keyCode === 39 ? 0.05 : keyCode === 37 ? -0.05 : 0,\r\n top: keyCode === 40 ? 0.05 : keyCode === 38 ? -0.05 : 0,\r\n })\r\n },\r\n [onKey]\r\n )\r\n\r\n const handleMoveEnd = useCallback(() => setDragging(false), [])\r\n\r\n const toggleDocumentEvents = useCallback(\r\n (state) => {\r\n // add or remove additional pointer event listeners\r\n const toggleEvent = state ? window.addEventListener : window.removeEventListener\r\n toggleEvent(hasTouched.current ? 'touchmove' : 'mousemove', handleMove)\r\n toggleEvent(hasTouched.current ? 'touchend' : 'mouseup', handleMoveEnd)\r\n },\r\n [handleMove, handleMoveEnd]\r\n )\r\n\r\n useLayoutEffect(() => {\r\n toggleDocumentEvents(isDragging)\r\n return () => {\r\n isDragging && toggleDocumentEvents(false)\r\n }\r\n }, [isDragging, toggleDocumentEvents])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const DraggablePicker = memo(DraggablePickerComponent)\r\n","interface PointerProps {\r\n className?: string\r\n top?: number\r\n left: number\r\n color: string\r\n}\r\n\r\nexport function Pointer({ color, left, top = 0.5 }: PointerProps) {\r\n return (\r\n \r\n
\r\n
\r\n )\r\n}\r\n","/**\r\n * Keep this file in sync with `app/utils/colors.ts` in charts repo\r\n * */\r\n\r\nexport interface RGBA {\r\n r: number\r\n g: number\r\n b: number\r\n a: number\r\n}\r\n\r\nexport interface HSVA {\r\n h: number\r\n s: number\r\n v: number\r\n a: number\r\n}\r\n\r\nexport interface HSLA {\r\n h: number\r\n s: number\r\n l: number\r\n a: number\r\n}\r\n\r\n/**\r\n * Convert Hex string to RGBA object.\r\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\r\n *\r\n * Input: color in hex3, hex4, hex6 or hex8 format (#fff)\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hexStringToRGBA(hexString: string): RGBA {\r\n const hexColor = removeHashSymbol(hexString)\r\n let r: string | number = 0\r\n let g: string | number = 0\r\n let b: string | number = 0\r\n let a: string | number = 255\r\n\r\n // 3 digits\r\n if (hexColor.length === 3 || hexColor.length === 4) {\r\n r = '0x' + hexColor[0] + hexColor[0]\r\n g = '0x' + hexColor[1] + hexColor[1]\r\n b = '0x' + hexColor[2] + hexColor[2]\r\n // Get channel if defined\r\n a = hexColor.length === 4 ? '0x' + hexColor[3] + hexColor[3] : a\r\n\r\n // 6 digits\r\n } else if (hexColor.length === 6 || hexColor.length === 8) {\r\n r = '0x' + hexColor[0] + hexColor[1]\r\n g = '0x' + hexColor[2] + hexColor[3]\r\n b = '0x' + hexColor[4] + hexColor[5]\r\n // Get channel if defined\r\n a = hexColor.length === 8 ? '0x' + hexColor[6] + hexColor[7] : a\r\n }\r\n\r\n return { r: Number(r), g: Number(g), b: Number(b), a: Math.min(Math.round((Number(a) / 255) * 100) / 100, 1) }\r\n}\r\n\r\n/**\r\n * Convert HEX string to HSVA color representation.\r\n *\r\n * Input: color in hex3, hex4, hex6 or hex8 format (#fff)\r\n *\r\n * Output: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n */\r\nexport function hexStringToHSVA(hexString: string) {\r\n return rgbaToHSVA(hexStringToRGBA(hexString))\r\n}\r\n\r\n/**\r\n * Convert HEX string to HSLA color representation.\r\n *\r\n * Input: color in hex3, hex4, hex6 or hex8 format (#fff)\r\n *\r\n * Output: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n */\r\nexport function hexStringToHSLA(hexString: string) {\r\n return rgbaToHSLA(hexStringToRGBA(hexString))\r\n}\r\n\r\n/**\r\n * Convert alpha value to hex value\r\n *\r\n * Input: [0,1]\r\n *\r\n * Output: alpha in HEX format\r\n */\r\nexport function alphaToHex(alpha: number) {\r\n return Math.max(Math.min(Math.round(alpha * 255), 255), 0)\r\n .toString(16)\r\n .padStart(2, '0')\r\n}\r\n\r\n/**\r\n * Convert RGBA color to HEX string.\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: color in hex6 or hex8 depending on whether or not alpha is enabled\r\n */\r\nexport function rgbaToHexString(color: RGBA, alpha = false) {\r\n const r = color.r.toString(16)\r\n const g = color.g.toString(16)\r\n const b = color.b.toString(16)\r\n const hexString = '#' + r.padStart(2, '0') + g.padStart(2, '0') + b.padStart(2, '0')\r\n\r\n if (!alpha || color.a === 1) {\r\n return hexString\r\n }\r\n\r\n return `${hexString}${alphaToHex(color.a)}`\r\n}\r\n\r\n/**\r\n * Convert HSVA object to HEX string\r\n *\r\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\r\n *\r\n * Input: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hsvaToHEXString(color: HSVA, alpha = false) {\r\n const rgbaColor = hsvaToRGBA(color)\r\n\r\n return rgbaToHexString(rgbaColor, alpha)\r\n}\r\n\r\n/**\r\n * Convert HSLA object to HEX string\r\n *\r\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\r\n *\r\n * Input: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hslaToHexString(color: HSLA, alpha = false) {\r\n const rgbaColor = hslaToRGBA(color)\r\n\r\n return rgbaToHexString(rgbaColor, alpha)\r\n}\r\n\r\n/**\r\n * Convert RGBA color to HSVA\r\n * @see https://stackoverflow.com/a/54070620/6662683\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n */\r\nexport function rgbaToHSVA(color: RGBA): HSVA {\r\n const r = color.r / 255\r\n const g = color.g / 255\r\n const b = color.b / 255\r\n\r\n const v = Math.max(r, g, b)\r\n const c = v - Math.min(r, g, b)\r\n const h = c && (v === r ? (g - b) / c : v === g ? 2 + (b - r) / c : 4 + (r - g) / c)\r\n\r\n return {\r\n h: 60 * (h < 0 ? h + 6 : h),\r\n s: v ? c / v : 0,\r\n v: v,\r\n a: color.a,\r\n }\r\n}\r\n\r\n/**\r\n * Convert RGBA to HSLA\r\n * @see https://stackoverflow.com/a/54071699/6662683\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n */\r\nexport function rgbaToHSLA(color: RGBA): HSLA {\r\n const r = color.r / 255\r\n const g = color.g / 255\r\n const b = color.b / 255\r\n\r\n const v = Math.max(r, g, b)\r\n const c = v - Math.min(r, g, b)\r\n const f = 1 - Math.abs(v + v - c - 1)\r\n const h = c && (v === r ? (g - b) / c : v === g ? 2 + (b - r) / c : 4 + (r - g) / c)\r\n\r\n return {\r\n h: 60 * (h < 0 ? h + 6 : h),\r\n s: f ? c / f : 0,\r\n l: (v + v - c) / 2,\r\n a: color.a,\r\n }\r\n}\r\n\r\n/**\r\n * Convert HSVA color to RGBA\r\n * @see https://stackoverflow.com/a/54024653/6662683\r\n *\r\n * Input: { h: [0,360], s: [0,1], v: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hsvaToRGBA(color: HSVA): RGBA {\r\n const f = (n: number, k = (n + color.h / 60) % 6) => color.v - color.v * color.s * Math.max(Math.min(k, 4 - k, 1), 0)\r\n\r\n return {\r\n r: Math.round(f(5) * 255),\r\n g: Math.round(f(3) * 255),\r\n b: Math.round(f(1) * 255),\r\n a: Math.round(color.a * 100) / 100,\r\n }\r\n}\r\n\r\n/**\r\n * Convert HSLA color to RGBA\r\n * @see https://stackoverflow.com/a/54014428/6662683\r\n *\r\n * Input: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function hslaToRGBA(color: HSLA): RGBA {\r\n const a = color.s * Math.min(color.l, 1 - color.l)\r\n const f = (n: number, k = (n + color.h / 30) % 12) => color.l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\r\n\r\n return {\r\n r: Math.round(f(0) * 255),\r\n g: Math.round(f(8) * 255),\r\n b: Math.round(f(4) * 255),\r\n a: color.a,\r\n }\r\n}\r\n\r\n/**\r\n * Convert RGBA color to rgba() string\r\n *\r\n * Input: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n *\r\n * Output: rgba(r, g, b, a)\r\n */\r\nexport function rgbaToRGBAString(color: RGBA) {\r\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`\r\n}\r\n\r\n/**\r\n * Convert rgba() string to RGBA color\r\n *\r\n * Input: rgba(r, g, b, a)\r\n *\r\n * Output: { r: [0,255], g: [0,255], b: [0,255], a: [0,1]}\r\n */\r\nexport function rgbaStringToObject(color: string) {\r\n const colorParts = /^rgba?\\(([0-9]{1,3})[ ,]+([0-9]{1,3})[ ,]+([0-9]{1,3})[ ,]*([01].?[0-9]*)?\\)$/.exec(color)\r\n const [red, green, blue, alpha = '1'] = colorParts?.slice(1) || [0, 0, 0, 1].map(String)\r\n return {\r\n r: Number.parseInt(red),\r\n g: Number.parseInt(green),\r\n b: Number.parseInt(blue),\r\n a: Number.parseFloat(alpha),\r\n }\r\n}\r\n\r\n/**\r\n * Convert HSLA color to hsla() string\r\n *\r\n * Input: { h: [0,360], s: [0,1], l: [0,1], a: [0,1]}\r\n *\r\n * Output: hsla(h, s, l, a)\r\n */\r\nexport function hslaToHSLAString(color: HSLA) {\r\n return `hsla(${Math.round(color.h)}, ${Math.round(color.s * 10000) / 100}%, ${Math.round(color.l * 10000) / 100}%, ${\r\n color.a\r\n })`\r\n}\r\n\r\nexport function removeHashSymbol(strColor: string) {\r\n return strColor.replace(/#/g, '')\r\n}\r\n\r\n/**\r\n * Check if the param is a valid color by setting it as style\r\n */\r\nexport function isValidColor(strColor: string) {\r\n const isRgb = strColor.startsWith('rgba')\r\n const s = new Option().style\r\n\r\n s.color = isRgb ? strColor : `#${removeHashSymbol(strColor)}`\r\n\r\n return s.color !== ''\r\n}\r\n\r\n/**\r\n * Normalize color to be a hex value\r\n */\r\nexport function convertColorToHEX(strColor: string) {\r\n const isRgb = getIsRgb(strColor)\r\n\r\n if (isRgb) {\r\n return rgbaToHexString(rgbaStringToObject(strColor), true)\r\n }\r\n\r\n return strColor\r\n}\r\n\r\n/**\r\n * Returns true if color is rgb or rgba\r\n */\r\nexport function getIsRgb(strColor: string, isAlphaAllowed = true) {\r\n const rgbKeys = ['rgb']\r\n if (isAlphaAllowed) {\r\n rgbKeys.push('rgba')\r\n }\r\n return rgbKeys.some((startsWith) => strColor.startsWith(startsWith))\r\n}\r\n\r\n/**\r\n * Convert any color format to HSVA (internal color picker representation)\r\n */\r\nexport function getHSVAFromColor(strColor: string) {\r\n if (getIsRgb(strColor)) {\r\n return rgbaToHSVA(rgbaStringToObject(strColor))\r\n }\r\n\r\n return hexStringToHSVA(strColor)\r\n}\r\n\r\n/**\r\n * Stringify HSVA color representation into a output format\r\n */\r\nexport function stringifyHSVAColor(color: HSVA, output: 'rgba' | 'hex', canSelectAlpha?: boolean) {\r\n switch (output) {\r\n case 'rgba':\r\n return rgbaToRGBAString(hsvaToRGBA(color))\r\n default:\r\n return hsvaToHEXString(color, canSelectAlpha)\r\n }\r\n}\r\n\r\n/**\r\n * Get luma value from RGBA color using the Rec. 709 coefficients\r\n * @see https://en.wikipedia.org/wiki/Luma_%28video%29\r\n *\r\n * If luma is >= 165 the foreground color should be dark\r\n */\r\nexport function getLumaFromRGBA(color: RGBA) {\r\n return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b\r\n}\r\n\r\n/**\r\n * Checks if luma is >= 165 or alpha < 0.3\r\n */\r\nexport function getIsColorTooLightOrTransparent(color: RGBA) {\r\n return getLumaFromRGBA(color) >= 165 || color.a < 0.5\r\n}\r\n\r\n/**\r\n * Set specific alpha for a hex color\r\n */\r\nexport function getHEXWithSpecificAplha(color: string, alpha = 1) {\r\n const rgbaColor = hexStringToRGBA(color)\r\n return rgbaToHexString({ ...rgbaColor, a: alpha }, true)\r\n}\r\n\r\n/**\r\n * Get rgba from valid color string\r\n */\r\nexport function getRGBAValueFromValidColorString(value: string) {\r\n if (getIsRgb(value)) return rgbaToRGBAString(rgbaStringToObject(value))\r\n return rgbaToRGBAString(hexStringToRGBA(value))\r\n}\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport { DraggablePicker, Interaction } from './draggable'\r\nimport { Pointer } from './pointer'\r\nimport { HSVA, hsvaToHEXString } from './util'\r\n\r\ninterface LightnessProps {\r\n color: HSVA\r\n onChange: (color: HSVA) => void\r\n}\r\n\r\nexport function Alpha({ color, onChange }: LightnessProps) {\r\n const changeLightness = useCallback((pos: Interaction) => onChange({ ...color, a: 1 - pos.left }), [onChange, color])\r\n\r\n const gradientPreview = useMemo(() => {\r\n const gradientFrom = hsvaToHEXString({ ...color, a: 1 })\r\n const gradientTo = hsvaToHEXString({ ...color, a: 0 }, true)\r\n\r\n return `linear-gradient(90deg, ${gradientFrom}, ${gradientTo})`\r\n // Don’t recalculate when alpha changes\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [color.h, color.s, color.v])\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import { Icon } from '../icon'\r\nimport { HSVA, hexStringToHSVA } from './util'\r\n\r\nconst DEFAULT_COLORS = [\r\n { title: 'Rose', value: '#f43f5e' },\r\n { title: 'Pink', value: '#db2777' },\r\n { title: 'Fuchsia', value: '#c026d3' },\r\n { title: 'Purple', value: '#9333ea' },\r\n { title: 'Violet', value: '#7c3aed' },\r\n { title: 'Indigo', value: '#4f46e5' },\r\n { title: 'Blue', value: '#2563eb' },\r\n { title: 'Light Blue', value: '#0284c7' },\r\n { title: 'Cyan', value: '#0891b2' },\r\n { title: 'Teal', value: '#0d9488' },\r\n { title: 'Emerald', value: '#059669' },\r\n { title: 'Green', value: '#16a34a' },\r\n { title: 'Lime', value: '#65a30d' },\r\n { title: 'Yellow', value: '#eab308' },\r\n { title: 'Amber', value: '#d97706' },\r\n { title: 'Red', value: '#dc2626' },\r\n]\r\n\r\ninterface ColorItem {\r\n /**\r\n * Name of the color\r\n */\r\n title: string\r\n\r\n /**\r\n * Hex value\r\n */\r\n value: string\r\n}\r\n\r\ninterface ColorPaletteProps {\r\n /**\r\n * Current selected color in HEX format (supports HEX8 for alpha)\r\n */\r\n color: string\r\n\r\n /**\r\n * List of colors to display in the palette\r\n *\r\n * @default DEFAULT_COLORS\r\n */\r\n colors?: ColorItem[]\r\n\r\n /**\r\n * Callback when user picks a color\r\n */\r\n onChange: (color: string, originalColor: HSVA) => void\r\n}\r\n\r\nexport function ColorPalette({ color, colors = DEFAULT_COLORS, onChange }: ColorPaletteProps) {\r\n const lowerCaseColor = color.toLowerCase()\r\n\r\n return (\r\n
\r\n {colors.map((colorObj) => {\r\n const isSelected = lowerCaseColor.startsWith(colorObj.value)\r\n return (\r\n onChange(colorObj.value, hexStringToHSVA(colorObj.value))}\r\n >\r\n {isSelected && }\r\n
\r\n )\r\n })}\r\n
\r\n )\r\n}\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport { DraggablePicker, Interaction } from './draggable'\r\nimport { Pointer } from './pointer'\r\nimport { HSVA, hsvaToHEXString } from './util'\r\n\r\ninterface HueSaturationProps {\r\n color: HSVA\r\n onChange: (color: HSVA) => void\r\n}\r\n\r\nfunction getPositionFromHSLA(color: HSVA) {\r\n return {\r\n left: color.h / 360,\r\n top: 1 - color.s,\r\n }\r\n}\r\n\r\nexport function HueSaturation({ color, onChange }: HueSaturationProps) {\r\n const position = useMemo(() => getPositionFromHSLA(color), [color])\r\n\r\n const colorPreview = useMemo(() => hsvaToHEXString({ h: color.h, s: color.s, v: 1, a: 1 }), [color.h, color.s])\r\n\r\n const changeSaturation = useCallback(\r\n (pos: Interaction) =>\r\n onChange({\r\n h: Math.round(pos.left * 360),\r\n s: 1 - pos.top,\r\n v: 1,\r\n a: color.a,\r\n }),\r\n [color.a, onChange]\r\n )\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useMemo } from 'react'\r\n\r\nimport { DraggablePicker, Interaction } from './draggable'\r\nimport { Pointer } from './pointer'\r\nimport { HSVA, hsvaToHEXString } from './util'\r\n\r\ninterface LightnessProps {\r\n color: HSVA\r\n onChange: (color: HSVA) => void\r\n}\r\n\r\nexport function Lightness({ color, onChange }: LightnessProps) {\r\n const changeLightness = useCallback((pos: Interaction) => onChange({ ...color, v: 1 - pos.left }), [onChange, color])\r\n\r\n const colorPreview = useMemo(\r\n () => hsvaToHEXString({ h: color.h, s: color.s, v: color.v, a: 1 }),\r\n [color.h, color.s, color.v]\r\n )\r\n\r\n const gradientPreview = useMemo(() => {\r\n const gradientFrom = hsvaToHEXString({ h: color.h, s: color.s, v: 1, a: 1 })\r\n const gradientTo = hsvaToHEXString({ h: color.h, s: color.s, v: 0, a: 1 })\r\n\r\n return `linear-gradient(90deg, ${gradientFrom}, ${gradientTo})`\r\n }, [color.h, color.s])\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { Icon, IconNameType, isValidIconName } from '../icon'\r\nimport { getIsColorTooLightOrTransparent, hexStringToRGBA } from './util'\r\n\r\ninterface ColorPreviewProps {\r\n /**\r\n * Name of an icon or JSX.Element\r\n */\r\n icon?: JSX.Element | IconNameType\r\n\r\n /**\r\n * One or more colors to show in the preview\r\n */\r\n color: string | string[]\r\n\r\n /**\r\n * Wrapper classname\r\n */\r\n className?: string\r\n}\r\n\r\nexport function ColorPreview({ icon, color, className }: ColorPreviewProps) {\r\n const colors = Array.isArray(color) ? color : [color]\r\n const isTooLight = getIsColorTooLightOrTransparent(hexStringToRGBA(colors[0]))\r\n return (\r\n \r\n {icon && (\r\n
\r\n {isValidIconName(icon) ? (\r\n \r\n ) : (\r\n icon\r\n )}\r\n
\r\n )}\r\n {colors.map((color, index) => (\r\n //   has to be there because of a bug on safari which ignores h-full when empty element\r\n
\r\n  \r\n
\r\n ))}\r\n
\r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React, { ForwardedRef, useCallback, useEffect, useState } from 'react'\r\n\r\nimport { Input, InputComponentProps } from '../input'\r\nimport { ColorPreview } from './color-preview'\r\nimport { ColorPickerProps } from './picker'\r\nimport * as colorUtil from './util'\r\n\r\ninterface PickerInputProps extends Omit {\r\n color: ColorPickerProps['color']\r\n onChange: ColorPickerProps['onChange']\r\n\r\n /*\r\n * Is color preview square visible\r\n *\r\n * @default true\r\n * */\r\n hasColorPreview?: boolean\r\n}\r\nexport const PickerInput = React.forwardRef(\r\n (\r\n { color, inputClass, hasColorPreview = true, onChange, ...props }: PickerInputProps,\r\n ref: ForwardedRef\r\n ) => {\r\n const [colorInput, setColorInput] = useState(colorUtil.removeHashSymbol(color))\r\n const isRgba = colorUtil.getIsRgb(colorInput)\r\n\r\n useEffect(() => {\r\n setColorInput(colorUtil.removeHashSymbol(color))\r\n }, [color])\r\n\r\n const handleColorInputChange = useCallback(\r\n (event) => {\r\n const value = colorUtil.removeHashSymbol(event.currentTarget.value)\r\n const isRgba = value.startsWith('rgba')\r\n const colorValue = isRgba ? value : `#${value}`\r\n\r\n setColorInput(value)\r\n if ((value.length >= 6 || (isRgba && value.length >= 16)) && colorUtil.isValidColor(colorValue)) {\r\n onChange(colorValue, colorUtil.hexStringToHSVA(colorValue))\r\n }\r\n },\r\n [onChange]\r\n )\r\n return (\r\n \r\n {hasColorPreview && (\r\n
\r\n \r\n
\r\n )}\r\n {!isRgba && #}\r\n
\r\n }\r\n onChange={handleColorInputChange}\r\n />\r\n )\r\n }\r\n)\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { Button } from '../button'\r\nimport { Popover, PopoverTrigger, usePopoverState } from '../popover'\r\nimport { Alpha } from './alpha'\r\nimport { ColorPalette } from './color-palette'\r\nimport { HueSaturation } from './hue-saturation'\r\nimport { Lightness } from './lightness'\r\nimport { PickerInput } from './picker-input'\r\nimport * as colorUtil from './util'\r\n\r\nexport interface ColorPickerProps {\r\n /**\r\n * The selected color in HEX format (supports HEX8 for alpha)\r\n */\r\n color: string\r\n\r\n /**\r\n * Whether or not the user is able to select custom color\r\n *\r\n * @default true\r\n */\r\n canSelectCustom?: boolean\r\n\r\n /**\r\n * Whether or not the user is able to change alpha channel. Only applicable\r\n * when `canSelectCustom` is true\r\n *\r\n * @default true\r\n */\r\n canSelectAlpha?: boolean\r\n\r\n /**\r\n * Sets the output format for the color picker\r\n *\r\n * @default 'hex'\r\n */\r\n outputFormat?: 'hex' | 'rgba'\r\n\r\n /**\r\n * Callback when user changes color. Use the second parameter to do color space\r\n * conversions otherwise the color could differ due to rounding\r\n */\r\n onChange: (color: string, originalColor: colorUtil.HSVA) => void\r\n\r\n /**\r\n * Callback when user clicks on a palette item. Used to close popover\r\n */\r\n onPaletteItemClick?: () => void\r\n}\r\n\r\nexport function ColorPicker({\r\n color,\r\n canSelectCustom = true,\r\n canSelectAlpha = true,\r\n outputFormat = 'hex',\r\n onChange,\r\n onPaletteItemClick,\r\n}: ColorPickerProps) {\r\n const cachedColor = useRef(color)\r\n const [hsvaColor, setColor] = useState(colorUtil.getHSVAFromColor(color))\r\n const popover = Ariakit.usePopoverContext()\r\n const input = popover?.useState('disclosureElement')\r\n\r\n /**\r\n * Update state if the color from outside changed\r\n */\r\n useEffect(() => {\r\n const currentColor = colorUtil.removeHashSymbol(cachedColor.current)\r\n const newColor = colorUtil.removeHashSymbol(color)\r\n\r\n if (currentColor === newColor || !colorUtil.isValidColor(newColor)) return\r\n\r\n cachedColor.current = color\r\n setColor(colorUtil.getHSVAFromColor(color))\r\n }, [color])\r\n\r\n /**\r\n * Handle color change\r\n * 1. update cache so we can correctly check when outside color updates\r\n * 2. Update internal color representation\r\n * 3. call onChange with string color\r\n */\r\n const onChangeCallback = useCallback(\r\n (color: colorUtil.HSVA) => {\r\n const stringColor = colorUtil.stringifyHSVAColor(color, outputFormat, canSelectAlpha)\r\n cachedColor.current = stringColor\r\n onChange(stringColor, color)\r\n setColor(color)\r\n },\r\n [onChange, canSelectAlpha, outputFormat]\r\n )\r\n\r\n const onSetCustomCodeClick = useCallback(() => {\r\n const value = prompt('Enter a color code')?.trim()\r\n\r\n if (!value) return\r\n\r\n const isValid = colorUtil.isValidColor(value)\r\n\r\n if (!isValid) {\r\n return alert('The code is not a valid color')\r\n }\r\n\r\n onChangeCallback(colorUtil.getHSVAFromColor(value))\r\n }, [onChangeCallback])\r\n\r\n return (\r\n
\r\n {canSelectCustom && (\r\n <>\r\n {isMobile() && (\r\n \r\n )}\r\n \r\n \r\n\r\n {canSelectAlpha && }\r\n \r\n )}\r\n\r\n \r\n {\r\n input?.focus({ preventScroll: true })\r\n onPaletteItemClick?.()\r\n onChangeCallback({ ...orignalColor, a: hsvaColor.a })\r\n }}\r\n />\r\n
\r\n \r\n )\r\n}\r\n\r\ninterface InputColorPickerProps extends ColorPickerProps {\r\n /**\r\n * Label for the input\r\n */\r\n label?: ReactNode\r\n inputDataTestId?: string\r\n}\r\n\r\nexport function InputColorPicker({ label, inputDataTestId, onChange, ...props }: InputColorPickerProps) {\r\n const popoverState = usePopoverState()\r\n const canSelectCustom = props.canSelectCustom !== false\r\n const isMobileDevice = isMobile()\r\n\r\n return (\r\n <>\r\n \r\n }\r\n />\r\n \r\n \r\n {\r\n if (canSelectCustom) return\r\n popoverState.hide()\r\n }}\r\n />\r\n \r\n \r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { Button, ButtonComponentProps, ButtonRounding, ButtonSizeType } from '../button'\r\nimport { ButtonGroup } from '../button-group'\r\nimport { IconNameType } from '../icon'\r\nimport { Popover, PopoverTrigger, usePopoverState } from '../popover'\r\nimport { ColorPreview } from './color-preview'\r\nimport { ColorPicker, ColorPickerProps } from './picker'\r\nimport { PickerInput } from './picker-input'\r\nimport * as colorUtil from './util'\r\n\r\ninterface MultiColorPickerProps extends ColorPickerProps {\r\n /**\r\n * Label for color text input\r\n *\r\n * @default undefined\r\n */\r\n colorInputLabel?: string\r\n}\r\n\r\nexport function MultiColorPicker({\r\n colorInputLabel,\r\n onChange,\r\n canSelectCustom = true,\r\n ...props\r\n}: MultiColorPickerProps) {\r\n const isMobileDevice = isMobile()\r\n\r\n return (\r\n <>\r\n {canSelectCustom && !isMobileDevice && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n {}} />\r\n \r\n \r\n )\r\n}\r\n\r\ninterface ColorTabButtonProps extends ButtonComponentProps {\r\n /*\r\n * Preview color\r\n * */\r\n color: string\r\n}\r\n\r\nexport function ColorTabButton({ color, children, ...props }: ColorTabButtonProps) {\r\n return (\r\n }\r\n {...props}\r\n >\r\n {children}\r\n \r\n )\r\n}\r\n\r\ntype ButtonColorProperties = { color: string; label: string }\r\n\r\ninterface ButtonColorPickerProps\r\n extends Omit {\r\n /**\r\n * Temporary prop to enable/disable multi picker funcionality,\r\n * in the future we'll only use secondaryColor prop to decide if the picker is multi picker or not\r\n *\r\n * @default undefined\r\n */\r\n isMultiPicker?: boolean\r\n\r\n /**\r\n * Button classname\r\n */\r\n className?: string\r\n\r\n /**\r\n * Array of objects with color and value\r\n */\r\n colors: ColorType[]\r\n\r\n /**\r\n * Color onchange callback\r\n */\r\n onChange: (colors: ColorType[], originalColor: colorUtil.HSVA) => void\r\n\r\n /**\r\n * Button size\r\n *\r\n * @default undefined\r\n */\r\n size?: ButtonSizeType\r\n /**\r\n * Label for color text input\r\n *\r\n * @default undefined\r\n */\r\n colorInputLabel?: string\r\n\r\n /**\r\n * Name of an icon or JSX.Element\r\n */\r\n icon?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Identifier for e2e testing\r\n *\r\n * @default undefined\r\n */\r\n buttonPickerDataTestId?: string\r\n}\r\n\r\nexport function ButtonColorPicker({\r\n size,\r\n icon,\r\n colors,\r\n className,\r\n onChange,\r\n buttonPickerDataTestId,\r\n ...props\r\n}: ButtonColorPickerProps) {\r\n const popoverState = usePopoverState()\r\n const isOpen = popoverState.useState('open')\r\n const isMultiPicker = !!props.isMultiPicker && colors.length > 1\r\n const [activeColorIndex, setActiveColorIndex] = React.useState(0)\r\n const handleColorChange = React.useCallback(\r\n (color: string, originalColor: colorUtil.HSVA) => {\r\n onChange(\r\n colors.map((colorObject, index) => (index === activeColorIndex ? { ...colorObject, color } : colorObject)),\r\n originalColor\r\n )\r\n },\r\n [activeColorIndex, colors, onChange]\r\n )\r\n return (\r\n <>\r\n \r\n color)}\r\n className={classnames('h-full w-full', ButtonRounding.small)}\r\n />\r\n \r\n \r\n {isMultiPicker && (\r\n
\r\n \r\n {colors.map(({ color, label }, index) => (\r\n setActiveColorIndex(index)}\r\n >\r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n )\r\n}\r\n","import copy from 'copy-to-clipboard'\r\nimport React from 'react'\r\n\r\nimport { Button } from '../button'\r\nimport { InputProps, Textarea } from '../input'\r\n\r\ninterface Props extends Pick {\r\n className?: string\r\n text: string\r\n bottomLeftContent?: React.ReactNode\r\n}\r\n\r\nexport const CopyToClipboard: React.FC = ({ className, label, text, bottomLeftContent }) => {\r\n const [isCopied, setIsCopied] = React.useState(false)\r\n\r\n const handleCopyToClipboard = React.useCallback(() => {\r\n setIsCopied(true)\r\n copy(text)\r\n }, [text])\r\n\r\n React.useEffect(() => {\r\n let timeout: number\r\n const resetTimer = () => {\r\n if (!timeout) return\r\n clearTimeout(timeout)\r\n }\r\n if (isCopied) {\r\n resetTimer()\r\n timeout = window.setTimeout(() => {\r\n setIsCopied(false)\r\n }, 2000)\r\n }\r\n\r\n return () => {\r\n resetTimer()\r\n }\r\n }, [isCopied])\r\n\r\n return (\r\n
\r\n e.currentTarget.select()}\r\n inputClass=\"h-12\"\r\n data-testid=\"copy-to-clipboard-textarea\"\r\n value={text}\r\n />\r\n
\r\n {bottomLeftContent &&
{bottomLeftContent}
}\r\n \r\n {isCopied ? 'Copied' : 'Copy'}\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nexport interface DelayedProps {\r\n /**\r\n * The delay in milliseconds before the component is rendered.\r\n *\r\n * @default 300\r\n */\r\n delay?: number\r\n\r\n /**\r\n * Delay in milliseconds before rendering timeout state.\r\n */\r\n timeout?: number\r\n\r\n /**\r\n * Throw on timeout (suspense)\r\n */\r\n throwOnTimeout?: boolean\r\n\r\n /**\r\n * Component visible during the delay.\r\n * If rendering text, wrap it in a `span` to prevent error — see PR#608\r\n */\r\n delayComponent?: React.ReactNode\r\n\r\n /**\r\n * Component visible when timeout is over.\r\n * If rendering text, wrap it in a `span` to prevent error — see PR#608\r\n */\r\n timeoutComponent?: React.ReactNode\r\n\r\n /**\r\n * Component visible when delay is over.\r\n * If rendering text, wrap it in a `span` to prevent error — see PR#608\r\n */\r\n children?: React.ReactNode\r\n}\r\n\r\nexport function Delayed({\r\n delay = 300,\r\n timeout = 0,\r\n throwOnTimeout = false,\r\n delayComponent,\r\n timeoutComponent,\r\n children,\r\n}: DelayedProps) {\r\n const [visible, setVisible] = React.useState(false)\r\n const [hasTimedOut, setHasTimedOut] = React.useState(false)\r\n\r\n React.useEffect(() => {\r\n const visibilityTimeout = window.setTimeout(() => setVisible(true), delay)\r\n\r\n let failedTimeout: number\r\n if (timeout > 0) {\r\n failedTimeout = window.setTimeout(() => {\r\n setHasTimedOut(true)\r\n if (throwOnTimeout) throw new Error()\r\n }, timeout)\r\n }\r\n\r\n return () => {\r\n clearTimeout(visibilityTimeout)\r\n clearTimeout(failedTimeout)\r\n }\r\n }, [delay, timeout, throwOnTimeout])\r\n\r\n if (!visible) return <>{delayComponent}\r\n\r\n if (hasTimedOut) {\r\n return <>{timeoutComponent}\r\n }\r\n\r\n return <>{children}\r\n}\r\n","import React from 'react'\r\n\r\nimport { DropdownStateReturn } from '../components/dropdown'\r\nimport { PopoverStateReturn } from '../components/toolbar/popover/hooks'\r\nimport { useWindowSize } from './use-window-size'\r\n\r\ntype Props = {\r\n maxHeightLimit: number\r\n hasViewportHeightLimit: boolean\r\n offsets: [number, number]\r\n state: DropdownStateReturn | PopoverStateReturn\r\n}\r\n\r\nconst MAX_HEIGHT_PROPERTY = '--popover-max-height'\r\nconst POPOVER_HEIGHT_LIMIT_STYLE = {\r\n maxHeight: `calc(var(${MAX_HEIGHT_PROPERTY}) - env(safe-area-inset-bottom))`,\r\n}\r\n\r\n/**\r\n * Limit popover height to be always in viewport is `hasViewportHeightLimit` is true\r\n */\r\nexport function usePopoverMaxHeight({ maxHeightLimit, hasViewportHeightLimit, offsets, state }: Props) {\r\n const { innerHeight } = useWindowSize({ isWatching: state.visible || state.animating })\r\n const buttonElement = state.unstable_referenceRef.current\r\n\r\n React.useEffect(() => {\r\n if (!buttonElement || !state.visible || !hasViewportHeightLimit) return\r\n\r\n // calculate height\r\n const buttonRect = buttonElement.getBoundingClientRect()\r\n const [, offsetY] = offsets\r\n let elementMaxHeight = 'auto'\r\n if (state.placement.startsWith('bottom')) {\r\n let height = innerHeight - buttonRect.bottom - offsetY * 2\r\n // when used on pages where is scrollable content, buttonRect.bottom is sometimes negative\r\n // in that case we need to subtract window.scrollY\r\n if (buttonRect.bottom < 0) height -= window.scrollY\r\n elementMaxHeight = `${Math.min(height, maxHeightLimit)}px`\r\n } else {\r\n const height = buttonRect.top - offsetY * 2\r\n elementMaxHeight = `${Math.min(height, maxHeightLimit)}px`\r\n }\r\n\r\n // set height\r\n const popoverId = buttonElement.getAttribute('aria-controls')\r\n const popoverWrapper = popoverId ? document.getElementById(popoverId) : null\r\n popoverWrapper?.style.setProperty(MAX_HEIGHT_PROPERTY, elementMaxHeight)\r\n }, [buttonElement, innerHeight, maxHeightLimit, hasViewportHeightLimit, offsets, state.placement, state.visible])\r\n\r\n return hasViewportHeightLimit ? POPOVER_HEIGHT_LIMIT_STYLE : undefined\r\n}\r\n","import * as React from 'react'\r\nimport { usePopper } from 'react-popper'\r\n\r\nimport { usePopoverMaxHeight } from '../../hooks/use-popover-maxHeight'\r\nimport { Button } from '../button'\r\nimport { getExtendedDialogState } from '../dialog'\r\nimport { Dropdown, DropdownItem, DropdownSeparator, useDropdownState } from '../dropdown'\r\nimport { ObjectHash } from '../types'\r\n\r\nconst DEFAULT_OFFSETS: [number, number] = [5, 5]\r\n\r\nfunction getVirtualRef(top: number, left: number) {\r\n return {\r\n getBoundingClientRect(): DOMRect {\r\n const rect = {\r\n top: top - window.scrollY,\r\n x: top - window.scrollY,\r\n left: left - window.scrollX,\r\n y: left - window.scrollX,\r\n bottom: top,\r\n right: left,\r\n width: 0,\r\n height: 0,\r\n }\r\n\r\n return {\r\n ...rect,\r\n toJSON: () => rect,\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport interface IContextMenuOption {\r\n type?: never\r\n id: string\r\n label: React.ReactNode\r\n onClick?: () => void\r\n options?: ContextMenuItem[]\r\n gtag?: ObjectHash\r\n}\r\n\r\ninterface IContextMenuDivider {\r\n type: 'divider'\r\n label?: React.ReactNode\r\n}\r\n\r\nexport type ContextMenuItem = IContextMenuOption | IContextMenuDivider\r\n\r\ninterface ContextMenuProps {\r\n /**\r\n * Top coordinate of the click\r\n */\r\n top: number\r\n\r\n /**\r\n * Left coordinate of the click\r\n */\r\n left: number\r\n\r\n /**\r\n * Can limit the max height of the menu\r\n *\r\n * @default undefined\r\n */\r\n menuMaxHeight?: number\r\n\r\n /**\r\n * Items visible in the menu\r\n */\r\n items: ContextMenuItem[]\r\n\r\n /**\r\n * Callback to hide the menu\r\n */\r\n hide: () => void\r\n}\r\n\r\nexport function ContextMenu({ top, left, menuMaxHeight, hide, items }: ContextMenuProps) {\r\n const [popperElement, setPopperElement] = React.useState(null)\r\n const virtualRef = React.useMemo(() => getVirtualRef(top, left), [left, top])\r\n const dropdownState = useDropdownState({ placement: 'bottom-start' })\r\n const { isFullyClosed } = getExtendedDialogState(dropdownState)\r\n const hasBeenOpen = React.useRef(false)\r\n\r\n const { styles, attributes } = usePopper(virtualRef, popperElement, {\r\n placement: 'auto-end',\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: DEFAULT_OFFSETS,\r\n },\r\n },\r\n ],\r\n })\r\n\r\n /**\r\n * This effect handles closing the context menu (parent element) itself\r\n */\r\n React.useEffect(() => {\r\n if (isFullyClosed && hasBeenOpen.current) hide()\r\n }, [isFullyClosed, hide])\r\n\r\n /**\r\n * This effect handles opening/closing the inner dropdown\r\n */\r\n React.useEffect(() => {\r\n dropdownState.show()\r\n hasBeenOpen.current = true // This acts as a way to differentiate the first render\r\n\r\n return () => dropdownState.hide()\r\n // This needs to run only on mount/unmount for obvious reasons\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return (\r\n \r\n }\r\n menuMaxHeight={menuMaxHeight}\r\n state={dropdownState}\r\n items={items}\r\n isStatic\r\n />\r\n \r\n )\r\n}\r\n\r\ninterface ContextMenuInnerProps {\r\n label: JSX.Element\r\n items: ContextMenuItem[]\r\n state: ReturnType\r\n isStatic?: boolean\r\n menuMaxHeight?: number\r\n}\r\n\r\nfunction ContextMenuInner(\r\n { label, items, state, isStatic, menuMaxHeight = Number.MAX_SAFE_INTEGER }: ContextMenuInnerProps,\r\n ref: React.ForwardedRef\r\n) {\r\n const innerState = useDropdownState({ placement: 'right-start' })\r\n const maxHeightStyle = usePopoverMaxHeight({\r\n maxHeightLimit: menuMaxHeight,\r\n hasViewportHeightLimit: true,\r\n offsets: DEFAULT_OFFSETS,\r\n state,\r\n })\r\n\r\n return (\r\n \r\n {items.map((item, index) => {\r\n if (item.type === 'divider') {\r\n return {item.label}\r\n }\r\n\r\n if (item?.options !== undefined) {\r\n return (\r\n \r\n {item.label}\r\n \r\n }\r\n items={item.options}\r\n />\r\n )\r\n }\r\n\r\n return (\r\n {\r\n item.onClick?.()\r\n window.gtag?.('event', 'context-menu', Object.assign({ menu_option: item.id }, item.gtag))\r\n }}\r\n data-testid={`dropdown-menu-${item.id}`}\r\n className=\"shrink-0\"\r\n >\r\n {item.label}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nconst ContextMenuDropdown = React.forwardRef(ContextMenuInner)\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\ninterface GridLayoutProps extends React.HTMLProps {\r\n /**\r\n * Number of columns\r\n */\r\n columns?: number\r\n\r\n /**\r\n * Number of rows\r\n */\r\n rows?: number\r\n\r\n /**\r\n * Whether or not a border is rendered between and around items. eg. charts\r\n * on HP won’t have a border\r\n *\r\n * @default false\r\n */\r\n border?: boolean\r\n}\r\n\r\nexport const ChartGridCell = React.forwardRef(\r\n ({ children, gridArea, className, ...props }, ref) => (\r\n \r\n {children}\r\n \r\n )\r\n)\r\n\r\ninterface ChartGridCellProps extends React.HTMLProps {\r\n /**\r\n * Css grid-area value\r\n */\r\n gridArea?: string\r\n}\r\n\r\nexport function GridLayout({ columns = 1, rows = 1, border = false, children, className, ...props }: GridLayoutProps) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\ninterface ChartGridProps extends GridLayoutProps {\r\n isResizable?: boolean\r\n}\r\n\r\nexport const ChartGrid: React.FC = (props) => \r\n","import * as React from 'react'\r\n\r\nimport { PropsWithAs, RequireByKey } from '../types'\r\n\r\nconst defaultValueAccessor: ValueAccessor = (data) => data\r\n\r\nconst DEFAULT_VALUE_KEY = 'value'\r\nconst DEFAULT_CHANGE_KEY = 'onChange'\r\n\r\ntype ValueAccessor<\r\n TagType extends React.ElementType,\r\n ValueKey extends keyof React.ComponentProps = typeof DEFAULT_VALUE_KEY,\r\n ChangeKey extends keyof React.ComponentProps = typeof DEFAULT_CHANGE_KEY,\r\n> = (...args: Parameters[ChangeKey]>) => React.ComponentProps[ValueKey]\r\n\r\nexport type InnerStateProps<\r\n TagType extends React.ElementType,\r\n ValueKey extends keyof React.ComponentProps,\r\n ChangeKey extends keyof React.ComponentProps,\r\n> = RequireByKey, 'as'> & {\r\n valueKey?: ValueKey\r\n changeKey?: ChangeKey\r\n valueAccessor?: ValueAccessor\r\n}\r\n\r\nexport function InnerState<\r\n TagType extends React.ElementType,\r\n ValueKey extends keyof React.ComponentProps = typeof DEFAULT_VALUE_KEY,\r\n ChangeKey extends keyof React.ComponentProps = typeof DEFAULT_CHANGE_KEY,\r\n>({\r\n as: asComponent,\r\n valueKey = 'value' as ValueKey,\r\n changeKey = 'onChange' as ChangeKey,\r\n valueAccessor = defaultValueAccessor,\r\n ...props\r\n}: InnerStateProps) {\r\n const { [valueKey]: value, [changeKey]: onChange } = props\r\n const [state, setState] = React.useState[ValueKey]>(value)\r\n\r\n const handleChange = React.useCallback>(\r\n (...args) => {\r\n setState(valueAccessor(...args))\r\n onChange(...args)\r\n },\r\n [onChange, valueAccessor]\r\n )\r\n\r\n return React.createElement(asComponent, {\r\n ...props,\r\n [valueKey]: state,\r\n [changeKey]: handleChange,\r\n })\r\n}\r\n","import * as React from 'react'\r\nimport * as Reakit from 'reakit/Composite'\r\n\r\nimport { SelectItem } from '../select'\r\nimport { PopoverStateReturn } from '../toolbar/popover/hooks'\r\n\r\nexport const ListContext = React.createContext(null)\r\n\r\nexport function useListState(options?: Reakit.CompositeInitialState) {\r\n return Reakit.useCompositeState({ ...options, loop: true, unstable_virtual: true })\r\n}\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 useList>(\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 [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\nimport * as Reakit from 'reakit/Composite'\r\n\r\nimport { BUTTON_DEFAULT_ELEMENT, Button, ButtonComponentProps, ButtonTheme } from '../button'\r\nimport { ListContext } from './hooks'\r\n\r\nexport interface ListItemProps {\r\n /**\r\n * Theme when the button is selected\r\n */\r\n activeTheme?: keyof typeof ButtonTheme\r\n\r\n /**\r\n * Close parent popover when the item is clicked\r\n */\r\n closeOnSelect?: boolean\r\n\r\n /**\r\n * OnChange callback when item is clicked or navigated to\r\n * @private\r\n */\r\n onSelectItem?: (item: string, closeOnSelect?: boolean) => void\r\n}\r\n\r\nexport function ListItem({\r\n as,\r\n activeTheme = 'blue',\r\n onSelectItem,\r\n onClick,\r\n onKeyPress,\r\n className,\r\n closeOnSelect = true,\r\n children,\r\n ...props\r\n}: React.PropsWithChildren & ButtonComponentProps) {\r\n const state = React.useContext(ListContext)\r\n\r\n return (\r\n {\r\n onClick?.(ev)\r\n onSelectItem?.(ev.currentTarget.id, closeOnSelect)\r\n }}\r\n onKeyPress={(ev) => {\r\n onKeyPress?.(ev)\r\n onSelectItem?.(ev.currentTarget.id, closeOnSelect)\r\n }}\r\n >\r\n {(itemProps: ButtonComponentProps) => {\r\n const active = Boolean(itemProps['aria-selected'])\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\nimport * as Reakit from 'reakit/Composite'\r\n\r\nimport { ListContext } from './hooks'\r\nimport { ListItem } from './list-item'\r\n\r\nexport enum ListDirection {\r\n row,\r\n column,\r\n}\r\n\r\nexport interface ListProps extends Omit {\r\n /**\r\n * The returned object from `useListState`\r\n */\r\n state: Reakit.CompositeStateReturn\r\n\r\n /**\r\n * The selected option\r\n */\r\n selectedIndex?: number\r\n\r\n /**\r\n * Callback when selected option index changes\r\n */\r\n onChange?: (selectedIndex: number, closeParent?: boolean) => void\r\n\r\n /**\r\n * Direction to render items\r\n * @default col\r\n */\r\n direction?: keyof typeof ListDirection\r\n\r\n /**\r\n * Whether or not default styles should be included for the list\r\n * @default true\r\n */\r\n includeBaseStyles?: boolean\r\n}\r\n\r\nexport function List({\r\n state,\r\n selectedIndex,\r\n direction = 'column',\r\n includeBaseStyles = true,\r\n onChange,\r\n children,\r\n ...props\r\n}: ListProps) {\r\n const prevSelected = React.useRef(null)\r\n\r\n // Select option when `selectedIndex` changes\r\n React.useEffect(() => {\r\n if (\r\n selectedIndex !== undefined &&\r\n selectedIndex >= 0 &&\r\n prevSelected.current !== selectedIndex &&\r\n state.items.length > selectedIndex\r\n ) {\r\n state.move(state.items[selectedIndex].id)\r\n prevSelected.current = selectedIndex\r\n }\r\n }, [selectedIndex, state, state.items.length])\r\n\r\n const onSelectItem = React.useCallback(\r\n (id: string, closeParent: boolean) => {\r\n onChange?.(\r\n state.items.findIndex((item) => item.id === id),\r\n closeParent\r\n )\r\n },\r\n [onChange, state.items]\r\n )\r\n\r\n return (\r\n \r\n \r\n {React.Children.map(children, (child) => {\r\n if (!React.isValidElement(child)) return child\r\n\r\n if (child.type === ListItem) {\r\n return React.cloneElement(child, { ...child.props, onSelectItem: onSelectItem })\r\n }\r\n\r\n return child\r\n })}\r\n \r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport { HTMLProps, ReactNode, useEffect, useMemo, useRef, useState } from 'react'\r\n\r\nimport { Label } from './typography'\r\n\r\nexport enum RangeSize {\r\n small = 'sm:h-6', // 24px height\r\n regular = 'sm:h-7', // 28px height\r\n medium = 'sm:h-8', // 32px height\r\n large = 'sm:h-9', // 36px height\r\n}\r\n\r\ntype InputProps = HTMLProps\r\n\r\ninterface RangeSliderProps extends Omit {\r\n /**\r\n * Label which is rendered above the select\r\n */\r\n label?: ReactNode\r\n\r\n /**\r\n * Range size. All inputs have forced height on mobile to avoid zoom\r\n *\r\n * @default regular\r\n */\r\n size?: keyof typeof RangeSize\r\n\r\n /**\r\n * Element which will be rendered on the left side of the slider\r\n */\r\n leftContent?: ReactNode\r\n\r\n /**\r\n * Element which will be rendered on the right side of the slider\r\n */\r\n rightContent?: ReactNode\r\n\r\n /**\r\n * Class name for the wrapper element\r\n */\r\n className?: string\r\n\r\n /**\r\n * Class name for the input element\r\n */\r\n inputClassName?: string\r\n\r\n /**\r\n * Min value for the input\r\n *\r\n * @default 0\r\n */\r\n min?: number\r\n\r\n /**\r\n * Max value for the input\r\n *\r\n * @default 100\r\n */\r\n max?: number\r\n\r\n /**\r\n * Step value for the input\r\n *\r\n * @default 1\r\n */\r\n step?: number\r\n\r\n /**\r\n * Current value\r\n */\r\n value: number\r\n\r\n /**\r\n * Callback when value changes\r\n */\r\n onChange: InputProps['onChange']\r\n}\r\n\r\nexport function RangeSlider({\r\n label,\r\n size = 'regular',\r\n leftContent,\r\n rightContent,\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n className,\r\n inputClassName,\r\n ...props\r\n}: RangeSliderProps) {\r\n const [hasTrack, setHasTrack] = useState(false)\r\n const trackRef = useRef(null)\r\n const thumbRef = useRef(null)\r\n\r\n useEffect(() => {\r\n setHasTrack(Boolean(trackRef.current && thumbRef.current))\r\n }, [])\r\n\r\n const thumbLeft = useMemo(() => {\r\n const track = trackRef.current\r\n const thumb = thumbRef.current\r\n const valuePercent = (props.value - min) / (max - min)\r\n\r\n if (!hasTrack || !track || !thumb) return\r\n\r\n const trackBox = track.getBoundingClientRect()\r\n const thumbBox = thumb.getBoundingClientRect()\r\n\r\n return ((valuePercent * (trackBox.width - thumbBox.width)) / trackBox.width) * 100\r\n }, [min, max, props.value, hasTrack])\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { ButtonRoundingType, ButtonThemeType } from '../button'\r\nimport { IconNameType } from '../icon'\r\n\r\nexport enum ToolbarTheme {\r\n chipTransparent, // (default)\r\n alternative,\r\n}\r\n\r\nexport enum ToolbarDirection {\r\n vertical,\r\n horizontal,\r\n}\r\n\r\nexport type ToolbarDirectionType = keyof typeof ToolbarDirection\r\n\r\nexport interface IButtonThemeSettings {\r\n className?: string\r\n theme: ButtonThemeType\r\n rounding: ButtonRoundingType\r\n}\r\n\r\nexport interface IToolbarItem {\r\n id: string\r\n icon: IconNameType\r\n iconActive?: IconNameType\r\n iconAction?: IconNameType\r\n title: string\r\n titleActive?: string\r\n titleAction?: string\r\n}\r\n\r\nexport type ToolbarThemeType = keyof typeof ToolbarTheme\r\n","import * as React from 'react'\r\n\r\nimport { ToolbarDirection, ToolbarTheme } from './interfaces'\r\n\r\nexport interface IToolbarContext {\r\n direction: ToolbarDirection\r\n theme: ToolbarTheme\r\n isWrapped: boolean\r\n isStretched: boolean\r\n isMobile: boolean\r\n}\r\n\r\nexport const ToolbarContext = React.createContext({\r\n direction: ToolbarDirection.vertical,\r\n theme: ToolbarTheme.chipTransparent,\r\n isWrapped: false,\r\n isStretched: false,\r\n isMobile: false,\r\n})\r\n\r\nexport function useToolbarContext() {\r\n return React.useContext(ToolbarContext)\r\n}\r\n","import classnames from 'classnames'\r\nimport throttle from 'lodash.throttle'\r\nimport React from 'react'\r\n\r\nimport { isSafariDesktop } from '../../../app/shared/isMobile'\r\nimport { IToolbarContext, ToolbarContext } from './hooks'\r\nimport { ToolbarDirection, ToolbarDirectionType, ToolbarTheme, ToolbarThemeType } from './interfaces'\r\n\r\nconst getToolbarSettings = ({\r\n direction,\r\n isWrapped,\r\n isMobile,\r\n theme,\r\n}: IToolbarContext): React.HTMLProps => {\r\n switch (isWrapped) {\r\n case true:\r\n return {\r\n className: classnames('shrink-0 items-center bg-white dark:bg-gray-800', {\r\n 'flex flex-wrap justify-between': direction === ToolbarDirection.vertical,\r\n 'grid border border-gray-100 dark:border-gray-600 p-1.5 gap-1 border-box rounded-md grid-cols-2':\r\n FinvizSettings.hasRedesignEnabled,\r\n }),\r\n }\r\n\r\n default:\r\n return {\r\n className: classnames('flex shrink-0 items-center p-1.5 bg-white dark:bg-gray-800', {\r\n 'space-x-1.5 px-1.5': direction === ToolbarDirection.horizontal && FinvizSettings.hasRedesignEnabled,\r\n 'flex-col overflow-hidden overflow-y-auto [--inset-l:0.5rem] landscape-primary:pl-inset-left':\r\n direction === ToolbarDirection.vertical,\r\n 'space-y-2': direction === ToolbarDirection.vertical && !isMobile,\r\n 'pb-inset-bottom [--inset-b:0.5rem]': theme !== ToolbarTheme.alternative && !isMobile,\r\n 'w-screen space-x-2 overflow-hidden overflow-x-auto':\r\n direction === ToolbarDirection.horizontal && theme !== ToolbarTheme.alternative,\r\n 'overflow-x-hidden': theme === ToolbarTheme.alternative,\r\n 'relative z-10 rounded-md border border-gray-100 dark:border-gray-600': isMobile,\r\n }),\r\n }\r\n }\r\n}\r\n\r\nexport interface ToolbarProps {\r\n /**\r\n * Toolbar direction\r\n *\r\n * @default vertical\r\n */\r\n direction?: ToolbarDirectionType\r\n\r\n /**\r\n * Toolbar buttons theme\r\n *\r\n * @default light\r\n */\r\n theme?: ToolbarThemeType\r\n\r\n /**\r\n * Charts mobile design\r\n *\r\n * @default false\r\n */\r\n isMobile?: boolean\r\n\r\n className?: string\r\n}\r\n\r\nexport function Toolbar({\r\n direction = 'vertical',\r\n theme = 'chipTransparent',\r\n isMobile = false,\r\n children,\r\n className,\r\n}: React.PropsWithChildren) {\r\n const toolbarRef = React.useRef(null)\r\n const contextProviderValue = React.useMemo(\r\n () => ({\r\n direction: ToolbarDirection[direction],\r\n theme: ToolbarTheme[theme],\r\n isWrapped:\r\n ToolbarDirection[direction] === ToolbarDirection.vertical && ToolbarTheme[theme] === ToolbarTheme.alternative,\r\n isStretched:\r\n ToolbarDirection[direction] === ToolbarDirection.horizontal && ToolbarTheme[theme] === ToolbarTheme.alternative,\r\n isMobile,\r\n }),\r\n [direction, theme, isMobile]\r\n )\r\n const toolbarSettings = getToolbarSettings(contextProviderValue)\r\n\r\n React.useLayoutEffect(() => {\r\n // Workaround for Safari scrollbar bug https://github.com/finvizhq/charts/issues/1038\r\n // Safari injects scrollbar after layout render and doesn't trigger reflow\r\n if (ToolbarTheme[theme] !== ToolbarTheme.alternative && isSafariDesktop()) {\r\n const forceReflow = throttle(() => {\r\n if (toolbarRef.current !== null) {\r\n const originalWidth = toolbarRef.current.style.width\r\n toolbarRef.current.style.width = '0'\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n toolbarRef.current.offsetWidth\r\n toolbarRef.current.style.width = originalWidth\r\n }\r\n }, 200)\r\n\r\n forceReflow()\r\n window.addEventListener('resize', forceReflow)\r\n\r\n return () => {\r\n window.removeEventListener('resize', forceReflow)\r\n }\r\n }\r\n }, [theme])\r\n\r\n // reason for key is that popover is sealing initial state, description in\r\n // https://github.com/finvizhq/Finviz-Website/pull/402\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button, ButtonHTMLProps, ButtonProps } from '../button'\r\nimport { Delayed } from '../delayed'\r\nimport { Icon } from '../icon'\r\nimport { Spinner } from '../spinner'\r\nimport { PropsWithAs } from '../types'\r\nimport { useToolbarContext } from './hooks'\r\nimport { IToolbarItem, ToolbarTheme } from './interfaces'\r\n\r\nfunction getButtonThemeSettings({\r\n theme,\r\n isActive,\r\n isStretched,\r\n isInAction,\r\n}: {\r\n theme: ToolbarTheme\r\n isStretched: boolean\r\n isActive?: boolean\r\n isInAction?: boolean\r\n}): Omit & ButtonProps {\r\n const includeRedesign = FinvizSettings.hasRedesignEnabled\r\n switch (theme) {\r\n case ToolbarTheme.alternative:\r\n return {\r\n className: classnames(\r\n {\r\n grow: isStretched,\r\n 'h-10 w-10': !isStretched && !includeRedesign,\r\n 'animate-pulse': isInAction,\r\n },\r\n\r\n !includeRedesign && {\r\n 'active:bg-white disabled:bg-white disabled:text-gray-300 disabled:hover:text-gray-300': true,\r\n 'border border-white text-gray-500 hover:border-gray-100 hover:text-gray-900': !isActive,\r\n 'border border-gray-900 text-gray-900': isActive,\r\n }\r\n ),\r\n theme: includeRedesign ? 'chipTransparent' : 'transparent',\r\n rounding: includeRedesign ? undefined : 'none',\r\n size: isStretched || includeRedesign ? undefined : 'none',\r\n }\r\n default:\r\n return {\r\n className: classnames(\r\n 'border dark:disabled:bg-gray-800 dark:disabled:text-gray-600 disabled:text-gray-300 disabled:bg-white dark:disabled:hover:bg-gray-800 dark:disabled:hover:text-gray-600 disabled:hover:text-gray-300 disabled:hover:bg-white',\r\n {\r\n 'animate-pulse': isInAction,\r\n 'border-transparent text-gray-500 hover:bg-gray-200/30 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-500/30 dark:hover:text-gray-200':\r\n !isActive,\r\n 'border-blue-400 bg-blue-50 text-gray-900 dark:bg-gray-700 dark:text-white': isActive,\r\n }\r\n ),\r\n theme: 'transparent',\r\n rounding: 'small',\r\n }\r\n }\r\n}\r\n\r\nexport interface ToolbarButtonProps extends Omit {\r\n item: IToolbarItem\r\n disabledTooltip?: string\r\n isInAction?: boolean\r\n isLoading?: boolean\r\n}\r\n\r\nexport function ToolbarButton({\r\n item,\r\n disabledTooltip,\r\n isInAction: isInActionProp,\r\n isLoading,\r\n ...props\r\n}: PropsWithAs & ToolbarButtonProps) {\r\n const { theme, isStretched } = useToolbarContext()\r\n const isInAction = isInActionProp && item.iconAction !== undefined\r\n const buttonSettings = getButtonThemeSettings({\r\n theme,\r\n isStretched,\r\n isActive: props.active,\r\n isInAction: isInAction,\r\n })\r\n\r\n const getMainIcon = () => (\r\n \r\n )\r\n\r\n return (\r\n & ToolbarButtonProps)}\r\n appearance={props.appearance ?? 'square'}\r\n title={props.disabled && disabledTooltip ? disabledTooltip : (props.active && item.titleActive) || item.title}\r\n size={\r\n buttonSettings.size ??\r\n (theme === ToolbarTheme.chipTransparent || FinvizSettings.hasRedesignEnabled ? 'medium' : 'large')\r\n }\r\n >\r\n {isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {props.children ??\r\n (isInAction ? (\r\n \r\n \r\n \r\n ) : (\r\n getMainIcon()\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\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 } from '../../box'\r\nimport { getExtendedDialogState, useZIndex } from '../../dialog'\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 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 {children}\r\n \r\n \r\n \r\n )}\r\n \r\n \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 classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\nimport { Icon } from '../icon'\r\nimport { List, ListItem, useListState } from '../list'\r\nimport { useList } from '../list/hooks'\r\nimport { NativeSelect } from '../select/NativeSelect'\r\nimport { useToolbarContext } from './hooks'\r\nimport { IToolbarItem, ToolbarTheme } from './interfaces'\r\nimport { useHoverPopover } from './popover/hooks'\r\nimport { Popover } from './popover/popover'\r\nimport { PopoverTrigger } from './popover/popover-trigger'\r\nimport { ToolbarButton } from './toolbar-button'\r\n\r\nexport interface ToolbarGroupProps {\r\n /**\r\n * Main button item\r\n */\r\n defaultItem: IToolbarItem\r\n\r\n /**\r\n * Shows spinner instead of icon\r\n */\r\n isLoading?: boolean\r\n\r\n /**\r\n * Current selected item id\r\n */\r\n isActive: boolean\r\n\r\n /**\r\n * Should indicate some action in progress\r\n */\r\n isInAction?: boolean\r\n\r\n /**\r\n * Array of items\r\n */\r\n groupItems: IToolbarItem[]\r\n\r\n /**\r\n * Expand group button label\r\n */\r\n groupTitle?: string\r\n\r\n /**\r\n * On item select callback\r\n */\r\n onChange: (id: string, trigger: 'button' | 'select' | 'group') => void\r\n\r\n /**\r\n * Use native select for mobile devices\r\n *\r\n * @default true\r\n */\r\n useNativeSelect?: boolean\r\n\r\n /**\r\n * Is item disabled\r\n */\r\n disabled?: boolean\r\n\r\n /**\r\n * Tooltip message if item is disabled\r\n */\r\n disabledTooltip?: string\r\n}\r\n\r\nexport function ToolbarGroup({\r\n defaultItem,\r\n isActive,\r\n isLoading,\r\n groupItems,\r\n groupTitle,\r\n onChange,\r\n useNativeSelect = isMobile(),\r\n disabled,\r\n disabledTooltip,\r\n}: ToolbarGroupProps) {\r\n const listState = useListState({ currentId: null })\r\n const { theme, isStretched } = useToolbarContext()\r\n const [selectedItem, setSelectedItem] = React.useState(defaultItem)\r\n const groupId = groupTitle?.replace(/\\s/g, '-').toLocaleLowerCase()\r\n const isAlternativeTheme = theme === ToolbarTheme.alternative\r\n const popoverState = useHoverPopover({\r\n placement: isAlternativeTheme && isStretched ? 'bottom' : 'right-start',\r\n })\r\n const select = useList(\r\n popoverState,\r\n selectedItem.id,\r\n groupItems?.map((i) => ({ value: i.id, label: i.title })) ?? [],\r\n (option) => {\r\n setSelectedItem(groupItems![groupItems!.findIndex((item) => item.id === option.value)])\r\n onChange(option.value, 'select')\r\n }\r\n )\r\n\r\n return (\r\n \r\n ) => {\r\n ev.preventDefault()\r\n ev.stopPropagation()\r\n onChange(selectedItem.id, 'group')\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n {useNativeSelect ? (\r\n ({ value: item.id, label: item.title }))}\r\n onChange={(option) => {\r\n setSelectedItem(groupItems![groupItems!.findIndex((item) => item.id === option.value)])\r\n onChange(option.value, 'select')\r\n }}\r\n onClick={() => onChange(selectedItem.id, 'select')}\r\n />\r\n ) : (\r\n \r\n \r\n {groupItems.map((item) => (\r\n }\r\n data-testid={`toolbar-group-${groupId}-${item.id}`}\r\n >\r\n {item.title}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { PartialBy } from '../../types'\r\nimport { ToolbarButton } from './toolbar-button'\r\nimport { ToolbarGroup, ToolbarGroupProps } from './toolbar-group'\r\n\r\nexport function ToolbarItem({\r\n defaultItem,\r\n isLoading,\r\n isActive,\r\n isInAction,\r\n groupItems,\r\n groupTitle,\r\n onChange,\r\n useNativeSelect,\r\n disabled,\r\n disabledTooltip,\r\n}: PartialBy) {\r\n const isItemActive = isActive && !disabled\r\n\r\n if (!!groupItems?.length) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n {\r\n onChange(defaultItem.id, 'button')\r\n }}\r\n />\r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { useToolbarContext } from './hooks'\r\nimport { ToolbarDirection, ToolbarTheme } from './interfaces'\r\n\r\ntype ToolbarDividerProps = {\r\n className?: string\r\n}\r\n\r\nexport function ToolbarDivider({ className }: ToolbarDividerProps) {\r\n const { direction, theme } = useToolbarContext()\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import { Box } from '../box'\r\nimport { Heading, Paragraph } from '../typography'\r\nimport { TourStep } from './types'\r\n\r\nexport function StepContent({ step }: { step: TourStep }) {\r\n return (\r\n \r\n {step.title && (\r\n \r\n {step.title}\r\n \r\n )}\r\n {step.body && {step.body}}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\nimport * as ReactDOM from 'react-dom/server'\r\nimport Shepherd from 'shepherd.js'\r\n\r\nimport {\r\n BUTTON_BASE_CLASS,\r\n BUTTON_FOCUS_STYLES,\r\n ButtonPadding,\r\n ButtonRounding,\r\n ButtonSize,\r\n ButtonTheme,\r\n getButtonTheme,\r\n} from '../button'\r\nimport { StepContent } from './step-content'\r\nimport { TourDefinition, TourStep } from './types'\r\n\r\ntype ExcludesFalse = (x: T | false) => x is T\r\n\r\n/**\r\n * Async load Shepherd module when we need it\r\n */\r\nlet shepherdLibrary: typeof Shepherd\r\nexport async function loadShepherdLibrary(setLoading: (state: boolean) => void) {\r\n if (shepherdLibrary) return shepherdLibrary\r\n\r\n try {\r\n setLoading(true)\r\n const shepherdPromise = await import('shepherd.js')\r\n shepherdLibrary = shepherdPromise.default\r\n setLoading(false)\r\n\r\n return shepherdLibrary\r\n } catch {}\r\n}\r\n\r\n/**\r\n * Get buttons based on index in the step array\r\n */\r\nconst buttonClasses = classnames(BUTTON_BASE_CLASS, BUTTON_FOCUS_STYLES, ButtonSize.regular, ButtonRounding.regular)\r\nfunction getStepButtons(tour: Shepherd.Tour, step: TourStep, index: number, arr: TourStep[]) {\r\n return [\r\n {\r\n action: tour.complete,\r\n classes: classnames(buttonClasses, 'mr-auto', getButtonTheme(ButtonTheme.light).button, ButtonPadding.regular),\r\n text: 'Exit',\r\n },\r\n index > 0 && {\r\n action: tour.back,\r\n classes: classnames(buttonClasses, getButtonTheme(ButtonTheme.light).button, ButtonPadding.regular),\r\n text: step.backButton ?? 'Back',\r\n },\r\n {\r\n classes: classnames(buttonClasses, getButtonTheme(ButtonTheme.blue).button, ButtonPadding.regular),\r\n action: tour.next,\r\n text: step.nextButton ?? (index === arr.length - 1 ? 'Finish' : 'Next'),\r\n },\r\n ].filter(Boolean as unknown as ExcludesFalse)\r\n}\r\n\r\n/**\r\n * Convert tour steps to Shepherd steps\r\n */\r\nexport function processSteps(tour: Shepherd.Tour, steps: TourStep[]): Shepherd.Step.StepOptions[] {\r\n return steps.map((step, index) => ({\r\n attachTo: { element: step.target, on: step.placement ?? 'auto' },\r\n classes: 'z-dialog',\r\n // Add offset\r\n popperOptions: {\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: step.offset ?? [0, 10],\r\n },\r\n },\r\n ],\r\n },\r\n // Render the body\r\n text: ReactDOM.renderToString(React.createElement(StepContent, { step })),\r\n // Add buttons\r\n buttons: getStepButtons(tour, step, index, steps),\r\n modalOverlayOpeningRadius: step.overlayRadius ?? 8,\r\n modalOverlayOpeningPadding: step.overlayPadding ?? 0,\r\n }))\r\n}\r\n\r\nexport function getTourKey() {\r\n return `tour${window.location.pathname.replace(/[/.]/g, '-')}`\r\n}\r\n\r\nexport function getStepsForUser(tours: TourDefinition[]) {\r\n const lastFinishedTour = localStorage?.getItem(getTourKey())\r\n const lastTourIndex = tours.findIndex((tour) => tour.id === lastFinishedTour)\r\n const allToursViewed = lastTourIndex === tours.length - 1 || tours.slice(lastTourIndex + 1).every((item) => item.skip)\r\n const toursToView = allToursViewed ? tours : tours.slice(lastTourIndex + 1)\r\n const userTour = toursToView.reduce(\r\n (acc, current) =>\r\n current.skip\r\n ? acc\r\n : {\r\n ...acc,\r\n id: current.id,\r\n steps: [...acc.steps, ...current.steps],\r\n },\r\n { id: 'tour', steps: [], initialTour: toursToView[0].id }\r\n )\r\n\r\n return { hasNewTours: !allToursViewed, tour: userTour }\r\n}\r\n\r\nexport function completeTour(key: string) {\r\n localStorage?.setItem(getTourKey(), key)\r\n}\r\n","import * as React from 'react'\r\nimport Shepherd from 'shepherd.js'\r\n\r\nimport { TourDefinition } from './types'\r\nimport * as tourUtils from './utils'\r\n\r\nexport const DEFAULT_OPTIONS = {\r\n exitOnEsc: true,\r\n useModalOverlay: true,\r\n}\r\n\r\n/**\r\n * Hook which controls shepherd.js. The library is lazy-loaded when the tour starts\r\n *\r\n * Returns:\r\n * - `isLoading`: state of the library loading\r\n * - `currentTour`: tour object, only defined after library has loaded\r\n * - `startTour`: load the library and start tour. Returns `currentTour`\r\n * - `getStepsForUser`: returns a list of tour steps based on tours the user finished\r\n * - `completeTour`: persists the last finished tour to local storage\r\n */\r\nexport function useTour(options?: Shepherd.Tour.TourOptions) {\r\n const [isLoading, setIsLoading] = React.useState(false)\r\n const [currentTour, setTour] = React.useState(null)\r\n\r\n /**\r\n * We’re loading shepherd asynchronously and want to have loading state so we use\r\n * AbortController to check if the component is still mounted.\r\n */\r\n const controller = React.useRef('AbortController' in window ? new AbortController() : undefined)\r\n const loadingSetter = React.useRef((state: boolean) => {\r\n if (controller.current?.signal.aborted) return\r\n\r\n setIsLoading(state)\r\n })\r\n // Cleanup effect to abort the controller\r\n React.useEffect(() => () => controller.current?.abort(), [])\r\n\r\n const startTour = React.useCallback(\r\n async (definition: TourDefinition, setComplete = true) => {\r\n const shepherdLibrary = await tourUtils.loadShepherdLibrary(loadingSetter.current)\r\n\r\n if (shepherdLibrary && !controller.current?.signal.aborted) {\r\n const tour = currentTour ?? new shepherdLibrary.Tour({ ...DEFAULT_OPTIONS, ...options })\r\n\r\n if (!currentTour) setTour(tour)\r\n\r\n // Reset the tour steps in case they were updated\r\n Array.from(tour.steps).forEach((step) => tour.removeStep(step.id))\r\n\r\n const processedSteps = tourUtils.processSteps(tour, definition.steps)\r\n tour.addSteps(processedSteps)\r\n\r\n if (setComplete) {\r\n tourUtils.completeTour(definition.id)\r\n }\r\n\r\n tour.start()\r\n window.gtag?.('event', 'tour-start', { event_label: definition.initialTour ?? definition.id })\r\n\r\n return tour\r\n }\r\n },\r\n [currentTour, options]\r\n )\r\n\r\n return {\r\n isLoading,\r\n currentTour,\r\n startTour,\r\n getStepsForUser: tourUtils.getStepsForUser,\r\n completeTour: tourUtils.completeTour,\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\nimport * as Ariakit from '@ariakit/react'\r\nimport classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { BUTTON_DEFAULT_ELEMENT, Button, ButtonComponentProps } from '../button'\r\nimport { Icon, IconNameType, isValidIconName } from '../icon'\r\n\r\n// Must have the same keys as ButtonSize\r\nexport enum TabSpacing {\r\n xxsmall = 'space-x-0.5', // 2px spacing\r\n xsmall = 'space-x-1', // 4px spacing\r\n none = 'space-x-1.5', // 6px spacing\r\n small = 'space-x-1.5', // 6px spacing\r\n regular = 'space-x-1.5', // 6px spacing\r\n medium = 'space-x-2', // 8px spacing\r\n large = 'space-x-2', // 8px spacing\r\n}\r\n\r\nfunction getRightContent(content: JSX.Element | IconNameType | undefined, isActive: boolean) {\r\n if (isValidIconName(content)) return \r\n else if (React.isValidElement(content))\r\n return React.cloneElement(content as React.ReactElement<{ active: boolean }>, {\r\n active: isActive,\r\n })\r\n else return content\r\n}\r\n\r\nconst InternalTab = React.forwardRef(function InternalTab<\r\n TagType extends React.ElementType = typeof BUTTON_DEFAULT_ELEMENT,\r\n>(\r\n {\r\n rounding = 'none',\r\n theme = 'tab',\r\n size = 'medium',\r\n 'aria-selected': ariaSelected,\r\n children,\r\n ...props\r\n }: Omit, 'theme'>,\r\n ref: React.ForwardedRef\r\n) {\r\n const spacing = TabSpacing[size]\r\n const active = Boolean(ariaSelected)\r\n const rightContent = getRightContent(props.rightContent, active)\r\n\r\n return (\r\n )}\r\n ref={ref}\r\n active={active}\r\n theme={theme}\r\n size={size}\r\n rounding={rounding}\r\n rightContent={undefined}\r\n className={classNames('group/badge', props.className)}\r\n contentClass={classNames(spacing, 'flex', props.contentClass)}\r\n >\r\n {children}\r\n {rightContent}\r\n \r\n )\r\n})\r\n\r\nexport function Tab(\r\n props: React.PropsWithChildren>\r\n) {\r\n return } />\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classNames from 'classnames'\r\n\r\nexport function TabList(props: Ariakit.TabListProps) {\r\n return (\r\n \r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport React from 'react'\r\n\r\nexport function TabPanel(props: Ariakit.TabPanelProps) {\r\n return \r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport React from 'react'\r\n\r\nexport function Tabs({ children }: React.PropsWithChildren) {\r\n return (\r\n \r\n
{children}
\r\n
\r\n )\r\n}\r\n","import classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nenum BadgeSize {\r\n small = 'h-4 min-w-4', // 16px height\r\n medium = 'h-5 min-w-5', // 20px height\r\n}\r\ntype BadgeSizeType = keyof typeof BadgeSize\r\n\r\nenum BadgePadding {\r\n small = 'px-[5px] py-0', // 16px height\r\n medium = 'px-1.5 py-0.5', // 20px height\r\n}\r\ntype BadgePaddingType = keyof typeof BadgePadding\r\n\r\ntype BadgeProps = {\r\n size?: BadgeSizeType\r\n padding?: BadgePaddingType\r\n active?: boolean\r\n}\r\n\r\nexport function Badge({ size = 'medium', padding = size, active, children }: React.PropsWithChildren) {\r\n const badgePadding = BadgePadding[padding]\r\n const badgeSize = BadgeSize[size]\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nexport type NotificationContextType = ReturnType\r\n\r\nexport enum NotificationPosition {\r\n TopLeft,\r\n TopRight,\r\n BottomLeft,\r\n BottomRight,\r\n}\r\n\r\nexport interface NotificationOptions {\r\n position?: NotificationPosition\r\n inline?: boolean\r\n}\r\n\r\nexport const NotificationContext = React.createContext<{\r\n show: (element: JSX.Element, options?: NotificationOptions) => void\r\n hide: () => void\r\n}>({\r\n show: () => {},\r\n hide: () => {},\r\n})\r\n\r\nexport function useNotification() {\r\n return React.useContext(NotificationContext)\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { getVisualViewport, useVisualViewport } from '../../hooks/useVisualViewport'\r\nimport { NotificationContext, NotificationOptions, NotificationPosition } from './hooks'\r\n\r\ninterface NotificationState {\r\n element: JSX.Element\r\n options: Partial\r\n}\r\n\r\nexport function NotificationWrapper(props: React.PropsWithChildren) {\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n const [notification, setNotification] = React.useState(null)\r\n const { viewport, setViewport } = useVisualViewport({ enabled: !!notification })\r\n\r\n const context = React.useRef({\r\n show: (element: JSX.Element, options: Partial = {}) => {\r\n setViewport(() => getVisualViewport(window.visualViewport))\r\n setNotification({ element, options })\r\n setIsOpen(true)\r\n },\r\n hide: () => setIsOpen(false),\r\n })\r\n\r\n const positionClass = React.useMemo(() => {\r\n const { position = NotificationPosition.BottomLeft } = notification?.options ?? {}\r\n return {\r\n '[--inset-t:1rem] items-start pt-inset-top': [\r\n NotificationPosition.TopLeft,\r\n NotificationPosition.TopRight,\r\n ].includes(position),\r\n '[--inset-r:1rem] justify-end landscape-secondary:pr-inset-right': [\r\n NotificationPosition.TopRight,\r\n NotificationPosition.BottomRight,\r\n ].includes(position),\r\n '[--inset-b:1rem] items-end pb-inset-bottom': [\r\n NotificationPosition.BottomLeft,\r\n NotificationPosition.BottomRight,\r\n ].includes(position),\r\n '[--inset-l:1rem] justify-start landscape-primary:pl-inset-left': [\r\n NotificationPosition.TopLeft,\r\n NotificationPosition.BottomLeft,\r\n ].includes(position),\r\n }\r\n }, [notification?.options])\r\n\r\n const WrapperComponent = React.useMemo(\r\n () => (notification?.options.inline ? React.Fragment : Ariakit.Portal),\r\n [notification?.options.inline]\r\n )\r\n\r\n return (\r\n \r\n {props.children}\r\n {isOpen && (\r\n \r\n \r\n {notification?.element}\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { NotificationContextType, useNotification } from './hooks'\r\n\r\nexport function withNotificationContext(\r\n WrappedComponent: React.ComponentType\r\n) {\r\n const displayName = WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component'\r\n const WithNotificationContext = (props: Omit) => {\r\n const notification = useNotification()\r\n return \r\n }\r\n\r\n WithNotificationContext.displayName = `withNotificationContext(${displayName})`\r\n\r\n return WithNotificationContext\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '../button'\r\nimport { useNotification } from './hooks'\r\n\r\ninterface NotificationProps {\r\n className?: string\r\n /**\r\n * Default button text\r\n * @default Close\r\n */\r\n closeText?: string\r\n\r\n /**\r\n * Custom buttons. Overrides `closeText`\r\n */\r\n actions?: JSX.Element\r\n\r\n /**\r\n * When set, the notification will automatically close\r\n */\r\n timeoutInMs?: number\r\n}\r\n\r\nexport function Notification({\r\n className,\r\n closeText = 'Close',\r\n actions,\r\n timeoutInMs,\r\n children,\r\n}: React.PropsWithChildren) {\r\n const notification = useNotification()\r\n\r\n React.useEffect(() => {\r\n let timeoutId: number\r\n if (timeoutInMs) {\r\n timeoutId = window.setTimeout(() => {\r\n notification.hide()\r\n }, timeoutInMs)\r\n }\r\n\r\n return () => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId)\r\n }\r\n }\r\n }, [notification, timeoutInMs])\r\n\r\n return (\r\n \r\n
{children}
\r\n
\r\n {actions ?? (\r\n \r\n )}\r\n
\r\n \r\n )\r\n}\r\n","import * as AriaKit from '@ariakit/react'\r\nimport * as React from 'react'\r\n\r\nimport { Input, InputHTMLProps, InputProps } from './input'\r\nimport { Tooltip, TooltipColor, TooltipProps, TooltipTrigger, useTooltipState } from './tooltip'\r\n\r\ntype TooltipInputProps = InputProps & InputHTMLProps & { isInteractive?: boolean }\r\n\r\ninterface TooltipSettingsProps extends Pick, Pick {\r\n content?: React.ReactNode\r\n color?: keyof typeof TooltipColor\r\n}\r\n\r\nexport interface TooltipInputWrapperProps extends Pick {\r\n children: React.ReactElement\r\n /**\r\n * Settings for Tooltip component and useTooltipStore\r\n */\r\n tooltipSettings?: TooltipSettingsProps\r\n}\r\n\r\nfunction TooltipInputWrapper({ children, tooltipSettings = {}, name }: TooltipInputWrapperProps) {\r\n const { content, color, gutter, placement = 'bottom' } = tooltipSettings\r\n const tooltip = useTooltipState({ placement })\r\n\r\n return (\r\n <>\r\n \r\n {React.cloneElement(children, {\r\n onFocus: (event: React.FocusEvent) => {\r\n children.props.onFocus?.(event)\r\n tooltip.show()\r\n },\r\n onBlur: (event: React.FocusEvent) => {\r\n children.props.onBlur?.(event)\r\n tooltip.hide()\r\n },\r\n })}\r\n \r\n {content && (\r\n \r\n {content}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nfunction TooltipInputComponent(\r\n { tooltipSettings, isInteractive = true, ...props }: TooltipInputProps & Omit,\r\n ref: React.ForwardedRef\r\n) {\r\n const input = \r\n\r\n if (!isInteractive) {\r\n return input\r\n }\r\n\r\n return (\r\n \r\n {input}\r\n \r\n )\r\n}\r\n\r\nexport const TooltipInput = React.forwardRef(TooltipInputComponent)\r\n","import throttle from 'lodash.throttle'\r\nimport * as React from 'react'\r\n\r\ninterface Props {\r\n throttleWaitInMs?: number\r\n isWatching?: boolean\r\n}\r\n\r\nexport function useWindowSize({ throttleWaitInMs = 300, isWatching = true }: Props = {}) {\r\n const [size, setSize] = React.useState({\r\n innerWidth: window.innerWidth,\r\n innerHeight: window.innerHeight,\r\n })\r\n\r\n React.useEffect(() => {\r\n if (!isWatching) return\r\n\r\n const handleResize = throttle(() => {\r\n setSize({\r\n innerWidth: window.innerWidth,\r\n innerHeight: window.innerHeight,\r\n })\r\n }, throttleWaitInMs)\r\n\r\n window.addEventListener('resize', handleResize)\r\n\r\n return () => {\r\n handleResize.cancel()\r\n window.removeEventListener('resize', handleResize)\r\n }\r\n }, [throttleWaitInMs, isWatching])\r\n\r\n return size\r\n}\r\n","import throttle from 'lodash.throttle'\r\nimport * as React from 'react'\r\n\r\nexport function getVisualViewport(visualViewport: VisualViewport | null) {\r\n const width = visualViewport?.width ?? window.innerWidth\r\n const height = visualViewport?.height ?? window.innerHeight\r\n const scale = visualViewport?.scale ?? 1\r\n\r\n return {\r\n top: visualViewport?.offsetTop ?? 0,\r\n left: visualViewport?.offsetLeft ?? 0,\r\n scale: Math.round((1 / scale) * 100) / 100,\r\n width: Math.round(width * scale),\r\n height: Math.round(height * scale),\r\n unscaledWidth: width,\r\n unscaledHeight: height,\r\n }\r\n}\r\n\r\nexport function useVisualViewport({ enabled = true, onScroll = true }: { enabled?: boolean; onScroll?: boolean } = {}) {\r\n const [viewport, setViewport] = React.useState(getVisualViewport(window.visualViewport))\r\n\r\n React.useEffect(() => {\r\n if (!enabled) return\r\n\r\n const handleChange = throttle((ev: Event) => {\r\n const viewport = ev.currentTarget as VisualViewport\r\n if (viewport) {\r\n setViewport(() => getVisualViewport(viewport))\r\n }\r\n }, 50)\r\n\r\n window.visualViewport?.addEventListener('resize', handleChange)\r\n if (onScroll) window.visualViewport?.addEventListener('scroll', handleChange)\r\n handleChange({ currentTarget: window.visualViewport } as Event)\r\n\r\n return () => {\r\n window.visualViewport?.removeEventListener('resize', handleChange)\r\n window.visualViewport?.removeEventListener('scroll', handleChange)\r\n }\r\n }, [enabled, onScroll])\r\n\r\n return React.useMemo(() => ({ viewport, setViewport }), [viewport])\r\n}\r\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","/** @license React v17.0.2\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),m=require(\"react\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cK;K++)J[K]=K+1;J[15]=0;var oa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,pa=Object.prototype.hasOwnProperty,qa={},ra={};\nfunction sa(a){if(pa.call(ra,a))return!0;if(pa.call(qa,a))return!1;if(oa.test(a))return ra[a]=!0;qa[a]=!0;return!1}function ta(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction ua(a,b,c,d){if(null===b||\"undefined\"===typeof b||ta(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function M(a,b,c,d,f,h,t){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=h;this.removeEmptyString=t}var N={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){N[a]=new M(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];N[b]=new M(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){N[a]=new M(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){N[a]=new M(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){N[a]=new M(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){N[a]=new M(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){N[a]=new M(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){N[a]=new M(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){N[a]=new M(a,5,!1,a.toLowerCase(),null,!1,!1)});var va=/[\\-:]([a-z])/g;function wa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(va,\nwa);N[b]=new M(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!1,!1)});\nN.xlinkHref=new M(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!0,!0)});var xa=/[\"'&<>]/;\nfunction O(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;dV))throw Error(p(301));if(a===P)if(T=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ja(){}\nvar X=null,Ka={readContext:function(a){var b=X.threadID;I(a,b);return a[b]},useContext:function(a){W();var b=X.threadID;I(a,b);return a[b]},useMemo:Ia,useReducer:Ga,useRef:function(a){P=W();R=Ca();var b=R.memoizedState;return null===b?(a={current:a},R.memoizedState=a):b},useState:function(a){return Ga(Fa,a)},useLayoutEffect:function(){},useCallback:function(a,b){return Ia(function(){return a},b)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[function(a){a()},!1]},useOpaqueIdentifier:function(){return(X.identifierPrefix||\"\")+\"R:\"+(X.uniqueID++).toString(36)},useMutableSource:function(a,b){W();return b(a._source)}},La={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function Ma(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nvar Na={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Oa=l({menuitem:!0},Na),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pa=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Pa.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Qa=/([A-Z])/g,Ra=/^ms-/,Z=m.Children.toArray,Sa=la.ReactCurrentDispatcher,Ta={listing:!0,pre:!0,textarea:!0},Ua=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Va={},Wa={};function Xa(a){if(void 0===a||null===a)return a;var b=\"\";m.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ya=Object.prototype.hasOwnProperty,Za={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function $a(a,b){if(void 0===a)throw Error(p(152,F(b)||\"Component\"));}\nfunction ab(a,b,c){function d(d,h){var e=h.prototype&&h.prototype.isReactComponent,f=na(h,b,c,e),t=[],g=!1,n={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===t)return null},enqueueReplaceState:function(a,c){g=!0;t=[c]},enqueueSetState:function(a,c){if(null===t)return null;t.push(c)}};if(e){if(e=new h(d.props,f,n),\"function\"===typeof h.getDerivedStateFromProps){var k=h.getDerivedStateFromProps.call(null,d.props,e.state);null!=k&&(e.state=l({},e.state,k))}}else if(P={},e=h(d.props,\nf,n),e=Da(h,d.props,e,f),null==e||null==e.render){a=e;$a(a,h);return}e.props=d.props;e.context=f;e.updater=n;n=e.state;void 0===n&&(e.state=n=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),t.length){n=t;var v=\ng;t=null;g=!1;if(v&&1===n.length)e.state=n[0];else{k=v?n[0]:e.state;var H=!0;for(v=v?1:0;v=g))throw Error(p(304));var e=new Uint16Array(g);e.set(d);J=e;J[0]=c+1;for(d=c;d=e.children.length){var L=e.footer;\"\"!==L&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===B)this.popProvider(e.type);else if(e.type===D){this.suspenseDepth--;var G=h.pop();if(t){t=!1;var C=e.fallbackFrame;if(!C)throw Error(p(303));this.stack.push(C);h[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else h[this.suspenseDepth]+=\nG}h[this.suspenseDepth]+=L}else{var n=e.children[e.childIndex++],k=\"\";try{k+=this.render(n,e.context,e.domNamespace)}catch(v){if(null!=v&&\"function\"===typeof v.then)throw Error(p(294));throw v;}finally{}h.length<=this.suspenseDepth&&h.push(\"\");h[this.suspenseDepth]+=k}}return h[0]}finally{Sa.current=c,X=b,Ea()}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return O(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+O(f);\nthis.previousWasTextNode=!0;return O(f)}b=ab(a,b,this.threadID);a=b.child;b=b.context;if(null===a||!1===a)return\"\";if(!m.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===q)throw Error(p(257));throw Error(p(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ka:case ja:case u:case z:case ca:case r:return a=Z(a.props.children),this.stack.push({type:null,\ndomNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case D:throw Error(p(294));case ia:throw Error(p(343));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case ba:P={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case da:return a=[m.createElement(c.type,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case aa:c=a.type;d=a.props;var g=this.threadID;I(c,g);c=Z(d.children(c[g]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ha:throw Error(p(338));case ea:return c=a.type,d=c._init,c=d(c._payload),a=[m.createElement(c,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,\ncontext:b,footer:\"\"}),\"\"}throw Error(p(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===La.html&&Ma(c);if(!Va.hasOwnProperty(c)){if(!Ua.test(c))throw Error(p(65,c));Va[c]=!0}var d=a.props;if(\"input\"===c)d=l({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var g=d.value;if(null==g){g=d.defaultValue;var e=d.children;if(null!=e){if(null!=\ng)throw Error(p(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(p(93));e=e[0]}g=\"\"+e}null==g&&(g=\"\")}d=l({},d,{value:void 0,children:\"\"+g})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=l({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var L=Xa(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":L;g=!1;if(Array.isArray(e))for(var C=0;C\":(w+=\">\",g=\"\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=O(e);break a}e=null}null!=e?(d=[],Ta.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(w+=\"\\n\"),w+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===f?Ma(a):\"http://www.w3.org/2000/svg\"===\nf&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:g});this.previousWasTextNode=!1;return w};return a}();exports.renderToNodeStream=function(){throw Error(p(207));};exports.renderToStaticMarkup=function(a,b){a=new bb(a,!0,b);try{return a.read(Infinity)}finally{a.destroy()}};exports.renderToStaticNodeStream=function(){throw Error(p(208));};exports.renderToString=function(a,b){a=new bb(a,!1,b);try{return a.read(Infinity)}finally{a.destroy()}};\nexports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-server.browser.development.js');\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","/**\n * React Router DOM v6.16.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_mapRouteProperties, Router, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, UNSAFE_DataRouterStateContext, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, unstable_useBlocker, UNSAFE_DataRouterContext } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, RouterProvider, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, unstable_useBlocker, useActionData, useAsyncError, useAsyncValue, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `
`/`` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a