{"version":3,"file":"news_content.30838c94.js","mappings":"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","sources":["webpack://@finviz/website/./js/app/crypto/currencyUtils.ts","webpack://@finviz/website/./js/app/header/market-badge.tsx","webpack://@finviz/website/./js/app/header/time.tsx","webpack://@finviz/website/./js/app/header/utils.ts","webpack://@finviz/website/./js/app/news-content/Share.tsx","webpack://@finviz/website/./js/app/news-content/index.tsx","webpack://@finviz/website/./js/app/shared/cookie.ts","webpack://@finviz/website/./js/app/shared/isMobile.ts","webpack://@finviz/website/./js/main/components/TickerSearch/TickerSearchItem.tsx","webpack://@finviz/website/./js/main/components/TickerSearch/util.ts","webpack://@finviz/website/./js/main/components/TickerSearch/TickerSearch.tsx","webpack://@finviz/website/./js/main/components/box.tsx","webpack://@finviz/website/./js/main/components/button-switch/button-switch.tsx","webpack://@finviz/website/./js/main/components/button.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/combo-box/combo-box.tsx","webpack://@finviz/website/./js/main/components/combo-box/combo-box-item.tsx","webpack://@finviz/website/./js/main/components/combo-box/hooks.ts","webpack://@finviz/website/./js/main/components/copy-to-clipboard/copy-to-clipboard.tsx","webpack://@finviz/website/./js/main/components/dialog/hooks.ts","webpack://@finviz/website/./js/main/components/dropdown/dropdown.tsx","webpack://@finviz/website/./js/main/components/dropdown/dropdown-item.tsx","webpack://@finviz/website/./js/main/components/dropdown/hooks.ts","webpack://@finviz/website/./js/main/components/error-view.tsx","webpack://@finviz/website/./js/main/components/highlight.tsx","webpack://@finviz/website/./js/main/components/icon/icon.tsx","webpack://@finviz/website/./js/main/components/icon/index.tsx","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/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/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/tag.tsx","webpack://@finviz/website/./js/main/components/input.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/centered.tsx","webpack://@finviz/website/./js/main/components/search/search-error.tsx","webpack://@finviz/website/./js/main/components/search/search-item.tsx","webpack://@finviz/website/./js/main/components/search/search-list.tsx","webpack://@finviz/website/./js/main/components/search/search-navigation-wrapper.tsx","webpack://@finviz/website/./js/main/components/search/search.tsx","webpack://@finviz/website/./js/main/components/search/useSearchComboboxState.ts","webpack://@finviz/website/./js/main/components/social-share/DownloadImageButton.tsx","webpack://@finviz/website/./js/main/components/social-share/SocialShare.tsx","webpack://@finviz/website/./js/main/components/spinner.tsx","webpack://@finviz/website/./js/main/components/tooltip-input.tsx","webpack://@finviz/website/./js/main/components/tooltip/tooltip-box.tsx","webpack://@finviz/website/./js/main/components/tooltip/tooltip.tsx","webpack://@finviz/website/./js/main/components/tooltip/tooltip-trigger.tsx","webpack://@finviz/website/./js/main/components/tooltip/TooltipProvider.tsx","webpack://@finviz/website/./js/main/components/tooltip/hooks.ts","webpack://@finviz/website/./js/main/components/tooltip/tooltip-arrow.tsx","webpack://@finviz/website/./js/main/components/tooltip/types.ts","webpack://@finviz/website/./js/main/components/typography.tsx","webpack://@finviz/website/./js/main/hooks/use-resize-observer.ts","webpack://@finviz/website/./js/main/hooks/usePopoverPlacement.ts","webpack://@finviz/website/./js/main/services/api.ts","webpack://@finviz/website/./js/main/services/routing.ts","webpack://@finviz/website/./js/main/types.ts","webpack://@finviz/website/./js/main/util.tsx","webpack://@finviz/website/../charts/app/utils/ticker-sanitizer.ts","webpack://@finviz/website/../node_modules/copy-to-clipboard/index.js","webpack://@finviz/website/../node_modules/jsonp/index.js","webpack://@finviz/website/../node_modules/jsonp/node_modules/debug/src/browser.js","webpack://@finviz/website/../node_modules/jsonp/node_modules/debug/src/debug.js","webpack://@finviz/website/../node_modules/jsonp/node_modules/ms/index.js","webpack://@finviz/website/../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.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/toggle-selection/index.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/62UHHO2X.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/7HRRFUKQ.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/BKQBQI36.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7YV2MWWG.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/B2J376ND.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/menu/menu-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/MRTXKBQF.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/MVIULMNR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UYGDZTLQ.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/menu/menu-button.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/menu/menu-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/ASGALOAX.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/menu/menu.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/PY4NZ6HS.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","webpack://@finviz/website/../node_modules/react-share/dist/index.js"],"sourcesContent":["import { ObjectHash } from '../queryString'\r\n\r\nexport const DEFAULT_ACTIVE_CURRENCY = 'USD'\r\nexport const TILE_WIDTH = 240\r\n\r\nexport const CURRENCIES_LAYOUT: Record = {\r\n USD: [\r\n ['BTCUSD', 'ETHUSD', 'SOLUSD', 'BNBUSD', 'XRPUSD'],\r\n ['DOGEUSD', 'ADAUSD', 'TRXUSD', 'AVAXUSD', 'XLMUSD'],\r\n ['DOTUSD', 'LINKUSD', 'BCHUSD', 'SUIUSD', 'NEARUSD'],\r\n ['LTCUSD', 'APTUSD', 'EGLDUSD', 'OPUSD', 'AAVEUSD'],\r\n ],\r\n USDT: [\r\n ['BTCUSDT', 'ETHUSDT', 'SOLUSDT', 'BNBUSDT', 'XRPUSDT'],\r\n ['DOGEUSDT', 'ADAUSDT', 'TRXUSDT', 'AVAXUSDT', 'XLMUSDT'],\r\n ['DOTUSDT', 'LINKUSDT', 'BCHUSDT', 'SUIUSDT', 'NEARUSDT'],\r\n ['LTCUSDT', 'APTUSDT', 'EGLDUSDT', 'OPUSDT', 'SUSDT'],\r\n ],\r\n EUR: [\r\n ['BTCEUR', 'ETHEUR', 'SOLEUR', 'BNBEUR', 'XRPEUR'],\r\n ['DOGEEUR', 'ADAEUR', 'TRXEUR', 'AVAXEUR', 'XLMEUR'],\r\n ['DOTEUR', 'LINKEUR', 'BCHEUR', 'SUIEUR', 'NEAREUR'],\r\n ['LTCEUR', 'APTEUR', 'EGLDEUR', 'OPEUR', 'SEUR'],\r\n ],\r\n BTC: [\r\n ['BTCUSD', 'ETHBTC', 'SOLBTC', 'BNBBTC', 'XRPBTC'],\r\n ['DOGEBTC', 'ADABTC', 'TRXBTC', 'AVAXBTC', 'XLMBTC'],\r\n ['DOTBTC', 'LINKBTC', 'BCHBTC', 'SUIBTC', 'NEARBTC'],\r\n ['LTCBTC', 'APTBTC', 'EGLDBTC', 'OPBTC', 'SBTC'],\r\n ],\r\n}\r\n\r\n// NOTE: all tickers that are not visible at main 'crypto.ashx' but\r\n// we wanna keep them displayed as sparkline in the detail of ticker\r\nexport const TICKERS_NOT_IN_DASHBOARD: Record = {\r\n USDT: ['AAVEUSDT', 'TRUMPUSDT'],\r\n BTC: ['AAVEBTC'],\r\n}\r\n\r\nexport const CURRENCIES_LIST = Object.keys(CURRENCIES_LAYOUT)\r\n\r\nexport const CRYPTO_TICKERS = [\r\n ...Object.values(CURRENCIES_LAYOUT).flat(2),\r\n ...Object.values(TICKERS_NOT_IN_DASHBOARD).flat(1),\r\n]\r\n\r\nexport function getCurrency(ticker: string): string {\r\n if (ticker.endsWith('USD')) {\r\n return 'USD'\r\n } else if (ticker.endsWith('USDT')) {\r\n return 'USDT'\r\n } else if (ticker.endsWith('EUR')) {\r\n return 'EUR'\r\n } else if (ticker.endsWith('BTC')) {\r\n return 'BTC'\r\n }\r\n return DEFAULT_ACTIVE_CURRENCY\r\n}\r\n\r\nexport function getActiveCurrency(queryString: ObjectHash) {\r\n const activeCurrency = (queryString['c'] || DEFAULT_ACTIVE_CURRENCY).toUpperCase()\r\n return CURRENCIES_LIST.includes(activeCurrency) ? activeCurrency : DEFAULT_ACTIVE_CURRENCY\r\n}\r\n\r\nexport function getActiveCurrencySparklineTickers(activeCurrency: string) {\r\n return [...CURRENCIES_LAYOUT[activeCurrency].flat(1), ...(TICKERS_NOT_IN_DASHBOARD[activeCurrency] ?? [])]\r\n}\r\n\r\nexport function getCurrencyLongName(currency: string): string {\r\n switch (currency.toLowerCase()) {\r\n case 'btc':\r\n return 'Bitcoin'\r\n case 'eth':\r\n return 'Ethereum'\r\n case 'bnb':\r\n return 'Binance Coin'\r\n case 'sol':\r\n return 'Solana'\r\n case 'xrp':\r\n return 'Ripple'\r\n case 'doge':\r\n return 'Dogecoin'\r\n case 'ada':\r\n return 'Cardano'\r\n case 'trx':\r\n return 'TRON'\r\n case 'avax':\r\n return 'Avalanche'\r\n case 'dot':\r\n return 'Polkadot'\r\n case 'bch':\r\n return 'Bitcoin Cash'\r\n case 'near':\r\n return 'NEAR Protocol'\r\n case 'ltc':\r\n return 'Litecoin'\r\n case 'icp':\r\n return 'Internet Computer'\r\n case 'apt':\r\n return 'Aptos'\r\n case 'xlm':\r\n return 'Stellar'\r\n case 'link':\r\n return 'Chainlink'\r\n case 'shib':\r\n return 'Shiba Inu'\r\n case 'etc':\r\n return 'Ethereum Classic'\r\n case 'uni':\r\n return 'Uniswap'\r\n case 'fet':\r\n return 'Fetch.ai'\r\n case 'egld':\r\n return 'MultiversX'\r\n case 's':\r\n return 'Sonic'\r\n case 'op':\r\n return 'Optimism'\r\n case 'sui':\r\n return 'Sui'\r\n case 'aave':\r\n return 'Aave'\r\n case 'trump':\r\n return 'Trump'\r\n case 'usd':\r\n return 'US Dollar'\r\n case 'eur':\r\n return 'Euro'\r\n case 'usdt':\r\n return 'Tether'\r\n default:\r\n return currency\r\n }\r\n}\r\n","import classnames from 'classnames'\r\n\r\nimport { isAftermarket, isHoliday, isPremarket } from './utils'\r\n\r\nexport enum MarketBadgeType {\r\n None,\r\n Open,\r\n Closed,\r\n Premarket,\r\n Aftermarket,\r\n}\r\n\r\nexport function getMarketBadgeText(type: MarketBadgeType, _date?: Date) {\r\n switch (type) {\r\n case MarketBadgeType.Open:\r\n return {\r\n label: 'Markets Open',\r\n }\r\n case MarketBadgeType.Closed:\r\n // const holiday = getHoliday(date)\r\n\r\n return {\r\n label: 'Markets Closed',\r\n // description: holiday && (\r\n // <>\r\n // The markets observe U.S. holidays and are closed on\r\n //
\r\n // {holiday.label}\r\n // \r\n // ),\r\n }\r\n case MarketBadgeType.Premarket:\r\n return {\r\n label: 'Premarket',\r\n // description: (\r\n // <>\r\n // An additional time window when trading is possible.\r\n //
\r\n // We report it as the time between 7:00 AM and 9:30 AM\r\n // \r\n // ),\r\n }\r\n case MarketBadgeType.Aftermarket:\r\n return {\r\n label: 'Aftermarket',\r\n // description: (\r\n // <>\r\n // An additional time window when trading is still possible.\r\n //
\r\n // We report it as the time between 4:00 PM and 6:30 PM\r\n // \r\n // ),\r\n }\r\n }\r\n}\r\n\r\nexport function getMarketBadgeType(time: Date, hasUserPremium?: boolean) {\r\n if (isHoliday(time)) return MarketBadgeType.Closed\r\n if (isPremarket(time, hasUserPremium)) return MarketBadgeType.Premarket\r\n if (isAftermarket(time, hasUserPremium)) return MarketBadgeType.Aftermarket\r\n // if (isMarketOpen(time, hasUserPremium)) return MarketBadgeType.Open\r\n\r\n return MarketBadgeType.None\r\n}\r\n\r\nexport interface MarketBadgeProps {\r\n badge: MarketBadgeType\r\n className?: string\r\n}\r\n\r\nexport function MarketBadge({ badge, className }: MarketBadgeProps) {\r\n if (badge === MarketBadgeType.None) return null\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import throttle from 'lodash.throttle'\r\nimport * as React from 'react'\r\n\r\nimport { Tooltip, TooltipTrigger, useTooltipState } from '../../main/components/tooltip'\r\nimport { Heading } from '../../main/components/typography'\r\nimport { useResizeObserver } from '../../main/hooks/use-resize-observer'\r\nimport { MarketBadge, MarketBadgeProps, getMarketBadgeText, getMarketBadgeType } from './market-badge'\r\nimport { TimeFormatType, getDate, getFormattedDateString } from './utils'\r\n\r\nconst UPDATE_INTERVAL = 10000\r\n\r\nenum TimeBreakpointMode {\r\n container,\r\n window,\r\n}\r\n\r\nexport interface TimeBreakpoint {\r\n minWidth: number\r\n marketBadgeText: boolean\r\n timeFormat: TimeFormatType\r\n}\r\n\r\nconst BREAKPOINTS: TimeBreakpoint[] = [\r\n { minWidth: -Infinity, marketBadgeText: false, timeFormat: 'timeOnly' },\r\n { minWidth: 140, marketBadgeText: false, timeFormat: 'short' },\r\n { minWidth: 180, marketBadgeText: false, timeFormat: 'long' },\r\n { minWidth: 255, marketBadgeText: true, timeFormat: 'long' },\r\n]\r\n\r\nfunction getTimeState(fixedTime?: string | Date, hasUserPremium: boolean = FinvizSettings.hasUserPremium) {\r\n const time = getDate(fixedTime)\r\n const badge = getMarketBadgeType(time, hasUserPremium)\r\n\r\n return { time, badge }\r\n}\r\n\r\nfunction TooltipBadge(props: MarketBadgeProps & { time: Date }) {\r\n const state = useTooltipState({ placement: 'bottom' })\r\n const badge = getMarketBadgeText(props.badge, props.time)\r\n\r\n if (!badge) return null\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {badge.label}\r\n \r\n {/* {badge.description && {badge.description}} */}\r\n \r\n \r\n )\r\n}\r\n\r\nfunction StaticBadge(props: MarketBadgeProps & { time: Date }) {\r\n const badge = getMarketBadgeText(props.badge, props.time)\r\n\r\n if (!badge) return null\r\n\r\n return (\r\n <>\r\n \r\n {`${badge.label} · `}\r\n \r\n )\r\n}\r\n\r\n/**\r\n * Find matching breakpoint or return the last (largest) one\r\n */\r\nfunction findMatchingBreakpoint(compareWidth: number | undefined, breakpoints: TimeBreakpoint[]) {\r\n if (typeof compareWidth !== 'number') return breakpoints[breakpoints.length - 1]\r\n\r\n const matchingBreakpoints = breakpoints.filter((breakpoint) => compareWidth >= breakpoint.minWidth)\r\n\r\n return matchingBreakpoints.pop() ?? breakpoints[breakpoints.length - 1]\r\n}\r\n\r\nfunction getCurrentWidth(mode: TimeBreakpointMode, element: HTMLElement | null) {\r\n return mode === TimeBreakpointMode.window ? window.innerWidth : (element?.clientWidth ?? 0)\r\n}\r\n\r\ninterface TimeProps extends React.HTMLProps {\r\n /**\r\n * Set custom time to display\r\n */\r\n fixedTime?: string | Date\r\n\r\n /**\r\n * What to measure the breakpoints to\r\n * - `container` parent element\r\n * - `window` window\r\n *\r\n * @default \"container\"\r\n */\r\n breakpointMode?: keyof typeof TimeBreakpointMode\r\n\r\n /**\r\n * Defines what information is visible at which breakpoint. Local mode measures\r\n * the component wrapper div and global mode measures window width. The definitions\r\n * must be ascending in width\r\n */\r\n breakpoints?: TimeBreakpoint[]\r\n}\r\n\r\nexport function Time({\r\n className,\r\n fixedTime,\r\n breakpointMode = 'container',\r\n breakpoints = BREAKPOINTS,\r\n ...props\r\n}: TimeProps) {\r\n const ResizeObserver = useResizeObserver()\r\n const rootRef = React.useRef(null)\r\n const [state, setState] = React.useState(getTimeState(fixedTime))\r\n const [currentBreakpoint, setBreakpoint] = React.useState(null)\r\n\r\n React.useEffect(() => {\r\n const interval = setInterval(() => setState(getTimeState(fixedTime)), UPDATE_INTERVAL)\r\n return () => clearInterval(interval)\r\n }, [fixedTime])\r\n\r\n React.useEffect(() => {\r\n if (!ResizeObserver || !rootRef.current) return\r\n\r\n if (!currentBreakpoint) {\r\n const currentWidth = getCurrentWidth(TimeBreakpointMode[breakpointMode], rootRef.current)\r\n setBreakpoint(findMatchingBreakpoint(currentWidth, breakpoints))\r\n }\r\n\r\n const handleResize = throttle(() => {\r\n const currentWidth = getCurrentWidth(TimeBreakpointMode[breakpointMode], rootRef.current)\r\n const foundBreakpoint = findMatchingBreakpoint(currentWidth, breakpoints)\r\n\r\n if (foundBreakpoint !== currentBreakpoint) setBreakpoint(foundBreakpoint)\r\n }, 150)\r\n\r\n const observer = new ResizeObserver((entries) => {\r\n window.requestAnimationFrame(() => {\r\n if (Array.isArray(entries) && entries.length > 0) handleResize()\r\n })\r\n })\r\n\r\n observer.observe(rootRef.current)\r\n window.addEventListener('resize', handleResize)\r\n\r\n return () => {\r\n observer.disconnect()\r\n window.removeEventListener('resize', handleResize)\r\n }\r\n }, [ResizeObserver, currentBreakpoint, breakpoints, breakpointMode])\r\n\r\n return (\r\n
\r\n {currentBreakpoint && (\r\n
\r\n {currentBreakpoint.marketBadgeText ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {getFormattedDateString(state.time, currentBreakpoint.timeFormat)}\r\n
\r\n )}\r\n
\r\n )\r\n}\r\n","import * as dateFns from 'date-fns'\r\n\r\n/**\r\n * Check if a given date is DST in the US\r\n * - begins on the second Sunday in March\r\n * - ends on the first Sunday in November\r\n *\r\n * Keep in sync with https://github.com/finvizhq/charts/blob/master/app/utils.ts\r\n */\r\nexport function getIsDstInNy(date: Date) {\r\n const dayNumber = date.getDate()\r\n const monthIndex = date.getMonth()\r\n const dayOfWeek = date.getDay()\r\n const previousSunday = dayNumber - dayOfWeek\r\n if (monthIndex < 2 || monthIndex > 10) {\r\n return false\r\n }\r\n if (monthIndex > 2 && monthIndex < 10) {\r\n return true\r\n }\r\n return monthIndex === 2 ? previousSunday >= 8 : previousSunday <= 0\r\n}\r\n\r\nexport function getDate(seed?: string | number | Date | null) {\r\n var date = seed != null ? new Date(seed) : new Date()\r\n const dateAsNY = new Date(\r\n date.getUTCFullYear(),\r\n date.getUTCMonth(),\r\n date.getUTCDate(),\r\n date.getUTCHours() - 5,\r\n date.getUTCMinutes(),\r\n date.getUTCSeconds()\r\n )\r\n const isDst = getIsDstInNy(dateAsNY)\r\n\r\n if (isDst) {\r\n dateAsNY.setUTCHours(dateAsNY.getUTCHours() + 1)\r\n }\r\n\r\n return dateAsNY\r\n}\r\n\r\nfunction getWeekDay(date: Date) {\r\n return date.toLocaleDateString('en-US', { weekday: 'short' })\r\n}\r\n\r\nfunction getMonth(date: Date, uppercase = true) {\r\n const name = date.toLocaleDateString('en-US', { month: 'short' })\r\n return uppercase ? name.toUpperCase() : name\r\n}\r\n\r\nfunction getDay(date: Date) {\r\n return date.getDate().toString().padStart(2, '0')\r\n}\r\n\r\nfunction getTime(date: Date) {\r\n return date.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true })\r\n}\r\n\r\nenum TimeFormat {\r\n long,\r\n short,\r\n dateOnly,\r\n timeOnly,\r\n}\r\n\r\nexport type TimeFormatType = keyof typeof TimeFormat\r\n\r\nexport function getFormattedDateString(date: Date = getDate(), format: TimeFormatType = 'long') {\r\n switch (TimeFormat[format]) {\r\n case TimeFormat.long:\r\n return `${getWeekDay(date)} ${getMonth(date)} ${getDay(date)} ${date.getFullYear()} ${getTime(date)} ET`\r\n case TimeFormat.short:\r\n return `${getWeekDay(date)} ${getMonth(date)} ${getDay(date)} ${getTime(date)}`\r\n case TimeFormat.dateOnly:\r\n return `${getMonth(date, false)} ${getDay(date)}`\r\n case TimeFormat.timeOnly:\r\n return getTime(date)\r\n }\r\n}\r\n\r\nexport function formatDate(value: Date | unknown, inputOrOutputFormat: string, outputFormat?: string): string {\r\n return dateFns.format(\r\n dateFns.isDate(value) ? (value as Date) : dateFns.parse(`${value}`, inputOrOutputFormat, new Date()),\r\n outputFormat ?? inputOrOutputFormat\r\n )\r\n}\r\n\r\nexport function isPremarket(date: Date = getDate(), isPremium = FinvizSettings.hasUserPremium) {\r\n const dayOfWeek = date.getDay()\r\n const min = date.getMinutes()\r\n const hours = date.getHours()\r\n\r\n if (isPremium && dayOfWeek !== 0 && dayOfWeek !== 6 && (hours === 7 || hours === 8 || (hours === 9 && min < 30))) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nexport function isAftermarket(date: Date = getDate(), isPremium = FinvizSettings.hasUserPremium) {\r\n const dayOfWeek = date.getDay()\r\n const min = date.getMinutes()\r\n\r\n if (\r\n isPremium &&\r\n dayOfWeek !== 0 &&\r\n dayOfWeek !== 6 &&\r\n (date.getHours() === 16 || date.getHours() === 17 || (date.getHours() === 18 && min < 30))\r\n ) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * https://www.nyse.com/markets/hours-calendars\r\n */\r\nconst HOLIDAY_DATES = [\r\n {\r\n label: \"New Year's Day\",\r\n test: (day: number, month: number) => month === 1 && day === 1,\r\n },\r\n {\r\n label: 'National Day of Mourning',\r\n test: (day: number, month: number) => month === 1 && day === 9,\r\n },\r\n {\r\n label: 'Martin Luther King, Jr. Day',\r\n test: (day: number, month: number) => month === 1 && day === 20,\r\n },\r\n {\r\n label: 'Presidents Day',\r\n test: (day: number, month: number) => month === 2 && day === 17,\r\n },\r\n {\r\n label: 'Good Friday',\r\n test: (day: number, month: number) => month === 4 && day === 18,\r\n },\r\n {\r\n label: 'Memorial Day',\r\n test: (day: number, month: number) => month === 5 && day === 26,\r\n },\r\n {\r\n label: 'Juneteenth Holiday',\r\n test: (day: number, month: number) => month === 6 && day === 19,\r\n },\r\n {\r\n label: 'Day before Independence Day (closed from 1 PM)',\r\n test: (day: number, month: number, hours: number) => month === 7 && day === 3 && hours >= 13,\r\n },\r\n {\r\n label: 'Independence Day',\r\n test: (day: number, month: number) => month === 7 && day === 4,\r\n },\r\n {\r\n label: 'Labor Day',\r\n test: (day: number, month: number) => month === 9 && day === 1,\r\n },\r\n {\r\n label: 'Thanksgiving Day',\r\n test: (day: number, month: number) => month === 11 && day === 27,\r\n },\r\n {\r\n label: 'Day after Thanksgiving (closed from 1 PM)',\r\n test: (day: number, month: number, hours: number) => month === 11 && day === 28 && hours >= 13,\r\n },\r\n {\r\n label: 'Day before Christmas (closed from 1 PM)',\r\n test: (day: number, month: number, hours: number) => month === 12 && day === 24 && hours >= 13,\r\n },\r\n {\r\n label: 'Christmas Day',\r\n test: (day: number, month: number) => month === 12 && day === 25,\r\n },\r\n]\r\n\r\nexport function getHoliday(date: Date = getDate()) {\r\n var day = date.getDate()\r\n var month = date.getMonth() + 1\r\n var hours = date.getHours()\r\n\r\n return HOLIDAY_DATES.find((holiday) => holiday.test(day, month, hours))\r\n}\r\n\r\nexport function isHoliday(date: Date = getDate()) {\r\n return !!getHoliday(date)\r\n}\r\n\r\nexport function isMarketOpen(date: Date = getDate(), isPremium = FinvizSettings.hasUserPremium) {\r\n if (isPremarket(date, isPremium) || isAftermarket(date, isPremium) || isHoliday(date)) {\r\n return false\r\n }\r\n\r\n const dayOfWeek = date.getDay()\r\n const hour = date.getHours()\r\n const minute = date.getMinutes()\r\n\r\n const isWeekend = dayOfWeek === 0 || dayOfWeek === 6\r\n // Day starts at 9:30\r\n const dayStarted = hour === 9 ? minute >= 30 : hour >= 10\r\n // Ends at 16:00\r\n const dayEnded = hour >= 16\r\n\r\n return !isWeekend && dayStarted && !dayEnded\r\n}\r\n","import copy from 'copy-to-clipboard'\r\nimport React from 'react'\r\nimport { FacebookIcon, FacebookShareButton, TwitterIcon, TwitterShareButton } from 'react-share'\r\n\r\nimport { Button, Dropdown, DropdownItem } from '../../main/components'\r\n\r\nexport interface NewContentItem {\r\n newsUrl?: string\r\n}\r\n\r\nexport default function Share(props: NewContentItem) {\r\n const handleCopyToClipboard = React.useCallback(() => {\r\n copy(props.newsUrl ?? '')\r\n }, [props.newsUrl])\r\n\r\n if (!props.newsUrl) return null\r\n\r\n return (\r\n }>\r\n \r\n Copy Link\r\n \r\n\r\n \r\n }\r\n >\r\n Share on Twitter\r\n \r\n\r\n \r\n }\r\n >\r\n Share on Facebook\r\n \r\n \r\n )\r\n}\r\n","import ReactDOM from 'react-dom/client'\r\n\r\nimport { parseInitData } from '../shared/utils'\r\nimport Share, { NewContentItem } from './Share'\r\n\r\nconst rootEl = document.getElementById('news-content-react-root')\r\nconst dataEl = document.getElementById('news-content-init-data')\r\n\r\nif (rootEl && dataEl) {\r\n try {\r\n const initData = parseInitData('news-content-init-data')\r\n const root = ReactDOM.createRoot(rootEl)\r\n root.render()\r\n } catch {}\r\n}\r\n","export function getParsedCookies(cookieName: string) {\r\n const parseCookies = document.cookie\r\n .split(';')\r\n .map((cookieString) => cookieString.split('='))\r\n .reduce(\r\n (acc, v) => {\r\n acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim())\r\n return acc\r\n },\r\n {} as Record\r\n )\r\n\r\n return cookieName ? parseCookies[cookieName] : parseCookies\r\n}\r\n\r\nexport function getCookie(name: string) {\r\n var re = new RegExp('(?:(?:^|.*;\\\\s*)' + name + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$')\r\n return document.cookie.replace(re, '$1')\r\n}\r\n\r\nexport function setCookie(name: string, value: string, expires: Date) {\r\n var cookie = name + '=' + value + '; expires=' + expires.toUTCString()\r\n if (/\\bfinviz\\b/.test(document.location.hostname)) {\r\n cookie += '; domain=.finviz.com'\r\n }\r\n document.cookie = cookie\r\n}\r\n","// OS Matches\r\nconst matchesAndroid = navigator.userAgent.match(/Android/i)\r\nconst matchesWebOS = navigator.userAgent.match(/webOS/i)\r\nconst matchesIPhone = navigator.userAgent.match(/iPhone/i)\r\nconst matchesiPad = navigator.userAgent.match(/iPad/i)\r\nconst matchesIPod = navigator.userAgent.match(/iPod/i)\r\nconst matchesBlackBerry = navigator.userAgent.match(/BlackBerry/i)\r\nconst matchesWindowsPhone = navigator.userAgent.match(/Windows Phone/i)\r\nconst matchesIOSLike = navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints > 0\r\n\r\n// Browser Matches\r\nconst matchesFirefox = !!navigator.userAgent.match(/firefox/i)\r\nconst matchesSafariDesktopLike =\r\n /^((?!chrome|android).)*safari/i.test(navigator.userAgent) && navigator.maxTouchPoints === 0\r\n\r\nconst isMobileDevice =\r\n matchesAndroid ||\r\n matchesWebOS ||\r\n matchesIPhone ||\r\n matchesiPad ||\r\n matchesIPod ||\r\n matchesBlackBerry ||\r\n matchesWindowsPhone ||\r\n matchesIOSLike\r\n\r\nexport function isMobile() {\r\n return !!isMobileDevice\r\n}\r\n\r\nexport function isIphone() {\r\n return !!(matchesIPhone && !matchesiPad)\r\n}\r\n\r\nexport function isIpad() {\r\n return (matchesIOSLike && !matchesIPhone && !matchesIPod) || matchesiPad\r\n}\r\n\r\nexport function isSafariDesktop() {\r\n return matchesSafariDesktopLike\r\n}\r\n\r\nexport function isIos() {\r\n return !!matchesIOSLike && !isSafariDesktop()\r\n}\r\n\r\nexport function isFirefox() {\r\n return matchesFirefox\r\n}\r\n\r\nexport function isFirefoxDesktop() {\r\n return isFirefox() && !isMobile()\r\n}\r\n","import classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { SearchApiResult } from '../../services/api'\r\nimport { ComboBoxItem, ComboBoxItemProps } from '../combo-box'\r\nimport { Highlight } from '../highlight'\r\nimport { PropsWithAs } from '../types'\r\n\r\ninterface SearchItemProps extends Pick, Partial> {\r\n item: SearchApiResult\r\n dataTestId?: string\r\n}\r\n\r\nexport function TickerSearchItem({ item, dataTestId, ...props }: SearchItemProps) {\r\n const value = props.state!.useState('value')\r\n const isTickerWide = item.ticker.length > 7\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.exchange}\r\n \r\n )\r\n}\r\n","import { getSanitizedTicker } from '../../../app/shared/ticker-sanitizer'\r\nimport { link } from '../../services/routing'\r\nimport { Instrument } from '../../types'\r\nimport { cleanTicker, getInstrumentForTicker } from '../../util'\r\n\r\nexport function getRedirectForTicker(tickerRaw: string) {\r\n const ticker = getSanitizedTicker(tickerRaw, true)\r\n const instrument = cleanTicker(ticker) ? getInstrumentForTicker(ticker) : null\r\n let redirectLink = ''\r\n\r\n switch (instrument) {\r\n case Instrument.Stock:\r\n redirectLink = link.toQuote(ticker)\r\n break\r\n case Instrument.Forex:\r\n redirectLink = link.toForexChartDetail(ticker)\r\n break\r\n case Instrument.Futures:\r\n redirectLink = link.toFuturesChartDetail(ticker)\r\n break\r\n case Instrument.Crypto:\r\n redirectLink = link.toCryptoChartDetail(ticker)\r\n break\r\n default:\r\n return link.toSearch(ticker)\r\n }\r\n\r\n return redirectLink + (FinvizSettings.quoteSearchExt ?? '')\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport { useQuery } from '@tanstack/react-query'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { getSanitizedTicker } from '../../../app/shared/ticker-sanitizer'\r\nimport { searchApiRequest } from '../../services/api'\r\nimport { link } from '../../services/routing'\r\nimport { Button } from '../button'\r\nimport { IconNameType } from '../icon'\r\nimport { InputSize, InputTheme } from '../input'\r\nimport { Search, SearchProps, useSearchComboboxState } from '../search'\r\nimport { TickerSearchItem } from './TickerSearchItem'\r\nimport { getRedirectForTicker } from './util'\r\n\r\ninterface Props extends Omit {\r\n /**\r\n * Whether the input should automatically receive focus when mounted\r\n */\r\n autoFocus?: boolean\r\n\r\n /**\r\n * Initial value for the input field\r\n */\r\n defaultValue?: string\r\n\r\n /**\r\n * Default placement position of the combobox popover\r\n * Inherits placement options from Ariakit ComboboxStore\r\n */\r\n defaultPlacement?: Ariakit.ComboboxStoreProps['placement']\r\n\r\n /**\r\n * Placeholder text shown when the input is empty\r\n */\r\n placeholder?: string\r\n\r\n /**\r\n * Visual theme variant for the input\r\n * References predefined styles from InputTheme\r\n */\r\n theme?: keyof typeof InputTheme\r\n\r\n /**\r\n * Size variant for the input\r\n * References predefined sizes from InputSize\r\n */\r\n size?: keyof typeof InputSize\r\n\r\n /**\r\n * Additional CSS class name for the input element\r\n */\r\n inputClass?: string\r\n\r\n /**\r\n * ChartIndex used for data-testid\r\n */\r\n chartIndex?: number\r\n\r\n /**\r\n * Whether to show the \"Show All\" option\r\n *\r\n * @default true\r\n */\r\n isShowAllVisible?: boolean\r\n\r\n /**\r\n * Whether search items should be rendered as links\r\n *\r\n * @default true\r\n */\r\n isSearchItemLink?: boolean\r\n\r\n /**\r\n * Content to show on the right side of the input (icon or custom element)\r\n */\r\n rightContent?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Callback function triggered when a ticker is selected\r\n *\r\n * @param ticker - The selected ticker string\r\n */\r\n onTickerSelected?: (ticker: string) => void\r\n}\r\n\r\nexport function TickerSearch({ isShowAllVisible = true, isSearchItemLink = true, chartIndex, ...props }: Props) {\r\n const searchComboboxState = useSearchComboboxState({\r\n defaultValue: props.defaultValue,\r\n placement: props.defaultPlacement ?? 'bottom-start',\r\n setSelectedValue: (value) => {\r\n if (isSearchItemLink) {\r\n window.location.href = getRedirectForTicker(value as string)\r\n } else {\r\n props.onTickerSelected?.(getSanitizedTicker(value as string))\r\n // We have to reset the value (clear the input) in next tick otherwise it doesn't work\r\n setTimeout(() => searchComboboxState.setValue(''))\r\n }\r\n },\r\n })\r\n\r\n const value = searchComboboxState.useState('value')\r\n const activeValue = searchComboboxState.useState('activeValue')\r\n const { data, error, isLoading, refetch } = useQuery(['search', value], () => searchApiRequest(value), {\r\n enabled: value.length > 0,\r\n keepPreviousData: true,\r\n cacheTime: Infinity,\r\n staleTime: Infinity,\r\n })\r\n\r\n return (\r\n \r\n Show All Results\r\n \r\n ) : undefined\r\n }\r\n isLoading={isLoading}\r\n isError={!!error}\r\n onErrorRetry={refetch}\r\n {...props}\r\n >\r\n
\r\n {data?.map((item) => (\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\n\r\nexport enum BoxRounding {\r\n none = '',\r\n regular = 'rounded-md', // 6px\r\n}\r\n\r\nexport enum BoxTheme {\r\n none = '',\r\n light = 'bg-white dark:bg-gray-800 border border-gray-100 dark:border-gray-600',\r\n dark = 'bg-gray-800 border border-gray-600',\r\n}\r\n\r\nexport interface BoxProps extends Omit, 'ref'> {\r\n 'data-testid'?: string\r\n rounding?: keyof typeof BoxRounding\r\n theme?: keyof typeof BoxTheme\r\n}\r\n\r\nexport const Box = React.forwardRef(function Box(\r\n { rounding = 'regular', theme = 'light', ...props }: BoxProps,\r\n ref: React.ForwardedRef\r\n) {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n})\r\n","import classNames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button, ButtonRoundingType, ButtonSizeType, ButtonThemeType } from '../button'\r\nimport { ButtonGroup, ButtonGroupProps } from '../button-group'\r\nimport { SelectItem } from '../select/types'\r\n\r\nexport type ButtonSwitchItem = Pick, 'value' | 'label' | 'disabled'>\r\n\r\nexport interface ButtonSwitchProps> extends ButtonGroupProps {\r\n /**\r\n * Label to display above the select\r\n */\r\n label?: string\r\n\r\n /**\r\n * Class names for label\r\n */\r\n labelClassNames?: string\r\n\r\n /**\r\n * Array of items to display as button options\r\n */\r\n items: ItemType[]\r\n\r\n /**\r\n * Currently selected value\r\n */\r\n value?: ValueType\r\n\r\n /**\r\n * Default value when uncontrolled\r\n */\r\n defaultValue?: ValueType\r\n\r\n /**\r\n * Callback when item changes. Called for both controlled and uncontrolled selects\r\n */\r\n onChange?: (value: ItemType) => void\r\n\r\n /**\r\n * Optional className for the ButtonGroup wrapper\r\n */\r\n className?: string\r\n\r\n /**\r\n * Set the button theme when it is selected\r\n */\r\n activeTheme?: ButtonThemeType\r\n\r\n /**\r\n * Size of the button\r\n *\r\n * @default \"regular\"\r\n */\r\n size?: ButtonSizeType\r\n\r\n /**\r\n * Data test id\r\n *\r\n * @default \"\"\r\n */\r\n 'data-testid'?: string\r\n\r\n groupRounding?: ButtonRoundingType\r\n}\r\n\r\nexport function ButtonSwitch>(\r\n props: Omit, 'children'>\r\n) {\r\n const {\r\n items,\r\n value: controlledValue,\r\n label,\r\n defaultValue,\r\n onChange,\r\n className = 'flex p-0.5',\r\n size,\r\n labelClassNames,\r\n rounding = 'regular',\r\n groupRounding = 'regular',\r\n activeTheme = 'blue',\r\n ...restProps\r\n } = props\r\n const [internalValue, setInternalValue] = React.useState(defaultValue)\r\n const value = controlledValue !== undefined ? controlledValue : internalValue\r\n\r\n const handleChange = React.useCallback(\r\n (newValue: ItemType) => {\r\n setInternalValue(newValue.value)\r\n onChange?.(newValue)\r\n },\r\n [onChange]\r\n )\r\n\r\n return (\r\n
\r\n \r\n {items.map((option, index) => (\r\n handleChange(option)}\r\n >\r\n {option.label}\r\n \r\n ))}\r\n \r\n {label && {label}}\r\n
\r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Icon, IconNameType, isValidIconName } from './icon'\r\nimport { PropsWithAs } from './types'\r\n\r\nexport const BUTTON_DEFAULT_ELEMENT = 'button'\r\n\r\nexport const BUTTON_BASE_CLASS =\r\n 'group/button flex shrink-0 items-center justify-center font-medium whitespace-nowrap focus:outline-none'\r\nexport const BUTTON_SQUARE_BASE_CLASS = 'shrink-0 justify-center'\r\nexport const BUTTON_FOCUS_STYLES = 'focus-visible:ring-2 ring-gray-200 dark:ring-gray-500'\r\n\r\nexport enum ButtonSize {\r\n none = '', // Do not set fixed dimensions\r\n xxsmall = 'text-info h-4 min-w-4', // 16px height\r\n xsmall = 'text-2xs h-5 min-w-5', // 20px height\r\n small = 'text-2xs h-6 min-w-6', // 24px height\r\n regular = 'text-2xs h-7 min-w-7', // 28px height\r\n medium = 'text-sm h-8 min-w-8', // 32px height\r\n large = 'text-sm h-9 min-w-9', // 36px height\r\n xlarge = 'text-sm h-11 min-w-9', // 44px height\r\n}\r\n\r\n// Must have the same keys as ButtonSize\r\nexport enum ButtonPadding {\r\n none = '',\r\n xxsmall = 'px-0.5', // 2px padding\r\n xsmall = 'px-1', // 4px padding\r\n small = 'px-1.5', // 6px padding\r\n regular = 'px-2', // 8px padding\r\n medium = 'px-2.5', // 10px padding\r\n large = 'px-3', // 12px padding\r\n xlarge = 'px-3.5', // 14px padding\r\n}\r\n\r\nexport enum ButtonAlign {\r\n none = '',\r\n left = 'text-left',\r\n center = 'text-center',\r\n right = 'text-right',\r\n}\r\n\r\nexport type ButtonSizeType = keyof typeof ButtonSize\r\n\r\nexport enum ButtonSquareSize {\r\n none = '', // Do not set fixed dimensions\r\n xxsmall = 'h-4 w-4', // 16x16px\r\n xsmall = 'h-5 w-5', // 20x20px\r\n small = 'h-6 w-6', // 24x24px\r\n regular = 'h-7 w-7', // 28x28px\r\n medium = 'h-8 w-8', // 32x32px\r\n large = 'h-9 w-9', // 36x36px\r\n xlarge = 'h-11 w-11', // 44x44px\r\n}\r\n\r\nexport enum ButtonRounding {\r\n none = '',\r\n small = 'rounded', // 4px\r\n regular = 'rounded-md', // 6px\r\n large = 'rounded-lg', // 6px\r\n full = 'rounded-full', // 9999px\r\n}\r\n\r\nexport type ButtonRoundingType = keyof typeof ButtonRounding\r\n\r\nexport enum ButtonTheme {\r\n transparent, // Only basic shape is rendered\r\n light,\r\n lightTransparent,\r\n dark,\r\n blue,\r\n violet,\r\n blueHover,\r\n red,\r\n headerItem,\r\n menuItem,\r\n menuItemTransparent,\r\n menuItemDark,\r\n opacity,\r\n outline,\r\n chipTransparent,\r\n chip,\r\n chipOutline,\r\n link,\r\n linkText,\r\n tab,\r\n}\r\n\r\nexport type ButtonThemeType = keyof typeof ButtonTheme\r\n\r\n/**\r\n * Get button theme\r\n */\r\nexport function getButtonTheme({\r\n theme,\r\n active = false,\r\n size = 'regular',\r\n}: {\r\n theme: ButtonTheme\r\n active?: boolean\r\n size?: ButtonSizeType\r\n}) {\r\n switch (theme) {\r\n case ButtonTheme.light: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent active:bg-gray-200/90 disabled:bg-gray-200/30 disabled:text-gray-400 disabled:hover:bg-gray-200/30 disabled:hover:text-gray-400', // Light\r\n 'dark:active:bg-gray-500/90 dark:disabled:bg-gray-500/30 dark:disabled:text-gray-300 dark:disabled:hover:bg-gray-500/30 dark:disabled:hover:text-gray-300', // Dark\r\n {\r\n 'bg-gray-200/30 hover:bg-gray-200/50 dark:bg-gray-500/30 dark:hover:bg-gray-500/50': !active,\r\n 'bg-gray-200/90 dark:bg-gray-500/90': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.lightTransparent: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent active:bg-gray-200/90 disabled:bg-transparent disabled:text-gray-400 disabled:hover:bg-transparent disabled:hover:text-gray-400', // Light\r\n 'dark:active:bg-gray-500/90 dark:disabled:bg-gray-500/30 dark:disabled:text-gray-300 dark:disabled:hover:bg-gray-500/30 dark:disabled:hover:text-gray-300', // Dark\r\n {\r\n 'bg-transparent hover:bg-gray-200/50 dark:bg-gray-500/30 dark:hover:bg-gray-500/50': !active,\r\n 'bg-gray-200/90 dark:bg-gray-500/90': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.dark: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent text-gray-50 active:bg-gray-500/90 disabled:bg-gray-500/30 disabled:text-gray-300 disabled:hover:bg-gray-500/30 disabled:hover:text-gray-300',\r\n {\r\n 'bg-gray-500/30 hover:bg-gray-500/50': !active,\r\n 'bg-gray-500/90': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.blue: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent text-white hover:text-white active:bg-blue-600 disabled:bg-blue-200 dark:disabled:text-gray-300 disabled:hover:bg-blue-200 dark:disabled:hover:text-gray-300',\r\n {\r\n 'bg-blue-400 hover:bg-blue-500': !active,\r\n 'bg-blue-600': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.violet: {\r\n return {\r\n button: classnames(\r\n 'text-white hover:text-white focus:text-white disabled:bg-violet-200 dark:disabled:text-gray-300 disabled:hover:bg-violet-200 dark:disabled:hover:text-gray-300',\r\n {\r\n 'bg-violet-500 hover:bg-violet-600': !active,\r\n 'bg-violet-700': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.blueHover: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent active:bg-blue-600 disabled:bg-blue-200 disabled:text-gray-400 dark:disabled:text-gray-300 disabled:hover:bg-blue-200 disabled:hover:text-gray-400 dark:disabled:hover:text-gray-300',\r\n {\r\n 'text-blue-600 hover:bg-blue-400 hover:text-white dark:text-blue-500 dark:hover:text-white': !active,\r\n 'bg-blue-400 text-white': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.red: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent text-white active:bg-red-600 disabled:bg-red-200 disabled:text-gray-300 disabled:hover:bg-red-200 disabled:hover:text-gray-300',\r\n {\r\n 'bg-red-400 hover:bg-red-500': !active,\r\n 'bg-red-600': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.headerItem: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent bg-gray-800 text-gray-300 hover:bg-gray-900 hover:text-white disabled:hover:text-gray-300 disabled:bg-gray-700 disabled:hover:bg-gray-700' // Base\r\n ),\r\n icon: 'text-white',\r\n }\r\n }\r\n case ButtonTheme.menuItem: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent dark:disabled:hover:bg-transparent disabled:hover:bg-transparent',\r\n {\r\n 'hover:bg-gray-200/30 disabled:text-gray-400 disabled:hover:text-gray-400 dark:hover:bg-gray-500/30':\r\n !active,\r\n 'bg-gray-200/30 dark:bg-gray-500/30': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.menuItemTransparent: {\r\n return {\r\n button: 'border border-transparent disabled:text-gray-400',\r\n }\r\n }\r\n case ButtonTheme.menuItemDark: {\r\n return {\r\n button: classnames('border border-transparent text-white dark:disabled:hover:bg-transparent', {\r\n 'hover:bg-gray-700': !active,\r\n 'bg-gray-700': active,\r\n }),\r\n }\r\n }\r\n case ButtonTheme.opacity:\r\n return {\r\n button: classnames(\r\n 'border border-transparent disabled:opacity-50 disabled:hover:opacity-50 dark:text-gray-400',\r\n {\r\n 'opacity-70 hover:opacity-100': !active,\r\n }\r\n ),\r\n }\r\n case ButtonTheme.outline:\r\n return {\r\n button: classnames(\r\n // Base styles\r\n 'bg-primary border disabled:border-gray-100 disabled:bg-gray-50 disabled:text-gray-500 disabled:hover:border-gray-100 disabled:hover:bg-gray-50 disabled:hover:text-gray-500',\r\n // Dark styles\r\n 'dark:bg-gray-800 dark:text-gray-50 dark:disabled:border-transparent dark:disabled:bg-gray-700 dark:disabled:text-gray-400 dark:disabled:hover:border-transparent dark:disabled:hover:bg-gray-700 dark:disabled:hover:text-gray-400',\r\n {\r\n 'border-blue-400 dark:border-blue-400': active,\r\n 'border-gray-200 hover:border-gray-300 dark:hover:border-gray-400 dark:border-primary': !active,\r\n }\r\n ),\r\n }\r\n case ButtonTheme.chip:\r\n return {\r\n button: classnames('border text-default dark:disabled:hover:bg-gray-700 disabled:hover:bg-gray-50', {\r\n 'border-transparent bg-gray-200/30 hover:bg-gray-200/30 dark:bg-gray-700 dark:hover:bg-gray-500/30': !active,\r\n 'border-blue-400 bg-blue-50 text-gray-900 dark:border-blue-400 dark:bg-gray-500/30 dark:text-white': active,\r\n }),\r\n }\r\n case ButtonTheme.chipOutline:\r\n return {\r\n button: classnames(\r\n // Base styles\r\n 'border text-gray-600 disabled:text-gray-400 disabled:hover:border-gray-200 disabled:hover:bg-primary disabled:hover:text-gray-400',\r\n // Dark styles\r\n 'dark:text-gray-200 dark:disabled:text-gray-400 dark:disabled:hover:text-gray-400 dark:disabled:hover:border-gray-600 dark:disabled:hover:bg-primary',\r\n {\r\n 'bg-primary border-gray-200 dark:border-primary hover:text-default hover:border-gray-300 hover:bg-gray-50 dark:hover:text-default dark:hover:bg-gray-900 dark:hover:border-gray-400':\r\n !active,\r\n 'text-default border-blue-400 bg-blue-50 dark:bg-blue-700 dark:text-white': active,\r\n }\r\n ),\r\n }\r\n case ButtonTheme.chipTransparent:\r\n return {\r\n button: classnames(\r\n 'border dark:disabled:hover:bg-transparent disabled:hover:bg-transparent dark:disabled:hover:text-gray-400 disabled:hover:text-gray-500', // Base styles\r\n {\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 !active,\r\n 'border-blue-400 bg-blue-50 text-gray-900 dark:bg-gray-500/30 dark:text-white': active,\r\n }\r\n ),\r\n }\r\n case ButtonTheme.link: {\r\n return {\r\n button: classnames(\r\n 'border border-transparent disabled:text-blue-500/50 disabled:hover:text-blue-500/50', // Light\r\n 'dark:disabled:text-blue-300/50 dark:disabled:hover:text-blue-300/50', // Dark\r\n {\r\n 'text-blue-500 hover:text-blue-600 dark:text-blue-300 dark:hover:text-blue-200': !active,\r\n 'bg-blue-50 text-blue-600 dark:bg-blue-700 dark:text-white': active,\r\n }\r\n ),\r\n }\r\n }\r\n case ButtonTheme.linkText: {\r\n return {\r\n button:\r\n 'text-inherit font-normal hover:text-blue-600 dark:hover:text-blue-200 no-underline hover:underline disabled:opacity-50 disabled:hover:opacity-50',\r\n }\r\n }\r\n case ButtonTheme.tab: {\r\n return {\r\n button: classnames('border-b', {\r\n 'border-b-gray-100 text-default dark:border-b-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 dark:hover:border-b-gray-600':\r\n !active,\r\n 'text-blue-500 border-b-blue-400 shadow-blue-400 dark:text-blue-300': active,\r\n 'shadow-[inset_0_-1px_0]': active && size !== 'xlarge',\r\n 'shadow-[inset_0_-3px_0]': active && size === 'xlarge',\r\n }),\r\n }\r\n }\r\n default:\r\n return {}\r\n }\r\n}\r\n\r\n/**\r\n * Export Button html props type so we don’t always have to omit\r\n */\r\nexport type ButtonHTMLProps = Omit<\r\n React.HTMLProps,\r\n 'ref' | 'type' | 'size' | 'content' | 'align' | 'as'\r\n>\r\n\r\nexport interface ButtonProps {\r\n /**\r\n * Visual appearance of the button\r\n */\r\n theme?: ButtonThemeType\r\n\r\n /**\r\n * Sets if button is square or normal.\r\n *\r\n * @default 'regular'\r\n */\r\n appearance?: 'regular' | 'square'\r\n\r\n /**\r\n * Size of the button\r\n *\r\n * @default \"regular\"\r\n */\r\n size?: ButtonSizeType\r\n\r\n /**\r\n * Override align of the text for a button\r\n *\r\n * @default center, left when `leftContent` or `rightContent` are defined\r\n */\r\n align?: keyof typeof ButtonAlign\r\n\r\n /**\r\n * Override button padding\r\n *\r\n * @default undefined\r\n */\r\n padding?: keyof typeof ButtonPadding\r\n\r\n /**\r\n * Render button in an active state (darker background, etc.)\r\n */\r\n active?: boolean\r\n\r\n /**\r\n * Sets if the button has focus ring\r\n *\r\n * @default true\r\n */\r\n focusRing?: boolean\r\n\r\n /**\r\n * Sets rounded corners for the button\r\n *\r\n * @default regular\r\n */\r\n rounding?: ButtonRoundingType\r\n\r\n /**\r\n * Class for the content wrapper\r\n */\r\n contentClass?: string\r\n\r\n /**\r\n * Name of left icon\r\n */\r\n leftContent?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Name of right icon\r\n */\r\n rightContent?: JSX.Element | IconNameType\r\n}\r\n\r\nexport type ButtonComponentProps =\r\n PropsWithAs & ButtonProps\r\n\r\nfunction ButtonComponent(\r\n {\r\n as: asComponent,\r\n theme = 'light',\r\n size = 'regular',\r\n rounding = 'regular',\r\n focusRing = true,\r\n appearance = 'regular',\r\n align,\r\n padding = size, // same as size\r\n active,\r\n contentClass,\r\n leftContent,\r\n rightContent,\r\n className,\r\n children,\r\n ...props\r\n }: ButtonComponentProps,\r\n ref: React.ForwardedRef\r\n) {\r\n const isSquare = appearance === 'square'\r\n const buttonTheme = React.useMemo(\r\n () => getButtonTheme({ theme: ButtonTheme[theme], active, size }),\r\n [theme, active, size]\r\n )\r\n const buttonPadding = React.useMemo(() => (isSquare ? null : ButtonPadding[padding]), [isSquare, padding])\r\n const buttonSize = isSquare ? ButtonSquareSize[size] : ButtonSize[size]\r\n const buttonRounding = ButtonRounding[rounding]\r\n const hasIcons = leftContent || rightContent\r\n\r\n return React.createElement(\r\n asComponent ?? BUTTON_DEFAULT_ELEMENT,\r\n {\r\n ...props,\r\n ref,\r\n className: classnames(\r\n BUTTON_BASE_CLASS,\r\n buttonTheme.button,\r\n buttonPadding,\r\n buttonSize,\r\n buttonRounding,\r\n {\r\n [BUTTON_SQUARE_BASE_CLASS]: isSquare,\r\n [BUTTON_FOCUS_STYLES]: focusRing,\r\n },\r\n className\r\n ),\r\n },\r\n <>\r\n {leftContent && (\r\n
\r\n {isValidIconName(leftContent) ? : leftContent}\r\n
\r\n )}\r\n {children && !isSquare ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n children\r\n )}\r\n {rightContent && (\r\n
\r\n {isValidIconName(rightContent) ? : rightContent}\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\n/**\r\n * We need to forward ref to the function, but typescript looses the type of the\r\n * props param so we need to typecast to get suggestions to work\r\n */\r\nexport const Button = React.forwardRef(ButtonComponent) as <\r\n TagType extends React.ElementType = typeof BUTTON_DEFAULT_ELEMENT,\r\n>(\r\n props: PropsWithAs & ButtonProps & { ref?: React.ForwardedRef }\r\n) => ReturnType\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 darkGray = 'darkGray',\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: boolean) => {\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: React.KeyboardEvent) => {\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 * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Box } from '../box'\r\nimport { Input, InputProps } from '../input'\r\n\r\nexport interface ComboBoxProps extends Partial> {\r\n /**\r\n * The returned object from `useComboBoxState`\r\n */\r\n state: Ariakit.ComboboxStore\r\n\r\n /**\r\n * Additional props for the input\r\n */\r\n inputProps?: Partial & Omit, 'size'>\r\n\r\n /**\r\n * Additional props for the popover\r\n */\r\n popoverProps?: Partial\r\n\r\n /**\r\n * Id for testing purposes\r\n */\r\n inputTestId?: string\r\n\r\n /**\r\n * Minimum num of chars in input to show the popover\r\n */\r\n minValueLength?: number\r\n\r\n /**\r\n * Inut value getter\r\n */\r\n getInputValue?: (activeValue: string | undefined, value: string) => string\r\n}\r\n\r\nexport function ComboBox({\r\n state,\r\n children,\r\n inputProps,\r\n popoverProps,\r\n inputTestId,\r\n 'aria-label': ariaLabel,\r\n minValueLength = 0,\r\n getInputValue,\r\n ...props\r\n}: React.PropsWithChildren) {\r\n const isMounted = state.useState('mounted')\r\n const value = state.useState('value')\r\n const activeValue = state.useState('activeValue')\r\n const placement = state.useState('currentPlacement')\r\n\r\n const inputValue = React.useMemo(() => {\r\n if (getInputValue) return getInputValue(activeValue, value)\r\n\r\n return activeValue || value\r\n }, [getInputValue, value, activeValue])\r\n\r\n return (\r\n <>\r\n ) => {\r\n if (ev.key === 'Enter') {\r\n state.setSelectedValue(value)\r\n }\r\n inputProps?.onKeyDown?.(ev)\r\n }}\r\n />\r\n }\r\n {...props}\r\n />\r\n {isMounted && value.length >= minValueLength && (\r\n }\r\n store={state}\r\n aria-label={ariaLabel}\r\n {...popoverProps}\r\n className={classnames(\r\n 'z-dialog flex flex-col items-stretch space-y-px p-2 opacity-0 outline-none transition duration-[250ms] will-change-transform data-[enter]:translate-x-0 data-[enter]:translate-y-0 data-[enter]:opacity-100 motion-safe:transform',\r\n {\r\n 'motion-safe:translate-y-1': placement.startsWith('top'),\r\n 'motion-safe:-translate-x-1': placement.startsWith('right'),\r\n 'motion-safe:-translate-y-1': placement.startsWith('bottom'),\r\n 'motion-safe:translate-x-1': placement.startsWith('left'),\r\n },\r\n popoverProps?.className\r\n )}\r\n >\r\n {children}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","// Disable rule as the component is external\r\nimport * as Ariakit from '@ariakit/react'\r\nimport classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { BUTTON_DEFAULT_ELEMENT, Button, ButtonProps } from '../button'\r\nimport { PropsWithAs } from '../types'\r\n\r\nconst DEFAULT_ELEMENT = 'button'\r\n\r\nexport interface ComboBoxItemProps extends ButtonProps {\r\n /**\r\n * The returned object from `useComboBoxState`\r\n */\r\n state?: Ariakit.ComboboxStore\r\n\r\n /**\r\n * Value for the combo box item\r\n */\r\n value: string\r\n}\r\n\r\nfunction ComboBoxItemButton(\r\n { as: asComponent, children, 'data-active-item': dataActiveItem, ...props }: PropsWithAs & ButtonProps,\r\n ref: React.ForwardedRef\r\n) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const ComboBoxItemButtonWithRef = React.forwardRef(ComboBoxItemButton) as <\r\n TagType extends React.ElementType = typeof BUTTON_DEFAULT_ELEMENT,\r\n>(\r\n props: PropsWithAs & ButtonProps & { ref?: React.ForwardedRef }\r\n) => ReturnType\r\n\r\nexport function ComboBoxItem({\r\n as: asComponent,\r\n state,\r\n children,\r\n contentClass,\r\n ...props\r\n}: PropsWithAs & ComboBoxItemProps) {\r\n return (\r\n \r\n {children}\r\n \r\n }\r\n />\r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\n\r\nexport const useComboBoxState = Ariakit.useComboboxStore\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 Ariakit from '@ariakit/react'\r\nimport * as React from 'react'\r\n\r\nimport { isMobile } from '../../../app/shared/isMobile'\r\n\r\nexport const ZIndexContext = React.createContext(null)\r\n\r\nexport function useZIndex(defaultValue: string | null = 'z-50') {\r\n return React.useContext(ZIndexContext) ?? defaultValue\r\n}\r\n\r\nexport type DialogStateProps = Ariakit.DialogStoreProps\r\nexport type DialogStateReturn = ReturnType\r\n/**\r\n * Hook which provides state to dialogs\r\n */\r\nexport function useDialogState(settings?: DialogStateProps) {\r\n return Ariakit.useDialogStore(settings)\r\n}\r\n\r\nexport const DialogDragContext = React.createContext<{\r\n enabled?: boolean\r\n handleRef?: React.RefObject\r\n boxPosition: { x: number; y: number }\r\n resetBoxPosition: () => void\r\n setBoxPosition: React.Dispatch>\r\n}>({\r\n enabled: false,\r\n handleRef: undefined,\r\n boxPosition: { x: 0, y: 0 },\r\n resetBoxPosition: () => {},\r\n setBoxPosition: () => {},\r\n})\r\n\r\n/**\r\n * Hook which allows an element on the page to become draggable\r\n */\r\nexport function useDrag(enabled?: boolean) {\r\n const dragging = React.useRef(false)\r\n const handleRef = React.useRef(null)\r\n const handleElement = handleRef.current\r\n\r\n /**\r\n * Set box position in both state for the component to re-render and as a ref\r\n * so that we don’t have to re-run the whole effect on every change\r\n */\r\n const [boxPosition, setBoxPosition] = React.useState({ x: 0, y: 0 })\r\n const boxPositionRef = React.useRef({ x: 0, y: 0 })\r\n const dragDiff = React.useRef({ x: 0, y: 0 })\r\n\r\n const { current: resetBoxPosition } = React.useRef(() => {\r\n setBoxPosition({ x: 0, y: 0 })\r\n })\r\n\r\n React.useEffect(() => {\r\n boxPositionRef.current = { ...boxPosition }\r\n }, [boxPosition])\r\n\r\n React.useEffect(() => {\r\n if (!enabled || !handleElement || isMobile()) return\r\n\r\n const onMouseDown = (ev: MouseEvent) => {\r\n dragging.current = true\r\n\r\n dragDiff.current = {\r\n x: ev.pageX - boxPositionRef.current.x - window.scrollX,\r\n y: ev.pageY - boxPositionRef.current.y - window.scrollY,\r\n }\r\n }\r\n\r\n const onMouseUp = () => {\r\n dragging.current = false\r\n }\r\n\r\n const onMouseMove = (ev: MouseEvent) => {\r\n if (!dragging.current) return\r\n\r\n const x = ev.pageX - dragDiff.current.x - window.scrollX\r\n const y = ev.pageY - dragDiff.current.y - window.scrollY\r\n\r\n setBoxPosition({ x, y })\r\n }\r\n\r\n handleElement.addEventListener('pointerdown', onMouseDown)\r\n handleElement.addEventListener('dblclick', resetBoxPosition)\r\n window.addEventListener('pointerup', onMouseUp)\r\n document.body.addEventListener('pointermove', onMouseMove)\r\n\r\n return () => {\r\n handleElement.removeEventListener('pointerdown', onMouseDown)\r\n handleElement.removeEventListener('dblclick', resetBoxPosition)\r\n window.removeEventListener('pointerup', onMouseUp)\r\n document.body.removeEventListener('pointermove', onMouseMove)\r\n }\r\n }, [enabled, handleElement, resetBoxPosition])\r\n\r\n return {\r\n enabled,\r\n handleRef,\r\n boxPosition,\r\n setBoxPosition,\r\n resetBoxPosition,\r\n }\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 { usePrevious } from '../../hooks/use-previous'\r\nimport { usePopoverPlacement } from '../../hooks/usePopoverPlacement'\r\nimport { blurWithoutScroll, focusWithoutScroll, preventDefault } from '../../util'\r\n\r\nenum DropdownRounding {\r\n none = '',\r\n regular = 'rounded-lg',\r\n}\r\n\r\nenum DropdownTheme {\r\n none = '',\r\n default = 'border border-primary bg-primary',\r\n}\r\n\r\ninterface StatelessDropdownProps\r\n extends Omit, 'ref'>,\r\n Pick {\r\n /**\r\n * Trigger button for the dropdown\r\n */\r\n trigger: JSX.Element | null\r\n\r\n /**\r\n * Disable interaction with other page elements when the dropdown is open\r\n *\r\n * @default true\r\n */\r\n modal?: boolean\r\n\r\n /**\r\n * When true, the dropdown will show when dropdown is hovered. Combine with\r\n * `backdrop={false}` to make the popover hide on mouse out\r\n */\r\n showOnHover?: boolean\r\n\r\n /**\r\n * Placement of the dropdown\r\n *\r\n */\r\n placement?: Ariakit.MenuProviderProps['placement']\r\n\r\n /**\r\n * Orientation in which the items are laid out. Changes which arrows control next/prev item\r\n *\r\n * @default vertical\r\n */\r\n orientation?: 'vertical' | 'horizontal'\r\n\r\n /**\r\n * Set rounding for the dropdown list\r\n *\r\n * @default regular\r\n */\r\n rounding?: keyof typeof DropdownRounding\r\n\r\n /**\r\n * Dropdown theme\r\n *\r\n * @default default\r\n */\r\n theme?: keyof typeof DropdownTheme\r\n\r\n /**\r\n * The amount of space between button and its popover\r\n *\r\n * @default 4\r\n */\r\n gutter?: number\r\n\r\n /**\r\n * Show backdrop on the dialog. Provide your own element if you want to add background or animation\r\n *\r\n */\r\n backdrop?: false | JSX.Element\r\n\r\n /**\r\n * Do not render the items when the popover is not visible\r\n *\r\n * @default true\r\n */\r\n unmountOnHide?: boolean\r\n\r\n /**\r\n * If true, the dropdown will overlay the trigger if necessary instead of going\r\n * out of bounds and overflowing\r\n */\r\n overlap?: boolean\r\n\r\n /**\r\n * Callback before the menu starts hiding. Event can be prevented which keeps the menu open\r\n * This callback isn’t called on backdrop click. Use `backdrop={
}` to react on backdrop clicks\r\n */\r\n onClose?: (ev: Event) => void\r\n\r\n /**\r\n * Used to provide virtual anchor, useful for context menu, etc\r\n */\r\n getAnchorRect?: () => { x: number; y: number }\r\n\r\n /**\r\n * Set which element gets focus when the dialog visibility changes. If `false`, the focus stays on the previous element.\r\n * Defaults to focusing without scrolling the page or keeping the focus on trigger if input-like.\r\n */\r\n autoFocusOnShow?: false | ((element: HTMLElement) => boolean)\r\n\r\n /**\r\n * Set which element gets focus when the dialog visibility changes. If `false`, the focus stays on the previous element.\r\n * Defaults to focusing without scrolling the page or keeping the focus on trigger if input-like.\r\n */\r\n autoFocusOnHide?: false | ((element: HTMLElement) => boolean)\r\n\r\n /**\r\n * Callback which is called when the dialog opens and all animations complete\r\n */\r\n onFullyOpen?: () => void\r\n\r\n /**\r\n * Callback which is called when the dialog closes and all animations complete\r\n */\r\n onFullyClosed?: () => void\r\n}\r\n\r\nexport const StatelessDropdown = React.forwardRef(function DropdownComponent(\r\n {\r\n trigger,\r\n modal = true,\r\n rounding = 'regular',\r\n theme = 'default',\r\n gutter,\r\n unmountOnHide = true,\r\n children,\r\n backdrop,\r\n showOnHover,\r\n hideOnInteractOutside,\r\n autoFocusOnShow,\r\n autoFocusOnHide,\r\n onFullyOpen,\r\n onFullyClosed,\r\n ...props\r\n }: React.PropsWithChildren,\r\n ref: React.ForwardedRef\r\n) {\r\n const store = Ariakit.useMenuContext()\r\n const { placement, zIndex, updatePosition } = usePopoverPlacement(store)\r\n const isOpen = store?.useState('open')\r\n const [isFullyOpen, setIsFullyOpen] = React.useState(false)\r\n const isMounted = store?.useState('mounted')\r\n const wasMounted = usePrevious(isMounted)\r\n const menuGutter = gutter ?? (store?.parent ? 6 : 4)\r\n\r\n React.useEffect(() => {\r\n if (wasMounted && !isMounted) {\r\n onFullyClosed?.()\r\n }\r\n // We want to call it only on isMounted change\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isMounted])\r\n\r\n return (\r\n <>\r\n {trigger && (\r\n \r\n )}\r\n }\r\n // Update zIndex when popover position changes\r\n updatePosition={updatePosition}\r\n // E2E tests don’t wait for transitions to complete and it could lead to bugs with other popover components (ResizeObserver loop exceeded)\r\n // or visual diffs due a screenshot being captured while the dropdown still in transition\r\n // If you encounter this problem, just do `cy.get('[data-fully-open=true]').should('exist')` before continuing to wait for the dropdown\r\n data-fully-open={isFullyOpen}\r\n className={classNames(\r\n props.className,\r\n zIndex,\r\n DropdownRounding[rounding],\r\n DropdownTheme[theme],\r\n 'custom-scrollbar absolute flex flex-col overflow-hidden shadow-modal outline-none dark:shadow-modal-dark',\r\n // These are set by popper, we just need to make sure we don’t encroach on the safe insets\r\n 'min-w-[--popover-anchor-width] max-w-[--popover-available-width]',\r\n // Animations\r\n 'opacity-0 transition duration-[250ms] data-[enter]:translate-y-0 data-[enter]:opacity-100',\r\n {\r\n // When in combobox mode, the padding is smaller so we can render a gradient under the combobox input.\r\n // Change the custom scrollbar offset so the top of the first item fits the top of our scrollbar\r\n '[--scrollbar-radius:0]': DropdownRounding[rounding] === DropdownRounding.none,\r\n // Direction based styles\r\n 'max-h-[calc(var(--popover-available-height)-env(safe-area-inset-bottom))] motion-safe:-translate-y-1':\r\n placement?.startsWith('bottom'),\r\n 'max-h-[calc(var(--popover-available-height)-env(safe-area-inset-top))] motion-safe:translate-y-1':\r\n placement?.startsWith('top'),\r\n }\r\n )}\r\n onTransitionEnd={(ev) => {\r\n if (ev.target === ev.currentTarget && isOpen) {\r\n setIsFullyOpen(true)\r\n onFullyOpen?.()\r\n }\r\n }}\r\n >\r\n \r\n {children}\r\n
\r\n \r\n \r\n )\r\n})\r\n\r\nexport interface DropdownProps extends StatelessDropdownProps {\r\n state?: Ariakit.MenuStore\r\n}\r\n\r\nexport const Dropdown = React.forwardRef(\r\n (\r\n { state, placement, orientation = 'vertical', ...props }: React.PropsWithChildren,\r\n ref: React.ForwardedRef\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 { OptionButton, OptionButtonProps } from '../OptionButton'\r\nimport { BUTTON_DEFAULT_ELEMENT } from '../button'\r\nimport { PropsWithAs } from '../types'\r\n\r\ninterface DropdownItemProps extends OptionButtonProps {\r\n store?: Ariakit.MenuStore\r\n\r\n subtitle?: React.ReactNode\r\n\r\n /**\r\n * Whether clicking the item should also close the dropdown. Only applies to\r\n * items without a submenu\r\n *\r\n * @default true\r\n */\r\n hideOnClick?: boolean\r\n}\r\n\r\nfunction DropdownItemComponent(\r\n { as: asComponent, ...props }: PropsWithAs & DropdownItemProps,\r\n ref: React.ForwardedRef\r\n) {\r\n return } />\r\n}\r\n\r\n/**\r\n * We need to forward ref to the function, but typescript looses the type of the\r\n * props param so we need to typecast to get suggestions to work\r\n */\r\nexport const DropdownItem = React.forwardRef(DropdownItemComponent) as <\r\n TagType extends React.ElementType = typeof BUTTON_DEFAULT_ELEMENT,\r\n>(\r\n props: PropsWithAs & DropdownItemProps & { ref?: React.ForwardedRef }\r\n) => ReturnType\r\n","import * as Ariakit from '@ariakit/react'\r\n\r\nexport const useDropdownState = Ariakit.useMenuStore\r\n","import * as Sentry from '@sentry/browser'\r\nimport { ReactNode, useEffect } from 'react'\r\nimport { FallbackProps } from 'react-error-boundary'\r\nimport { useRouteError } from 'react-router-dom'\r\n\r\nimport { link } from '../services/routing'\r\nimport { Button } from './button'\r\nimport { Heading, Paragraph } from './typography'\r\n\r\ninterface ErrorViewProps {\r\n /**\r\n * Title of the message\r\n */\r\n title?: ReactNode\r\n\r\n /**\r\n * Body text\r\n */\r\n message?: ReactNode\r\n\r\n /**\r\n * Show contact support text under the message\r\n *\r\n * @default true\r\n */\r\n showContact?: boolean\r\n\r\n /**\r\n * Show refresh page button under the text\r\n *\r\n * @default true\r\n */\r\n showRefresh?: boolean\r\n}\r\n\r\nexport function ErrorView({ title, message, showContact = true, showRefresh = true }: ErrorViewProps) {\r\n return (\r\n
\r\n {title}\r\n {message}\r\n\r\n {showContact && (\r\n \r\n Our development team has been notified of this. If the error persists, please{' '}\r\n \r\n contact support\r\n \r\n .\r\n \r\n )}\r\n\r\n {showRefresh && (\r\n \r\n Refresh page\r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport function DefaultErrorBoundary({\r\n error,\r\n title = 'Application error',\r\n message = 'We’re sorry but an unknown error occured.',\r\n ...props\r\n}: Partial) {\r\n useEffect(() => {\r\n // Ignore webpack chunk loading errors\r\n if (error?.name === 'ChunkLoadError') return\r\n // Otherwise log to Sentry\r\n Sentry.captureException(error, { level: 'fatal' })\r\n // so we can see error in logs\r\n console.error('ErrorBoundary:', JSON.stringify(error))\r\n }, [error])\r\n\r\n return \r\n}\r\n\r\nexport function RouterErrorElement() {\r\n const error = useRouteError() as Error\r\n return \r\n}\r\n","import { useMemo } from 'react'\r\n\r\ninterface HighlightProps {\r\n /**\r\n * Search string that will be highlighted\r\n */\r\n highlight: string\r\n /**\r\n * Text to be highlighted\r\n */\r\n text: string\r\n}\r\n\r\nexport function Highlight({ highlight, text }: HighlightProps) {\r\n const index = text.toLowerCase().indexOf(highlight.toLowerCase())\r\n\r\n const processedText = useMemo(\r\n () => ({\r\n before: text.substring(0, index),\r\n highlight: text.substring(index, index + highlight.length),\r\n after: text.substring(index + highlight.length),\r\n }),\r\n [highlight.length, index, text]\r\n )\r\n\r\n if (index < 0 || highlight.length < 1) return {text}\r\n\r\n return (\r\n <>\r\n {processedText.before}\r\n {!!processedText.highlight.length && (\r\n \r\n {processedText.highlight}\r\n \r\n )}\r\n {processedText.after}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { IconNameType, iconList } from '.'\r\nimport { SVGProps } from './svg'\r\n\r\nexport interface IconProps extends SVGProps {\r\n /**\r\n * Icon name\r\n */\r\n name?: IconNameType\r\n\r\n /**\r\n * Alternative way to pass icon to render if you want to render a custom component\r\n * or use `iconList` object lookup\r\n */\r\n as?: React.FC\r\n}\r\n\r\nexport function Icon({ name, as: asComponent, className, width = 16, height = width, ...props }: IconProps) {\r\n if (name && asComponent) {\r\n throw new Error('Specifying both \"name\" and \"as\" on Icon component is not supported')\r\n }\r\n\r\n if (!name && !asComponent) {\r\n throw new Error('No icon specified')\r\n }\r\n\r\n if (name) {\r\n if (iconList[name] === undefined) {\r\n throw new Error('Icon not found')\r\n }\r\n\r\n const fileName = ['icons', iconList[name]].filter(Boolean).join('_')\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const Component = asComponent!\r\n return \r\n}\r\n","// Export the Icon component itself\r\nexport * from './icon'\r\n\r\nexport function isValidIconName(name?: unknown): name is IconNameType {\r\n if (!name || typeof name !== 'string') return false\r\n\r\n return iconList[name as IconNameType] !== undefined\r\n}\r\n\r\nexport type IconNameType = keyof typeof iconList\r\n\r\nconst root = ''\r\nconst chartLayouts = 'chart-layouts'\r\nconst chartTools = 'chart-tools'\r\nconst chartTypes = 'chart-types'\r\nconst screener = 'screener'\r\n\r\n// Export list of icon components\r\nexport const iconList = {\r\n // Main icons\r\n add: root,\r\n arrowBackward: root,\r\n arrowDownShort: root,\r\n arrowForward: root,\r\n arrowUpShort: root,\r\n briefcase: root,\r\n calendar: root,\r\n caretDown: root,\r\n caretLeft: root,\r\n caretRight: root,\r\n caretUp: root,\r\n caretVertical: root,\r\n chartBar: root,\r\n chartBubble: root,\r\n chartPie: root,\r\n chartTable: root,\r\n chartTreemap: root,\r\n checkboxTick: root,\r\n chevronDown: root,\r\n chevronLeft: root,\r\n chevronRight: root,\r\n chevronUp: root,\r\n close: root,\r\n darkMode: root,\r\n diamondOutlined: root,\r\n done: root,\r\n drag: root,\r\n draw: root,\r\n empty: root,\r\n exitFullscreen: root,\r\n flash: root,\r\n fullscreen: root,\r\n gesture: root,\r\n gift: root,\r\n hamburger: root,\r\n help: root,\r\n idea: root,\r\n ideaLoad: root,\r\n ideaSave: root,\r\n import: root,\r\n info: root,\r\n interval: root,\r\n lightMode: root,\r\n link: root,\r\n lock: root,\r\n lockOpened: root,\r\n menuClose: root,\r\n minus: root,\r\n more: root,\r\n note: root,\r\n openInNew: root,\r\n palette: root,\r\n profile: root,\r\n publish: root,\r\n refresh: root,\r\n remove: root,\r\n restore: root,\r\n search: root,\r\n settings: root,\r\n settingsWheel: root,\r\n share: root,\r\n signOut: root,\r\n star: root,\r\n starOutlined: root,\r\n switchHorizontal: root,\r\n switchVertical: root,\r\n tabKey: root,\r\n template: root,\r\n trashCan: root,\r\n trendingDown: root,\r\n trendingUp: root,\r\n triangle: root,\r\n triangleOutlineDown: root,\r\n triangleOutlineUp: root,\r\n warning: root,\r\n\r\n // Chart layouts\r\n layout1h1v: chartLayouts,\r\n layout1h2v: chartLayouts,\r\n layout1h3v: chartLayouts,\r\n layout1l2r: chartLayouts,\r\n layout1t2b: chartLayouts,\r\n layout2h1v: chartLayouts,\r\n layout2h2v: chartLayouts,\r\n layout3h1v: chartLayouts,\r\n layout3h2v: chartLayouts,\r\n\r\n // Chart tools\r\n drawingActionDelete: chartTools,\r\n drawingSettingAutosaveOff: chartTools,\r\n drawingSettingAutosaveOn: chartTools,\r\n drawingSettingAutosaveSaving: chartTools,\r\n drawingSettingDrawingMode: chartTools,\r\n drawingSettingDrawingModeActive: chartTools,\r\n drawingSettingHide: chartTools,\r\n drawingSettingLock: chartTools,\r\n drawingSettingPreserveDrawings: chartTools,\r\n drawingSettingPreserveDrawingsActive: chartTools,\r\n drawingSettingShow: chartTools,\r\n drawingSettingUnlock: chartTools,\r\n toolArrow: chartTools,\r\n toolAVWAP: chartTools,\r\n toolBrush: chartTools,\r\n toolCallout: chartTools,\r\n toolCurve: chartTools,\r\n toolElliottWave: chartTools,\r\n toolEllipse: chartTools,\r\n toolExpand: chartTools,\r\n toolFibonacci: chartTools,\r\n toolLine: chartTools,\r\n toolMeasure: chartTools,\r\n toolMidLineH: chartTools,\r\n toolMidLineV: chartTools,\r\n toolMouse: chartTools,\r\n toolPitchfork: chartTools,\r\n toolPolygon: chartTools,\r\n toolPosition: chartTools,\r\n toolRect: chartTools,\r\n toolRectRotated: chartTools,\r\n toolText: chartTools,\r\n toolTriangle: chartTools,\r\n toolXABCD: chartTools,\r\n\r\n // Chart types\r\n candleBarBasic: chartTypes,\r\n candleBarHeikinAshi: chartTypes,\r\n candleBarHollow: chartTypes,\r\n lineChartType: chartTypes,\r\n ohlcChartType: chartTypes,\r\n\r\n // Screener\r\n above: screener,\r\n aboveEqual: screener,\r\n abovePercent: screener,\r\n below: screener,\r\n belowEqual: screener,\r\n belowPercent: screener,\r\n between: screener,\r\n crosses: screener,\r\n crossesDown: screener,\r\n crossesUp: screener,\r\n equal: screener,\r\n outside: screener,\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { PartialBy } from '../../types'\r\nimport { MenuGroup } from '../MenuGroup'\r\nimport { Dropdown, DropdownItem, DropdownProps } from '../dropdown'\r\nimport { ObjectHash } from '../types'\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 ContextMenuInnerProps extends PartialBy {\r\n /**\r\n * Items visible in the menu\r\n */\r\n items: ContextMenuItem[]\r\n}\r\n\r\nexport function ContextMenuInner(\r\n { trigger, items, onClose, ...props }: ContextMenuInnerProps,\r\n ref: React.ForwardedRef\r\n) {\r\n return (\r\n ev.preventDefault()}\r\n >\r\n {items?.map((item, index) => {\r\n if (item.type === 'divider') {\r\n return \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 />\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 >\r\n {item.label}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport const ContextMenu = 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\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nconst DEFAULT_VALUE_KEY = 'value'\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\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 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 * as Ariakit from '@ariakit/react'\r\nimport 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 { StatelessDropdown } from '../dropdown'\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 bg-white dark:bg-gray-800', {\r\n 'p-1.5': !isMobile,\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 }),\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 hasFocusRings = React.useRef(false)\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 return (\r\n \r\n \r\n {children}\r\n {\r\n hasFocusRings.current = !!document.querySelector('[data-focus-visible]')\r\n return true\r\n }}\r\n autoFocusOnHide={(el: HTMLElement) => {\r\n // Only call focus when we previously had focus rings to prevent sticky focus rings\r\n if (hasFocusRings.current) el.focus({ preventScroll: true })\r\n hasFocusRings.current = false\r\n return false\r\n }}\r\n />\r\n \r\n \r\n )\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, 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 className,\r\n theme,\r\n isActive,\r\n isStretched,\r\n isInAction,\r\n}: {\r\n className: string\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 className,\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 className,\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 rowId?: number\r\n item: IToolbarItem\r\n disabledTooltip?: string\r\n isInAction?: boolean\r\n isLoading?: boolean\r\n}\r\n\r\nexport const ToolbarButton = React.forwardRef(function ToolbarButton(\r\n { item, disabledTooltip, isInAction: isInActionProp, isLoading, ...props }: PropsWithAs & ToolbarButtonProps,\r\n ref: React.ForwardedRef\r\n) {\r\n const context = Ariakit.useMenuContext()\r\n const { theme, isStretched } = useToolbarContext()\r\n const isInAction = isInActionProp && item.iconAction !== undefined\r\n const buttonSettings = getButtonThemeSettings({\r\n className: props.className,\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 }\r\n store={context?.menubar || undefined}\r\n blurOnHoverEnd\r\n render={\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 )\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 { isMobile } from '../../../app/shared/isMobile'\r\nimport { DropdownItem } from '../dropdown'\r\nimport { Icon } from '../icon'\r\nimport { NativeSelect } from '../select/NativeSelect'\r\nimport { useToolbarContext } from './hooks'\r\nimport { IToolbarItem, ToolbarTheme } from './interfaces'\r\nimport { ToolbarButton } from './toolbar-button'\r\n\r\nconst isMobileBrowser = isMobile()\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 rowId?: number\r\n}\r\n\r\nexport const ToolbarGroup = React.forwardRef(function ToolbarGroup(\r\n {\r\n defaultItem,\r\n isActive,\r\n isLoading,\r\n groupItems,\r\n groupTitle,\r\n onChange,\r\n useNativeSelect = isMobileBrowser,\r\n disabled,\r\n disabledTooltip,\r\n rowId,\r\n }: ToolbarGroupProps,\r\n ref: React.ForwardedRef\r\n) {\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\r\n // Setup states, pass Menubar context to this menu so we can control the shared menu\r\n const context = Ariakit.useMenuContext()\r\n const menu = Ariakit.useMenuStore({ store: context })\r\n\r\n // We have multiple menu triggers but just one shared menu so we need a way to know which button has been hovered\r\n const [menuButton, setMenuButton] = React.useState(null)\r\n const open = menu.useState((state) => state.mounted && state.anchorElement === menuButton)\r\n\r\n // Find the element to render the menu into using Portal\r\n const parentMenu = menu.useState('contentElement')\r\n const menuContentElement = React.useMemo(() => parentMenu?.querySelector('div'), [parentMenu])\r\n\r\n /**\r\n * Charts prevent bubling mouseover so we need to hide the menu manually\r\n */\r\n const hideMenu = menu.hide\r\n React.useEffect(() => {\r\n const onMouseLeave = () => hideMenu()\r\n\r\n parentMenu?.addEventListener('mouseleave', onMouseLeave)\r\n return () => parentMenu?.removeEventListener('mouseleave', onMouseLeave)\r\n }, [hideMenu, parentMenu])\r\n\r\n const showMenu = menu.show\r\n const handleMenuOpen = React.useCallback(\r\n (ev: React.SyntheticEvent) => {\r\n menu.setDisclosureElement(ev.currentTarget)\r\n menu.setAnchorElement(ev.currentTarget)\r\n showMenu()\r\n },\r\n [menu, showMenu]\r\n )\r\n\r\n const trigger = (\r\n \r\n \r\n \r\n \r\n )\r\n\r\n if (useNativeSelect) {\r\n return (\r\n \r\n {trigger}\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\r\n return (\r\n \r\n ) => {\r\n // Preventing this means the dropdown will only open on hover not by a click\r\n ev.preventDefault()\r\n }}\r\n onPointerDown={(ev: React.PointerEvent) => {\r\n // Finally, pre-select the current group tool\r\n onChange(selectedItem.id, 'group')\r\n handleMenuOpen(ev)\r\n }}\r\n />\r\n {open && (\r\n // Render this menu's contents into the parent menu.\r\n }>\r\n {groupItems.map((item) => (\r\n }\r\n data-testid={`toolbar-group-${groupId}-${item.id}`}\r\n rounding={theme === ToolbarTheme.alternative && !FinvizSettings.hasRedesignEnabled ? 'none' : undefined}\r\n onPointerDown={() => {\r\n setSelectedItem(item)\r\n onChange(item.id, 'select')\r\n }}\r\n >\r\n {item.title}\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 rowId,\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 { offset, shift } from '@floating-ui/dom'\r\nimport 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(\r\n buttonClasses,\r\n 'mr-auto',\r\n getButtonTheme({ theme: ButtonTheme.light }).button,\r\n ButtonPadding.regular\r\n ),\r\n text: 'Exit',\r\n },\r\n index > 0 && {\r\n action: tour.back,\r\n classes: classnames(buttonClasses, getButtonTheme({ theme: ButtonTheme.light }).button, ButtonPadding.regular),\r\n text: step.backButton ?? 'Back',\r\n },\r\n {\r\n classes: classnames(buttonClasses, getButtonTheme({ theme: 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.StepOptions[] {\r\n return steps.map((step, index) => ({\r\n attachTo: { element: step.target, on: step.placement ?? 'auto' },\r\n classes: 'z-dialog bg-transparent m-0',\r\n floatingUIOptions: {\r\n middleware: [shift({ padding: 10 }), offset(step.offset ?? { mainAxis: 10, crossAxis: 0 })],\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.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 void 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 xlarge = '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-2 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 className?: string\r\n size?: BadgeSizeType\r\n padding?: BadgePaddingType\r\n active?: boolean\r\n}\r\n\r\nexport function Badge({\r\n className,\r\n size = 'medium',\r\n padding = size,\r\n active,\r\n children,\r\n}: 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 classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nenum TagSize {\r\n small = 'h-4 min-w-4', // 16px height\r\n medium = 'h-5 min-w-5', // 20px height\r\n large = 'min-w-5',\r\n}\r\ntype TagSizeType = keyof typeof TagSize\r\n\r\nenum TagPadding {\r\n small = 'px-[5px] py-0', // 16px height\r\n medium = 'px-1.5 py-0.5', // 20px height\r\n large = 'p-3',\r\n}\r\ntype TagPaddingType = keyof typeof TagPadding\r\n\r\nenum TagFont {\r\n small = 'text-3xs leading-3', // 10px/12px\r\n medium = 'text-2xs leading-4', // 12px/16px\r\n large = 'text-sm',\r\n}\r\n\r\nenum TagVariant {\r\n filled = 'border border-bg-primary bg-gray-50 text-gray-600 font-medium dark:bg-gray-600 dark:text-gray-50',\r\n bordered = 'border border-primary text-muted',\r\n}\r\n\r\ntype TagVariantType = keyof typeof TagVariant\r\n\r\nenum TagRounding {\r\n small = 'rounded-sm',\r\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\r\n medium = 'rounded-sm',\r\n large = 'rounded-md',\r\n}\r\n\r\ntype TagProps = {\r\n size?: TagSizeType\r\n padding?: TagPaddingType\r\n variant?: TagVariantType\r\n className?: string\r\n}\r\n\r\nexport function Tag({\r\n className,\r\n size = 'medium',\r\n padding = size,\r\n variant = 'filled',\r\n children,\r\n}: React.PropsWithChildren) {\r\n const tagPadding = TagPadding[padding]\r\n const tagSize = TagSize[size]\r\n const tagFont = TagFont[size]\r\n const tagRounding = TagRounding[size]\r\n const tagVariant = TagVariant[variant]\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport { ForwardedRef, HTMLProps, PropsWithChildren, ReactNode, forwardRef, useMemo } from 'react'\r\n\r\nimport { ButtonPadding } from './button'\r\nimport { Icon, IconNameType, isValidIconName } from './icon'\r\nimport { Label } from './typography'\r\n\r\nexport enum InputTheme {\r\n none,\r\n light,\r\n dark,\r\n navigationBar,\r\n}\r\n\r\nexport enum InputRounding {\r\n none = '',\r\n regular = 'rounded-md',\r\n}\r\n\r\n/**\r\n * Enum for input size. Only set size on larger viewports to avoid page zooming\r\n */\r\nexport enum InputSize {\r\n small = 'h-6 text-2xs', // 24px height\r\n regular = 'h-7 text-2xs', // 28px height\r\n medium = 'h-8 text-sm', // 32px height\r\n large = 'h-9 text-sm', // 36px height\r\n}\r\n\r\nfunction getInputTheme({\r\n theme,\r\n isError,\r\n hasFocusStyle,\r\n isSelected,\r\n}: {\r\n theme: InputTheme\r\n isError: boolean\r\n hasFocusStyle: boolean\r\n isSelected: boolean\r\n}) {\r\n switch (theme) {\r\n case InputTheme.none:\r\n return {}\r\n case InputTheme.dark:\r\n return {\r\n input: classnames('border bg-gray-800 text-gray-50 disabled:bg-gray-700 disabled:text-gray-400', {\r\n 'border-gray-600 hover:border-gray-400 disabled:border-gray-700': !isError,\r\n 'border-red-400': isError,\r\n 'focus:border-blue-400 focus:hover:border-blue-400': !isError && hasFocusStyle,\r\n }),\r\n icon: classnames({\r\n 'text-gray-500': !isError,\r\n 'text-red-400': isError,\r\n 'group-focus-within:text-blue-400': !isError && hasFocusStyle,\r\n }),\r\n }\r\n case InputTheme.navigationBar:\r\n return {\r\n input: classnames(\r\n 'border bg-transparent disabled:border-gray-700 disabled:bg-gray-700 disabled:text-gray-400',\r\n {\r\n 'border-gray-100 dark:border-gray-600 text-gray-750 dark:text-gray-50':\r\n !isError && !FinvizSettings.hasUserPremium,\r\n 'border-gray-600 text-gray-50': !isError && FinvizSettings.hasUserPremium,\r\n 'border-red-400': isError,\r\n }\r\n ),\r\n icon: classnames({\r\n 'text-gray-500': !isError,\r\n 'text-red-400': isError,\r\n }),\r\n }\r\n default:\r\n return {\r\n input: classnames(\r\n 'border', // Base styles\r\n 'disabled:bg-secondary disabled:text-gray-500', // Light\r\n 'dark:disabled:bg-gray-700 dark:disabled:text-gray-400', // Dark\r\n {\r\n 'bg-primary': !isSelected,\r\n 'border-gray-200 dark:border-primary hover:border-gray-300 disabled:hover:border-gray-100 dark:hover:border-gray-400 dark:disabled:border-gray-700':\r\n !isError && !isSelected,\r\n 'border-red-400': isError,\r\n 'focus:border-blue-400 hover:focus:border-blue-400 dark:focus:border-blue-400 dark:hover:focus:border-blue-400':\r\n !isError && !isSelected && hasFocusStyle,\r\n 'bg-blue-50 border-blue-400 dark:bg-blue-700': isSelected,\r\n }\r\n ),\r\n icon: classnames({\r\n 'text-gray-300 dark:text-gray-500': !isError && !isSelected,\r\n 'text-red-400': isError,\r\n 'group-focus-within:text-blue-400': !isError && !isSelected && hasFocusStyle,\r\n 'text-blue-400': isSelected,\r\n }),\r\n }\r\n }\r\n}\r\n\r\ntype OmitNativeProps = Omit, 'label' | 'size'>\r\n\r\nexport interface InputProps {\r\n /**\r\n * Label which is rendered above the input\r\n */\r\n label?: ReactNode\r\n\r\n /**\r\n * Optional label layout switch\r\n */\r\n isHorizontalLabel?: boolean\r\n\r\n /**\r\n * Optional label className override\r\n */\r\n labelClassName?: string\r\n\r\n /**\r\n * Theme for the input\r\n *\r\n * @default light\r\n */\r\n theme?: keyof typeof InputTheme\r\n\r\n /**\r\n * Input size. This setting is ignored on mobile to avoid zoom\r\n *\r\n * @default regular\r\n */\r\n size?: keyof typeof InputSize\r\n\r\n /**\r\n * Border radius of the input\r\n *\r\n * @default regular\r\n */\r\n rounding?: keyof typeof InputRounding\r\n\r\n /**\r\n * Hide value stepper for number inputs\r\n */\r\n showNumberStepper?: boolean\r\n\r\n /**\r\n * Element to display on left the side of the input or name of the icon\r\n */\r\n leftContent?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Element to display on right the side of the input or name of the icon\r\n */\r\n rightContent?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Additional class names for the input\r\n */\r\n inputClass?: string\r\n\r\n /**\r\n * Error label to display under the input\r\n */\r\n error?: ReactNode\r\n\r\n /**\r\n * Additional info to display under the input\r\n */\r\n caption?: ReactNode\r\n\r\n /**\r\n * Disables setting text size to 16px on mobile. Only use for pages which aren’t\r\n * responsive\r\n */\r\n isMobileStyleEnabled?: boolean\r\n\r\n /**\r\n * Toggle for component focus styles\r\n *\r\n * @default true\r\n */\r\n hasFocusStyle?: boolean\r\n\r\n /**\r\n * Toggle for selected styles\r\n *\r\n * @default true\r\n */\r\n isSelected?: boolean\r\n}\r\n\r\nexport type InputHTMLProps = OmitNativeProps\r\n\r\nexport type InputComponentProps = InputProps & InputHTMLProps\r\n\r\nfunction InputComponent(\r\n {\r\n label,\r\n isHorizontalLabel,\r\n labelClassName,\r\n size = 'regular',\r\n theme = 'light',\r\n rounding = 'regular',\r\n type,\r\n showNumberStepper = type === 'number',\r\n leftContent,\r\n rightContent,\r\n inputClass,\r\n error,\r\n caption,\r\n className,\r\n isMobileStyleEnabled = true,\r\n hasFocusStyle = true,\r\n isSelected = false,\r\n ...props\r\n }: InputComponentProps,\r\n ref: ForwardedRef\r\n) {\r\n const inputTheme = useMemo(\r\n () => getInputTheme({ theme: InputTheme[theme], isError: !!error, hasFocusStyle, isSelected }),\r\n [theme, error, hasFocusStyle, isSelected]\r\n )\r\n const isLeftStringIcon = isValidIconName(leftContent)\r\n const isRightStringIcon = isValidIconName(rightContent)\r\n const inputSize = InputSize[size]\r\n\r\n const commonSideContentClassnames = useMemo(\r\n () => ({\r\n 'flex absolute w-3 items-center justify-center': true,\r\n 'text-gray-500 dark:text-gray-600': theme === 'light',\r\n 'text-gray-600': theme === 'dark',\r\n }),\r\n [theme]\r\n )\r\n\r\n return (\r\n
\r\n
\r\n \r\n {caption && typeof caption !== 'boolean' && (\r\n {caption}\r\n )}\r\n {error && typeof error !== 'boolean' && {error}}\r\n \r\n )\r\n}\r\n\r\ninterface InputCaptionProps extends Omit, 'size'> {\r\n size?: keyof typeof InputSize\r\n}\r\n\r\nfunction InputCaption({ size = 'regular', ...props }: PropsWithChildren) {\r\n return (\r\n \r\n )\r\n}\r\n\r\ntype TextareaProps = Omit & OmitNativeProps\r\n\r\nfunction TextareaComponent(\r\n {\r\n label,\r\n theme = 'light',\r\n rounding = 'regular',\r\n inputClass,\r\n error,\r\n caption,\r\n className,\r\n hasFocusStyle = true,\r\n isSelected = false,\r\n ...props\r\n }: TextareaProps,\r\n ref: ForwardedRef\r\n) {\r\n const textareaTheme = useMemo(\r\n () => getInputTheme({ theme: InputTheme[theme], isError: !!error, hasFocusStyle, isSelected }),\r\n [theme, error, hasFocusStyle, isSelected]\r\n )\r\n\r\n return (\r\n
\r\n \r\n {caption && typeof caption !== 'boolean' && (\r\n {caption}\r\n )}\r\n {error && typeof error !== 'boolean' && {error}}\r\n
\r\n )\r\n}\r\n\r\nexport const Input = forwardRef(InputComponent)\r\nexport const Textarea = forwardRef(TextareaComponent)\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\nexport enum NotificationTheme {\r\n default,\r\n success,\r\n failure,\r\n}\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 theme?: NotificationTheme\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 theme = NotificationTheme.default,\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 classnames from 'classnames'\r\nimport { HTMLProps, PropsWithChildren } from 'react'\r\n\r\nexport function Centered(props: PropsWithChildren>) {\r\n return
\r\n}\r\n","import { link } from '../../services/routing'\r\nimport { Button } from '../button'\r\nimport { Centered } from '../centered'\r\nimport { Icon } from '../icon'\r\nimport { Heading, Paragraph } from '../typography'\r\n\r\ninterface Props {\r\n onRetry?: () => void\r\n}\r\n\r\nexport function SearchError({ onRetry }: Props) {\r\n return (\r\n \r\n \r\n \r\n Error fetching the results\r\n \r\n \r\n There’s been an error fetching your results. Please try again or{' '}\r\n \r\n contact support\r\n \r\n .\r\n \r\n {onRetry && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Link, useInRouterContext } from 'react-router-dom'\r\n\r\nimport { ComboBoxItem, ComboBoxProps } from '../combo-box'\r\nimport { Highlight } from '../highlight'\r\nimport { PropsWithAs } from '../types'\r\nimport { SearchListItem } from './constants'\r\n\r\ninterface SearchItemProps extends Pick, Partial> {\r\n item: SearchListItem\r\n}\r\n\r\nfunction getItemHrefProps(item: SearchListItem, inRouterContext?: boolean) {\r\n if (item.href) {\r\n if (inRouterContext) return { as: Link, to: item.href, reloadDocument: item.reloadDocument, target: item.target }\r\n else return { as: 'a' as React.ElementType, href: item.href, target: item.target }\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport function SearchItem({ item, state, ...props }: SearchItemProps) {\r\n const value = state.useState('value')\r\n const isInRouterContext = useInRouterContext()\r\n\r\n const itemProps = getItemHrefProps(item, isInRouterContext)\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n {item.subtitle && (\r\n
\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 { Centered } from '../centered'\r\nimport { Spinner } from '../spinner'\r\nimport { SearchListItem } from './constants'\r\nimport { SearchItem } from './search-item'\r\n\r\ninterface SearchListProps {\r\n /**\r\n * Ariakit combobox store for managing the search list state\r\n */\r\n state: Ariakit.ComboboxStore\r\n\r\n /**\r\n * Array of items to display in the search list\r\n */\r\n items?: SearchListItem[]\r\n\r\n /**\r\n * Custom footer content shown at the bottom of the search list\r\n */\r\n footer?: React.ReactNode\r\n\r\n /**\r\n * Whether the list is currently loading\r\n *\r\n * @default false\r\n */\r\n isLoading?: boolean\r\n}\r\n\r\nexport function SearchList({\r\n state,\r\n children,\r\n items,\r\n footer,\r\n isLoading = false,\r\n}: React.PropsWithChildren) {\r\n const isOpen = state.useState('open')\r\n const hasContent = React.Children.count(children) > 0 || (items?.length ?? 0) > 0 || !!footer || isLoading\r\n const { hide } = state\r\n\r\n React.useEffect(() => {\r\n if (!hasContent && isOpen) {\r\n hide()\r\n }\r\n }, [hide, hasContent, isOpen])\r\n\r\n if (isLoading) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {children ?? items?.map((item) => )}\r\n
\r\n {footer}\r\n
\r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\nimport * as React from 'react'\r\nimport { useNavigate } from 'react-router-dom'\r\n\r\nimport { SearchProps } from './search'\r\n\r\ninterface Props extends Pick {\r\n children: React.ReactNode\r\n}\r\n\r\nfunction getSelectedItem({\r\n value,\r\n items,\r\n}: {\r\n value?: Ariakit.ComboboxStoreProps['selectedValue']\r\n items: SearchProps['items']\r\n}) {\r\n return items?.find((item) => item.value === value)\r\n}\r\n\r\nexport function SearchNavigationWrapperInRouterContext({ state, children, items }: Props) {\r\n const navigate = useNavigate()\r\n const selectedValue = state.useState('selectedValue')\r\n React.useEffect(() => {\r\n const { href, reloadDocument } = getSelectedItem({ value: selectedValue, items }) ?? {}\r\n if (href) {\r\n if (reloadDocument) {\r\n window.location.href = href\r\n } else {\r\n navigate(href)\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedValue])\r\n\r\n return children\r\n}\r\n\r\nexport function SearchNavigationWrapperOutsideRouterContext({ state, children, items }: Props) {\r\n const selectedValue = state.useState('selectedValue')\r\n React.useEffect(() => {\r\n const href = getSelectedItem({ value: selectedValue, items })?.href\r\n\r\n if (href) {\r\n window.location.href = href\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedValue])\r\n\r\n return children\r\n}\r\n","import * as React from 'react'\r\nimport { useInRouterContext } from 'react-router-dom'\r\n\r\nimport { ComboBox, ComboBoxProps } from '../combo-box'\r\nimport { IconNameType } from '../icon'\r\nimport { SearchListItem } from './constants'\r\nimport { SearchError } from './search-error'\r\nimport { SearchList } from './search-list'\r\nimport {\r\n SearchNavigationWrapperInRouterContext,\r\n SearchNavigationWrapperOutsideRouterContext,\r\n} from './search-navigation-wrapper'\r\n\r\nexport interface SearchProps\r\n extends Pick<\r\n ComboBoxProps,\r\n 'state' | 'autoFocus' | 'inputProps' | 'popoverProps' | 'aria-label' | 'inputTestId' | 'getInputValue'\r\n > {\r\n /**\r\n * Array of items to display in the search list\r\n */\r\n items?: SearchListItem[]\r\n\r\n /**\r\n * Minimum length of input value before showing results\r\n *\r\n * @default 1\r\n */\r\n minValueLength?: number\r\n\r\n /**\r\n * Placeholder text for the search input\r\n */\r\n placeholder?: string\r\n\r\n /**\r\n * Content to show on the right side of the input (icon or custom element)\r\n */\r\n rightContent?: JSX.Element | IconNameType\r\n\r\n /**\r\n * Custom footer content shown at the bottom of the search results\r\n */\r\n footer?: React.ReactNode\r\n\r\n /**\r\n * Whether to show the search icon in the input\r\n *\r\n * @default true\r\n */\r\n hasSearchIcon?: boolean\r\n\r\n /**\r\n * Whether to match the width of the input and its dropdown box\r\n */\r\n isMatchInputAndBoxWidth?: boolean\r\n\r\n /**\r\n * Whether the search is currently loading results\r\n *\r\n * @default false\r\n */\r\n isLoading?: boolean\r\n\r\n /**\r\n * Whether there was an error loading the search results\r\n *\r\n * @default false\r\n */\r\n isError?: boolean\r\n\r\n /**\r\n * Callback function to retry when there's an error\r\n */\r\n onErrorRetry?: () => void\r\n}\r\n\r\nexport function Search({\r\n state,\r\n children,\r\n items,\r\n footer,\r\n 'aria-label': ariaLabel,\r\n inputProps,\r\n popoverProps,\r\n inputTestId,\r\n minValueLength = 1,\r\n hasSearchIcon = true,\r\n isLoading = false,\r\n isError = false,\r\n onErrorRetry,\r\n ...props\r\n}: React.PropsWithChildren) {\r\n const isInRouterContext = useInRouterContext()\r\n const isMounted = state.useState('mounted')\r\n\r\n const Wrapper = isInRouterContext\r\n ? SearchNavigationWrapperInRouterContext\r\n : SearchNavigationWrapperOutsideRouterContext\r\n\r\n return (\r\n \r\n {\r\n // prevent combobox from setting input value on input blur\r\n e.preventDefault()\r\n },\r\n leftContent: hasSearchIcon ? 'search' : undefined,\r\n ...inputProps,\r\n }}\r\n popoverProps={{\r\n sameWidth: props.isMatchInputAndBoxWidth,\r\n fitViewport: !props.isMatchInputAndBoxWidth,\r\n ...popoverProps,\r\n }}\r\n inputTestId={inputTestId}\r\n getInputValue={props.getInputValue}\r\n >\r\n {isMounted &&\r\n (isError ? (\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\n\r\nimport { useComboBoxState } from '../combo-box'\r\n\r\nexport function useSearchComboboxState(props: Ariakit.ComboboxStoreProps = {}) {\r\n return useComboBoxState({\r\n placement: 'bottom-start',\r\n defaultSelectedValue: '',\r\n ...props,\r\n })\r\n}\r\n","import React from 'react'\r\n\r\nimport { Button } from '../button'\r\nimport { Icon } from '../icon'\r\n\r\nconst imgFromUrlToBase64 = (url: string) =>\r\n fetch(url).then(async (response) => URL.createObjectURL(await response.blob()))\r\n\r\nexport interface DownloadImageButtonProps {\r\n /**\r\n * The URL of the image to download. If not provided, button will be disabled\r\n */\r\n downloadUrl?: string | null\r\n\r\n /**\r\n * Optional base64 encoded image data. If provided, this will be used instead of downloadUrl\r\n */\r\n base64ImageData?: string | null\r\n}\r\n\r\nexport function DownloadImageButton({ downloadUrl, base64ImageData: dataUrl }: DownloadImageButtonProps) {\r\n const fileName = React.useMemo(() => {\r\n const name = downloadUrl?.split(/[/?#]/).pop() ?? 'image'\r\n return name.includes('.') ? name : `${name}.png`\r\n }, [downloadUrl])\r\n\r\n const [imageUri, setImageUri] = React.useState(null)\r\n React.useEffect(() => {\r\n const val = dataUrl || downloadUrl\r\n if (!val) return\r\n imgFromUrlToBase64(val)\r\n .then(setImageUri)\r\n .catch(() => {})\r\n }, [dataUrl, downloadUrl])\r\n\r\n return (\r\n imageUri && (\r\n {\r\n window.gtag?.('event', 'click', { event_category: 'social-share-image-download' })\r\n }}\r\n size=\"small\"\r\n contentClass=\"flex items-center\"\r\n leftContent={}\r\n >\r\n Download\r\n \r\n )\r\n )\r\n}\r\n","import { FacebookIcon, FacebookShareButton, TwitterIcon, TwitterShareButton } from 'react-share'\r\n\r\nimport { Button } from '../button'\r\nimport { CopyToClipboard } from '../copy-to-clipboard'\r\nimport { Heading } from '../typography'\r\nimport { DownloadImageButton } from './DownloadImageButton'\r\n\r\nexport function SocialShare({\r\n shareUrl,\r\n title,\r\n imageToDownloadURL,\r\n imageToDownloadBase64Data,\r\n}: {\r\n shareUrl: string\r\n title: string\r\n imageToDownloadURL?: string\r\n imageToDownloadBase64Data?: string | null\r\n}) {\r\n return (\r\n \r\n Copy and paste link in email, website, or forum\r\n \r\n }\r\n text={shareUrl}\r\n bottomLeftContent={\r\n
\r\n \r\n {\r\n window.gtag?.('event', 'click', { event_category: 'social-share-facebook-button' })\r\n }}\r\n leftContent={}\r\n >\r\n Share\r\n \r\n \r\n \r\n {\r\n window.gtag?.('event', 'click', { event_category: 'social-share-twitter-button' })\r\n }}\r\n leftContent={}\r\n >\r\n Twitter\r\n \r\n \r\n {imageToDownloadURL && (\r\n \r\n )}\r\n
\r\n }\r\n />\r\n )\r\n}\r\n","import classnames from 'classnames'\r\n\r\ninterface SpinnerProps {\r\n /**\r\n * Spinner as progress bar\r\n * @default false\r\n */\r\n isProgressBar?: boolean\r\n\r\n /**\r\n * Progress number in percent\r\n * @default 0\r\n */\r\n progress?: number\r\n\r\n /**\r\n * Spinner box width\r\n *\r\n * @default 28\r\n */\r\n width?: number\r\n}\r\n\r\nexport function Spinner({ isProgressBar = false, progress = 0, width = 28 }: SpinnerProps) {\r\n const radius = (3 * width) / 7\r\n const strokeWidth = radius / 3\r\n const circleXY = radius + strokeWidth / 2\r\n const circumference = radius * 2 * Math.PI\r\n\r\n return (\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 { usePrevious } from '../hooks/use-previous'\r\nimport { Input, InputComponentProps } from './input'\r\nimport { Tooltip, TooltipColor, TooltipProps, TooltipTrigger } from './tooltip'\r\n\r\ninterface TooltipSettingsProps\r\n extends Pick,\r\n Pick {\r\n color?: keyof typeof TooltipColor\r\n}\r\n\r\ninterface TooltipInputProps extends InputComponentProps {\r\n /**\r\n * Settings for Tooltip component and useTooltipStore\r\n */\r\n tooltipSettings?: TooltipSettingsProps\r\n}\r\n\r\nfunction TooltipInputComponent(\r\n { tooltipSettings, name, children, ...props }: React.PropsWithChildren,\r\n ref: React.ForwardedRef\r\n) {\r\n const { color, gutter, placement = 'bottom', isPointerEventsEnabled } = tooltipSettings ?? {}\r\n const prevMessage = usePrevious(children, true)\r\n\r\n const [isFocused, setIsFocused] = React.useState(false)\r\n const handleFocus = React.useRef(() => setIsFocused(true))\r\n const handleBlur = React.useRef(() => setIsFocused(false))\r\n\r\n const input = \r\n if (!children && !prevMessage) return input\r\n\r\n return (\r\n \r\n \r\n \r\n {children ?? prevMessage}\r\n \r\n \r\n )\r\n}\r\n\r\nexport const TooltipInput = React.forwardRef(TooltipInputComponent)\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { TooltipColor } from './types'\r\n\r\nexport interface TooltipBoxProps extends Omit, 'ref'> {\r\n /**\r\n * Color of the tooltip. If se to `none`, the tooltip will have default color\r\n * based on light/dark theme\r\n *\r\n * @default 'none'\r\n */\r\n color?: keyof typeof TooltipColor\r\n}\r\n\r\nexport const TooltipBox = React.forwardRef(function TooltipBox(\r\n { color = 'none', ...props }: TooltipBoxProps,\r\n ref: React.ForwardedRef\r\n) {\r\n const tooltipColor = TooltipColor[color]\r\n\r\n return (\r\n \r\n {props.children}\r\n
\r\n )\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 { isIos } from '../../../app/shared/isMobile'\r\nimport { usePopoverPlacement } from '../../hooks/usePopoverPlacement'\r\nimport { TooltipStateReturn } from './hooks'\r\nimport { TooltipArrow } from './tooltip-arrow'\r\nimport { TooltipBox, TooltipBoxProps } from './tooltip-box'\r\n\r\nconst isIosBrowser = isIos()\r\n\r\nconst TOOLTIP_WRAPPER_PROPS = {\r\n className: 'pointer-events-none',\r\n}\r\n\r\nexport interface TooltipProps\r\n extends TooltipBoxProps,\r\n Pick {\r\n // State is intentionally not marked as optional so you get error when you don’t provide it\r\n /**\r\n * Returned state from `useTooltipState`. Set `undefined` if you use a `PopoverProvider` wrapper (eg. TooltipInput)\r\n */\r\n state: TooltipStateReturn | undefined\r\n\r\n /**\r\n * Determines whether or not the tooltip receives mouse events\r\n *\r\n * @default true\r\n */\r\n isPointerEventsEnabled?: boolean\r\n}\r\n\r\nexport function Tooltip({\r\n state,\r\n children,\r\n gutter = 4,\r\n hideOnHoverOutside = true,\r\n isPointerEventsEnabled = true,\r\n color = 'none',\r\n onClose,\r\n ...props\r\n}: React.PropsWithChildren) {\r\n const context = Ariakit.useTooltipContext()\r\n const stateObject = state ?? context\r\n const { placement, zIndex, updatePosition } = usePopoverPlacement(stateObject)\r\n\r\n return (\r\n isn't always rendered and way of events\r\n // firing by iOS Safari\r\n unmountOnHide={!isIosBrowser}\r\n className={classnames(\r\n zIndex,\r\n 'cursor-default opacity-0 outline-none transition duration-[250ms] will-change-transform data-[enter]:translate-x-0 data-[enter]:translate-y-0 data-[enter]:opacity-100',\r\n {\r\n 'motion-safe:translate-y-1': placement?.startsWith('top'),\r\n 'motion-safe:-translate-x-1': placement?.startsWith('right'),\r\n 'motion-safe:-translate-y-1': placement?.startsWith('bottom'),\r\n 'motion-safe:translate-x-1': placement?.startsWith('left'),\r\n }\r\n )}\r\n // Update zIndex when popover position changes\r\n updatePosition={updatePosition}\r\n >\r\n \r\n \r\n \r\n \r\n {children}\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 { TooltipStateReturn } from './hooks'\r\n\r\ninterface TooltipButtonProps extends Omit {\r\n // State is intentionally not marked as optional so you get error when you don’t provide it\r\n /**\r\n * Returned state from `useTooltipState`. Set `undefined` if you use a `TooltipProvider` wrapper (eg. TooltipInput)\r\n */\r\n state: TooltipStateReturn | undefined\r\n\r\n /**\r\n * Hides tooltip on trigger click\r\n *\r\n * @default false\r\n */\r\n isHideOnClick?: boolean\r\n\r\n /**\r\n * Whether or not the tooltip should be visible when user hovers over the trigger element\r\n *\r\n * @default true\r\n */\r\n showOnHover?: boolean\r\n\r\n /**\r\n * Whether or not the tooltip should hide when the element is blurred\r\n */\r\n hideOnBlur?: boolean\r\n}\r\n/**\r\n * The trigger button component which handles ref & focus return, etc.\r\n */\r\nexport const TooltipTrigger = React.forwardRef(\r\n (\r\n {\r\n state,\r\n isHideOnClick,\r\n showOnHover = true,\r\n hideOnBlur,\r\n onClick,\r\n onMouseEnter,\r\n onMouseLeave,\r\n ...props\r\n }: TooltipButtonProps,\r\n ref: React.ForwardedRef\r\n ) => {\r\n const context = Ariakit.useTooltipContext()\r\n const stateObject = state ?? context\r\n\r\n return (\r\n {\r\n if (isHideOnClick) stateObject?.hide()\r\n onClick?.(ev)\r\n }}\r\n showOnHover={showOnHover}\r\n onMouseEnter={(ev) => {\r\n if (showOnHover === false) ev.preventDefault()\r\n onMouseEnter?.(ev)\r\n }}\r\n onMouseLeave={(ev) => {\r\n if (showOnHover === false) ev.preventDefault()\r\n onMouseLeave?.(ev)\r\n }}\r\n onBlur={() => {\r\n if (hideOnBlur) stateObject?.hide()\r\n }}\r\n {...props}\r\n >\r\n {props.children}\r\n \r\n )\r\n }\r\n)\r\n","import * as Ariakit from '@ariakit/react'\r\n\r\ninterface TooltipProviderProps extends Omit {\r\n state?: Ariakit.TooltipProviderProps['store']\r\n}\r\n\r\nexport function TooltipProvider({ state, ...props }: TooltipProviderProps) {\r\n return \r\n}\r\n","import * as Ariakit from '@ariakit/react'\r\n\r\n/**\r\n * Hook which provides state to tooltips\r\n */\r\nexport function useTooltipState({ showTimeout = 0, hideTimeout = 0, ...settings }: Ariakit.TooltipStoreProps = {}) {\r\n return Ariakit.useTooltipStore({\r\n ...settings,\r\n showTimeout,\r\n hideTimeout,\r\n })\r\n}\r\n\r\nexport type TooltipStateReturn = ReturnType\r\n","import classnames from 'classnames'\r\n\r\nimport { PopoverPlacement } from '../popover'\r\nimport { TooltipColor } from './types'\r\n\r\ntype PositionMain = 'auto' | 'top' | 'bottom' | 'left' | 'right'\r\n\r\nconst transformMap: Record = {\r\n auto: '',\r\n top: 'rotateZ(180deg)',\r\n right: 'rotateZ(-90deg)',\r\n bottom: 'rotateZ(360deg)',\r\n left: 'rotateZ(90deg)',\r\n}\r\n\r\ninterface TooltipArrowProps {\r\n color?: keyof typeof TooltipColor | 'custom'\r\n placement?: PopoverPlacement\r\n className?: string\r\n}\r\n\r\n/**\r\n * Custom arrow for the dropdown\r\n */\r\nexport function TooltipArrow({ placement, color = 'none', className }: TooltipArrowProps) {\r\n const positionMain = (placement?.split('-')[0] as PositionMain) ?? 'auto'\r\n const arrowColor = color !== 'custom' ? TooltipColor[color] : null\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","export enum TooltipColor {\r\n none,\r\n green,\r\n red,\r\n orange,\r\n blue,\r\n dark,\r\n}\r\n","import classnames from 'classnames'\r\nimport React, { ComponentProps, ElementType, HTMLProps, PropsWithChildren, ReactNode } from 'react'\r\n\r\nimport { PropsWithAs } from './types'\r\n\r\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6\r\n\r\ninterface HeadingProps {\r\n /**\r\n * Heading level\r\n */\r\n level: HeadingLevel\r\n}\r\n\r\nfunction getHeadingElement(level: HeadingLevel) {\r\n switch (level) {\r\n case 1:\r\n return 'h1'\r\n case 2:\r\n return 'h2'\r\n case 3:\r\n return 'h3'\r\n case 4:\r\n return 'h4'\r\n case 5:\r\n return 'h5'\r\n default:\r\n return 'h6'\r\n }\r\n}\r\n\r\nexport function Heading({\r\n as: asComponent,\r\n level,\r\n children,\r\n ...props\r\n}: PropsWithAs & PropsWithChildren) {\r\n return React.createElement(\r\n asComponent ?? getHeadingElement(level),\r\n {\r\n ...props,\r\n className: classnames(props.className, 'font-bold', {\r\n 'text-3xl': level === 1,\r\n 'text-2xl': level === 2,\r\n 'text-xl': level === 3,\r\n // We don't want to set any specific fontsize because it's used e.g. in DialogHeader\r\n // where it uses font-size: inherit; and is different on old/redesign versions\r\n 'leading-[1.375]': level === 4,\r\n 'text-sm': level === 5,\r\n 'text-2xs': level === 6,\r\n }),\r\n },\r\n children\r\n )\r\n}\r\n\r\ninterface ParagraphProps extends Omit>, 'size' | 'as'> {\r\n /**\r\n * Determines which element the text should render to\r\n *\r\n * @default p\r\n */\r\n as?: ElementType\r\n\r\n /**\r\n * Font size for the paragraph\r\n * - tiny - 10px\r\n * - small - 12px\r\n * - default - 14px\r\n * - medium - 16px\r\n * - large - 18px\r\n *\r\n * @default default\r\n */\r\n size?: 'tiny' | 'small' | 'default' | 'medium' | 'large'\r\n\r\n /**\r\n * Paragraph font weight\r\n */\r\n medium?: boolean\r\n}\r\n\r\nexport function Paragraph({\r\n as = 'p',\r\n size = 'default',\r\n medium,\r\n children,\r\n ...props\r\n}: PropsWithChildren>) {\r\n return React.createElement(\r\n as,\r\n {\r\n ...props,\r\n className: classnames(props.className, {\r\n 'font-medium': medium,\r\n 'text-lg': size === 'large',\r\n 'text-sm': size === 'default',\r\n 'text-2xs': size === 'small',\r\n 'text-3xs': size === 'tiny',\r\n }),\r\n },\r\n children\r\n )\r\n}\r\n\r\ninterface LabelProps extends Omit, 'title'> {\r\n title?: ReactNode\r\n titleClassName?: string\r\n isHorizontal?: boolean\r\n}\r\n\r\nexport function Label({ title, titleClassName, isHorizontal, children, ...props }: PropsWithChildren) {\r\n return (\r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { loadResizeObserverPolyfill } from '../util'\r\n\r\nexport function useResizeObserver() {\r\n const controller = React.useRef('AbortController' in window ? new AbortController() : undefined)\r\n const [ResizeObserver, setResizeObserver] = React.useState(\r\n () => window.ResizeObserver\r\n )\r\n\r\n React.useEffect(() => {\r\n if (typeof ResizeObserver === 'undefined') {\r\n void loadResizeObserverPolyfill().then((polyfill) => {\r\n if (!controller.current?.signal.aborted) {\r\n setResizeObserver(() => polyfill)\r\n }\r\n })\r\n }\r\n }, [ResizeObserver])\r\n\r\n // Cleanup effect to abort the controller\r\n React.useEffect(() => () => controller.current?.abort(), [])\r\n\r\n return ResizeObserver\r\n}\r\n","import React from 'react'\r\n\r\nimport { PopoverPlacement } from '../components'\r\nimport { useZIndex } from '../components/dialog/hooks'\r\n\r\nfunction getPlacementZIndex(placement: PopoverPlacement) {\r\n return placement!.startsWith('top') ? 'z-dialog' : 'z-50'\r\n}\r\n\r\nfunction changeZIndex(element: HTMLElement | null, placement: PopoverPlacement, computedZIndex = '') {\r\n if (!element) return\r\n element.style.removeProperty('z-index')\r\n element.classList.remove('z-50', 'z-dialog', computedZIndex)\r\n element.classList.add(getPlacementZIndex(placement))\r\n}\r\n\r\nexport function usePopoverPlacement(context: any) {\r\n const popoverElement: HTMLDivElement | null = context.useState('popoverElement')\r\n const placement: PopoverPlacement = context.useState('currentPlacement')\r\n const contextZIndex = useZIndex(null)\r\n const computedZIndex = getPlacementZIndex(placement)\r\n\r\n const updatePosition = React.useCallback(\r\n (props: { updatePosition: () => Promise }) => {\r\n if (!popoverElement) return\r\n\r\n const overlayElement = popoverElement?.previousElementSibling as HTMLElement | null\r\n\r\n if (!contextZIndex) {\r\n changeZIndex(popoverElement, placement, computedZIndex)\r\n if (overlayElement && overlayElement.dataset.backdrop) changeZIndex(overlayElement, placement, computedZIndex)\r\n }\r\n\r\n void props.updatePosition()\r\n },\r\n [popoverElement, contextZIndex, computedZIndex, placement]\r\n )\r\n\r\n return {\r\n zIndex: contextZIndex ?? computedZIndex,\r\n placement,\r\n updatePosition,\r\n }\r\n}\r\n","import * as Sentry from '@sentry/browser'\r\n\r\nimport { PortfolioDefinition } from '../modules/portfolio/types'\r\nimport { PortfolioApiFields } from '../types'\r\n\r\n// Keep in sync with ContentType in https://github.com/finvizhq/charts/blob/master/app/utils/fetch_api.ts\r\n// START\r\nexport enum ContentType {\r\n ApplicationJson = 'application/json',\r\n ApplicationJsonUTF = 'application/json; charset=utf-8', // WriteAsJsonAsync\r\n FormUrlEncoded = 'application/x-www-form-urlencoded',\r\n Html = 'text/html; charset=utf-8',\r\n}\r\n\r\nfunction parseResponseForContentType(response: string, contentType: ContentType) {\r\n switch (contentType) {\r\n case ContentType.ApplicationJson:\r\n case ContentType.ApplicationJsonUTF:\r\n case ContentType.FormUrlEncoded:\r\n return JSON.parse(response)\r\n default:\r\n return response\r\n }\r\n}\r\n// END\r\n\r\nexport class ThrowableError extends Error {\r\n status: number\r\n isServerError = false\r\n body: unknown\r\n extra: Record = {}\r\n\r\n constructor(status: number, message = 'ThrowableError', body = '', extra: Record = {}) {\r\n super(`${status} ${message}`)\r\n this.status = status\r\n this.isServerError = status >= 500\r\n this.body = body\r\n this.extra = extra\r\n }\r\n}\r\n\r\nexport interface CancelablePromise extends Promise {\r\n aborted?: boolean\r\n cancel?: () => void\r\n}\r\n\r\n/**\r\n * General api fetch utility which returns a cancelable promise\r\n */\r\nexport function apiRequest(\r\n url: string,\r\n { query, headers = {}, ...options }: RequestInit & { query?: Record } = {},\r\n throwOnAllErrors = false\r\n): CancelablePromise {\r\n const controller = 'AbortController' in window ? new AbortController() : undefined\r\n const requestUrl = query ? `${url}?${new URLSearchParams(query)}` : url\r\n const contentType: ContentType = (headers as any)['Content-Type'] ?? ContentType.ApplicationJson\r\n\r\n const requestOptions = {\r\n ...options,\r\n headers: {\r\n 'Content-Type': contentType,\r\n ...headers,\r\n },\r\n }\r\n const request = fetch(requestUrl, { ...requestOptions, signal: controller?.signal })\r\n\r\n const cancelableRequest: CancelablePromise = request\r\n .then(async (response) => {\r\n const textResponse = await response.text()\r\n const responseContentType: ContentType = (response.headers.get('Content-Type') as any) ?? ContentType.Html\r\n\r\n try {\r\n const parsedResponse = parseResponseForContentType(textResponse, responseContentType)\r\n if (!response.ok || response.status >= 500) {\r\n throw new ThrowableError(response.status, response.statusText, parsedResponse, {\r\n rayId: response.headers.get('cf-ray'),\r\n })\r\n }\r\n\r\n return parsedResponse\r\n } catch (error: any) {\r\n if (error instanceof ThrowableError) {\r\n throw error\r\n }\r\n throw new ThrowableError(response.status, error.message, textResponse, {\r\n rayId: response.headers.get('cf-ray'),\r\n })\r\n }\r\n })\r\n .catch((error: ThrowableError) => {\r\n if (error.status >= 500) {\r\n Sentry.withScope((scope) => {\r\n scope.setContext('Cloudflare', error.extra)\r\n\r\n if (error.status === 500) {\r\n Sentry.captureException(error)\r\n } else {\r\n Sentry.captureMessage(`${error.status} ${error.message}`)\r\n }\r\n })\r\n }\r\n if (throwOnAllErrors) {\r\n throw error\r\n }\r\n })\r\n\r\n if (controller) {\r\n cancelableRequest.cancel = () => {\r\n controller.abort()\r\n cancelableRequest.aborted = true\r\n }\r\n }\r\n\r\n return cancelableRequest\r\n}\r\n\r\nexport interface SearchApiResult {\r\n ticker: string\r\n company: string\r\n exchange: string\r\n}\r\n\r\nexport function searchApiRequest(input = '') {\r\n return apiRequest('/api/suggestions.ashx', { query: { input } }, true)\r\n}\r\n\r\nexport function portfoliosRequest() {\r\n return apiRequest<{ portfolios: PortfolioDefinition[] }>('/api/portfolio_data.ashx', {\r\n query: {\r\n fields: [PortfolioApiFields.UserPortfolios],\r\n },\r\n })\r\n}\r\n\r\nexport function lastCloseRequest(ticker: string) {\r\n return apiRequest('/request_quote.ashx', {\r\n query: {\r\n t: ticker,\r\n },\r\n })\r\n}\r\n\r\ninterface PortfolioLimitResult {\r\n transactions: number\r\n limitTransactions: number\r\n}\r\n\r\nexport function portfolioLimitRequest(portfolioId: number) {\r\n return apiRequest('/api/portfolio_data.ashx', {\r\n query: {\r\n pid: portfolioId,\r\n fields: [PortfolioApiFields.TransactionLimit, PortfolioApiFields.NumberOfTransactions],\r\n },\r\n })\r\n}\r\n\r\nexport function setCookieRequest(name: string, value?: unknown) {\r\n return apiRequest(\r\n '/api/set_cookie.ashx',\r\n {\r\n keepalive: true,\r\n query: {\r\n cookie: name,\r\n ...(value !== undefined && {\r\n value: value,\r\n }),\r\n },\r\n },\r\n true\r\n )\r\n}\r\n","import * as pathToRegexp from 'path-to-regexp'\r\n\r\nimport { getCurrency } from '../../app/crypto/currencyUtils'\r\nimport { cleanTicker } from '../util'\r\n\r\n/**\r\n * Compile route path by applying parameters to it\r\n *\r\n * @example\r\n * // Outputs /route/1?query=foo\r\n * compilePath('/route/:id?query=:query', { id: 1, query: 'foo' })\r\n */\r\nfunction compilePath(\r\n path: string,\r\n params?: pathToRegexp.ParamData,\r\n options?: pathToRegexp.ParseOptions & pathToRegexp.CompileOptions\r\n) {\r\n return pathToRegexp.compile(path, options)(params)\r\n}\r\n\r\nexport const path = {\r\n home: '/',\r\n news: '/news.ashx',\r\n screener: '/screener.ashx',\r\n charts: '/charts',\r\n groups: '/groups.ashx',\r\n portfolio: '/portfolio.ashx',\r\n insider: '/insidertrading.ashx',\r\n elite: '/elite.ashx',\r\n search: '/search.ashx\\\\?p=:ticker',\r\n quote: '/quote.ashx\\\\?t=:ticker',\r\n contact: '/contact.ashx',\r\n\r\n alerts: '/alerts.ashx',\r\n help: '/help/screener.ashx',\r\n account: '/myaccount.ashx',\r\n login: '/login.ashx',\r\n logout: '/logout.ashx',\r\n\r\n // Maps\r\n maps: '/map.ashx',\r\n bubbles: '/bubbles.ashx',\r\n\r\n // Futures\r\n futures: '/futures.ashx',\r\n futuresPerf: '/futures_performance.ashx',\r\n futuresCharts: '/futures_charts.ashx',\r\n futuresChartDetail: '/futures_charts.ashx\\\\?t=:ticker',\r\n\r\n // Forex\r\n forex: '/forex.ashx',\r\n forexPerf: '/forex_performance.ashx',\r\n forexCharts: '/forex_charts.ashx',\r\n forexChartDetail: '/forex_charts.ashx\\\\?t=:ticker',\r\n\r\n // Crypto\r\n crypto: '/crypto.ashx',\r\n cryptoPerf: '/crypto_performance.ashx',\r\n cryptoCharts: '/crypto_charts.ashx',\r\n cryptoChartDetail: '/crypto_charts.ashx\\\\?t=:ticker&c=:currency',\r\n\r\n // Backtsest\r\n backtests: '/backtests.ashx',\r\n backtestCreate: '/backtest_create.ashx',\r\n backtestDetail: '/backtest_detail.ashx\\\\?id=:backtestId',\r\n backtestPresets: 'backtests.ashx\\\\?presets=1',\r\n}\r\n\r\nexport const link = {\r\n toHome: () => path.home,\r\n toNews: () => path.news,\r\n toScreener: () => path.screener,\r\n toCharts: () => path.charts,\r\n toGroups: () => path.groups,\r\n toPortfolio: () => path.portfolio,\r\n toInsider: () => path.insider,\r\n toElite: () => path.elite,\r\n toSearch: (ticker: string) => compilePath(path.search, { ticker }),\r\n toQuote: (ticker: string) => compilePath(path.quote, { ticker }),\r\n toContact: () => path.contact,\r\n\r\n toAlerts: () => path.alerts,\r\n toHelp: () => path.help,\r\n toAccount: () => path.account,\r\n toLogin: () => path.login,\r\n toLogout: () => path.logout,\r\n\r\n toMaps: () => path.maps,\r\n toBubbles: () => path.bubbles,\r\n\r\n toFutures: () => path.futures,\r\n toFuturesPerf: () => path.futuresPerf,\r\n toFuturesCharts: () => path.futuresCharts,\r\n toFuturesChartDetail: (ticker: string) => compilePath(path.futuresChartDetail, { ticker: cleanTicker(ticker) }),\r\n\r\n toForex: () => path.forex,\r\n toForexPerf: () => path.forexPerf,\r\n toForexCharts: () => path.forexCharts,\r\n toForexChartDetail: (ticker: string) => compilePath(path.forexChartDetail, { ticker: cleanTicker(ticker) }),\r\n\r\n toCrypto: () => path.crypto,\r\n toCryptoPerf: () => path.cryptoPerf,\r\n toCryptoCharts: () => path.cryptoCharts,\r\n toCryptoChartDetail: (ticker: string) =>\r\n compilePath(path.cryptoChartDetail, { ticker: cleanTicker(ticker), currency: getCurrency(cleanTicker(ticker)) }),\r\n\r\n toBacktests: () => path.backtests,\r\n toBacktestCreate: () => path.backtestCreate,\r\n toBacktestDetail: (backtestId: string | number) =>\r\n compilePath(path.backtestDetail, { backtestId: String(backtestId) }),\r\n toBacktestPresets: () => path.backtestPresets,\r\n}\r\n","// Do not import anything in this file\r\n\r\nexport enum Instrument {\r\n Stock = 'stock',\r\n Forex = 'forex',\r\n Crypto = 'crypto',\r\n Futures = 'futures',\r\n MarketSentiment = 'market_sentiment',\r\n Group = 'group',\r\n}\r\n\r\nexport type RecordType = Record\r\n\r\nexport type PartialBy = Omit & Partial>\r\n\r\nexport type NullableNumbers = { [K in keyof Obj]: Obj[K] extends number ? number | null : Obj[K] }\r\n\r\nexport enum DateRangeType {\r\n d1 = 'd1',\r\n d5 = 'd5',\r\n m1 = 'm1',\r\n m3 = 'm3',\r\n m6 = 'm6',\r\n ytd = 'ytd',\r\n y1 = 'y1',\r\n y2 = 'y2',\r\n y5 = 'y5',\r\n max = 'max',\r\n}\r\n\r\nexport type SortableValue = string | null | number | Date\r\nexport enum SortDirection {\r\n Ascending = 1,\r\n Descending = -1,\r\n}\r\n\r\nexport enum FeatureFlag {\r\n RedesignedPages = 'redesign',\r\n PortfolioRedesign = 'redesignpfo',\r\n OptionsGreeks = 'greeks',\r\n TrafficPage = 'trafficPage',\r\n ScreenerAddFilter = 'screeneraddfilter',\r\n}\r\n\r\nexport interface ApiPaginatedResponse {\r\n items: T\r\n page: number\r\n pageSize: number\r\n totalItemsCount: number\r\n totalPages: number\r\n}\r\n\r\nexport enum PortfolioApiFields {\r\n News = 'news',\r\n // User Portfolios\r\n UserPortfolios = 'portfolios',\r\n PortfolioLimit = 'limit',\r\n // Portfolio Detail\r\n SelectedPortfolioId = 'selectedPortfolio',\r\n SelectedPortfolio = 'portfolio',\r\n TransactionLimit = 'limitTransactions',\r\n TickerGroupsOnly = 'groupsOnly',\r\n NumberOfTransactions = 'transactions',\r\n}\r\n","import isPlainObject from 'lodash.isplainobject'\r\n\r\nimport { CRYPTO_TICKERS } from '../app/crypto/currencyUtils'\r\nimport { getCookie } from '../app/shared/cookie'\r\nimport { FeatureFlag, Instrument, SortDirection, SortableValue } from './types'\r\nimport { RecordType } from './types'\r\n\r\nconst isObject = (value: any): value is RecordType => isPlainObject(value)\r\n\r\n/**\r\n * Parse text as JSON\r\n */\r\nexport function parseAsJSON(value: unknown | Shape): Shape | undefined {\r\n if (isObject(value)) {\r\n return value as Shape\r\n }\r\n\r\n let parsedValue\r\n try {\r\n if (typeof value === 'string') {\r\n parsedValue = JSON.parse(value)\r\n }\r\n } catch {\r\n return\r\n }\r\n return parsedValue\r\n}\r\n\r\n/**\r\n * remove @ symbol from a ticker\r\n */\r\nexport function cleanTicker(ticker: string) {\r\n return ticker.startsWith('@') ? ticker.substring(1) : ticker\r\n}\r\n\r\n/**\r\n * Get instrument for a ticker.\r\n *\r\n * - If ticker doesn’t start with `@` - stock\r\n * - Otherwise\r\n * - one of `CRYPTO_TICKERS` - crypto\r\n * - has length of 6 - forex\r\n * - none of above - future\r\n *\r\n * NOTE: counterpart in charts 'charts/app/utils/chart.js'\r\n */\r\n\r\nexport function getInstrumentForTicker(ticker: string): Instrument {\r\n if (!ticker?.startsWith('@')) return Instrument.Stock\r\n\r\n const cleanedTicker = cleanTicker(ticker)\r\n\r\n if (CRYPTO_TICKERS.includes(cleanedTicker.toUpperCase())) return Instrument.Crypto\r\n if (cleanedTicker.length === 6) return Instrument.Forex\r\n\r\n return Instrument.Futures\r\n}\r\n\r\n/**\r\n * Async load Resize observer polyfill when we need it\r\n */\r\nlet resizeObserverPolyfill: typeof window.ResizeObserver\r\n\r\nexport async function loadResizeObserverPolyfill() {\r\n if (typeof window.ResizeObserver === 'undefined') {\r\n const polyfill = await import('resize-observer-polyfill')\r\n resizeObserverPolyfill = polyfill.default\r\n window.ResizeObserver = resizeObserverPolyfill\r\n return resizeObserverPolyfill as typeof window.ResizeObserver\r\n }\r\n}\r\n\r\nexport async function getIsBrave() {\r\n return (navigator.brave && (await navigator.brave.isBrave())) || false\r\n}\r\n\r\nexport function deserializeFeatureFlags(): Partial> | undefined {\r\n try {\r\n const cookie = decodeURIComponent(getCookie('featureFlags'))\r\n const flags = cookie.split('_').map((value) => {\r\n const [key, val] = value.split(':')\r\n return [key, val === '1']\r\n })\r\n\r\n return Object.fromEntries(flags)\r\n } catch {\r\n return\r\n }\r\n}\r\n\r\nexport function serializeFeatureFlags(flags: Partial>) {\r\n return Object.entries(flags)\r\n .map(([key, val]) => `${key}:${Number(val)}`)\r\n .join('_')\r\n}\r\n\r\nexport enum ChildPosition {\r\n topLeft,\r\n topRight,\r\n bottomLeft,\r\n bottomRight,\r\n center,\r\n topCenter,\r\n rightCenter,\r\n bottomCenter,\r\n leftCenter,\r\n}\r\n\r\nexport function getFlexAlignClasses(position: ChildPosition) {\r\n return {\r\n 'justify-start': [ChildPosition.topLeft, ChildPosition.bottomLeft, ChildPosition.leftCenter].includes(position),\r\n 'justify-center': [ChildPosition.center, ChildPosition.topCenter, ChildPosition.bottomCenter].includes(position),\r\n 'justify-end': [ChildPosition.topRight, ChildPosition.bottomRight, ChildPosition.rightCenter].includes(position),\r\n 'items-start': [ChildPosition.topLeft, ChildPosition.topRight, ChildPosition.topCenter].includes(position),\r\n 'items-center': [ChildPosition.center, ChildPosition.rightCenter, ChildPosition.leftCenter].includes(position),\r\n 'items-end': [ChildPosition.bottomLeft, ChildPosition.bottomRight, ChildPosition.bottomCenter].includes(position),\r\n }\r\n}\r\n\r\ninterface NumberFormatOptions {\r\n fractions: number\r\n multiply: number\r\n showPlusSign: boolean\r\n defaultValue: string\r\n prefix: string\r\n suffix: string\r\n withSpace: boolean\r\n}\r\n\r\nconst intlCache: { [key: number]: Intl.NumberFormat } = {}\r\nconst dollarIntlCache: { [key: number]: Intl.NumberFormat } = {}\r\n\r\nfunction getIntl(fractions: number) {\r\n if (!intlCache[fractions])\r\n intlCache[fractions] = new Intl.NumberFormat('en-US', {\r\n minimumFractionDigits: fractions,\r\n maximumFractionDigits: fractions,\r\n })\r\n return intlCache[fractions]\r\n}\r\n\r\nfunction getDollarIntl(fractions: number) {\r\n if (!dollarIntlCache[fractions])\r\n dollarIntlCache[fractions] = new Intl.NumberFormat('en-US', {\r\n minimumFractionDigits: fractions,\r\n maximumFractionDigits: fractions,\r\n style: 'currency',\r\n currency: 'USD',\r\n })\r\n return dollarIntlCache[fractions]\r\n}\r\n\r\nexport function shortFormatNumber(\r\n value: number | null | undefined,\r\n {\r\n fractions = 2,\r\n showPlusSign = false,\r\n defaultValue = '-',\r\n multiply = 1,\r\n suffix: extraSuffix = '',\r\n }: Partial = {}\r\n) {\r\n let num = value\r\n if (num === undefined || num === null || !Number.isFinite(num)) return defaultValue\r\n\r\n num *= multiply\r\n\r\n let suffix = ''\r\n const absValue = Math.abs(num)\r\n if (absValue >= 1e9) {\r\n num /= 1e9\r\n suffix = 'B'\r\n } else if (absValue >= 1e6) {\r\n num /= 1e6\r\n suffix = 'M'\r\n } else if (absValue >= 1000) {\r\n num /= 1000\r\n suffix = 'K'\r\n }\r\n\r\n const formatted = getIntl(fractions).format(num)\r\n\r\n return (showPlusSign && num > 0 ? '+' : '') + formatted + suffix + extraSuffix\r\n}\r\n\r\nexport function shortFormatDollar(\r\n value: number | null | undefined,\r\n {\r\n fractions = 2,\r\n showPlusSign = false,\r\n defaultValue = '-',\r\n multiply = 1,\r\n suffix: extraSuffix = '',\r\n }: Partial = {}\r\n) {\r\n let num = value\r\n if (num === undefined || num === null || !Number.isFinite(num)) return defaultValue\r\n\r\n num *= multiply\r\n\r\n let suffix = ''\r\n const absValue = Math.abs(num)\r\n if (absValue >= 1e9) {\r\n num /= 1e9\r\n suffix = 'B'\r\n } else if (absValue >= 1e6) {\r\n num /= 1e6\r\n suffix = 'M'\r\n } else if (absValue >= 1000) {\r\n num /= 1000\r\n suffix = 'K'\r\n }\r\n\r\n const formatted = getDollarIntl(fractions).format(num)\r\n\r\n return (showPlusSign && num > 0 ? '+' : '') + formatted + suffix + extraSuffix\r\n}\r\n\r\nexport function getDecimalPlacesForValue(value: number, instrument: Instrument = Instrument.Stock) {\r\n if (value >= 100000) {\r\n return 0\r\n } else if (value >= 10000) {\r\n return 1\r\n } else if (instrument === Instrument.Stock && value < 1) {\r\n return 4\r\n } else if (value === undefined) {\r\n // if lastClose is not defined we'll always display 2 decimpal places, e.g. backtests, screener stats\r\n return 2\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport const FORMAT_PERCENT = { suffix: '%' }\r\nexport const FORMAT_PERCENT_CHANGE = { ...FORMAT_PERCENT, showPlusSign: true }\r\n\r\nexport function formatNumber(\r\n value: number | null | undefined,\r\n { fractions = 2, showPlusSign = false, defaultValue = '-', suffix = '' }: Partial = {}\r\n) {\r\n if (value === undefined || value === null) return defaultValue\r\n\r\n const fixedValue = value.toFixed(fractions)\r\n const signPrefix = showPlusSign && value > 0 ? '+' : ''\r\n\r\n if (parseFloat(fixedValue) === 0 && value !== 0) {\r\n return {signPrefix + fixedValue + suffix}\r\n }\r\n\r\n const formatted = getIntl(fractions).format(value)\r\n\r\n return signPrefix + formatted + suffix\r\n}\r\n\r\nexport function formatDollar(\r\n value: number | null | undefined,\r\n { fractions = 2, showPlusSign = false, defaultValue = '-', suffix = '' }: Partial = {}\r\n) {\r\n if (value === undefined || value === null) return defaultValue\r\n\r\n const fixedValue = value.toFixed(fractions)\r\n const signPrefix = showPlusSign && value > 0 ? '+' : ''\r\n\r\n const formatted = getDollarIntl(fractions).format(value)\r\n\r\n if (parseFloat(fixedValue) === 0 && value !== 0) {\r\n return {signPrefix + formatted + suffix}\r\n }\r\n\r\n return signPrefix + formatted + suffix\r\n}\r\n\r\nexport interface SortByColumnOptions {\r\n /**\r\n * Change order of `null` values.\r\n * - `false` Force sort null as first (asc) and last (desc)\r\n * - `true` Always sort null as last regardless of order\r\n * @default false\r\n */\r\n sortNullAsLast?: boolean\r\n\r\n /**\r\n * When true, null values will not be treated as special values\r\n * @default false\r\n */\r\n ignoreNullForComparison?: boolean\r\n}\r\n\r\nexport function sortByColumn(\r\n options: SortByColumnOptions & {\r\n a: SortableValue\r\n b: SortableValue\r\n direction: SortDirection\r\n }\r\n) {\r\n if (options.a === options.b) return 0\r\n\r\n // Compare as strings\r\n if (typeof options.a === 'string' && typeof options.b === 'string')\r\n return options.a.localeCompare(options.b) * options.direction\r\n\r\n // Always sort null last if enabled\r\n if (options.sortNullAsLast && options.a === null) return Infinity\r\n if (options.sortNullAsLast && options.b === null) return -Infinity\r\n\r\n // Sort null first/last depending on direction\r\n if (!options.ignoreNullForComparison && options.a === null) return -options.direction\r\n if (!options.ignoreNullForComparison && options.b === null) return options.direction\r\n\r\n // Compare as numbers\r\n return (Number(options.a) - Number(options.b)) * options.direction\r\n}\r\n\r\nexport function moveItemInArray(arr: ItemType[], sourceIndex: number, destinationIndex: number) {\r\n // make sure sourceIndex and destinationIndex are inside of arr\r\n const from = Math.max(0, Math.min(sourceIndex, arr.length - 1))\r\n const to = Math.min(arr.length - 1, Math.max(destinationIndex, 0))\r\n\r\n const items = [...arr]\r\n const [removed] = items.splice(from, 1)\r\n items.splice(to, 0, removed)\r\n\r\n return items\r\n}\r\n\r\nexport function randomUUID() {\r\n return `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, (substring) => {\r\n const c = Number(substring)\r\n return (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)\r\n })\r\n}\r\n\r\nexport function getUuid() {\r\n return window.crypto?.randomUUID?.() ?? randomUUID()\r\n}\r\n\r\n/**\r\n * Used as a callback to autoFocusOnShow/autoFocusOnHide to make sure the page\r\n * doesn’t jump when focusing the element\r\n */\r\nexport function focusWithoutScroll(element: HTMLElement | null) {\r\n requestAnimationFrame(() => {\r\n element?.focus({ preventScroll: element.ariaHasPopup !== null })\r\n })\r\n\r\n return !element\r\n}\r\n\r\nexport function blurWithoutScroll(element: HTMLElement | null) {\r\n element?.focus({ preventScroll: true })\r\n\r\n return !element\r\n}\r\n\r\n/**\r\n * Can be used as a callback for events if you just need to prevent the default action\r\n */\r\nexport function preventDefault(ev: React.MouseEvent) {\r\n ev.preventDefault()\r\n}\r\n\r\nexport function getNavigationLinkUrl(\r\n url: URL,\r\n preservedKeys?: string[],\r\n removeQueryKeys?: string[],\r\n additionalQueryValues: Record = {}\r\n) {\r\n const newUrl = new URL(url)\r\n\r\n if (preservedKeys?.length) {\r\n for (const key of url.searchParams.keys()) {\r\n if (!preservedKeys.includes(key)) newUrl.searchParams.delete(key)\r\n }\r\n }\r\n\r\n removeQueryKeys?.forEach((key) => {\r\n newUrl.searchParams.delete(key)\r\n })\r\n\r\n Object.entries(additionalQueryValues).forEach(([key, value]) => {\r\n newUrl.searchParams.set(key, value as string)\r\n })\r\n\r\n return newUrl\r\n}\r\n\r\nexport function getElitePageLink(campaign?: string) {\r\n const url = '/elite.ashx'\r\n const query = new URLSearchParams('utm_source=finviz&utm_medium=banner')\r\n\r\n if (campaign) {\r\n query.set('utm_campaign', campaign)\r\n\r\n return `${url}?${query.toString()}`\r\n }\r\n\r\n return url\r\n}\r\n\r\nexport function getNumberValue(value?: number) {\r\n if (value === undefined || isNaN(value)) return NaN\r\n return value\r\n}\r\n\r\nexport function dateStrToDate(dateStr: string) {\r\n return new Date(`${dateStr}T00:00:00`)\r\n}\r\n\r\nexport function dateStrToTimestamp(dateStr: string) {\r\n return dateStrToDate(dateStr).getTime()\r\n}\r\n\r\nexport function getEarningsDateSuffix(date: Date | null) {\r\n if (!date) {\r\n return ''\r\n }\r\n const hours = date.getHours()\r\n if (hours <= 9) {\r\n return 'BMO'\r\n }\r\n if (hours >= 16) {\r\n return 'AMC'\r\n }\r\n return ''\r\n}\r\n","function getSanitizedSingleTicker(rawTicker: string, specialTickers: string[] = []) {\r\n return rawTicker\r\n .replace(/\\.+/gi, '-')\r\n .split('-')\r\n .map((x) => {\r\n if (specialTickers.includes(x.toUpperCase())) return x\r\n return x.replace(/([^a-z0-9@-])+/gi, '')\r\n })\r\n .filter((x) => !!x)\r\n .join('-')\r\n .toUpperCase()\r\n}\r\n\r\nexport function getSanitizedTicker(rawTicker: string, isMulti = false, specialTickers: string[] = []) {\r\n if (isMulti) {\r\n return rawTicker\r\n .replace(/ /g, ',')\r\n .split(',')\r\n .map((x) => getSanitizedSingleTicker(x, specialTickers))\r\n .filter((x) => !!x)\r\n .join(',')\r\n }\r\n\r\n return getSanitizedSingleTicker(rawTicker, specialTickers)\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","/**\n * Module dependencies\n */\n\nvar debug = require('debug')('jsonp');\n\n/**\n * Module exports.\n */\n\nmodule.exports = jsonp;\n\n/**\n * Callback index.\n */\n\nvar count = 0;\n\n/**\n * Noop function.\n */\n\nfunction noop(){}\n\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\nfunction jsonp(url, opts, fn){\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n if (!opts) opts = {};\n\n var prefix = opts.prefix || '__jp';\n\n // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n var id = opts.name || (prefix + (count++));\n\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n\n if (timeout) {\n timer = setTimeout(function(){\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup(){\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n\n function cancel(){\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function(data){\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n };\n\n // add qs component\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n\n debug('jsonp req \"%s\"', url);\n\n // create script\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n\n return cancel;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","/**\n * @license React\n * react-dom-server-legacy.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 aa=require(\"react\");function l(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c