{"version":3,"file":"news_content.d0acc2bb.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/utils.ts","webpack://@finviz/website/./js/main/components/context-menu/context-menu.tsx","webpack://@finviz/website/./js/main/components/grid/grid.tsx","webpack://@finviz/website/./js/main/components/inner-state/inner-state.tsx","webpack://@finviz/website/./js/main/components/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 * If applied styles will be as if the component was enabled but clicking buttons won't do anything\r\n */\r\n readonly?: boolean\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 readonly = false,\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\nexport const CHART_CONTEXT_MENU_ID = 'chartContextMenu'\r\n\r\nexport function hasChartContextMenuGainedFocus(blurEvent: React.FocusEvent | undefined) {\r\n const chartContextMenu = document.getElementById(CHART_CONTEXT_MENU_ID)\r\n if (chartContextMenu && blurEvent?.relatedTarget) {\r\n return chartContextMenu === blurEvent.relatedTarget || chartContextMenu.contains(blurEvent?.relatedTarget)\r\n }\r\n\r\n return false\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\nimport { CHART_CONTEXT_MENU_ID } from './utils'\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