@orderly.network/markets 2.8.13-rc.0 → 2.8.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.js +48 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +49 -13
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -8
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketsProvider/index.tsx","../src/components/symbolDisplay.tsx","../src/icons.tsx","../src/pages/home/marketsHeader/marketsHeader.ui.tsx","../src/utils.ts","../src/pages/home/marketsHeader/marketsHeader.script.tsx","../src/pages/home/marketsHeader/marketsHeader.mobile.ui.tsx","../src/pages/home/marketsHeader/marketsHeader.widget.tsx","../src/components/collapseMarkets/index.tsx","../src/components/favoritesDropdownMenu/favoritesDropdownMenu.ui.tsx","../src/components/favoritesDropdownMenu/favoritesDropdownMenu.script.ts","../src/components/favoritesDropdownMenu/favoritesDropdownMenu.widget.tsx","../src/components/favoritesDropdownMenu/index.ts","../src/components/rwaDotTooltip.tsx","../src/components/sideMarkets/column.tsx","../src/components/marketsList/marketsList.ui.tsx","../src/type.ts","../src/components/marketsList/marketsList.script.ts","../src/components/marketsList/marketsList.widget.tsx","../src/components/marketsList/index.tsx","../src/components/rwaTab.tsx","../src/components/searchInput/index.tsx","../src/components/shared/column.tsx","../src/components/favoritesEmpty/index.tsx","../src/components/favoritesTabs/favoritesTabs.ui.tsx","../src/components/favoritesTabs/favoritesTabs.script.ts","../src/components/favoritesTabs/favoritesTabs.widget.tsx","../src/components/favoritesTabs/index.ts","../src/components/shared/hooks/useFavoritesExtraProps.tsx","../src/pages/home/marketsDataList/marketsDataList.mobile.ui.tsx","../src/components/shared/hooks/useTabSort.ts","../src/pages/home/marketsDataList/marketsDataList.script.ts","../src/components/marketsListFull/column.tsx","../src/components/favoritesListFull/favoritesListFull.ui.tsx","../src/components/favoritesListFull/favoritesListFull.script.ts","../src/components/favoritesListFull/favoritesListFull.widget.tsx","../src/components/favoritesListFull/index.tsx","../src/components/marketsListFull/marketsListFull.ui.tsx","../src/components/marketsListFull/marketsListFull.script.ts","../src/components/marketsListFull/marketsListFull.widget.tsx","../src/components/marketsListFull/index.tsx","../src/pages/home/marketsDataList/marketsDataList.ui.tsx","../src/pages/home/marketsDataList/marketsDataList.widget.tsx","../src/pages/home/marketsDataList/index.ts","../src/components/expandMarkets/expandMarkets.ui.tsx","../src/constant.ts","../src/components/expandMarkets/expandMarkets.script.ts","../src/components/expandMarkets/expandMarkets.widget.tsx","../src/components/expandMarkets/index.ts","../src/components/fundingOverview/columns.tsx","../src/components/fundingOverview/fundingOverview.ui.tsx","../src/components/fundingOverview/fundingOverview.script.tsx","../src/components/fundingOverview/fundingOverview.mobile.ui.tsx","../src/components/fundingOverview/fundingOverview.widget.tsx","../src/components/fundingOverview/index.tsx","../src/components/fundingComparison/useEXchanges.ts","../src/components/fundingComparison/columns.tsx","../src/components/fundingComparison/fundingComparison.ui.tsx","../src/components/fundingComparison/fundingComparison.script.tsx","../src/components/fundingComparison/fundingComparison.mobile.ui.tsx","../src/components/fundingComparison/fundingComparison.widget.tsx","../src/components/fundingComparison/index.tsx","../src/components/sideMarkets/sideMarkets.ui.tsx","../src/components/dropDownMarkets/column.tsx","../src/components/dropDownMarkets/dropDownMarkets.ui.tsx","../src/components/dropDownMarkets/dropDownMarkets.script.ts","../src/components/dropDownMarkets/dropDownMarkets.widget.tsx","../src/components/dropDownMarkets/index.ts","../src/components/symbolInfoBarFull/dataItem.ui.tsx","../src/components/horizontalMarkets/marketItem.ui.tsx","../src/components/horizontalMarkets/marketTypeFilter.ui.tsx","../src/components/horizontalMarkets/horizontalMarkets.ui.tsx","../src/pages/home/funding/funding.mobile.ui.tsx","../src/pages/home/funding/funding.script.tsx","../src/pages/home/funding/funding.ui.tsx","../src/pages/home/funding/funding.widget.tsx","../src/pages/home/marketsHeader/index.ts","../src/index.ts","../src/components/subMenuMarkets/subMenuMarkets.ui.tsx","../src/components/subMenuMarkets/subMenuMarkets.widget.tsx","../src/components/subMenuMarkets/subMenuMarkets.script.ts","../src/components/sideMarkets/index.ts","../src/components/sideMarkets/sideMarkets.script.ts","../src/components/sideMarkets/sideMarkets.widget.tsx","../src/components/marketsSheet/marketsSheet.ui.tsx","../src/components/marketsSheet/column.tsx","../src/components/marketsSheet/marketsSheet.script.ts","../src/components/marketsSheet/marketsSheet.widget.tsx","../src/components/symbolInfoBar/symbolInfoBar.ui.tsx","../src/components/symbolInfoBarFull/rwaTooltip.tsx","../src/components/symbolInfoBar/symbolInfoBar.script.ts","../src/components/symbolInfoBar/symbolInfoBar.widget.tsx","../src/components/symbolInfoBarFull/symbolInfoBarFull.ui.tsx","../src/components/fundingRateHint/fundingRateHint.ui.tsx","../src/components/fundingRateHint/fundingRateHint.script.tsx","../src/components/fundingRateHint/fundingRateHint.widget.tsx","../src/components/symbolInfoBarFull/symbolInfoBarFull.script.ts","../src/components/symbolInfoBarFull/symbolInfoBarFull.widget.tsx","../src/components/horizontalMarkets/horizontalMarkets.widget.tsx","../src/components/horizontalMarkets/horizontalMarkets.script.ts","../src/components/horizontalMarkets/index.ts","../src/deprecated/newListingList/newListingList.ui.tsx","../src/deprecated/newListingList/newListingList.script.ts","../src/deprecated/newListingList/widget.tsx","../src/deprecated/favoritesList/favoritesList.ui.tsx","../src/deprecated/favoritesList/favoritesList.script.ts","../src/deprecated/favoritesList/widget.tsx","../src/deprecated/recentList/recentList.ui.tsx","../src/deprecated/recentList/recentList.script.ts","../src/deprecated/recentList/widget.tsx","../src/pages/home/page.tsx"],"names":["MarketsProvider","createContext","useState","useCallback","useMemo","useContext","SymbolDisplay","memo","useSymbolsInfo","Flex","jsx","TokenIcon","Text","jsxs","MarketsHeader","useTranslation","cls","cn","Box","Decimal","formatSymbol","useEffect","useMarkets","MarketsType","useQuery","useMarketsHeaderScript","useEmblaCarousel","BlockList","BlockItem","CardItem","ListItem","Tabs","TabPanel","MarketsHeaderWidget","useScreen","CollapseMarkets","Badge","Tooltip","FavoritesDropdownMenu","Input","CloseCircleFillIcon","Button","PlusIcon","CloseIcon","CheckedSquareFillIcon","CheckSquareEmptyIcon","DropdownMenuRoot","DropdownMenuTrigger","DropdownMenuPortal","DropdownMenuContent","Divider","FavoritesDropdownMenuWidget","isCurrentlyTrading","MarketsList","Fragment","DataTable","MarketsPageTab","MarketsTabName","FundingTabName","useMarketsListScript","MarketsListWidget","GradientText","useRef","i18n","init_column","EmptyStateIcon","FavoritesTab","modal","open","tab","FavoritesTabWidget","useSessionStorage","FavoritesListFull","Trans","useFavoritesListFullScript","usePagination","FavoritesListFullWidget","MarketsListFull","useMarketsListFullScript","MarketsListFullWidget","MarketsDataList","React","MarketsDataListWidget","LazySearchInput","ExpandMarkets","ExpandMarketsWidget","Picker","Select","FundingOverview","useFundingOverviewScript","useFundingRateHistory","useFundingRates","FundingOverviewWidget","init_columns","FundingComparison","useFundingComparisonScript","useMarketsStream","FundingComparisonWidget","SideMarkets","pick","useDropDownMarketsColumns","DropDownMarkets","DropDownMarketsConetnt","useLocalStorage","DropDownMarketsWidget","MarketItem","MarketTypeFilter","Checkbox","HorizontalMarkets","Marquee","EmptyDataState","SIDE_MARKETS_SEL_TAB_KEY","useGetRwaSymbolInfo","useTickerStream","useFundingDetails","useFundingRateBySymbol","usePositionStream","ScrollIndicator","useFundingRate","NewsFillIcon","useMarketsStore","MarketsTypeMap","LeftNavUI"],"mappings":"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","file":"index.js","sourcesContent":["import {\n FC,\n createContext,\n PropsWithChildren,\n useState,\n useContext,\n useCallback,\n useMemo,\n} from \"react\";\nimport type { API, RouterAdapter } from \"@orderly.network/types\";\nimport { LeftNavProps } from \"@orderly.network/ui-scaffold\";\n\ntype MarketsContextState = {\n symbol?: string;\n searchValue?: string;\n onSearchValueChange?: (searchValue: string) => void;\n clearSearchValue?: () => void;\n} & MarketsProviderProps;\n\nexport const MarketsContext = createContext<MarketsContextState>({});\n\nexport type MarketsProviderProps = {\n symbol?: string;\n onSymbolChange?: (symbol: API.Symbol) => void;\n // only for mobile\n navProps?: {\n logo?: {\n src: string;\n alt: string;\n };\n routerAdapter?: RouterAdapter;\n leftNav?: LeftNavProps;\n };\n comparisonProps?: {\n /**\n * Set Name of Exchanges in the comparison list.\n * @default 'Orderly'\n */\n exchangesName?: string;\n /**\n * Set Icon URL of Exchanges in the comparison list.\n * @default \"\"\n */\n exchangesIconSrc?: string;\n };\n};\n\nexport const MarketsProvider: FC<PropsWithChildren<MarketsProviderProps>> = (\n props,\n) => {\n const { symbol, comparisonProps, children, onSymbolChange } = props;\n const [searchValue, setSearchValue] = useState(\"\");\n\n const clearSearchValue = useCallback(() => {\n setSearchValue(\"\");\n }, []);\n\n const memoizedValue = useMemo<MarketsContextState>(() => {\n return {\n searchValue,\n onSearchValueChange: setSearchValue,\n clearSearchValue,\n symbol: symbol,\n onSymbolChange: onSymbolChange,\n comparisonProps: comparisonProps,\n };\n }, [searchValue, symbol, onSymbolChange, setSearchValue, comparisonProps]);\n\n return (\n <MarketsContext.Provider value={memoizedValue}>\n {children}\n </MarketsContext.Provider>\n );\n};\n\nexport const useMarketsContext = () => {\n return useContext<MarketsContextState>(MarketsContext);\n};\n","import { memo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { Text, FormattedTextProps, TokenIcon, Flex } from \"@orderly.network/ui\";\n\ntype SymbolDisplayProps = FormattedTextProps;\n\nexport const SymbolDisplay = memo((props: SymbolDisplayProps) => {\n const { children, size = \"xs\", ...rest } = props;\n const symbol = children as string;\n\n const symbolsInfo = useSymbolsInfo();\n const displayName = symbolsInfo[symbol](\"displayName\");\n\n if (displayName) {\n return (\n <Flex gapX={1} className={props.className}>\n {props.showIcon && <TokenIcon size={size as any} symbol={symbol} />}\n <Text\n size=\"xs\"\n weight=\"semibold\"\n className=\"oui-whitespace-nowrap oui-break-normal\"\n >\n {displayName}\n </Text>\n </Flex>\n );\n }\n\n return (\n <Text.formatted size=\"xs\" rule=\"symbol\" weight=\"semibold\" {...rest}>\n {symbol}\n </Text.formatted>\n );\n});\n","import React, { FC, PropsWithChildren, SVGProps } from \"react\";\n\nexport const EditIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"16\"\n height=\"16\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 0h16v16H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M3.333 12.667h.95L10.8 6.15l-.95-.95-6.517 6.517zM2.667 14a.65.65 0 0 1-.475-.192.65.65 0 0 1-.192-.475v-1.616a1.32 1.32 0 0 1 .383-.934l8.417-8.4q.2-.183.442-.283.24-.1.508-.1.267 0 .517.1.249.1.433.3l.917.933q.2.184.291.434a1.44 1.44 0 0 1 0 1.008 1.25 1.25 0 0 1-.291.442l-8.4 8.4a1.32 1.32 0 0 1-.933.383zm7.65-8.317L9.85 5.2l.95.95z\" />\n </g>\n </svg>\n);\n\nexport const TrashIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M7.205 1.334c-.345 0-.674.136-.918.38L6.001 2H2.667a.667.667 0 1 0 0 1.334h10.667a.667.667 0 1 0 0-1.334h-3.333l-.287-.286a1.3 1.3 0 0 0-.918-.38zM2.911 4.667l1.018 8.842c.088.66.656 1.158 1.322 1.158h5.498c.666 0 1.235-.497 1.323-1.163l1.019-8.837z\" />\n </svg>\n);\n\nexport const AllMarketsIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"12\"\n height=\"12\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 0h12v12H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M8.5 10a.48.48 0 0 1-.356-.144A.48.48 0 0 1 8 9.5V7q0-.213.144-.356A.48.48 0 0 1 8.5 6.5h1q.212 0 .356.144A.48.48 0 0 1 10 7v2.5q0 .212-.144.356A.48.48 0 0 1 9.5 10zm-3 0a.48.48 0 0 1-.356-.144A.48.48 0 0 1 5 9.5v-7q0-.212.144-.356A.48.48 0 0 1 5.5 2h1q.213 0 .356.144A.48.48 0 0 1 7 2.5v7q0 .212-.144.356A.48.48 0 0 1 6.5 10zm-3 0a.48.48 0 0 1-.356-.144A.48.48 0 0 1 2 9.5V5q0-.213.144-.356A.48.48 0 0 1 2.5 4.5h1q.212 0 .356.144A.48.48 0 0 1 4 5v4.5q0 .212-.144.356A.48.48 0 0 1 3.5 10z\" />\n </g>\n </svg>\n);\n\nexport const NewListingsIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M5.993.958a.416.416 0 0 0-.41.422v.416a.416.416 0 1 0 .832 0V1.38a.416.416 0 0 0-.422-.422M2.749 2.29a.416.416 0 0 0-.29.714l.291.292a.416.416 0 1 0 .589-.588l-.292-.292a.42.42 0 0 0-.298-.126m6.489 0a.42.42 0 0 0-.286.126l-.292.292a.416.416 0 1 0 .588.588l.292-.292a.416.416 0 0 0-.302-.714m-3.239.753a2.895 2.895 0 0 0-2.913 2.914A2.86 2.86 0 0 0 4.751 8.58v1.123c0 .458.374.833.832.833h.832a.835.835 0 0 0 .833-.833V8.58a2.86 2.86 0 0 0 1.665-2.622 2.895 2.895 0 0 0-2.914-2.914M1.421 5.541a.416.416 0 1 0 0 .833h.417a.416.416 0 1 0 0-.833zm8.74 0a.416.416 0 1 0 0 .833h.416a.417.417 0 1 0 0-.833zM3.037 8.492a.42.42 0 0 0-.287.126l-.291.292a.416.416 0 1 0 .588.588l.292-.292a.416.416 0 0 0-.302-.714m5.913 0a.416.416 0 0 0-.29.714l.292.292a.416.416 0 1 0 .588-.588l-.292-.292a.42.42 0 0 0-.298-.126\" />\n </svg>\n);\n\nexport const FavoritesIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"20\"\n height=\"21\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 .5h20v20H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"m10 14.074-3.2 1.913a.6.6 0 0 1-.332.068.6.6 0 0 1-.277-.101.5.5 0 0 1-.186-.256.5.5 0 0 1-.005-.336l.84-3.556-2.82-2.394a.5.5 0 0 1-.174-.281.6.6 0 0 1 .013-.315.5.5 0 0 1 .173-.252.55.55 0 0 1 .305-.112l3.693-.33 1.467-3.393a.57.57 0 0 1 .211-.255A.54.54 0 0 1 10 4.39q.16 0 .292.083.131.082.211.255l1.467 3.414 3.693.309q.178.014.305.123.126.11.173.262t.002.304a.56.56 0 0 1-.183.27l-2.8 2.395.84 3.556a.5.5 0 0 1-.005.336.5.5 0 0 1-.186.256.6.6 0 0 1-.277.101.6.6 0 0 1-.332-.068z\" />\n </g>\n </svg>\n);\n\nexport const UnFavoritesIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"20\"\n height=\"21\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 .5h20v20H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M7.333 14.396 10 12.813l2.688 1.583-.709-3 2.313-1.98-3.063-.27L10 6.292 8.77 9.146l-3.062.27 2.334 1.98zM10 14.074l-3.2 1.913a.6.6 0 0 1-.332.068.6.6 0 0 1-.277-.101.5.5 0 0 1-.186-.256.5.5 0 0 1-.005-.336l.84-3.556-2.82-2.394a.5.5 0 0 1-.174-.281.6.6 0 0 1 .013-.315.5.5 0 0 1 .173-.252.55.55 0 0 1 .305-.112l3.693-.33 1.467-3.393a.57.57 0 0 1 .211-.255A.54.54 0 0 1 10 4.39q.16 0 .292.083.131.082.211.255l1.467 3.414 3.693.309q.178.014.305.123.126.11.173.262t.002.304a.56.56 0 0 1-.183.27l-2.8 2.395.84 3.556a.5.5 0 0 1-.005.336.5.5 0 0 1-.186.256.6.6 0 0 1-.277.101.6.6 0 0 1-.332-.068z\" />\n </g>\n </svg>\n);\n\nexport const CirclePlusIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"18\"\n height=\"18\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 0h18v18H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M8.325 12.6h1.35V9.675H12.6v-1.35H9.675V5.4h-1.35v2.925H5.4v1.35h2.925zm.68 3.6a7 7 0 0 1-2.799-.562A7.3 7.3 0 0 1 3.91 14.09a7.3 7.3 0 0 1-1.546-2.296A7 7 0 0 1 1.8 8.99q0-1.49.563-2.794a7.26 7.26 0 0 1 3.843-3.834A7 7 0 0 1 9.009 1.8q1.49 0 2.794.562 1.303.563 2.288 1.547a7.3 7.3 0 0 1 1.547 2.292q.561 1.308.562 2.794a7 7 0 0 1-.562 2.799 7.3 7.3 0 0 1-1.547 2.297 7.3 7.3 0 0 1-2.292 1.547 7 7 0 0 1-2.794.562M9 14.85q2.437 0 4.144-1.706Q14.85 11.437 14.85 9t-1.706-4.144Q11.437 3.15 9 3.15T4.856 4.856 3.15 9t1.706 4.144Q6.563 14.85 9 14.85\" />\n </g>\n </svg>\n);\n\nexport const SearchIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M5.841 1.14a4.667 4.667 0 0 0 0 9.333 4.74 4.74 0 0 0 2.875-.975l2.54 2.56a.6.6 0 0 0 .838 0 .6.6 0 0 0 0-.838L9.537 8.677a4.72 4.72 0 0 0 .971-2.871 4.667 4.667 0 0 0-4.667-4.667m0 1.166a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7\" />\n </svg>\n);\n\nexport const MoveToTopIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M10 5.5a.76.76 0 0 0-.583.25l-4.334 4c0 .083-.083.25-.083.333 0 .25.167.417.417.417h2.916v6.667c0 .416.334.833.834.833h1.666c.5 0 .834-.417.834-.833V10.5h2.916c.25 0 .417-.167.417-.417 0-.083-.083-.25-.083-.333l-4.25-4.084c-.25-.083-.417-.166-.667-.166M2.177 3.06A.8.8 0 0 1 2.5 3h15a.834.834 0 1 1 0 1.667h-15a.833.833 0 0 1-.323-1.607\" />\n </svg>\n);\n\nexport const OrderlyIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.015.34h-.029a5.98 5.98 0 0 0-3.93 1.477c-.074.065-.027.184.072.184h7.745c.099 0 .146-.119.072-.184A5.98 5.98 0 0 0 6.015.341M3.48 7.866a.23.23 0 0 1 .187.1A2.85 2.85 0 0 0 6 9.178a2.85 2.85 0 0 0 2.334-1.213.23.23 0 0 1 .186-.1h3.104c.09 0 .155.086.13.172A6 6 0 0 1 6 12.327a6 6 0 0 1-5.755-4.29.134.134 0 0 1 .13-.172zM8.26 4.6a.29.29 0 0 0 .229.116h3.11c.09 0 .156-.086.13-.173a6 6 0 0 0-1.106-2.03.22.22 0 0 0-.165-.077H1.543a.22.22 0 0 0-.165.077 6 6 0 0 0-1.105 2.03.134.134 0 0 0 .13.173h3.11A.29.29 0 0 0 3.74 4.6 2.85 2.85 0 0 1 6 3.488c.92 0 1.738.436 2.26 1.112m.414 2.717c-.02.055.02.115.079.115h3.033a.135.135 0 0 0 .133-.112 6 6 0 0 0-.015-2.058.135.135 0 0 0-.133-.11H8.72c-.06 0-.1.061-.078.117a2.83 2.83 0 0 1 .032 2.048m-5.427.115c.06 0 .1-.06.079-.115a2.84 2.84 0 0 1 .032-2.048.085.085 0 0 0-.078-.118H.23a.135.135 0 0 0-.134.11A6 6 0 0 0 .08 7.32c.01.065.067.112.133.112z\"\n />\n </svg>\n);\n\nexport const FavoritesIcon2: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.012 1.72c-.286 0-.577.178-.75.532L4.2 4.438l-2.42.344c-.78.108-1.03.872-.47 1.42l1.75 1.703-.407 2.39c-.133.773.508 1.24 1.203.874.268-.142 1.648-.857 2.155-1.124l2.155 1.124c.695.367 1.339-.1 1.202-.874l-.421-2.39 1.749-1.702c.565-.547.326-1.31-.453-1.421l-2.436-.344L6.76 2.252c-.172-.354-.464-.531-.75-.531\" />\n </svg>\n);\n\nexport const UnFavoritesIcon2: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.012 1.72c-.286 0-.577.178-.75.532L4.2 4.438l-2.42.344c-.78.108-1.03.872-.47 1.42l1.75 1.703-.407 2.39c-.133.773.508 1.24 1.203.874.268-.142 1.648-.857 2.155-1.124l2.155 1.124c.695.367 1.339-.1 1.202-.874l-.421-2.39 1.749-1.702c.565-.547.326-1.31-.453-1.421l-2.436-.344L6.76 2.252c-.172-.354-.464-.531-.75-.531m0 1.297 1.03 2.108c.073.15.211.242.375.266l2.343.343-1.702 1.64a.48.48 0 0 0-.14.437l.405 2.312L6.246 9.03a.5.5 0 0 0-.468 0L3.7 10.123l.39-2.296a.52.52 0 0 0-.14-.453l-1.687-1.64 2.327-.328a.52.52 0 0 0 .39-.28z\" />\n </svg>\n);\n\nexport const TopIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M2.01 2.915a.667.667 0 1 0 0 1.334h12a.667.667 0 0 0 0-1.334zM7.343 13.59a.667.667 0 0 0 1.333 0V7.88l2 1.98.937-.938L8.49 5.777a.686.686 0 0 0-.959 0L4.405 8.923l.938.937 2-1.979z\" />\n </svg>\n);\n\nexport const DeleteIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M4.67 2.203A2.667 2.667 0 0 0 2.005 4.87v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.87a2.667 2.667 0 0 0-2.667-2.667zm1.334 3.334c.17 0 .349.057.48.187l1.52 1.52 1.52-1.52a.68.68 0 0 1 .48-.187c.17 0 .349.057.48.187.26.26.26.698 0 .959l-1.521 1.52 1.52 1.52c.26.262.26.699 0 .96a.687.687 0 0 1-.958 0L8.004 9.162l-1.52 1.52a.687.687 0 0 1-.96 0 .687.687 0 0 1 0-.958l1.521-1.52-1.52-1.521a.687.687 0 0 1 0-.96.68.68 0 0 1 .479-.186\" />\n </svg>\n);\n\nexport const AddIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"16\"\n height=\"16\"\n >\n <path d=\"M0 0h16v16H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M7.333 8.667h-4V7.333h4v-4h1.333v4h4v1.334h-4v4H7.333z\" />\n </g>\n </svg>\n);\n\nexport const ActiveAddIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n d=\"M5.99536 1.46487C5.71936 1.46487 5.49536 1.68887 5.49536 1.96487V5.46487H1.99536C1.71936 5.46487 1.49536 5.68887 1.49536 5.96487C1.49536 6.24087 1.71936 6.46487 1.99536 6.46487H5.49536V9.96487C5.49536 10.2409 5.71936 10.4649 5.99536 10.4649C6.27136 10.4649 6.49536 10.2409 6.49536 9.96487V6.46487H9.99536C10.2714 6.46487 10.4954 6.24087 10.4954 5.96487C10.4954 5.68887 10.2714 5.46487 9.99536 5.46487H6.49536V1.96487C6.49536 1.68887 6.27136 1.46487 5.99536 1.46487Z\"\n fill=\"url(#paint0_linear_1951_55156)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1951_55156\"\n x1=\"10.4954\"\n y1=\"5.96487\"\n x2=\"1.49536\"\n y2=\"5.96487\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport const ExpandIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.326 8.826a.84.84 0 0 0-.6.234L2.16 12.627v-2.135H.492v4.167c0 .46.373.833.834.833h4.166v-1.667H3.357l3.567-3.567a.857.857 0 0 0 0-1.198.84.84 0 0 0-.598-.234M10.502.492V2.16h2.135L9.07 5.726a.857.857 0 0 0 0 1.199.86.86 0 0 0 1.197 0l3.568-3.568v2.135h1.667V1.326a.834.834 0 0 0-.834-.834z\" />\n </svg>\n);\n\nexport const CollapseIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M14.668.492a.85.85 0 0 0-.599.234l-3.567 3.568V2.159H8.835v4.167c0 .46.373.833.833.833h4.167V5.492H11.7l3.569-3.567a.86.86 0 0 0 0-1.199.85.85 0 0 0-.6-.234m-12.5 8.334v1.666h2.135L.736 14.06a.86.86 0 0 0 0 1.198.86.86 0 0 0 1.198 0l3.568-3.567v2.134h1.666V9.66a.834.834 0 0 0-.833-.833z\" />\n </svg>\n);\n\nexport const FilterIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M11.2422 2.19751C10.2913 2.19751 9.40469 2.82152 9.12801 3.69902L2.99219 3.69751C2.57796 3.69751 2.24219 4.03351 2.24219 4.44751C2.24219 4.86151 2.57796 5.19751 2.99219 5.19751L9.12801 5.19678C9.46409 6.11553 10.2913 6.69751 11.2422 6.69751C12.193 6.69751 13.0288 6.11403 13.3707 5.19078L14.9922 5.19751C15.4064 5.19751 15.7422 4.86151 15.7422 4.44751C15.7422 4.03351 15.4064 3.69751 14.9922 3.69751H13.3643C13.0032 2.78326 12.193 2.19751 11.2422 2.19751ZM11.2422 3.69751C11.6564 3.69751 11.9922 4.03351 11.9922 4.44751C11.9922 4.86151 11.6564 5.19751 11.2422 5.19751C10.828 5.19751 10.4922 4.86151 10.4922 4.44751C10.4922 4.03351 10.828 3.69751 11.2422 3.69751ZM6.74219 6.69751C5.75369 6.69751 4.92629 7.31252 4.62419 8.19902C4.51874 8.20577 2.99219 8.19751 2.99219 8.19751C2.57796 8.19751 2.24219 8.53351 2.24219 8.94751C2.24219 9.36151 2.57796 9.69751 2.99219 9.69751C2.99219 9.69751 4.53149 9.68176 4.62741 9.69151C4.92951 10.578 5.75369 11.1975 6.74219 11.1975C7.69304 11.1975 8.50784 10.6148 8.86424 9.69975L14.9922 9.69751C15.4064 9.69751 15.7422 9.36151 15.7422 8.94751C15.7422 8.53351 15.4064 8.19751 14.9922 8.19751L8.86034 8.19078C8.53161 7.29603 7.69304 6.69751 6.74219 6.69751ZM6.74219 8.19751C7.15641 8.19751 7.49219 8.53351 7.49219 8.94751C7.49219 9.36151 7.15641 9.69751 6.74219 9.69751C6.32796 9.69751 5.99219 9.36151 5.99219 8.94751C5.99219 8.53351 6.32796 8.19751 6.74219 8.19751ZM11.2422 11.1975C10.2913 11.1975 9.42157 11.8238 9.12749 12.69L2.99219 12.6975C2.57796 12.6975 2.24219 13.0335 2.24219 13.4475C2.24219 13.8615 2.57796 14.1975 2.99219 14.1975L9.11639 14.1982C9.42756 15.087 10.2913 15.6975 11.2422 15.6975C12.193 15.6975 13.0129 15.1027 13.3741 14.1982L14.9922 14.1975C15.4064 14.1975 15.7422 13.8615 15.7422 13.4475C15.7422 13.0335 15.4064 12.6975 14.9922 12.6975L13.3672 12.693C13.0435 11.8058 12.193 11.1975 11.2422 11.1975ZM11.2422 12.6975C11.6564 12.6975 11.9922 13.0335 11.9922 13.4475C11.9922 13.8615 11.6564 14.1975 11.2422 14.1975C10.828 14.1975 10.4922 13.8615 10.4922 13.4475C10.4922 13.0335 10.828 12.6975 11.2422 12.6975Z\" />\n </svg>\n);\n\nexport const TriangleDownIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M3.003 3.998a.494.494 0 0 0-.39.797l3 4c.2.266.597.266.797 0l3-4a.5.5 0 0 0-.407-.797z\" />\n </svg>\n);\n\nexport const ArrowLeftIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M9.186 3.348a.67.67 0 0 0-.436.27l-2.657 4a.69.69 0 0 0 0 .75l2.657 4a.68.68 0 0 0 .934.188.685.685 0 0 0 .187-.937L7.463 7.993 9.87 4.37a.685.685 0 0 0-.187-.938.65.65 0 0 0-.498-.083\" />\n </svg>\n);\n\nexport const ArrowRightIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.777 3.348a.65.65 0 0 0-.498.083.685.685 0 0 0-.187.938L8.5 7.993l-2.408 3.625a.685.685 0 0 0 .187.938.68.68 0 0 0 .934-.187l2.657-4a.69.69 0 0 0 0-.75l-2.657-4a.67.67 0 0 0-.436-.271\" />\n </svg>\n);\n\nconst BaseSortIcon = (props: PropsWithChildren) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n >\n {props.children}\n </svg>\n );\n};\n\nexport const SortingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042m0 7.916a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </BaseSortIcon>\n );\n};\n\nexport const AscendingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n <path\n d=\"M5 8.958a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </BaseSortIcon>\n );\n};\n\nexport const DescendingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M5 8.958a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </BaseSortIcon>\n );\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../../../components/marketsProvider\";\nimport { SymbolDisplay } from \"../../../components/symbolDisplay\";\nimport { OrderlyIcon } from \"../../../icons\";\nimport { MarketsHeaderReturns } from \"./marketsHeader.script\";\n\n/** -----------MarketsHeader start ------------ */\ntype MarketsHeaderProps = MarketsHeaderReturns & {\n className?: string;\n};\nexport const MarketsHeader: FC<MarketsHeaderProps> = (props) => {\n const {\n emblaRef,\n emblaApi,\n scrollIndex,\n enableScroll,\n news,\n gainers,\n losers,\n total24Amount,\n totalOpenInterest,\n tvl,\n favorite,\n } = props;\n const { onSymbolChange } = useMarketsContext();\n const { t } = useTranslation();\n\n const cls = cn(\n \"oui-min-w-0 oui-flex-[0_0_calc((100%_-_32px)_/_3)] 3xl:oui-flex-[0_0_calc((100%_-_48px)_/_4)]\",\n enableScroll && \"oui-cursor-pointer oui-select-none\",\n );\n\n const onSymbol = (item: any) => {\n onSymbolChange?.(item);\n favorite.addToHistory(item);\n };\n\n return (\n <div\n id=\"oui-markets-header\"\n className={cn(\"oui-overflow-hidden\", props.className)}\n ref={enableScroll ? emblaRef : undefined}\n >\n <Flex width=\"100%\" gapX={4}>\n <BlockList\n total24Amount={total24Amount}\n totalOpenInterest={totalOpenInterest}\n tvl={tvl}\n className={cls}\n />\n <CardItem\n data={news}\n title={\n <Text.gradient color=\"brand\">\n {t(\"markets.newListings\")}\n </Text.gradient>\n }\n className={cls}\n onSymbol={onSymbol}\n />\n <CardItem\n data={gainers}\n title={\n <Text className=\"oui-text-success-light\">\n {t(\"markets.topGainers\")}\n </Text>\n }\n className={cls}\n onSymbol={onSymbol}\n />\n <CardItem\n data={losers}\n title={\n <Text className=\"oui-text-danger-light\">\n {t(\"markets.topLosers\")}\n </Text>\n }\n className={cls}\n onSymbol={onSymbol}\n />\n </Flex>\n <div className=\"oui-mb-3 oui-mt-1 3xl:oui-mb-0 3xl:oui-mt-4\">\n <ScrollIndicator\n scrollIndex={scrollIndex}\n scrollPrev={emblaApi?.scrollPrev}\n scrollNext={emblaApi?.scrollNext}\n />\n </div>\n </div>\n );\n};\n/** -----------MarketsHeader end ------------ */\n\ntype BlockListProps = {\n className?: string;\n total24Amount?: number;\n totalOpenInterest?: number;\n tvl?: number;\n};\n\n/** -----------MarketsHeader start ------------ */\nconst BlockList: React.FC<BlockListProps> = (props) => {\n const { total24Amount, totalOpenInterest, tvl } = props;\n const { t } = useTranslation();\n\n const list = useMemo(() => {\n return [\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.column.24hVolume\")}\n </Flex>\n ),\n value: total24Amount,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n value: totalOpenInterest,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {`${t(\"common.assets\")} (TVL)`}\n </Flex>\n ),\n value: tvl,\n },\n ];\n }, [total24Amount, totalOpenInterest, tvl]);\n\n return (\n <Flex\n direction=\"column\"\n justify=\"between\"\n width=\"100%\"\n height={236}\n className={props.className}\n >\n {list?.map((item, index) => (\n <BlockItem key={`item-${index}`} {...item} />\n ))}\n </Flex>\n );\n};\n/** -----------MarketsHeader start ------------ */\n\ntype BlockItemProps = {\n label: ReactNode;\n value?: number;\n rule?: string;\n dp?: number;\n};\n\nconst BlockItem: React.FC<BlockItemProps> = (props) => {\n return (\n <Box intensity={900} r=\"lg\" px={4} py={3} width=\"100%\">\n <Text as=\"div\" intensity={36} size=\"xs\" weight=\"semibold\">\n {props.label}\n </Text>\n\n <Text.numeral\n size=\"base\"\n currency=\"$\"\n dp={props.dp || 0}\n rm={Decimal.ROUND_DOWN}\n rule={props.rule as any}\n >\n {props.value!}\n </Text.numeral>\n </Box>\n );\n};\n\ntype CardItemProps = {\n data?: TListItem[];\n title: ReactNode;\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst CardItem: React.FC<CardItemProps> = (props) => {\n return (\n <Box\n intensity={900}\n r=\"lg\"\n py={4}\n pb={2}\n height={236}\n className={props.className}\n >\n <Box px={4}>\n <Text.gradient color=\"brand\" size=\"sm\" weight=\"semibold\">\n {props.title}\n </Text.gradient>\n </Box>\n\n <Flex direction=\"column\" itemAlign=\"start\" mt={2}>\n {props.data?.map((item, index) => (\n <ListItem key={item.symbol} item={item} onSymbol={props.onSymbol} />\n ))}\n </Flex>\n </Box>\n );\n};\n\ntype TListItem = {\n symbol: string;\n price: string;\n change: number;\n precision: number;\n [x: string]: any;\n};\n\ntype ListItemProps = {\n item: TListItem;\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst ListItem: React.FC<ListItemProps> = (props) => {\n const { item } = props;\n\n return (\n <Flex\n width=\"100%\"\n gapX={3}\n py={2}\n px={4}\n className={cn(\"oui-cursor-pointer hover:oui-bg-base-8\", props.className)}\n onClick={() => {\n props.onSymbol(item);\n }}\n >\n <SymbolDisplay formatString=\"base\" showIcon className=\"oui-w-full\">\n {item.symbol}\n </SymbolDisplay>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n currency=\"$\"\n size=\"xs\"\n weight=\"semibold\"\n dp={item.quote_dp}\n >\n {item[\"24h_close\"]}\n </Text.numeral>\n </Flex>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n rule=\"percentages\"\n coloring\n size=\"xs\"\n weight=\"semibold\"\n showIdentifier\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n};\n\ninterface ScrollIndicatorProps {\n scrollIndex: number;\n scrollPrev?: () => void;\n scrollNext?: () => void;\n}\n\nconst ScrollIndicator: React.FC<ScrollIndicatorProps> = (props) => {\n const { scrollIndex, scrollPrev, scrollNext } = props;\n\n return (\n <Flex gapX={1} justify=\"center\" className=\"3xl:oui-hidden\">\n {[0, 1].map((item) => {\n return (\n <Box\n key={item}\n py={1}\n pl={item === 0 ? 1 : 0}\n pr={item === 1 ? 1 : 0}\n onClick={() => {\n if (scrollIndex === 0 && item === 1) {\n scrollNext?.();\n } else if (scrollIndex === 1 && item === 0) {\n scrollPrev?.();\n }\n }}\n className=\"oui-cursor-pointer\"\n >\n <Box\n key={item}\n width={8}\n height={4}\n r=\"full\"\n className={cn(\n \"oui-transition-all oui-duration-300\",\n scrollIndex === item\n ? \"oui-w-4 oui-bg-base-contrast-36\"\n : \"oui-bg-base-contrast-20\",\n )}\n />\n </Box>\n );\n })}\n </Flex>\n );\n};\n\nexport default ScrollIndicator;\n","import { useCallback, useEffect, useState } from \"react\";\nimport { TableSort } from \"@orderly.network/ui\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport { SortType } from \"./type\";\n\n/**\n * Compare two values intelligently\n */\nconst compareValues = (aValue: any, bValue: any): number => {\n // Handle null/undefined values (always sort to bottom)\n if (aValue == null && bValue == null) return 0;\n if (aValue == null) return 1;\n if (bValue == null) return -1;\n\n // Convert to string first for type checking\n const aStr = String(aValue).trim();\n const bStr = String(bValue).trim();\n\n // More robust number detection - check if values can be converted to valid numbers\n const aNum = Number(aStr);\n const bNum = Number(bStr);\n const aIsNumber =\n !isNaN(aNum) && isFinite(aNum) && /^-?\\d*\\.?\\d+([eE][+-]?\\d+)?$/.test(aStr);\n const bIsNumber =\n !isNaN(bNum) && isFinite(bNum) && /^-?\\d*\\.?\\d+([eE][+-]?\\d+)?$/.test(bStr);\n\n if (aIsNumber && bIsNumber) {\n return aNum - bNum;\n }\n\n // Check if both are valid dates (ISO format or timestamp)\n const aIsDate = /^\\d{4}-\\d{2}-\\d{2}/.test(aStr) || /^\\d{13}$/.test(aStr);\n const bIsDate = /^\\d{4}-\\d{2}-\\d{2}/.test(bStr) || /^\\d{13}$/.test(bStr);\n\n if (aIsDate && bIsDate) {\n const aDate = new Date(aValue);\n const bDate = new Date(bValue);\n if (!isNaN(aDate.getTime()) && !isNaN(bDate.getTime())) {\n return aDate.getTime() - bDate.getTime();\n }\n }\n\n // String comparison - use localeCompare for proper string sorting\n return aStr.localeCompare(bStr, undefined, {\n sensitivity: \"base\",\n numeric: false, // Disable numeric sorting for pure string comparison\n caseFirst: \"upper\",\n });\n};\n\n/** get page data */\nexport function getPagedData(list: any[], pageSize: number, pageIndex: number) {\n const pageData: any[][] = [];\n let rows: any[] = [];\n for (let i = 0; i < list.length; i++) {\n rows.push(list[i]);\n if ((i + 1) % pageSize === 0 || i === list.length - 1) {\n pageData.push(rows);\n rows = [];\n }\n }\n return pageData[pageIndex - 1] || [];\n}\n\nexport function sortList(list: any[], sort?: SortType) {\n const { sortKey, sortOrder } = sort || {};\n const sortedList = [...(list || [])];\n\n if (sortKey && sortOrder) {\n // sort list\n sortedList.sort((a: any, b: any) => {\n const comparison = compareValues(a[sortKey], b[sortKey]);\n // Handle sort order: desc means reverse the comparison result\n return sortOrder === \"desc\" ? -comparison : comparison;\n });\n }\n return sortedList;\n}\n\nexport function useSort(\n initialSort?: SortType,\n onSortChange?: (sort?: SortType) => void,\n) {\n const [sort, setSort] = useState<SortType | undefined>(initialSort);\n\n const onSort = useCallback((options?: TableSort) => {\n const nextSort = options\n ? {\n sortKey: options.sortKey,\n sortOrder: options.sort,\n }\n : undefined;\n\n setSort(nextSort);\n onSortChange?.(nextSort);\n // initialSort, onSortChange is not needed to be in the dependency array, otherwise it will cause infinite loop\n }, []);\n\n const getSortedList = useCallback(\n (list: any[]) => sortList(list, sort),\n [sort],\n );\n\n return { sort, onSort, getSortedList };\n}\n\n/**\n * Escape special characters for use in regular expressions\n */\nfunction escapeRegExp(string: string): string {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function searchBySymbol<T extends Record<PropertyKey, any>>(\n list: T[],\n searchValue = \"\",\n formatString?: string,\n) {\n if (!searchValue) {\n return list;\n }\n\n // Escape special characters to prevent RegExp errors\n const escapedSearchValue = escapeRegExp(searchValue);\n const reg = new RegExp(escapedSearchValue, \"i\");\n\n const searchValueLower = searchValue.toLowerCase();\n\n // Split results into three groups: exact matches, starts with search and other matches\n const exactMatches: T[] = [];\n const startsWithMatches: T[] = [];\n const otherMatches: T[] = [];\n\n list?.forEach((item) => {\n const formattedSymbol = formatSymbol(item.symbol, formatString);\n const symbolLower = formattedSymbol.toLowerCase();\n\n // Check if displayName exists and prepare it for search\n const displayName = item.displayName;\n const displayNameLower = displayName\n ? String(displayName).toLowerCase()\n : null;\n\n // Check if search matches symbol or displayName\n const matchesSymbol = reg.test(formattedSymbol);\n const matchesDisplayName = displayNameLower\n ? reg.test(displayNameLower)\n : false;\n\n if (matchesSymbol || matchesDisplayName) {\n // Use displayName for comparison if available, otherwise use symbol\n const searchText = displayNameLower || symbolLower;\n\n if (searchText === searchValueLower) {\n exactMatches.push(item);\n } else if (searchText.startsWith(searchValueLower)) {\n startsWithMatches.push(item);\n } else {\n otherMatches.push(item);\n }\n }\n });\n\n const compareSymbols = (a: T, b: T) => {\n // Use displayName if available, otherwise use formatted symbol\n const textA = a.displayName || formatSymbol(a.symbol, formatString);\n const textB = b.displayName || formatSymbol(b.symbol, formatString);\n if (textA < textB) return -1;\n if (textA > textB) return 1;\n return 0;\n };\n\n // Sort each group alphabetically\n startsWithMatches.sort(compareSymbols);\n otherMatches.sort(compareSymbols);\n\n // Combine results with prioritized matches first\n return [...exactMatches, ...startsWithMatches, ...otherMatches];\n}\n\nexport function useSize() {\n const [width, setWidth] = useState<number>(0);\n const [height, setHeight] = useState<number>(0);\n\n useEffect(() => {\n setWidth(window.innerWidth);\n setHeight(window.innerHeight);\n\n const handleResize = () => {\n setHeight(window.innerHeight);\n setWidth(window.innerWidth);\n };\n\n window?.addEventListener(\"resize\", handleResize);\n\n return () => {\n window?.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return {\n width,\n height,\n };\n}\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useMarkets, useQuery, MarketsType } from \"@orderly.network/hooks\";\nimport { useEmblaCarousel } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { sortList, useSize } from \"../../../utils\";\n\n// export type EmblaCarouselType = Exclude<UseEmblaCarouselType[1], undefined>;\n// export type TEmblaApi = Pick<EmblaCarouselType, \"scrollPrev\" | \"scrollNext\">;\n// use UseEmblaCarouselType will bring type error\nexport type TEmblaApi = {\n scrollPrev: (jump?: boolean) => void;\n scrollNext: (jump?: boolean) => void;\n};\n\nexport type MarketsHeaderReturns = ReturnType<typeof useMarketsHeaderScript>;\n\nexport const useMarketsHeaderScript = () => {\n const [scrollIndex, setScrollIndex] = useState(0);\n const data = useDataSource();\n\n const { width } = useSize();\n\n const [emblaRef, emblaApi] = useEmblaCarousel({\n loop: true,\n // duration: 25,\n slidesToScroll: \"auto\",\n });\n\n useEffect(() => {\n emblaApi?.on(\"select\", () => {\n setScrollIndex(emblaApi?.selectedScrollSnap());\n });\n }, [emblaApi]);\n\n return {\n scrollIndex,\n setScrollIndex,\n emblaRef,\n emblaApi: emblaApi as TEmblaApi,\n enableScroll: width < 1440,\n ...data,\n };\n};\n\nexport function useDataSource() {\n const [markets, favorite] = useMarkets(MarketsType.ALL);\n const { data: balance } = useQuery(\"/v1/public/balance/stats\");\n\n const news = useMemo(\n () =>\n sortList(markets, { sortKey: \"created_time\", sortOrder: \"desc\" }).slice(\n 0,\n 5,\n ),\n [markets],\n );\n\n const gainers = useMemo(\n () =>\n sortList(markets, { sortKey: \"change\", sortOrder: \"desc\" }).slice(0, 5),\n [markets],\n );\n\n const losers = useMemo(\n () =>\n sortList(markets, { sortKey: \"change\", sortOrder: \"asc\" }).slice(0, 5),\n [markets],\n );\n\n const total24Amount = useMemo(\n () =>\n markets?.reduce((prevValue: Decimal, curValue: any) => {\n return prevValue.add(curValue[\"24h_amount\"] || 0);\n }, new Decimal(0)) || new Decimal(0),\n [markets],\n );\n\n const totalOpenInterest = useMemo(\n () =>\n markets?.reduce((prevValue: Decimal, curValue: any) => {\n return prevValue.add(curValue[\"openInterest\"] || 0);\n }, new Decimal(0)) || new Decimal(0),\n [markets],\n );\n\n const tvl = useMemo(() => {\n if (!balance) return 0;\n\n const { total_holding = 0 } = balance as any;\n return new Decimal(total_holding).toNumber();\n }, [balance]);\n\n return {\n markets,\n news,\n gainers,\n losers,\n total24Amount: total24Amount.toNumber(),\n totalOpenInterest: totalOpenInterest.toNumber(),\n tvl,\n favorite,\n };\n}\n","import { FC, ReactNode, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../../../components/marketsProvider\";\nimport { SymbolDisplay } from \"../../../components/symbolDisplay\";\nimport { OrderlyIcon } from \"../../../icons\";\nimport { MarketsHeaderReturns } from \"./marketsHeader.script\";\n\ntype MobileMarketsHeaderProps = MarketsHeaderReturns & {\n className?: string;\n};\n\nexport const MobileMarketsHeader: FC<MobileMarketsHeaderProps> = (props) => {\n const {\n news,\n gainers,\n losers,\n total24Amount,\n totalOpenInterest,\n tvl,\n favorite,\n } = props;\n const [activeTab, setActiveTab] = useState(\"newListings\");\n const { onSymbolChange } = useMarketsContext();\n const { t } = useTranslation();\n\n const onSymbol = (item: any) => {\n onSymbolChange?.(item);\n favorite.addToHistory(item);\n };\n\n return (\n <div\n id=\"oui-markets-header\"\n className={cn(\"oui-overflow-hidden\", props.className)}\n >\n <BlockList\n total24Amount={total24Amount}\n totalOpenInterest={totalOpenInterest}\n tvl={tvl}\n />\n\n <Box intensity={900} r=\"xl\" p={3} mt={3}>\n <Tabs size=\"md\" value={activeTab} onValueChange={setActiveTab}>\n <TabPanel\n title={t(\"markets.newListings\")}\n value=\"newListings\"\n testid=\"oui-testid-markets-tab\"\n >\n <CardItem data={news} onSymbol={onSymbol} />\n </TabPanel>\n <TabPanel\n title={t(\"markets.topGainers\")}\n value=\"topGainers\"\n testid=\"oui-testid-funding-tab\"\n >\n <CardItem data={gainers} onSymbol={onSymbol} />\n </TabPanel>\n <TabPanel\n title={t(\"markets.topLosers\")}\n value=\"topLosers\"\n testid=\"oui-testid-funding-tab\"\n >\n <CardItem data={losers} onSymbol={onSymbol} />\n </TabPanel>\n </Tabs>\n </Box>\n </div>\n );\n};\n\ntype BlockListProps = {\n className?: string;\n total24Amount?: number;\n totalOpenInterest?: number;\n tvl?: number;\n};\n\nconst BlockList: React.FC<BlockListProps> = (props) => {\n const { total24Amount, totalOpenInterest, tvl } = props;\n const { t } = useTranslation();\n\n const list = useMemo(() => {\n return [\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.column.24hVolume\")}\n </Flex>\n ),\n value: total24Amount,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n value: totalOpenInterest,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {`${t(\"common.assets\")} (TVL)`}\n </Flex>\n ),\n value: tvl,\n },\n ];\n }, [total24Amount, totalOpenInterest, tvl]);\n\n return (\n <Flex\n intensity={900}\n r=\"xl\"\n width=\"100%\"\n py={3}\n className={props.className}\n >\n {list?.map((item, index) => (\n <BlockItem\n key={`item-${index}`}\n {...item}\n className={cn(\n index !== list.length - 1 && \"oui-border-r oui-border-line-6\",\n )}\n />\n ))}\n </Flex>\n );\n};\n\ntype BlockItemProps = {\n label: ReactNode;\n value?: number;\n rule?: string;\n dp?: number;\n className?: string;\n};\n\nconst BlockItem: React.FC<BlockItemProps> = (props) => {\n return (\n <Box px={3} width=\"100%\" className={props.className}>\n <Text as=\"div\" intensity={36} size=\"2xs\" weight=\"semibold\">\n {props.label}\n </Text>\n\n <Text.numeral\n size=\"base\"\n currency=\"$\"\n dp={props.dp || 2}\n rm={Decimal.ROUND_DOWN}\n rule={(props.rule as any) || \"human\"}\n >\n {props.value!}\n </Text.numeral>\n </Box>\n );\n};\n\ntype CardItemProps = {\n data?: TListItem[];\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst CardItem: React.FC<CardItemProps> = (props) => {\n return (\n <Flex direction=\"column\" itemAlign=\"start\" mt={3}>\n {props.data?.map((item) => (\n <ListItem\n key={item.symbol}\n item={item}\n onSymbol={props.onSymbol}\n className=\"oui-px-0\"\n />\n ))}\n </Flex>\n );\n};\n\ntype TListItem = {\n symbol: string;\n price: string;\n change: number;\n precision: number;\n [x: string]: any;\n};\n\ntype ListItemProps = {\n item: TListItem;\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst ListItem: React.FC<ListItemProps> = (props) => {\n const { item } = props;\n\n return (\n <Flex\n width=\"100%\"\n gapX={3}\n py={2}\n px={4}\n className={cn(\"oui-cursor-pointer hover:oui-bg-base-8\", props.className)}\n onClick={() => {\n props.onSymbol(item);\n }}\n >\n <SymbolDisplay formatString=\"base\" showIcon className=\"oui-w-full\">\n {item.symbol}\n </SymbolDisplay>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n currency=\"$\"\n size=\"xs\"\n weight=\"semibold\"\n dp={item.quote_dp}\n >\n {item[\"24h_close\"]}\n </Text.numeral>\n </Flex>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n rule=\"percentages\"\n coloring\n size=\"xs\"\n weight=\"semibold\"\n showIdentifier\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileMarketsHeader } from \"./marketsHeader.mobile.ui\";\nimport { useMarketsHeaderScript } from \"./marketsHeader.script\";\nimport { MarketsHeader } from \"./marketsHeader.ui\";\n\ntype MarketsHeaderWidgetProps = {\n className?: string;\n};\n\nexport const MarketsHeaderWidget: FC<MarketsHeaderWidgetProps> = (props) => {\n const state = useMarketsHeaderScript();\n const { isMobile } = useScreen();\n return isMobile ? (\n <MobileMarketsHeader className={props.className} {...state} />\n ) : (\n <MarketsHeader className={props.className} {...state} />\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { TokenIcon, Flex, Text, cn, Tooltip, Badge } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport type CollapseMarketsProps = {\n dataSource: any[];\n};\n\nexport const CollapseMarkets: React.FC<CollapseMarketsProps> = (props) => {\n const { symbol, onSymbolChange } = useMarketsContext();\n const { t } = useTranslation();\n if (props.dataSource?.length === 0) {\n return null;\n }\n return (\n <div className=\"oui-custom-scrollbar oui-h-full oui-overflow-y-auto\">\n <Flex direction=\"column\" px={2} gapY={1}>\n {props.dataSource?.map((item) => {\n const content = (\n <Flex intensity={800} p={2} className=\"oui-gap-x-7\" r=\"base\">\n <Flex direction=\"column\" itemAlign=\"start\" gapY={1}>\n <Flex gapX={1}>\n <TokenIcon symbol={item.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {item.symbol}\n </SymbolDisplay>\n </Flex>\n <Text size=\"2xs\" intensity={36}>\n {t(\"markets.column.last\")}\n </Text>\n <Text size=\"2xs\" intensity={36}>\n {t(\"markets.column.24hPercentage\")}\n </Text>\n </Flex>\n\n <Flex direction=\"column\" itemAlign=\"end\" gapY={1}>\n <Badge size=\"xs\" color=\"primary\">\n {item.leverage}x\n </Badge>\n <Text.numeral\n dp={item.quote_dp || 2}\n currency=\"$\"\n size=\"2xs\"\n intensity={80}\n >\n {item[\"24h_close\"]}\n </Text.numeral>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n\n return (\n <Tooltip\n side=\"right\"\n sideOffset={6}\n content={content}\n delayDuration={0}\n key={item.symbol}\n >\n <Flex\n direction=\"column\"\n justify=\"center\"\n itemAlign=\"center\"\n gapY={1}\n width={54}\n height={54}\n r=\"lg\"\n className={cn(\n \"oui-cursor-pointer\",\n \"hover:oui-bg-base-7\",\n symbol === item.symbol && \"oui-bg-base-6 hover:oui-bg-base-6\",\n )}\n onClick={() => {\n onSymbolChange?.(item);\n }}\n >\n <TokenIcon symbol={item.symbol} className=\"oui-size-[18px]\" />\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Tooltip>\n );\n })}\n </Flex>\n </div>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n Button,\n CheckedSquareFillIcon,\n CheckSquareEmptyIcon,\n PlusIcon,\n CloseIcon,\n Divider,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n Flex,\n Input,\n Text,\n cn,\n CloseCircleFillIcon,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport type { UseFavoritesDropdownMenuScriptReturn } from \"./favoritesDropdownMenu.script\";\n\nexport type FavoritesDropdownMenuProps =\n PropsWithChildren<UseFavoritesDropdownMenuScriptReturn>;\n\nexport const FavoritesDropdownMenu: React.FC<FavoritesDropdownMenuProps> = (\n props,\n) => {\n const {\n symbol,\n favoriteTabs,\n open,\n onOpenChange,\n inputVisible,\n selectedTabs,\n value,\n onValueChange,\n hide,\n hideInput,\n showInput,\n onCheck,\n addTab,\n confirm,\n } = props;\n\n const { t } = useTranslation();\n\n const overLen = value?.length > 15;\n\n const renderInput = () => {\n if (inputVisible) {\n return (\n <Box>\n <Flex gapX={2}>\n <Input\n autoFocus\n value={value}\n onValueChange={onValueChange}\n classNames={{\n root: cn(\n \"oui-ml-px oui-h-7 oui-w-full oui-rounded-sm oui-bg-base-6\",\n overLen &&\n \"focus-within:oui-outline-danger focus-visible:oui-outline-danger\",\n ),\n }}\n autoComplete=\"off\"\n suffix={\n value && (\n <Box mr={2}>\n <CloseCircleFillIcon\n opacity={1}\n size={14}\n className=\"oui-cursor-pointer oui-text-base-contrast-20\"\n onClick={() => {\n onValueChange(\"\");\n }}\n />\n </Box>\n )\n }\n />\n\n <Button\n className=\"oui-rounded-sm\"\n size=\"sm\"\n onClick={addTab}\n disabled={!value || overLen}\n >\n {t(\"common.add\")}\n </Button>\n </Flex>\n\n {overLen && (\n <Flex itemAlign=\"center\" gapX={1} mt={1}>\n <div className=\"oui-size-1 oui-rounded-full oui-bg-danger\"></div>\n <Text color=\"danger\">{t(\"markets.favorites.tabs.maxName\")}</Text>\n </Flex>\n )}\n </Box>\n );\n }\n\n const overTabs = favoriteTabs.length >= 10;\n\n return (\n <Tooltip\n open={overTabs ? undefined : false}\n content={\n <Text size=\"2xs\" intensity={80}>\n {t(\"markets.favorites.tabs.maxList\")}\n </Text>\n }\n className=\"oui-bg-base-6\"\n delayDuration={0}\n arrow={{ className: \"oui-fill-base-6\" }}\n >\n <div>\n <Flex\n className={cn(\n overTabs ? \"oui-cursor-not-allowed\" : \"oui-cursor-pointer\",\n )}\n itemAlign=\"center\"\n gapX={2}\n p={2}\n intensity={overTabs ? 500 : 600}\n onClick={overTabs ? undefined : showInput}\n height={28}\n r=\"base\"\n >\n <PlusIcon\n size={14}\n className=\"oui-text-base-contrast-36\"\n opacity={1}\n />\n <Text className=\"\" intensity={20}>\n {t(\"markets.favorites.dropdown.addPlaceholder\")}\n </Text>\n </Flex>\n </div>\n </Tooltip>\n );\n };\n\n const header = (\n <Flex justify=\"between\" className=\"oui-mb-[10px] oui-mt-3\">\n <Flex gapX={1}>\n {t(\"markets.favorites.dropdown.title\")}\n <Text.formatted\n rule=\"symbol\"\n formatString=\"base-type\"\n size=\"base\"\n showIcon\n >\n {symbol}\n </Text.formatted>\n </Flex>\n <CloseIcon\n size={16}\n className=\"oui-cursor-pointer oui-text-base-contrast\"\n onClick={hide}\n />\n </Flex>\n );\n\n const content = (\n // <ScrollArea className=\"custom-scrollbar\">\n <Box>\n <Box\n my={2}\n className=\"oui-custom-scrollbar oui-max-h-[288px] oui-overflow-y-auto\"\n >\n {favoriteTabs?.slice(0, 10)?.map((item) => {\n const checked = !!selectedTabs.find((tab) => tab.id === item.id);\n return (\n <Box key={item.id} className=\"oui-cursor-pointer\">\n <Flex\n className=\"oui-gap-x-[6px] hover:oui-bg-base-6\"\n p={2}\n r=\"md\"\n onClick={() => {\n onCheck(item, checked);\n }}\n >\n {checked ? (\n <CheckedSquareFillIcon\n size={18}\n className=\"oui-text-base-contrast-80\"\n />\n ) : (\n <CheckSquareEmptyIcon\n size={18}\n className=\"oui-text-base-contrast-80\"\n />\n )}\n\n <Text intensity={54}>{item.name}</Text>\n </Flex>\n </Box>\n );\n })}\n </Box>\n <Box mt={3} pb={5}>\n {renderInput()}\n </Box>\n </Box>\n // </ScrollArea>\n );\n\n const footer = (\n <Flex gapX={3} mt={3}>\n <Button\n key=\"secondary\"\n color=\"gray\"\n onClick={hide}\n fullWidth\n className=\"oui-text-sm\"\n size=\"md\"\n >\n {t(\"common.cancel\")}\n </Button>\n\n <Button\n key=\"primary\"\n onClick={confirm}\n fullWidth\n className=\"oui-text-sm\"\n size=\"md\"\n >\n {t(\"common.confirm\")}\n </Button>\n </Flex>\n );\n\n return (\n <DropdownMenuRoot open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(e) => e.preventDefault()}\n onClick={(e) => e.stopPropagation()}\n align=\"start\"\n alignOffset={-12}\n sideOffset={24}\n className=\"oui-markets-favorite-dropdown-menu-content oui-bg-base-8\"\n >\n <Box px={5} pb={5} width={360}>\n <Text as=\"div\" size=\"sm\" weight=\"semibold\">\n {header}\n <Divider />\n {content}\n {footer}\n </Text>\n </Box>\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { FavoriteTab } from \"@orderly.network/hooks\";\nimport { FavoriteInstance } from \"../../type\";\n\nexport type UseFavoritesDropdownMenuScriptOptions = {\n row: any;\n favorite: FavoriteInstance;\n};\n\nexport type UseFavoritesDropdownMenuScriptReturn = ReturnType<\n typeof useFavoritesDropdownMenuScript\n>;\n\nexport function useFavoritesDropdownMenuScript(\n options: UseFavoritesDropdownMenuScriptOptions\n) {\n const { symbol } = options.row || {};\n const {\n favorites,\n favoriteTabs,\n updateFavoriteTabs,\n updateSymbolFavoriteState,\n } = options.favorite;\n const [open, setOpen] = useState(false);\n const [inputVisible, setInputVisible] = useState(false);\n const [value, setValue] = useState(\"\");\n const [selectedTabs, setSelectedTabs] = useState([] as FavoriteTab[]);\n\n const hide = () => {\n setOpen(false);\n };\n\n const showInput = () => {\n setInputVisible(true);\n };\n\n const hideInput = () => {\n setInputVisible(false);\n };\n\n const clearState = () => {\n setValue(\"\");\n hideInput();\n setSelectedTabs([]);\n };\n\n const addTab = () => {\n const newTab = {\n name: value || `WatchList_${favoriteTabs.length}`,\n id: Date.now(),\n };\n updateFavoriteTabs(newTab, { add: true });\n clearState();\n };\n\n const onCheck = (item: FavoriteTab, checked: boolean) => {\n if (checked) {\n setSelectedTabs(selectedTabs?.filter((tab) => tab.id !== item.id));\n } else {\n setSelectedTabs([...selectedTabs, item]);\n }\n hideInput();\n };\n\n const confirm = () => {\n updateSymbolFavoriteState(options.row, selectedTabs, false);\n setOpen(false);\n };\n\n useEffect(() => {\n if (!open) {\n return;\n }\n\n const find = favorites?.find((item) => item.name === symbol);\n if (find?.tabs?.length) {\n setSelectedTabs(find?.tabs);\n }\n }, [open, favorites, favoriteTabs, symbol]);\n\n useEffect(() => {\n if (!open) {\n clearState();\n }\n }, [open]);\n\n return {\n symbol,\n favoriteTabs,\n open,\n onOpenChange: setOpen,\n inputVisible,\n selectedTabs,\n value,\n onValueChange: setValue,\n hide,\n hideInput,\n showInput,\n onCheck,\n addTab,\n confirm,\n };\n}\n","import { PropsWithChildren } from \"react\";\nimport {\n useFavoritesDropdownMenuScript,\n UseFavoritesDropdownMenuScriptOptions,\n} from \"./favoritesDropdownMenu.script\";\nimport { FavoritesDropdownMenu } from \"./favoritesDropdownMenu.ui\";\n\nexport type FavoritesDropdownMenuWidgetProps =\n PropsWithChildren<UseFavoritesDropdownMenuScriptOptions>;\n\nexport const FavoritesDropdownMenuWidget: React.FC<\n FavoritesDropdownMenuWidgetProps\n> = (props) => {\n const state = useFavoritesDropdownMenuScript(props);\n return (\n <FavoritesDropdownMenu {...state}>{props.children}</FavoritesDropdownMenu>\n );\n};\n","export { FavoritesDropdownMenu } from \"./favoritesDropdownMenu.ui\";\nexport { useFavoritesDropdownMenuScript } from \"./favoritesDropdownMenu.script\";\nexport { FavoritesDropdownMenuWidget } from \"./favoritesDropdownMenu.widget\";\n","import { isCurrentlyTrading } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Text, Tooltip, Box } from \"@orderly.network/ui\";\n\nexport type RwaDotTooltipProps = {\n record: any;\n};\n\nexport const RwaDotTooltip = ({ record }: RwaDotTooltipProps) => {\n const { t } = useTranslation();\n\n const isInTradingHours = isCurrentlyTrading(\n record.rwaNextClose,\n record.rwaStatus,\n );\n\n if (!record.isRwa) {\n return null;\n }\n\n return (\n <Tooltip\n content={\n <Text color={isInTradingHours ? \"success\" : \"danger\"}>\n {isInTradingHours\n ? t(\"trading.rwa.marketHours\")\n : t(\"trading.rwa.outsideMarketHours\")}\n </Text>\n }\n >\n <Box p={2}>\n <Box\n width={4}\n height={4}\n r=\"full\"\n className={isInTradingHours ? \"oui-bg-success\" : \"oui-bg-danger\"}\n />\n </Box>\n </Tooltip>\n );\n};\n","import { MouseEventHandler, ReactNode } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, TokenIcon, Text, Badge, cn, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n DeleteIcon,\n FavoritesIcon2,\n TopIcon,\n UnFavoritesIcon2,\n} from \"../../icons\";\nimport type { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { RwaDotTooltip } from \"../rwaDotTooltip\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport const useSideMarketsColumns = (\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) => {\n const { t } = useTranslation();\n\n return [\n {\n title: `${t(\"markets.column.market\")} / ${t(\"common.volume\")}`,\n dataIndex: \"24h_amount\",\n multiSort: {\n fields: [\n {\n sortKey: \"symbol\",\n label: t(\"markets.column.market\"),\n },\n {\n sortKey: \"24h_amount\",\n label: t(\"common.volume\"),\n },\n ],\n },\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n let favoritesIcon: ReactNode;\n if (!isFavoriteList) {\n favoritesIcon = (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {record.isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n </FavoritesDropdownMenuWidget>\n );\n }\n\n return (\n <Flex>\n {favoritesIcon}\n <Flex direction=\"column\" itemAlign=\"start\" gapY={1}>\n <Flex gapX={1}>\n <TokenIcon symbol={record.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {record.symbol}\n </SymbolDisplay>\n <RwaDotTooltip record={record} />\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n\n <Text.numeral\n intensity={54}\n size=\"2xs\"\n rule=\"human\"\n dp={2}\n rm={Decimal.ROUND_DOWN}\n >\n {value}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n },\n },\n {\n title: t(\"markets.column.price&Change\"),\n dataIndex: \"change\",\n align: \"right\",\n onSort: true,\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const iconCls =\n \"oui-w-4 oui-h-4 oui-text-base-contrast-54 hover:oui-text-base-contrast\";\n\n const actions = (\n <div\n className={cn(\n \"oui-absolute oui-right-0 oui-top-[6.5px]\",\n \"oui-hidden group-hover:oui-block\",\n )}\n >\n <Flex\n className={cn(\n \"oui-inline-flex\",\n \"oui-bg-primary-darken oui-py-[6px]\",\n )}\n r=\"base\"\n width={52}\n justify=\"center\"\n itemAlign=\"end\"\n gapX={2}\n >\n <TopIcon\n className={iconCls}\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n />\n <DeleteIcon className={iconCls} onClick={onDelSymbol} />\n </Flex>\n </div>\n );\n\n return (\n <div className=\"oui-relative\">\n {isFavoriteList && actions}\n\n <Flex\n direction=\"column\"\n justify=\"end\"\n itemAlign=\"end\"\n gapY={1}\n className={cn(isFavoriteList && \"group-hover:oui-invisible\")}\n >\n <Text.numeral dp={record.quote_dp || 2} size=\"2xs\">\n {record[\"24h_close\"]}\n </Text.numeral>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {value}\n </Text.numeral>\n </Flex>\n </div>\n );\n },\n },\n ] as Column[];\n};\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../collapseMarkets\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useSideMarketsColumns } from \"../sideMarkets/column\";\nimport { type MarketsListScriiptReturn } from \"./marketsList.script\";\nimport { type MarketsListWidgetProps } from \"./marketsList.widget\";\n\nexport type MarketsListProps = MarketsListScriiptReturn &\n Pick<\n MarketsListWidgetProps,\n | \"getColumns\"\n | \"panelSize\"\n | \"tableClassNames\"\n | \"rowClassName\"\n | \"initialSort\"\n | \"renderHeader\"\n | \"emptyView\"\n >;\n\nexport const MarketsList: FC<MarketsListProps> = (props) => {\n const {\n loading,\n dataSource,\n favorite,\n onSort,\n initialSort,\n getColumns,\n panelSize,\n isFavoritesList,\n renderHeader,\n emptyView,\n } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, isFavoritesList);\n\n const columns =\n typeof getColumns === \"function\"\n ? getColumns(favorite, isFavoritesList)\n : sideColumns;\n\n if (panelSize === \"small\") {\n return null;\n }\n\n if (panelSize === \"middle\") {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <>\n {renderHeader?.(favorite)}\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n empty: \"oui-items-start oui-mt-6\",\n }}\n columns={columns}\n loading={loading}\n dataSource={dataSource}\n onRow={(record) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n initialSort={\n initialSort\n ? { sortKey: initialSort.sortKey, sort: initialSort.sortOrder }\n : undefined\n }\n manualSorting\n emptyView={emptyView}\n />\n </>\n );\n};\n","import { useMarkets } from \"@orderly.network/hooks\";\nimport { SortOrder, Column } from \"@orderly.network/ui\";\n\nexport type FavoriteInstance = ReturnType<typeof useMarkets>[1];\n\nexport type SortType = {\n sortKey: string;\n sortOrder: SortOrder;\n};\n\nexport type GetColumns = (\n favorite: FavoriteInstance,\n isFavoriteList: boolean,\n) => Column[];\n\nexport enum MarketsPageTab {\n Markets = \"markets\",\n Funding = \"funding\",\n}\n\nexport enum MarketsTabName {\n Favorites = \"favorites\",\n Recent = \"recent\",\n All = \"all\",\n Rwa = \"rwa\",\n NewListing = \"newListing\",\n}\n\nexport enum FundingTabName {\n Overview = \"overview\",\n Comparison = \"comparison\",\n}\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { MarketsTabName } from \"../../type\";\nimport { searchBySymbol, useSort } from \"../../utils\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { type MarketsListWidgetProps } from \"./marketsList.widget\";\n\nexport type MarketsListScriptOptions = MarketsListWidgetProps;\n\nexport type MarketsListScriiptReturn = ReturnType<typeof useMarketsListScript>;\n\nconst MarketsTypeMap = {\n [MarketsTabName.All]: MarketsType.ALL,\n [MarketsTabName.Rwa]: MarketsType.RWA,\n [MarketsTabName.Favorites]: MarketsType.FAVORITES,\n [MarketsTabName.Recent]: MarketsType.RECENT,\n [MarketsTabName.NewListing]: MarketsType.NEW_LISTING,\n};\n\nexport const useMarketsListScript = (options: MarketsListScriptOptions) => {\n const [loading, setLoading] = useState(true);\n\n const [data, favorite] = useMarkets(\n MarketsTypeMap[options.type] || MarketsType.ALL,\n );\n\n const { favorites, selectedFavoriteTab } = favorite;\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort(\n options.initialSort,\n options.onSort,\n );\n\n const dataSource = useMemo(() => {\n const filterList =\n typeof options.dataFilter === \"function\"\n ? options.dataFilter(data, { favorites, selectedFavoriteTab })\n : data;\n const searchResults = searchBySymbol(filterList, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [\n data,\n getSortedList,\n searchValue,\n options.dataFilter,\n favorites,\n selectedFavoriteTab,\n ]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n const isFavoritesList = options.type === MarketsTabName.Favorites;\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n isFavoritesList,\n };\n};\n","import { ReactNode } from \"react\";\nimport { Favorite, FavoriteTab } from \"@orderly.network/hooks\";\nimport { DataTableClassNames } from \"@orderly.network/ui\";\nimport {\n FavoriteInstance,\n GetColumns,\n SortType,\n MarketsTabName,\n} from \"../../type\";\nimport { useMarketsListScript } from \"./marketsList.script\";\nimport { MarketsList } from \"./marketsList.ui\";\n\nexport type MarketsListWidgetProps = {\n type: MarketsTabName;\n getColumns?: GetColumns;\n panelSize?: \"small\" | \"middle\" | \"large\";\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n initialSort?: SortType;\n onSort?: (sort?: SortType) => void;\n renderHeader?: (favorite: FavoriteInstance) => ReactNode;\n dataFilter?: (\n data: any[],\n options: { favorites: Favorite[]; selectedFavoriteTab: FavoriteTab },\n ) => any[];\n emptyView?: ReactNode;\n};\n\nexport const MarketsListWidget: React.FC<MarketsListWidgetProps> = (props) => {\n const state = useMarketsListScript(props);\n return (\n <MarketsList\n {...state}\n initialSort={props.initialSort}\n getColumns={props.getColumns}\n panelSize={props.panelSize}\n tableClassNames={props.tableClassNames}\n rowClassName={props.rowClassName}\n renderHeader={props.renderHeader}\n emptyView={props.emptyView}\n />\n );\n};\n","export { MarketsList } from \"./marketsList.ui\";\nexport { useMarketsListScript } from \"./marketsList.script\";\nexport { MarketsListWidget } from \"./marketsList.widget\";\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex, GradientText, Text } from \"@orderly.network/ui\";\n\nexport const RwaTab = () => {\n const { t } = useTranslation();\n return (\n <Flex gap={1}>\n <Text>{t(\"common.rwa\")}</Text>\n <Box\n r=\"base\"\n px={2}\n className=\"oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)]\"\n >\n <GradientText color=\"brand\">{t(\"common.new\")}</GradientText>\n </Box>\n </Flex>\n );\n};\n","import React, { useRef, useCallback } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CloseCircleFillIcon,\n cn,\n Input,\n InputProps,\n} from \"@orderly.network/ui\";\nimport { SearchIcon } from \"../../icons\";\nimport { useMarketsContext } from \"../marketsProvider\";\n\ntype SearchInputProps = Pick<InputProps, \"classNames\" | \"suffix\">;\n\nexport const SearchInput: React.FC<SearchInputProps> = (props) => {\n const { classNames, suffix } = props;\n const isComposingRef = useRef<boolean>(false);\n\n const { t } = useTranslation();\n\n const { searchValue, onSearchValueChange, clearSearchValue } =\n useMarketsContext();\n\n const handleCompositionStart = useCallback(() => {\n isComposingRef.current = true;\n }, []);\n\n const handleCompositionEnd = useCallback(\n (event: React.CompositionEvent<HTMLInputElement>) => {\n isComposingRef.current = false;\n onSearchValueChange?.(event.currentTarget.value);\n },\n [onSearchValueChange],\n );\n\n return (\n <Input\n value={searchValue}\n onValueChange={onSearchValueChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n placeholder={t(\"markets.search.placeholder\")}\n classNames={{\n ...classNames,\n // use mt-px to fix the top border issue\n root: cn(\"oui-mt-px oui-border oui-border-line\", classNames?.root),\n }}\n size=\"sm\"\n prefix={\n <Box pl={3} pr={1}>\n <SearchIcon className=\"oui-text-base-contrast-36\" />\n </Box>\n }\n suffix={\n suffix ||\n (searchValue && (\n <Box mr={2}>\n <CloseCircleFillIcon\n size={14}\n className=\"oui-cursor-pointer oui-text-base-contrast-36\"\n onClick={clearSearchValue}\n />\n </Box>\n ))\n }\n autoComplete=\"off\"\n />\n );\n};\n","import { ReactNode } from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { Text, Column, Flex, TokenIcon, Badge } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { FavoritesIcon2, UnFavoritesIcon2 } from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { RwaDotTooltip } from \"../rwaDotTooltip\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport function getSymbolColumn(\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) {\n return {\n title: i18n.t(\"common.symbol\"),\n dataIndex: \"symbol\",\n width: 150,\n onSort: true,\n render: (value, record) => {\n let favoritesIcon: ReactNode;\n if (!isFavoriteList) {\n favoritesIcon = (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {record.isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n </FavoritesDropdownMenuWidget>\n );\n }\n\n return (\n <Flex gapX={1}>\n {favoritesIcon}\n <TokenIcon symbol={value} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {value}\n </SymbolDisplay>\n <RwaDotTooltip record={record} />\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n );\n },\n } as Column<any>;\n}\n\nexport function getLastColumn() {\n return {\n title: i18n.t(\"markets.column.last\"),\n dataIndex: \"24h_close\",\n align: \"right\",\n onSort: true,\n width: 100,\n render: (value, record) => {\n return (\n <Text.numeral dp={record.quote_dp || 2} size=\"2xs\">\n {value}\n </Text.numeral>\n );\n },\n } as Column<any>;\n}\n\nexport function get24hPercentageColumn() {\n return {\n title: i18n.t(\"markets.column.24hPercentage\"),\n dataIndex: \"change\",\n align: \"right\",\n onSort: true,\n width: 80,\n render: (value) => {\n return (\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {value}\n </Text.numeral>\n );\n },\n } as Column<any>;\n}\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n cn,\n EmptyStateIcon,\n Flex,\n PlusIcon,\n Text,\n} from \"@orderly.network/ui\";\n\ntype FavoritesEmptyProps = {\n className?: string;\n onClick: () => void;\n};\n\nexport const FavoritesEmpty: FC<FavoritesEmptyProps> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n direction=\"column\"\n itemAlign=\"center\"\n gapY={4}\n className={cn(\"oui-text-center\", props.className)}\n >\n <EmptyStateIcon />\n <Button\n color=\"gray\"\n size=\"xs\"\n className=\"oui-bg-base-4\"\n onClick={props.onClick}\n >\n <PlusIcon\n className=\"oui-mr-1 oui-text-base-contrast\"\n opacity={1}\n size={12}\n />\n <Text intensity={98}>{t(\"markets.favorites.addFavorites\")}</Text>\n </Button>\n </Flex>\n );\n};\n","import { KeyboardEventHandler } from \"react\";\nimport { FavoriteTab } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n cn,\n Flex,\n Text,\n Tooltip,\n Input,\n modal,\n} from \"@orderly.network/ui\";\nimport { AddIcon, ActiveAddIcon, EditIcon, TrashIcon } from \"../../icons\";\nimport {\n UseFavoritesTabScriptOptions,\n UseFavoritesTabScriptReturn,\n} from \"./favoritesTabs.script\";\n\nexport type FavoritesTabProps = UseFavoritesTabScriptReturn &\n Pick<UseFavoritesTabScriptOptions, \"size\"> & {\n className?: string;\n };\n\nexport const FavoritesTab: React.FC<FavoritesTabProps> = (props) => {\n const {\n open,\n setOpen,\n container,\n inputRef,\n inputWidth,\n spanRef,\n editing,\n value,\n onValueChange,\n updateCurTab,\n onEdit,\n addTab,\n delTab,\n size = \"default\",\n scrollable,\n } = props;\n\n const { t } = useTranslation();\n\n const { selectedFavoriteTab, favoriteTabs, updateSelectedFavoriteTab } =\n props.favorite;\n\n const addIconWidth = size === \"sm\" ? 28 : 36;\n const tabHeight = size === \"sm\" ? 18 : 24;\n const overLen = value?.length > 15;\n\n const gradientColor =\n \"oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)]\";\n\n const onDel = (item: any) => {\n modal.confirm({\n title: t(\"markets.favorites.tabs.delete.dialog.title\"),\n content: (\n <Text size=\"sm\">\n {t(\"markets.favorites.tabs.delete.dialog.description\", {\n name: item.name,\n })}\n </Text>\n ),\n onOk() {\n delTab(item);\n return Promise.resolve();\n },\n });\n };\n\n const onKeyUp: KeyboardEventHandler = (e) => {\n if (e.key === \"Enter\") {\n updateCurTab(overLen);\n }\n };\n\n const renderActions = (item: any) => {\n return (\n <Flex gapX={2} itemAlign=\"center\" px={2} py={1}>\n <EditIcon\n className=\"oui-cursor-pointer oui-text-base-contrast-36 hover:oui-text-base-contrast\"\n onClick={() => {\n onEdit(item);\n }}\n />\n <TrashIcon\n className=\"oui-cursor-pointer oui-text-base-contrast-36 hover:oui-text-base-contrast\"\n onClick={() => {\n onDel(item);\n }}\n />\n </Flex>\n );\n };\n\n const renderAdd = () => {\n const overTabs = favoriteTabs.length >= 10;\n\n const icon = (\n <Flex\n className={cn(\n \"oui-inline-flex\",\n overTabs ? \"oui-cursor-not-allowed\" : \"oui-cursor-pointer\",\n overTabs ? \"oui-bg-base-3\" : gradientColor,\n )}\n width={addIconWidth}\n height={tabHeight}\n r=\"base\"\n justify=\"center\"\n itemAlign=\"center\"\n onClick={overTabs ? undefined : addTab}\n >\n {overTabs ? (\n <AddIcon className=\"oui-z-[1] oui-size-3 oui-text-base-contrast-54\" />\n ) : (\n <ActiveAddIcon className=\"oui-size-3\" />\n )}\n </Flex>\n );\n\n if (overTabs) {\n return (\n <Tooltip\n // @ts-ignore\n content={\n <Text size=\"2xs\" intensity={80}>\n Maximum 10 groups in the favorite list\n </Text>\n }\n className=\"oui-bg-base-6\"\n delayDuration={0}\n arrow={{ className: \"oui-fill-base-6\" }}\n >\n {icon}\n </Tooltip>\n );\n }\n\n return icon;\n };\n\n const renderInput = (isActive: boolean) => {\n return (\n <Tooltip\n open={overLen}\n // @ts-ignore\n content={\n <Text size=\"2xs\" intensity={80}>\n List name cannot exceed 15 characters\n </Text>\n }\n className=\"oui-bg-base-6\"\n delayDuration={0}\n sideOffset={0}\n >\n <Input\n ref={inputRef}\n style={\n overLen\n ? { width: inputWidth }\n : {\n // @ts-ignore\n \"--oui-gradient-angle\": \"270deg\",\n backgroundClip: \"text\",\n WebkitTextFillColor: \"transparent\",\n WebkitBackgroundClip: \"text\",\n width: inputWidth,\n }\n }\n classNames={{\n root: cn(\n \"oui-my-px oui-rounded oui-p-0 oui-px-2\",\n \"focus-within:oui-outline-transparent focus-visible:oui-outline-none\",\n size === \"sm\" ? \"oui-h-[18px]\" : \"oui-h-[24px]\",\n isActive && cn(overLen ? \"oui-bg-danger/15\" : gradientColor),\n ),\n input: cn(\n \"oui-font-semibold oui-caret-[rgba(217,217,217,1)]\",\n overLen\n ? \"oui-text-danger\"\n : \"oui-text-transparent oui-gradient-brand \",\n size === \"sm\" ? \"oui-text-2xs\" : \"oui-text-sm\",\n ),\n }}\n value={value}\n onValueChange={onValueChange}\n onBlur={() => {\n updateCurTab(overLen);\n }}\n onKeyUp={onKeyUp}\n autoComplete=\"off\"\n />\n </Tooltip>\n );\n };\n\n const renderContent = (item: FavoriteTab, isActive: boolean) => {\n if (editing && isActive) {\n return renderInput(isActive);\n }\n\n const textProps = {\n weight: \"semibold\",\n size: size === \"sm\" ? \"2xs\" : \"sm\",\n className: size === \"sm\" ? \"oui-leading-[18px]\" : \"oui-leading-[24px]\",\n as: \"div\",\n } as any;\n\n const content = isActive ? (\n <Text.gradient color=\"brand\" angle={270} {...textProps}>\n {item.name}\n </Text.gradient>\n ) : (\n <Text {...textProps}>{item.name}</Text>\n );\n\n return (\n <Box\n r=\"base\"\n px={2}\n height={tabHeight}\n className={cn(\n \"oui-cursor-pointer oui-select-none\",\n isActive\n ? \"oui-markets-favorites-active-tab-item\"\n : \"oui-markets-favorites-tab-item\",\n isActive\n ? gradientColor\n : \"oui-bg-line-6 oui-text-base-contrast-36 hover:oui-text-base-contrast\",\n )}\n onClick={() => {\n updateSelectedFavoriteTab(item);\n if (isActive) {\n setOpen(true);\n }\n }}\n >\n {content}\n </Box>\n );\n };\n\n return (\n <Flex width=\"100%\" gapX={3} className={props.className}>\n <Flex\n ref={container}\n id=\"oui-markets-favorites-tabs-container\"\n className={cn(\n \"oui-hide-scrollbar oui-relative oui-cursor-pointer\",\n \"oui-overflow-hidden oui-overflow-x-auto\",\n )}\n // my={3}\n gapX={size === \"sm\" ? 2 : 3}\n width=\"100%\"\n >\n {favoriteTabs?.slice(0, 10)?.map((item: any) => {\n const isActive = selectedFavoriteTab.id === item.id;\n return (\n <Tooltip\n key={item.id}\n open={isActive && !editing ? open : false}\n onOpenChange={(open) => {\n if (isActive) {\n setOpen(open);\n }\n }}\n // @ts-ignore\n content={renderActions(item)}\n delayDuration={0}\n className={cn(\"oui-bg-base-5\")}\n arrow={{\n className: \"oui-fill-base-5\",\n }}\n >\n {renderContent(item, isActive)}\n </Tooltip>\n );\n })}\n\n {!scrollable && renderAdd()}\n\n <Text size=\"xs\" ref={spanRef} className=\"oui-invisible\">\n {value}\n </Text>\n </Flex>\n {scrollable && renderAdd()}\n </Flex>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport { FavoriteInstance } from \"../../type\";\n\nexport type UseFavoritesTabScriptOptions = {\n favorite: FavoriteInstance;\n size?: \"sm\" | \"default\";\n};\n\nexport type UseFavoritesTabScriptReturn = ReturnType<\n typeof useFavoritesTabScript\n>;\n\nexport function useFavoritesTabScript(options: UseFavoritesTabScriptOptions) {\n const { favorite, size = \"default\" } = options;\n const {\n favorites,\n favoriteTabs,\n selectedFavoriteTab,\n updateFavoriteTabs,\n updateSelectedFavoriteTab,\n updateFavorites,\n } = favorite;\n\n const [open, setOpen] = useState(false);\n const [editing, setEditing] = useState(false);\n const [value, setValue] = useState(\"\");\n const [scrollable, setScrollable] = useState(false);\n\n const scrollView = useRef<HTMLInputElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const spanRef = useRef<HTMLSpanElement>(null);\n\n const [inputWidth, setInputWidth] = useState(50);\n\n const updateScrollLayout = () => {\n const addIconWidth = size === \"sm\" ? 28 : 36;\n setTimeout(() => {\n const { scrollWidth, clientWidth } = scrollView.current || {};\n\n if (scrollWidth! > clientWidth!) {\n setScrollable(true);\n }\n }, 0);\n };\n\n const scrollToRight = () => {\n setTimeout(() => {\n if (scrollView.current) {\n scrollView.current.scrollLeft =\n scrollView.current.scrollWidth - scrollView.current.clientWidth;\n }\n }, 0);\n };\n\n const onEdit = (item: any) => {\n setEditing(true);\n setValue(item.name);\n setTimeout(() => {\n inputRef.current?.focus();\n inputRef.current?.setSelectionRange(-1, -1);\n }, 0);\n };\n\n const updateCurTab = (overLen: boolean) => {\n updateFavoriteTabs(\n {\n ...selectedFavoriteTab,\n name: overLen ? selectedFavoriteTab.name : value,\n },\n { update: true },\n );\n setEditing(false);\n setOpen(false);\n updateScrollLayout();\n };\n\n const addTab = () => {\n const newTab = {\n name: `WatchList_${favoriteTabs.length}`,\n id: Date.now(),\n };\n updateFavoriteTabs(newTab, { add: true });\n updateSelectedFavoriteTab(newTab);\n updateScrollLayout();\n scrollToRight();\n };\n\n const delTab = (selectedTab: any) => {\n updateFavoriteTabs(selectedTab, { delete: true });\n\n setTimeout(() => {\n // remove all symbol favorite in this tab\n const _favorites = favorites.map((item) => ({\n ...item,\n tabs: item.tabs?.filter((tab) => tab.id !== selectedTab.id),\n }));\n\n updateFavorites(_favorites);\n\n // auto selected last tab\n const tabs = favoriteTabs.filter((item) => item.id !== selectedTab.id);\n const tab = tabs?.[tabs?.length - 1] || tabs?.[0];\n updateSelectedFavoriteTab(tab);\n }, 0);\n };\n\n useEffect(() => {\n if (value) {\n const rect = spanRef.current?.getBoundingClientRect();\n const offset = size === \"sm\" ? 0 : 14;\n setInputWidth(Math.max((rect?.width || 0) + offset, 50));\n }\n }, [value]);\n\n useEffect(() => {\n updateScrollLayout();\n }, []);\n\n return {\n favorite,\n open,\n setOpen,\n container: scrollView,\n inputRef,\n inputWidth,\n spanRef,\n editing,\n value,\n onValueChange: setValue,\n onEdit,\n updateCurTab,\n addTab,\n delTab,\n scrollable,\n };\n}\n","import {\n useFavoritesTabScript,\n UseFavoritesTabScriptOptions,\n} from \"./favoritesTabs.script\";\nimport { FavoritesTab } from \"./favoritesTabs.ui\";\n\nexport type FavoritesTabWidgetProps = UseFavoritesTabScriptOptions & {\n className?: string;\n};\n\nexport const FavoritesTabWidget: React.FC<FavoritesTabWidgetProps> = (\n props,\n) => {\n const { className, ...rest } = props;\n const state = useFavoritesTabScript(rest);\n return <FavoritesTab {...state} size={props.size} className={className} />;\n};\n","export { FavoritesTab } from \"./favoritesTabs.ui\";\nexport { useFavoritesTabScript } from \"./favoritesTabs.script\";\nexport { FavoritesTabWidget } from \"./favoritesTabs.widget\";\n","import { useCallback } from \"react\";\nimport { Favorite, FavoriteTab } from \"@orderly.network/hooks\";\nimport { Box } from \"@orderly.network/ui\";\nimport { FavoriteInstance, MarketsTabName } from \"../../../type\";\nimport { FavoritesEmpty } from \"../../favoritesEmpty\";\nimport { FavoritesTabWidget } from \"../../favoritesTabs\";\nimport { useMarketsContext } from \"../../marketsProvider\";\n\nexport function useFavoritesProps() {\n const { searchValue } = useMarketsContext();\n const renderHeader = useCallback((favorite: FavoriteInstance) => {\n return (\n <Box px={3} className=\"oui-my-[6px]\">\n <FavoritesTabWidget favorite={favorite} size=\"sm\" />\n </Box>\n );\n }, []);\n\n const dataFilter = useCallback(\n (\n data: any[],\n options: { favorites: Favorite[]; selectedFavoriteTab: FavoriteTab },\n ) => {\n const { favorites, selectedFavoriteTab } = options;\n\n return favorites\n ?.filter(\n (item) =>\n item.tabs?.findIndex((tab) => tab.id === selectedFavoriteTab.id) !==\n -1,\n )\n ?.map((fav) => {\n const index = data?.findIndex((item) => item.symbol === fav.name);\n if (index !== -1) {\n return data[index];\n }\n return null;\n })\n ?.filter((item) => item);\n },\n [],\n );\n\n const getFavoritesProps = useCallback(\n (type: MarketsTabName) => {\n if (type === MarketsTabName.Favorites) {\n return { renderHeader, dataFilter };\n }\n return {};\n },\n [renderHeader, dataFilter],\n );\n\n const renderEmptyView = useCallback(\n (options: {\n type: MarketsTabName;\n onClick: () => void;\n className?: string;\n }) => {\n if (options.type === MarketsTabName.Favorites && !searchValue) {\n return (\n <FavoritesEmpty\n onClick={options.onClick}\n className={options.className}\n />\n );\n }\n\n return undefined;\n },\n [searchValue],\n );\n\n return {\n renderHeader,\n dataFilter,\n getFavoritesProps,\n renderEmptyView,\n };\n}\n","import { useCallback } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Column, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { MarketsListWidget } from \"../../../components/marketsList\";\nimport { RwaTab } from \"../../../components/rwaTab\";\nimport { SearchInput } from \"../../../components/searchInput\";\nimport {\n get24hPercentageColumn,\n getLastColumn,\n getSymbolColumn,\n} from \"../../../components/shared/column\";\nimport { useFavoritesProps } from \"../../../components/shared/hooks/useFavoritesExtraProps\";\nimport { AllMarketsIcon, FavoritesIcon, NewListingsIcon } from \"../../../icons\";\nimport { FavoriteInstance, MarketsTabName } from \"../../../type\";\nimport { UseMarketsDataListScript } from \"./marketsDataList.script\";\n\nexport type MobileMarketsDataListProps = UseMarketsDataListScript;\n\nexport const MobileMarketsDataList: React.FC<MobileMarketsDataListProps> = (\n props,\n) => {\n const { activeTab, onTabChange, tabSort, onTabSort } = props;\n const { t } = useTranslation();\n\n const getColumns = useCallback(\n (favorite: FavoriteInstance, isFavoriteList = false) => {\n return [\n getSymbolColumn(favorite, isFavoriteList),\n getLastColumn(),\n get24hPercentageColumn(),\n ] as Column[];\n },\n [],\n );\n\n const { getFavoritesProps } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n return (\n <>\n <SearchInput\n classNames={{\n root: cn(\n \"oui-mx-3 oui-mb-4 oui-mt-5\",\n activeTab !== MarketsTabName.Favorites && \"oui-mb-2\",\n ),\n }}\n />\n <MarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n getColumns={getColumns}\n rowClassName=\"!oui-h-[34px]\"\n {...getFavoritesProps(type)}\n />\n </>\n );\n };\n\n return (\n <Box id=\"oui-markets-list\" intensity={900} py={3} mt={2} r=\"2xl\">\n <Tabs\n variant=\"contained\"\n size=\"lg\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n scrollIndicator: \"oui-mx-3\",\n }}\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value=\"favorites\">\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.allMarkets\")}\n icon={<AllMarketsIcon />}\n value=\"all\"\n >\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value=\"rwa\">\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n icon={<NewListingsIcon />}\n value=\"new\"\n >\n {renderTab(MarketsTabName.NewListing)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { useCallback } from \"react\";\nimport { useSessionStorage } from \"@orderly.network/hooks\";\nimport { SortType, MarketsTabName } from \"../../../type\";\n\nexport function useTabSort(options: { storageKey: string }) {\n const [tabSort, setTabSort] = useSessionStorage(options.storageKey, {\n [MarketsTabName.All]: {\n sortKey: \"24h_amount\",\n sortOrder: \"desc\",\n },\n } as Record<MarketsTabName, SortType>);\n\n const onTabSort = useCallback(\n (type: MarketsTabName) => (sort?: SortType) => {\n setTabSort({ ...tabSort, [type]: sort });\n },\n [tabSort],\n );\n\n return {\n tabSort,\n onTabSort,\n };\n}\n","import { useEffect, useState } from \"react\";\nimport { useMarketsContext } from \"../../../components/marketsProvider\";\nimport { useTabSort } from \"../../../components/shared/hooks/useTabSort\";\nimport { MarketsTabName } from \"../../../type\";\n\nexport type UseMarketsDataListScript = ReturnType<\n typeof useMarketsDataListScript\n>;\n\nconst MOBILE_MARKETS_TAB_SORT_STORAGE_KEY = \"orderly_mobile_markets_tab_sort\";\n\nexport function useMarketsDataListScript() {\n const [activeTab, setActiveTab] = useState<MarketsTabName>(\n MarketsTabName.All,\n );\n const { clearSearchValue, searchValue } = useMarketsContext();\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: MOBILE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab,\n onTabChange: (value: string) => setActiveTab(value as MarketsTabName),\n tabSort,\n onTabSort,\n searchValue,\n };\n}\n","import { MouseEventHandler, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, Box, Tooltip, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n FavoritesIcon,\n MoveToTopIcon,\n OrderlyIcon,\n UnFavoritesIcon,\n} from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport const useMarketsListFullColumns = (\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) => {\n const { t } = useTranslation();\n\n const columns = useMemo(() => {\n return [\n {\n title: <UnFavoritesIcon className=\"oui-mt-1\" />,\n dataIndex: \"isFavorite\",\n align: \"center\",\n width: 30,\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const button = (\n <Flex\n width=\"100%\"\n height=\"100%\"\n mr={3}\n justify=\"center\"\n itemAlign=\"center\"\n onClick={isFavoriteList ? onDelSymbol : undefined}\n data-testid=\"oui-testid-markets-table-row-favorite-icon\"\n >\n {value ? (\n <FavoritesIcon className=\"oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon className=\"oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n );\n\n if (isFavoriteList) {\n return button;\n }\n\n return (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n {button}\n </FavoritesDropdownMenuWidget>\n );\n },\n },\n {\n title: t(\"markets.column.market\"),\n dataIndex: \"symbol\",\n width: 90,\n onSort: true,\n render: (value) => {\n return (\n <SymbolDisplay formatString=\"base\" showIcon>\n {value}\n </SymbolDisplay>\n );\n },\n },\n {\n title: t(\"common.price\"),\n dataIndex: \"24h_close\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value, record) => {\n return (\n <Text.numeral dp={record.quote_dp || 2} currency=\"$\">\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: t(\"markets.column.24hChange\"),\n dataIndex: \"change\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n return (\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.column.24hVolume\")}\n </Flex>\n ),\n dataIndex: \"24h_amount\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n return (\n <Text.numeral currency=\"$\" dp={0} rm={Decimal.ROUND_DOWN}>\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n dataIndex: \"openInterest\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n return (\n <Text.numeral currency=\"$\" dp={0} rm={Decimal.ROUND_DOWN}>\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: t(\"markets.dataList.column.8hFunding\"),\n dataIndex: \"8h_funding\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n if (value === null) {\n return \"--\";\n }\n return (\n <Text.numeral\n rule=\"percentages\"\n coloring\n dp={4}\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n },\n },\n {\n dataIndex: \"action\",\n type: \"action\",\n width: 40,\n render: (value, record) => {\n if (isFavoriteList) {\n return (\n <Flex justify=\"end\" mr={4}>\n <Tooltip\n content={t(\"markets.dataList.column.moveTop\")}\n align=\"center\"\n delayDuration={0}\n >\n <Box\n className=\"oui-hidden oui-cursor-pointer group-hover:oui-block\"\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n data-testid=\"oui-markets-favorites-pinned-icon\"\n >\n <MoveToTopIcon className=\"oui-text-base-contrast-20 hover:oui-text-base-contrast\" />\n </Box>\n </Tooltip>\n </Flex>\n );\n }\n return null;\n },\n },\n ] as Column[];\n }, [favorite, isFavoriteList, t]);\n\n return columns;\n};\n","import { FC, ReactNode } from \"react\";\nimport { Trans } from \"@orderly.network/i18n\";\nimport { cn, Flex, DataTable } from \"@orderly.network/ui\";\nimport { FavoritesTabWidget } from \"../../components/favoritesTabs\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { UnFavoritesIcon } from \"../../icons\";\nimport { useMarketsListFullColumns } from \"../marketsListFull/column\";\nimport { UseFavoritesListFullReturn } from \"./favoritesListFull.script\";\n\nexport type FavoritesListFullProps = UseFavoritesListFullReturn & {\n emptyView?: ReactNode;\n};\n\nexport const FavoritesListFull: FC<FavoritesListFullProps> = (props) => {\n const { dataSource, favorite, onSort, loading, pagination } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const columns = useMarketsListFullColumns(favorite, true);\n\n const emptyView = props.emptyView || (\n <Flex className=\"oui-text-xs oui-text-base-contrast-36\">\n {/* @ts-ignore */}\n <Trans\n i18nKey=\"markets.dataList.favorites.empty\"\n components={[\n <UnFavoritesIcon key=\"0\" className=\"oui-text-base-contrast-36\" />,\n ]}\n />\n </Flex>\n );\n\n return (\n <div>\n <FavoritesTabWidget favorite={favorite} className=\"oui-my-3\" />\n\n <DataTable\n bordered\n // minHeight={187.5}\n columns={columns}\n dataSource={dataSource}\n emptyView={emptyView}\n classNames={{\n empty: \"oui-items-start oui-mt-6\",\n }}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[55px] oui-cursor-pointer\"),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n pagination={pagination}\n manualSorting\n />\n </div>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseFavoritesListFullReturn = ReturnType<\n typeof useFavoritesListFullScript\n>;\n\nexport const useFavoritesListFullScript = () => {\n const { pageSize, setPage, pagination } = usePagination({\n pageSize: 10,\n });\n const [data, favorite] = useMarkets(MarketsType.FAVORITES);\n const [loading, setLoading] = useState(true);\n\n const { favorites, selectedFavoriteTab } = favorite;\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const filterData = useMemo(() => {\n const filterList = favorites\n ?.filter(\n (item) =>\n item.tabs?.findIndex((tab) => tab.id === selectedFavoriteTab.id) !==\n -1,\n )\n ?.map((fav) => {\n const index = data?.findIndex((item) => item.symbol === fav.name);\n if (index !== -1) {\n return data[index];\n }\n return null;\n })\n ?.filter((item) => !!item);\n\n return searchBySymbol(filterList, searchValue, \"base-type\");\n }, [data, selectedFavoriteTab, favorites, searchValue]);\n\n const dataSource = useMemo(\n () => getSortedList(filterData),\n [filterData, getSortedList],\n );\n\n useEffect(() => {\n setLoading(false);\n }, [favorites]);\n\n useEffect(() => {\n setPage(1);\n }, [searchValue]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n pagination,\n };\n};\n","import { ReactNode } from \"react\";\nimport { useFavoritesListFullScript } from \"./favoritesListFull.script\";\nimport { FavoritesListFull } from \"./favoritesListFull.ui\";\n\nexport type FavoritesListFullWidgetProps = {\n emptyView?: ReactNode;\n};\n\nexport const FavoritesListFullWidget: React.FC<FavoritesListFullWidgetProps> = (\n props,\n) => {\n const state = useFavoritesListFullScript();\n return <FavoritesListFull {...state} emptyView={props.emptyView} />;\n};\n","export { FavoritesListFull } from \"./favoritesListFull.ui\";\nexport { useFavoritesListFullScript } from \"./favoritesListFull.script\";\nexport { FavoritesListFullWidget } from \"./favoritesListFull.widget\";\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useMarketsListFullColumns } from \"./column\";\nimport { type UseMarketsListFullReturn } from \"./marketsListFull.script\";\n\nexport type MarketsListFullProps = UseMarketsListFullReturn & {\n type?: \"all\" | \"new\";\n};\n\nexport const MarketsListFull: FC<MarketsListFullProps> = (props) => {\n const {\n loading,\n dataSource,\n favorite,\n onSort,\n initialSort,\n type,\n pagination,\n } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const columns = useMarketsListFullColumns(favorite, false);\n\n return (\n <DataTable\n bordered\n columns={columns}\n loading={loading}\n dataSource={dataSource}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[55px] oui-cursor-pointer\"),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n \"data-testid\": `oui-testid-markets-${\n type === \"new\" ? \"newListing\" : \"all\"\n }-tr-${record.symbol}`,\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n initialSort={initialSort}\n pagination={pagination}\n classNames={{\n header: \"oui-h-12\",\n }}\n manualSorting\n />\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { TableSort, usePagination } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\nimport { MarketsListFullWidgetProps } from \"./marketsListFull.widget\";\n\nexport type UseMarketsListFullScriptOptions = MarketsListFullWidgetProps;\n\nexport type UseMarketsListFullReturn = ReturnType<\n typeof useMarketsListFullScript\n>;\n\nexport const useMarketsListFullScript = (\n options: UseMarketsListFullScriptOptions,\n) => {\n const [loading, setLoading] = useState(true);\n const { setPage, pagination } = usePagination({\n pageSize: 10,\n });\n\n const [data, favorite] = useMarkets(MarketsType.ALL);\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList, sort } = useSort(options.initialSort);\n\n const dataSource = useMemo(() => {\n const searchList = searchBySymbol(data, searchValue, \"base-type\");\n return getSortedList(searchList);\n }, [data, getSortedList, searchValue]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n useEffect(() => {\n setPage(1);\n }, [searchValue]);\n\n useEffect(() => {\n // Only all markets store sort\n if (options.type === \"all\") {\n favorite.updateTabsSortState(\"all\", sort?.sortKey!, sort?.sortOrder!);\n }\n }, [sort, options.type]);\n\n const initialSort = useMemo(() => {\n const sortStore =\n options.type === \"all\" ? favorite.tabSort?.all : undefined;\n\n return {\n sortKey: sortStore?.sortKey || options?.initialSort?.sortKey,\n sort: sortStore?.sortOrder || options?.initialSort?.sortOrder,\n } as TableSort;\n }, [favorite.tabSort, options.initialSort, options.type]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n pagination,\n initialSort,\n };\n};\n","import { SortType } from \"../../type\";\nimport { useMarketsListFullScript } from \"./marketsListFull.script\";\nimport { MarketsListFull } from \"./marketsListFull.ui\";\n\nexport type MarketsListFullWidgetProps = {\n type?: \"all\" | \"new\";\n initialSort?: SortType;\n};\n\nexport const MarketsListFullWidget: React.FC<MarketsListFullWidgetProps> = (\n props,\n) => {\n const state = useMarketsListFullScript(props);\n\n return <MarketsListFull {...state} type={props.type} />;\n};\n","export { MarketsListFull } from \"./marketsListFull.ui\";\nexport { useMarketsListFullScript } from \"./marketsListFull.script\";\nexport { MarketsListFullWidget } from \"./marketsListFull.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { FavoritesEmpty } from \"../../../components/favoritesEmpty\";\nimport { AllMarketsIcon, FavoritesIcon, NewListingsIcon } from \"../../../icons\";\nimport { MarketsTabName } from \"../../../type\";\nimport { UseMarketsDataListScript } from \"./marketsDataList.script\";\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../../../components/searchInput\").then((mod) => {\n return { default: mod.SearchInput };\n }),\n);\n\nconst LazyFavoritesListFullWidget = React.lazy(() =>\n import(\"../../../components/favoritesListFull\").then((mod) => {\n return { default: mod.FavoritesListFullWidget };\n }),\n);\n\nconst LazyMarketsListFullWidget = React.lazy(() =>\n import(\"../../../components/marketsListFull\").then((mod) => {\n return { default: mod.MarketsListFullWidget };\n }),\n);\n\nexport type MarketsDataListProps = UseMarketsDataListScript;\n\nexport const MarketsDataList: React.FC<MarketsDataListProps> = (props) => {\n const { searchValue, activeTab, onTabChange } = props;\n const { t } = useTranslation();\n\n return (\n <Box id=\"oui-markets-list\" intensity={900} p={6} r=\"2xl\">\n <Tabs\n variant=\"contained\"\n size=\"xl\"\n value={activeTab}\n onValueChange={onTabChange}\n trailing={\n <React.Suspense fallback={null}>\n <LazySearchInput classNames={{ root: \"oui-my-1 oui-w-[240px]\" }} />\n </React.Suspense>\n }\n >\n <TabPanel\n title={<FavoritesIcon />}\n value=\"favorites\"\n testid=\"oui-testid-markets-favorites-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFavoritesListFullWidget\n emptyView={\n !searchValue && (\n <FavoritesEmpty\n onClick={() => onTabChange(MarketsTabName.All)}\n />\n )\n }\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"markets.allMarkets\")}\n icon={<AllMarketsIcon />}\n value=\"all\"\n testid=\"oui-testid-markets-all-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsListFullWidget\n type=\"all\"\n initialSort={{ sortKey: \"24h_amount\", sortOrder: \"desc\" }}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n icon={<NewListingsIcon />}\n value=\"new\"\n testid=\"oui-testid-markets-newListings-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsListFullWidget\n type=\"new\"\n initialSort={{ sortKey: \"created_time\", sortOrder: \"desc\" }}\n />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import React from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileMarketsDataList } from \"./marketsDataList.mobile.ui\";\nimport { useMarketsDataListScript } from \"./marketsDataList.script\";\nimport { MarketsDataList } from \"./marketsDataList.ui\";\n\nexport const MarketsDataListWidget: React.FC = () => {\n const { isMobile } = useScreen();\n const state = useMarketsDataListScript();\n return isMobile ? (\n <MobileMarketsDataList {...state} />\n ) : (\n <MarketsDataList {...state} />\n );\n};\n","export { MarketsDataListWidget } from \"./marketsDataList.widget\";\nexport { useMarketsDataListScript } from \"./marketsDataList.script\";\nexport { MarketsDataList } from \"./marketsDataList.ui\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport { MarketsTabName } from \"../../type\";\nimport { RwaTab } from \"../rwaTab\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport type { ExpandMarketsScriptReturn } from \"./expandMarkets.script\";\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../searchInput\").then((mod) => {\n return { default: mod.SearchInput };\n }),\n);\n\nconst LazyMarketsListWidget = React.lazy(() =>\n import(\"../marketsList\").then((mod) => {\n return { default: mod.MarketsListWidget };\n }),\n);\n\nexport type ExpandMarketsProps = ExpandMarketsScriptReturn;\n\nconst cls = \"oui-h-[calc(100%_-_36px)]\";\n\nexport const ExpandMarkets: React.FC<ExpandMarketsProps> = (props) => {\n const { activeTab, onTabChange, tabSort, onTabSort } = props;\n\n const { t } = useTranslation();\n\n const { getFavoritesProps, renderEmptyView } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n return (\n <div className={cls}>\n <React.Suspense fallback={null}>\n <LazyMarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n tableClassNames={{\n scroll: cn(\n \"oui-px-1\",\n type === MarketsTabName.Favorites ? \"oui-pb-9\" : \"oui-pb-2\",\n ),\n }}\n {...getFavoritesProps(type)}\n emptyView={renderEmptyView({\n type,\n onClick: () => {\n onTabChange(MarketsTabName.All);\n },\n })}\n />\n </React.Suspense>\n </div>\n );\n };\n\n return (\n <Box className={cn(\"oui-overflow-hidden oui-font-semibold\")} height=\"100%\">\n <Box px={3} pb={2}>\n <React.Suspense fallback={null}>\n <LazySearchInput />\n </React.Suspense>\n </Box>\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n tabsList: cn(\"oui-my-[6px]\"),\n tabsContent: \"oui-h-full\",\n scrollIndicator: \"oui-mx-3\",\n }}\n className={cls}\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n value={MarketsTabName.NewListing}\n >\n {renderTab(MarketsTabName.NewListing)}\n </TabPanel>\n <TabPanel title={t(\"markets.recent\")} value={MarketsTabName.Recent}>\n {renderTab(MarketsTabName.Recent)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","export const SIDE_MARKETS_TAB_SORT_STORAGE_KEY =\n \"orderly_side_markets_tab_sort\";\n\nexport const SIDE_MARKETS_SEL_TAB_KEY = \"orderly_side_markets_sel_tab_key\";\n","import { useCallback, useEffect, useState } from \"react\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type ExpandMarketsScriptOptions = {\n activeTab?: MarketsTabName;\n onTabChange?: (tab: MarketsTabName) => void;\n};\n\nexport type ExpandMarketsScriptReturn = ReturnType<\n typeof useExpandMarketsScript\n>;\n\nexport function useExpandMarketsScript(options: ExpandMarketsScriptOptions) {\n const [activeTab, setActiveTab] = useState<MarketsTabName>(\n options.activeTab!,\n );\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const { clearSearchValue } = useMarketsContext();\n\n const onTabChange = useCallback(\n (value: string) => {\n if (typeof options?.onTabChange === \"function\") {\n options.onTabChange(value as MarketsTabName);\n } else {\n setActiveTab(value as MarketsTabName);\n }\n },\n [options?.onTabChange],\n );\n useEffect(() => {\n setActiveTab(options?.activeTab || MarketsTabName.Favorites);\n }, [options?.activeTab]);\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab,\n onTabChange,\n tabSort,\n onTabSort,\n };\n}\n","import { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport {\n useExpandMarketsScript,\n ExpandMarketsScriptOptions,\n} from \"./expandMarkets.script\";\nimport { ExpandMarkets } from \"./expandMarkets.ui\";\n\nexport type ExpandMarketsWidgetProps = MarketsProviderProps &\n ExpandMarketsScriptOptions;\n\nexport const ExpandMarketsWidget: React.FC<ExpandMarketsWidgetProps> = (\n props,\n) => {\n const state = useExpandMarketsScript({\n activeTab: props.activeTab,\n onTabChange: props.onTabChange,\n });\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <ExpandMarkets {...state} />\n </MarketsProvider>\n );\n};\n","export { ExpandMarkets } from \"./expandMarkets.ui\";\nexport { useExpandMarketsScript } from \"./expandMarkets.script\";\nexport { ExpandMarketsWidget } from \"./expandMarkets.widget\";\n","import { useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Column,\n Flex,\n Picker,\n Select,\n Text,\n TokenIcon,\n useScreen,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { ProcessedFundingData } from \"./fundingOverview.script\";\n\nconst createFundingRenderer =\n (dp: number = 5) =>\n (value: number) => {\n if (value === 0) {\n return <Text> - </Text>;\n }\n\n return (\n <Text.numeral\n rule=\"percentages\"\n dp={dp}\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n };\n\nexport const useFundingOverviewColumns = (\n selectedPeriod: string,\n setSelectedPeriod: (value: string) => void,\n) => {\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n\n return useMemo<Column<ProcessedFundingData>[]>(() => {\n return [\n {\n title: t(\"markets.column.market\"),\n dataIndex: \"symbol\",\n onSort: true,\n width: 135,\n className: isMobile ? \"oui-pl-0\" : undefined,\n render: (value) => (\n <Flex gapX={1}>\n <TokenIcon\n symbol={value}\n className={isMobile ? \"oui-size-[18px]\" : \"oui-size-5\"}\n />\n <SymbolDisplay formatString=\"base\" size=\"xs\">\n {value}\n </SymbolDisplay>\n </Flex>\n ),\n },\n {\n title: t(\"markets.funding.column.estFunding\"),\n dataIndex: \"estFunding\",\n width: 120,\n onSort: true,\n render: (value, record) => (\n <div>\n <Text.numeral\n rule=\"percentages\"\n dp={5}\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n <span className=\"oui-text-base-contrast-54\">\n {`/ ${record.fundingInterval}h`}\n </span>\n </div>\n ),\n },\n {\n title: t(\"markets.funding.column.lastFunding\"),\n dataIndex: \"lastFunding\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.1dAvg\"),\n dataIndex: \"funding1d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.3dAvg\"),\n dataIndex: \"funding3d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.7dAvg\"),\n dataIndex: \"funding7d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.14dAvg\"),\n dataIndex: \"funding14d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.30dAvg\"),\n dataIndex: \"funding30d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.90dAvg\"),\n dataIndex: \"funding90d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: (\n <div className=\"oui-flex oui-gap-1\">\n <FundingPeriodSelect\n value={selectedPeriod}\n onValueChange={setSelectedPeriod}\n />\n <span>{t(\"markets.funding.column.positiveRate\")}</span>\n </div>\n ),\n dataIndex: selectedPeriod,\n width: 130,\n align: \"right\",\n onSort: true,\n render: createFundingRenderer(2),\n },\n ];\n }, [t, isMobile, selectedPeriod, setSelectedPeriod]);\n};\n\ntype FundingPeriodSelectProps = {\n value: string;\n onValueChange: (value: string) => void;\n};\n\nconst FundingPeriodSelect = (props: FundingPeriodSelectProps) => {\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n\n const options = useMemo(() => {\n return [\n {\n label: t(\"common.select.1d\"),\n value: \"1dPositive\",\n },\n {\n label: t(\"common.select.3d\"),\n value: \"3dPositive\",\n },\n {\n label: t(\"common.select.7d\"),\n value: \"7dPositive\",\n },\n {\n label: t(\"common.select.14d\"),\n value: \"14dPositive\",\n },\n {\n label: t(\"common.select.30d\"),\n value: \"30dPositive\",\n },\n {\n label: t(\"common.select.90d\"),\n value: \"90dPositive\",\n },\n ];\n }, [t]);\n\n if (isMobile) {\n return (\n <Picker\n size=\"sm\"\n value={props.value}\n onValueChange={props.onValueChange}\n options={options}\n />\n );\n }\n\n return (\n <Select.options\n size=\"xs\"\n value={props.value}\n onValueChange={props.onValueChange}\n options={options}\n />\n );\n};\n","import { FC, useState } from \"react\";\nimport { DataTable, cn } from \"@orderly.network/ui\";\nimport { useFundingOverviewColumns } from \"./columns\";\nimport { FundingOverviewReturn } from \"./fundingOverview.script\";\n\nexport type FundingOverviewProps = FundingOverviewReturn;\n\nexport const FundingOverview: FC<FundingOverviewProps> = (props) => {\n const { dataSource, isLoading, pagination, onSort } = props;\n const [selectedPeriod, setSelectedPeriod] = useState(\"1dPositive\");\n\n const columns = useFundingOverviewColumns(selectedPeriod, setSelectedPeriod);\n\n return (\n <DataTable\n columns={columns}\n dataSource={dataSource}\n loading={isLoading}\n bordered\n onRow={() => {\n return {\n className: cn(\"oui-h-[48px] oui-cursor-pointer\"),\n };\n }}\n classNames={{\n header: \"oui-h-12\",\n }}\n pagination={pagination}\n onSort={onSort}\n manualSorting\n generatedRowKey={(record) => record.symbol}\n />\n );\n};\n","import { useMemo } from \"react\";\nimport {\n MarketsType,\n useFundingRateHistory,\n useFundingRates,\n useMarkets,\n} from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSort, searchBySymbol } from \"../../utils\";\n\nexport type ProcessedFundingData = {\n symbol: string;\n estFunding: number;\n lastFunding: number;\n fundingInterval: number;\n funding1d: number | string;\n funding3d: number | string;\n funding7d: number | string;\n funding14d: number | string;\n funding30d: number | string;\n funding90d: number | string;\n \"1dPositive\": number | string;\n \"3dPositive\": number | string;\n \"7dPositive\": number | string;\n \"14dPositive\": number | string;\n \"30dPositive\": number | string;\n \"90dPositive\": number | string;\n};\n\nexport type FundingOverviewReturn = ReturnType<typeof useFundingOverviewScript>;\n\nexport const useFundingOverviewScript = () => {\n const { pagination } = usePagination({ pageSize: 10 });\n const [marketData] = useMarkets(MarketsType.ALL);\n\n const {\n data: fundingHistory,\n isLoading: isHistoryLoading,\n getPositiveRates,\n } = useFundingRateHistory();\n const fundingRates = useFundingRates();\n\n const { onSort, getSortedList } = useSort();\n const { searchValue } = useMarketsContext();\n\n const processedData = useMemo((): ProcessedFundingData[] => {\n if (!marketData?.length) {\n return [];\n }\n\n const periods = [\"1d\", \"3d\", \"7d\", \"14d\", \"30d\", \"90d\"] as const;\n const posRates = periods.reduce(\n (acc, period) => {\n acc[period] = getPositiveRates(fundingHistory, period);\n return acc;\n },\n {} as Record<string, Record<string, number>>,\n );\n\n // because fundingHistory list is unstable sort, so use marketData instead\n // TODO: feedback to backend to fix this if possible\n return marketData.map((item) => {\n const symbol = item.symbol;\n const history = fundingHistory?.find((h) => h.symbol === symbol);\n\n const fundingRate = fundingRates[symbol];\n\n const fundingInterval = getFundingInterval(\n fundingRate(\"next_funding_time\"),\n fundingRate(\"last_funding_rate_timestamp\"),\n );\n\n return {\n symbol,\n estFunding: fundingRate(\"est_funding_rate\"),\n lastFunding: fundingRate(\"last_funding_rate\"),\n fundingInterval,\n funding1d: history?.funding?.[\"1d\"]?.rate ?? 0,\n funding3d: history?.funding?.[\"3d\"]?.rate ?? 0,\n funding7d: history?.funding?.[\"7d\"]?.rate ?? 0,\n funding14d: history?.funding?.[\"14d\"]?.rate ?? 0,\n funding30d: history?.funding?.[\"30d\"]?.rate ?? 0,\n funding90d: history?.funding?.[\"90d\"]?.rate ?? 0,\n \"1dPositive\": posRates[\"1d\"][symbol] ?? \"-\",\n \"3dPositive\": posRates[\"3d\"][symbol] ?? \"-\",\n \"7dPositive\": posRates[\"7d\"][symbol] ?? \"-\",\n \"14dPositive\": posRates[\"14d\"][symbol] ?? \"-\",\n \"30dPositive\": posRates[\"30d\"][symbol] ?? \"-\",\n \"90dPositive\": posRates[\"90d\"][symbol] ?? \"-\",\n };\n });\n }, [marketData, fundingHistory, fundingRates, getPositiveRates]);\n\n const filteredData = useMemo(() => {\n return searchBySymbol(processedData, searchValue, \"base-type\");\n }, [processedData, searchValue, pagination]);\n\n const dataSource = useMemo(\n () => getSortedList(filteredData),\n [filteredData, getSortedList],\n );\n\n return { dataSource, isLoading: isHistoryLoading, pagination, onSort };\n};\n\nfunction getFundingInterval(\n next_funding_time: number,\n last_funding_rate_timestamp: number,\n) {\n // default interval is 8 hours\n if (!next_funding_time || !last_funding_rate_timestamp) return 8;\n const diff = next_funding_time - last_funding_rate_timestamp;\n\n return Math.round(diff / 3600000);\n}\n","import { FC, useState } from \"react\";\nimport { DataTable, cn } from \"@orderly.network/ui\";\nimport { useFundingOverviewColumns } from \"./columns\";\nimport { FundingOverviewReturn } from \"./fundingOverview.script\";\n\nexport type MobileFundingOverviewProps = FundingOverviewReturn;\n\nexport const MobileFundingOverview: FC<MobileFundingOverviewProps> = (\n props,\n) => {\n const { dataSource, isLoading, onSort } = props;\n const [selectedPeriod, setSelectedPeriod] = useState(\"1dPositive\");\n\n const columns = useFundingOverviewColumns(selectedPeriod, setSelectedPeriod);\n\n return (\n <DataTable\n columns={columns}\n dataSource={dataSource}\n loading={isLoading}\n onRow={() => {\n return {\n className: cn(\"oui-h-[34px] oui-cursor-pointer\"),\n };\n }}\n classNames={{\n header: \"oui-h-9\",\n body: \"oui-text-2xs\",\n }}\n onSort={onSort}\n manualSorting\n generatedRowKey={(record) => record.symbol}\n />\n );\n};\n","import { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileFundingOverview } from \"./fundingOverview.mobile.ui\";\nimport { useFundingOverviewScript } from \"./fundingOverview.script\";\nimport { FundingOverview } from \"./fundingOverview.ui\";\n\nexport const FundingOverviewWidget: FC = () => {\n const props = useFundingOverviewScript();\n const { isMobile } = useScreen();\n return isMobile ? (\n <MobileFundingOverview {...props} />\n ) : (\n <FundingOverview {...props} />\n );\n};\n","export { FundingOverview } from \"./fundingOverview.ui\";\nexport { useFundingOverviewScript } from \"./fundingOverview.script\";\nexport { FundingOverviewWidget } from \"./fundingOverview.widget\";\n","import { useMemo } from \"react\";\nimport { useMarketsContext } from \"../marketsProvider\";\n\nexport const useEXchanges = () => {\n const { comparisonProps } = useMarketsContext();\n const brokerName = comparisonProps?.exchangesName || \"Orderly\";\n const brokerIconSrc =\n comparisonProps?.exchangesIconSrc ||\n \"https://oss.orderly.network/static/exchange_logo/orderly.png\";\n const exchanges = useMemo<string[]>(() => {\n return [\n brokerName,\n \"Binance\",\n `${brokerName} - Binance`,\n \"OKX\",\n `${brokerName} - OKX`,\n \"Bybit\",\n `${brokerName} - Bybit`,\n \"dYdX\",\n `${brokerName} - dYdX`,\n \"Bitget\",\n `${brokerName} - Bitget`,\n \"KuCoin\",\n `${brokerName} - KuCoin`,\n ];\n }, [comparisonProps?.exchangesName]);\n return {\n exchanges,\n brokerName,\n brokerIconSrc: brokerIconSrc,\n };\n};\n","import { useCallback, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Flex, TokenIcon, useScreen } from \"@orderly.network/ui\";\nimport type { Column } from \"@orderly.network/ui\";\nimport { Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { OrderlyIcon } from \"../../icons\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { useEXchanges } from \"./useEXchanges\";\n\nconst CDN_PREFIX = \"https://oss.orderly.network/static/exchange_logo\";\n\nexport const useFundingColumns = () => {\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n const { exchanges, brokerName, brokerIconSrc } = useEXchanges();\n const getImgSrc = useCallback(\n (val: string) => {\n if (val === brokerName) {\n return brokerIconSrc;\n }\n return `${CDN_PREFIX}/${val.toLowerCase().replace(\" \", \"_\")}.png`;\n },\n [brokerName, brokerIconSrc],\n );\n return useMemo<Column[]>(() => {\n return [\n {\n title: t(\"markets.column.market\"),\n dataIndex: \"symbol\",\n width: 150,\n onSort: true,\n className: isMobile ? \"oui-pl-0\" : undefined,\n render: (value) => (\n <Flex gapX={1}>\n <TokenIcon\n symbol={value}\n className={isMobile ? \"oui-size-[18px]\" : \"oui-size-5\"}\n />\n <SymbolDisplay formatString=\"base\" size=\"xs\">\n {value}\n </SymbolDisplay>\n </Flex>\n ),\n },\n {\n title: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n dataIndex: \"openInterest\",\n width: 120,\n // align: \"right\",\n onSort: true,\n render: (value) => {\n if (value === \"-\") {\n return \"-\";\n }\n return (\n <Text.numeral currency=\"$\" dp={0} rm={Decimal.ROUND_DOWN}>\n {value}\n </Text.numeral>\n );\n },\n },\n ...exchanges.map<Column>((item) => {\n const imgSrc = getImgSrc(item);\n return {\n title: (\n <Flex justify=\"start\" itemAlign=\"center\" gap={1}>\n {!item.includes(\" - \") && imgSrc && (\n <img\n src={imgSrc}\n className={cn(\n \"oui-size-6 oui-rounded-full oui-object-cover\",\n isMobile ? \"oui-size-[18px]\" : \"oui-size-6\",\n )}\n />\n )}\n {item}\n </Flex>\n ),\n dataIndex: item,\n onSort: true,\n width: item.includes(\" - \") ? 160 : 130,\n render(value: number | null) {\n if (value === null) {\n return \"-\";\n }\n return (\n <Text.numeral\n rule=\"percentages\"\n dp={5}\n coloring={item.includes(\" - \") || item === brokerName}\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n },\n };\n }),\n ];\n }, [t, isMobile, exchanges, brokerName, getImgSrc]);\n};\n","import type { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { DataTable } from \"@orderly.network/ui\";\nimport { useFundingColumns } from \"./columns\";\nimport { FundingComparisonReturn } from \"./fundingComparison.script\";\n\nexport const FundingComparison: FC<FundingComparisonReturn> = (props) => {\n const columns = useFundingColumns();\n\n return (\n <DataTable\n columns={columns}\n dataSource={props.dataSource}\n loading={props.isLoading}\n onRow={() => {\n return {\n className: cn(\"oui-h-[48px] oui-cursor-pointer\"),\n };\n }}\n classNames={{\n header: \"oui-h-12\",\n }}\n bordered\n pagination={props.pagination}\n />\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useFundingRates,\n useMarketsStream,\n useQuery,\n} from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSort, searchBySymbol } from \"../../utils\";\nimport { useEXchanges } from \"./useEXchanges\";\n\nfunction getOpenInterest(open_interest?: number, index_price?: number) {\n return new Decimal(open_interest || 0).mul(index_price || 0).toNumber();\n}\n\nexport type FundingComparisonReturn = ReturnType<\n typeof useFundingComparisonScript\n>;\n\nexport const useFundingComparisonScript = () => {\n const { pagination } = usePagination({ pageSize: 10 });\n const { onSort, getSortedList } = useSort();\n const { searchValue } = useMarketsContext();\n const { exchanges, brokerName } = useEXchanges();\n const fundingRates = useFundingRates();\n\n const { data, isLoading } = useQuery<\n Array<{ symbol: string; exchanges: Array<{ name: string; last: number }> }>\n >(\"/v1/public/market_info/funding_comparison\");\n const { data: futures } = useMarketsStream();\n\n const processedData = useMemo(() => {\n if (!Array.isArray(data) || !data.length) {\n return [];\n }\n return data.map((row) => {\n const target = futures?.find((item) => item.symbol === row.symbol);\n const result: Record<PropertyKey, any> = {\n symbol: row.symbol,\n openInterest: target\n ? getOpenInterest(\n target?.open_interest as number,\n target?.index_price as number,\n )\n : \"-\",\n };\n for (const item of exchanges) {\n const isCompare = item.includes(` - `);\n if (!isCompare) {\n if (item === brokerName) {\n const rate = fundingRates[row.symbol];\n result[item] = rate(\"last_funding_rate\") ?? null;\n } else {\n const exchange = row.exchanges?.find(\n (e) => e.name.toLowerCase() === item.toLowerCase(),\n );\n result[item] = exchange?.last ?? null;\n }\n } else {\n const [, exchangeName] = item.replace(/ /g, \"\").split(\"-\");\n const rate = fundingRates[row.symbol];\n const wooFiRate = rate(\"last_funding_rate\") ?? null;\n const exchange = row.exchanges?.find(\n (e) => e.name.toLowerCase() === exchangeName.toLowerCase(),\n );\n const otherRate = exchange?.last ?? null;\n if (wooFiRate !== null && otherRate !== null) {\n result[item] = new Decimal(wooFiRate).sub(otherRate).toString();\n } else {\n result[item] = null;\n }\n }\n }\n return result;\n });\n }, [data, futures, fundingRates, exchanges, brokerName]);\n\n const filteredData = useMemo(() => {\n return searchBySymbol(processedData, searchValue, \"base-type\");\n }, [processedData, searchValue, pagination]);\n\n const dataSource = useMemo(\n () => getSortedList(filteredData),\n [getSortedList, filteredData],\n );\n\n return {\n dataSource,\n isLoading,\n pagination,\n onSort,\n };\n};\n","import type { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { DataTable } from \"@orderly.network/ui\";\nimport { useFundingColumns } from \"./columns\";\nimport { FundingComparisonReturn } from \"./fundingComparison.script\";\n\nexport const MobileFundingComparison: FC<FundingComparisonReturn> = (props) => {\n const columns = useFundingColumns();\n\n return (\n <DataTable\n columns={columns}\n dataSource={props.dataSource}\n loading={props.isLoading}\n onRow={() => {\n return {\n className: cn(\"oui-h-[34px] oui-cursor-pointer\"),\n };\n }}\n onSort={props.onSort}\n classNames={{\n header: \"oui-h-9\",\n body: \"oui-text-2xs\",\n }}\n manualSorting\n />\n );\n};\n","import type { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileFundingComparison } from \"./fundingComparison.mobile.ui\";\nimport { useFundingComparisonScript } from \"./fundingComparison.script\";\nimport { FundingComparison } from \"./fundingComparison.ui\";\n\nexport const FundingComparisonWidget: FC = () => {\n const state = useFundingComparisonScript();\n const { isMobile } = useScreen();\n return isMobile ? (\n <MobileFundingComparison {...state} />\n ) : (\n <FundingComparison {...state} />\n );\n};\n","export { FundingComparison } from \"./fundingComparison.ui\";\nexport { useFundingComparisonScript } from \"./fundingComparison.script\";\nexport { FundingComparisonWidget } from \"./fundingComparison.widget\";\n","import React from \"react\";\nimport { pick } from \"ramda\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { CollapseIcon, ExpandIcon } from \"../../icons\";\nimport { ExpandMarketsWidget } from \"../expandMarkets\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport type { SideMarketsScriptReturn } from \"./sideMarkets.script\";\n\nexport const SideMarketsHeader: React.FC<\n Pick<\n SideMarketsScriptReturn,\n \"resizeable\" | \"panelSize\" | \"onPanelSizeChange\"\n >\n> = (props) => {\n const { resizeable, panelSize, onPanelSizeChange } = props;\n\n const { t } = useTranslation();\n\n const cls = cn(\n \"oui-text-base-contrast-36\",\n resizeable\n ? \"oui-cursor-pointer hover:oui-text-base-contrast-80\"\n : \"oui-cursor-not-allowed\",\n );\n\n return (\n <Flex\n className={\n panelSize === \"small\"\n ? \"oui-absolute oui-end-[-20px] oui-z-50\"\n : \"oui-relative\"\n }\n justify={panelSize === \"large\" ? \"between\" : \"center\"}\n width=\"100%\"\n px={3}\n >\n {panelSize === \"large\" && (\n <Text size=\"base\" intensity={80}>\n {t(\"common.markets\")}\n </Text>\n )}\n {panelSize === \"large\" && (\n <div\n onClick={resizeable ? () => onPanelSizeChange?.(\"middle\") : undefined}\n >\n <CollapseIcon className={cls} />\n </div>\n )}\n {(panelSize === \"middle\" || panelSize === \"small\") && (\n <div\n onClick={resizeable ? () => onPanelSizeChange?.(\"large\") : undefined}\n >\n <ExpandIcon className={cls} />\n </div>\n )}\n </Flex>\n );\n};\n\nexport type SideMarketsProps = SideMarketsScriptReturn & { className?: string };\n\nexport const SideMarkets: React.FC<SideMarketsProps> = (props) => {\n const { panelSize, activeTab, onTabChange, className, tabSort } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const { getFavoritesProps } = useFavoritesProps();\n\n const renderContent = () => {\n if (panelSize === \"large\") {\n return (\n <ExpandMarketsWidget\n activeTab={activeTab}\n onTabChange={onTabChange}\n symbol={symbol}\n onSymbolChange={onSymbolChange}\n />\n );\n }\n return (\n <MarketsListWidget\n type={activeTab}\n initialSort={tabSort[activeTab]}\n panelSize={\"middle\"}\n {...getFavoritesProps(activeTab)}\n />\n );\n };\n\n return (\n <Flex\n id=\"oui-side-markets\"\n className={cn(\"oui-relative oui-font-semibold\", className)}\n direction=\"column\"\n gapY={5}\n height=\"100%\"\n width=\"100%\"\n >\n <SideMarketsHeader\n {...pick([\"resizeable\", \"panelSize\", \"onPanelSizeChange\"], props)}\n />\n <Box\n width=\"100%\"\n className={cn(\n panelSize === \"large\" && \"oui-h-[calc(100%_-_56px)]\",\n panelSize === \"middle\" && \"oui-h-[calc(100%_-_52px)]\",\n )}\n >\n {renderContent()}\n </Box>\n </Flex>\n );\n};\n","import { MouseEventHandler, useCallback } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, cn, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { DeleteIcon, TopIcon } from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport {\n get24hPercentageColumn,\n getLastColumn,\n getSymbolColumn,\n} from \"../shared/column\";\n\nexport const useDropDownMarketsColumns = () => {\n const { t } = useTranslation();\n\n return useCallback(\n (favorite: FavoriteInstance, isFavoriteList = false) => {\n return [\n getSymbolColumn(favorite, isFavoriteList),\n getLastColumn(),\n get24hPercentageColumn(),\n {\n title: t(\"common.volume\"),\n dataIndex: \"24h_amount\",\n align: \"right\",\n onSort: true,\n className: \"oui-relative\",\n width: 80,\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const iconCls =\n \"oui-w-4 oui-h-4 oui-text-base-contrast-54 hover:oui-text-base-contrast\";\n\n const actions = (\n <div className={cn(\"oui-absolute oui-right-1 oui-top-[3px]\")}>\n <Flex\n className={cn(\n \"oui-bg-primary-darken oui-py-[6px]\",\n \"oui-hidden group-hover:oui-inline-flex\",\n )}\n r=\"base\"\n width={52}\n justify=\"center\"\n itemAlign=\"end\"\n gapX={2}\n >\n <TopIcon\n className={iconCls}\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n />\n <DeleteIcon className={iconCls} onClick={onDelSymbol} />\n </Flex>\n </div>\n );\n return (\n <>\n {isFavoriteList && actions}\n <Text.numeral\n rule=\"human\"\n dp={2}\n rm={Decimal.ROUND_DOWN}\n className={cn(isFavoriteList && \"group-hover:oui-invisible\")}\n >\n {value}\n </Text.numeral>\n </>\n );\n },\n },\n ] as Column[];\n },\n [t],\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CloseIcon,\n cn,\n Flex,\n TabPanel,\n Tabs,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n} from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport { MarketsTabName } from \"../../type\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { RwaTab } from \"../rwaTab\";\nimport { SearchInput } from \"../searchInput\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport { useDropDownMarketsColumns } from \"./column\";\nimport { DropDownMarketsScriptReturn } from \"./dropDownMarkets.script\";\n\nexport type DropDownMarketsProps = DropDownMarketsScriptReturn & {\n contentClassName?: string;\n};\n\nexport const DropDownMarkets: React.FC<\n PropsWithChildren<DropDownMarketsProps>\n> = (props) => {\n return (\n <DropdownMenuRoot open={props.open} onOpenChange={props.onOpenChange}>\n <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(e) => e.preventDefault()}\n onClick={(e) => e.stopPropagation()}\n align=\"start\"\n alignOffset={-32}\n sideOffset={20}\n className={cn(\n \"oui-markets-dropdown-menu-content oui-bg-base-8 oui-p-0\",\n props.contentClassName,\n )}\n >\n <DropDownMarketsConetnt {...props} hide={props.hide} />\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n\nexport const DropDownMarketsConetnt: React.FC<DropDownMarketsProps> = (\n props,\n) => {\n const { activeTab, onTabChange, tabSort, onTabSort } = props;\n\n const { t } = useTranslation();\n\n const getColumns = useDropDownMarketsColumns();\n\n const search = (\n <Flex mx={3} gapX={3} pt={3} pb={2}>\n <SearchInput\n classNames={{\n root: \"oui-w-full\",\n }}\n />\n <CloseIcon\n size={12}\n className=\"oui-cursor-pointer oui-text-base-contrast-80\"\n onClick={props.hide}\n opacity={1}\n />\n </Flex>\n );\n\n const cls = \"oui-h-[calc(100%_-_36px)]\";\n\n const { getFavoritesProps, renderEmptyView } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n return (\n <div className={cls}>\n <MarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n getColumns={getColumns}\n tableClassNames={{\n root: \"!oui-bg-base-8\",\n scroll: \"oui-pb-5 oui-px-1\",\n }}\n rowClassName=\"!oui-h-[34px]\"\n {...getFavoritesProps(type)}\n emptyView={renderEmptyView({\n type,\n onClick: () => {\n onTabChange(MarketsTabName.All);\n },\n })}\n />\n </div>\n );\n };\n\n return (\n <Box\n className={cn(\"oui-overflow-hidden oui-font-semibold\")}\n height=\"100%\"\n intensity={800}\n >\n {search}\n\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n tabsList: \"oui-my-[6px] oui-px-3\",\n tabsContent: \"oui-h-full\",\n }}\n className={cls}\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n value={MarketsTabName.NewListing}\n >\n {renderTab(MarketsTabName.NewListing)}\n </TabPanel>\n <TabPanel title={t(\"markets.recent\")} value={MarketsTabName.Recent}>\n {renderTab(MarketsTabName.Recent)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { MarketsTabName } from \"../../type\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type DropDownMarketsScriptReturn = ReturnType<\n typeof useDropDownMarketsScript\n>;\n\nconst DROPDOWN_MARKETS_SEL_TAB_KEY = \"orderly_dropdown_markets_sel_tab_key\";\n\nconst DROPDOWN_MARKETS_TAB_SORT_STORAGE_KEY =\n \"orderly_dropdown_markets_tab_sort\";\n\nexport function useDropDownMarketsScript() {\n const [open, setOpen] = useState(false);\n\n const [activeTab, setActiveTab] = useLocalStorage(\n DROPDOWN_MARKETS_SEL_TAB_KEY,\n MarketsTabName.All,\n );\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: DROPDOWN_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const { clearSearchValue } = useMarketsContext();\n\n const hide = () => {\n setOpen(false);\n };\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab: activeTab as MarketsTabName,\n onTabChange: (value: string) => setActiveTab(value as MarketsTabName),\n open,\n onOpenChange: setOpen,\n hide,\n tabSort,\n onTabSort,\n };\n}\n","import React, { PropsWithChildren } from \"react\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useDropDownMarketsScript } from \"./dropDownMarkets.script\";\nimport { DropDownMarkets, DropDownMarketsProps } from \"./dropDownMarkets.ui\";\n\nexport type DropDownMarketsWidgetProps = MarketsProviderProps &\n Pick<DropDownMarketsProps, \"contentClassName\">;\n\nexport const DropDownMarketsWidget: React.FC<\n PropsWithChildren<DropDownMarketsWidgetProps>\n> = (props) => {\n const state = useDropDownMarketsScript();\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <DropDownMarkets {...state} contentClassName={props.contentClassName}>\n {props.children}\n </DropDownMarkets>\n </MarketsProvider>\n );\n};\n","export { DropDownMarkets, DropDownMarketsConetnt } from \"./dropDownMarkets.ui\";\nexport { useDropDownMarketsScript } from \"./dropDownMarkets.script\";\nexport { useDropDownMarketsColumns } from \"./column\";\nexport { DropDownMarketsWidget } from \"./dropDownMarkets.widget\";\n","import React from \"react\";\nimport { cn, Flex, Tooltip, Text } from \"@orderly.network/ui\";\n\ninterface DataItemProps {\n label: string;\n value: React.ReactNode;\n hint?: React.ReactNode;\n}\n\nexport const DataItem: React.FC<DataItemProps> = (props) => {\n const { label, value, hint } = props;\n return (\n <Flex direction=\"column\" itemAlign=\"start\">\n <Tooltip\n open={hint ? undefined : false}\n content={hint}\n className=\"oui-max-w-[330px] oui-bg-base-6 \"\n arrow={{ className: \"oui-fill-base-6\" }}\n delayDuration={300}\n >\n <Text\n size=\"2xs\"\n intensity={36}\n className={cn(\n \"oui-data-label\",\n \"oui-whitespace-nowrap oui-break-normal\",\n hint &&\n \"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\",\n )}\n >\n {label}\n </Text>\n </Tooltip>\n <Text\n size=\"2xs\"\n intensity={98}\n className={cn(\n \"oui-data-value\",\n \"oui-whitespace-nowrap oui-break-normal oui-leading-[20px]\",\n )}\n >\n {value}\n </Text>\n </Flex>\n );\n};\n","import React from \"react\";\nimport { cn, Flex, Text, TokenIcon, Divider } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport interface MarketItemProps {\n symbol: string;\n tickerData: {\n \"24h_close\": number;\n change: number;\n quote_dp: number;\n };\n isActive: boolean;\n onSymbolClick: (symbol: string) => void;\n}\n\nconst MarketItemComponent: React.FC<MarketItemProps> = (props) => {\n const { symbol, tickerData, isActive, onSymbolClick } = props;\n\n const handleClick = React.useCallback(() => {\n onSymbolClick(symbol);\n }, [symbol, onSymbolClick]);\n\n return (\n <Flex\n direction=\"row\"\n className={cn(\n \"oui-mr-3 oui-h-[18px] oui-shrink-0 oui-cursor-pointer oui-items-center oui-rounded\",\n \"oui-transition-all oui-duration-200\",\n )}\n onClick={handleClick}\n >\n {/* Symbol */}\n <Flex gapX={1} itemAlign=\"center\" className=\"oui-mr-[6px]\">\n <TokenIcon symbol={symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay\n formatString=\"base\"\n size=\"2xs\"\n className=\"oui-text-base-contrast-80\"\n >\n {symbol}\n </SymbolDisplay>\n </Flex>\n\n {/* Price */}\n <Flex gapX={1} className=\"oui-mr-[6px]\">\n <Text.numeral\n dp={tickerData.quote_dp || 2}\n size=\"xs\"\n className=\"oui-text-base-contrast-80\"\n >\n {tickerData[\"24h_close\"]}\n </Text.numeral>\n </Flex>\n\n {/* Change */}\n <Flex gapX={1} className=\"oui-mr-3\">\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"xs\"\n >\n {tickerData.change}\n </Text.numeral>\n </Flex>\n\n {/* Divider */}\n <Divider direction=\"vertical\" className=\"oui-h-[18px] oui-border-line\" />\n </Flex>\n );\n};\n\n// Memoize the component to prevent unnecessary re-renders\nexport const MarketItem = React.memo<MarketItemProps>(\n MarketItemComponent,\n (prevProps, nextProps) => {\n return (\n prevProps.symbol === nextProps.symbol &&\n prevProps.isActive === nextProps.isActive &&\n prevProps.tickerData[\"24h_close\"] === nextProps.tickerData[\"24h_close\"] &&\n prevProps.tickerData.change === nextProps.tickerData.change &&\n prevProps.tickerData.quote_dp === nextProps.tickerData.quote_dp &&\n prevProps.onSymbolClick === nextProps.onSymbolClick\n );\n },\n);\n\nMarketItem.displayName = \"MarketItem\";\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport { useMarkets, MarketsType } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex, Text, cn, Checkbox, Divider } from \"@orderly.network/ui\";\nimport { FilterIcon } from \"../../icons\";\nimport type { MarketType } from \"./horizontalMarkets.script\";\n\nexport type DropdownPos = \"top\" | \"bottom\";\n\nexport type MarketTypeFilterProps = {\n selectedMarketType: MarketType;\n onMarketTypeChange: (marketType: MarketType) => void;\n className?: string;\n position?: DropdownPos;\n};\n\nconst marketTypeBase: Array<{\n value: MarketType;\n label: string;\n translationKey: string;\n}> = [\n { value: \"recent\", label: \"Recent\", translationKey: \"Recent\" },\n { value: \"all\", label: \"All Markets\", translationKey: \"All\" },\n { value: \"newListing\", label: \"New Listing\", translationKey: \"New listing\" },\n];\n\nconst marketTypeFavorites: Array<{\n value: MarketType;\n label: string;\n translationKey: string;\n}> = [{ value: \"favorites\", label: \"Favorites\", translationKey: \"Favorites\" }];\n\nexport const MarketTypeFilter: React.FC<MarketTypeFilterProps> = (props) => {\n const {\n selectedMarketType,\n onMarketTypeChange,\n className,\n position = \"bottom\" as DropdownPos,\n } = props;\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n // Access shared favorites store for tabs rendering\n const [, favorite] = useMarkets(MarketsType.FAVORITES);\n const hasFavorites = (favorite?.favorites?.length || 0) > 0;\n\n // Handle click outside to close dropdown\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n // Open dropdown\n const handleFilterClick = useCallback(() => {\n setIsOpen((prev) => !prev);\n }, []);\n\n // Handle option click\n const handleOptionClick = useCallback(\n (marketType: MarketType) => {\n onMarketTypeChange(marketType);\n setIsOpen(false);\n },\n [onMarketTypeChange],\n );\n\n return (\n <Box\n ref={dropdownRef}\n className={cn(\"oui-relative oui-inline-block\", className)}\n >\n {/* Filter Button */}\n <Flex\n className={cn(\"oui-cursor-pointer oui-rounded\")}\n itemAlign=\"center\"\n onClick={handleFilterClick}\n >\n <FilterIcon\n className={cn(\n \"oui-size-[18px] oui-text-base-contrast-36 hover:oui-text-base-contrast-80 oui-transition-colors\",\n )}\n />\n </Flex>\n\n {/* Dropdown Menu */}\n {isOpen && (\n <div className=\"oui-text-base-contrast-54\">\n <Box\n className={cn(\n \"oui-absolute oui-left-0 oui-z-50\",\n \"oui-bg-base-9 oui-border oui-border-line-6 oui-rounded-[12px]\",\n \"oui-shadow-lg oui-w-[320px] oui-p-5\",\n // animation\n \"oui-animate-in oui-fade-in-0 oui-zoom-in-95\",\n position === \"top\"\n ? \"oui-bottom-full oui-mb-1 oui-slide-in-from-bottom-2\"\n : \"oui-top-full oui-mt-1 oui-slide-in-from-top-2\",\n )}\n >\n <Flex direction=\"column\" gapY={3} itemAlign=\"start\">\n {/* Base Market Types */}\n <Flex\n direction=\"row\"\n gapX={3}\n wrap=\"wrap\"\n gapY={1}\n className=\"oui-gap-x-2 md:oui-gap-x-3\"\n >\n {marketTypeBase.map((option) => (\n <Flex\n key={option.value}\n className={cn(\"oui-cursor-pointer\")}\n itemAlign=\"center\"\n onClick={() => handleOptionClick(option.value)}\n >\n {/* Checkbox */}\n <Checkbox\n data-testid={`oui-testid-marketType-${option.value}-checkBox`}\n id={`toggle_market_type_${option.value}`}\n className=\"oui-peer\"\n color=\"white\"\n checked={selectedMarketType === option.value}\n />\n\n <label\n htmlFor={`toggle_market_type_${option.value}`}\n className={cn(\n \"oui-text-2xs oui-ml-1\",\n \"oui-break-normal oui-whitespace-nowrap oui-cursor-pointer\",\n )}\n >\n {option.translationKey}\n </label>\n </Flex>\n ))}\n </Flex>\n\n {hasFavorites && (\n <>\n {/* Divider */}\n <Divider\n className=\"oui-w-full\"\n direction=\"horizontal\"\n intensity={16}\n />\n\n {/* Favorites Title */}\n <Text className=\"oui-text-xs oui-text-base-contrast-54 oui-font-medium\">\n Favorites\n </Text>\n\n {/* Favorites Tabs as checkbox list */}\n <Flex\n direction=\"row\"\n gapX={3}\n wrap=\"wrap\"\n gapY={1}\n className=\"oui-gap-x-2 md:oui-gap-x-3\"\n >\n {favorite.favoriteTabs?.slice(0, 10)?.map((tab) => {\n const isActiveTab =\n selectedMarketType === \"favorites\" &&\n favorite.selectedFavoriteTab?.id === tab.id;\n const htmlId = `toggle_market_type_favorites_${tab.id}`;\n return (\n <Flex\n key={tab.id}\n className={cn(\"oui-cursor-pointer\")}\n itemAlign=\"center\"\n onClick={() => {\n favorite.updateSelectedFavoriteTab(tab);\n onMarketTypeChange(\"favorites\");\n setIsOpen(false);\n }}\n >\n <Checkbox\n data-testid={`oui-testid-marketType-favorites-${tab.id}-checkBox`}\n id={htmlId}\n className=\"oui-peer\"\n color=\"white\"\n checked={isActiveTab}\n />\n\n <label\n htmlFor={htmlId}\n className={cn(\n \"oui-text-2xs oui-ml-1\",\n \"oui-break-normal oui-whitespace-nowrap oui-cursor-pointer\",\n )}\n >\n {tab.name}\n </label>\n </Flex>\n );\n })}\n </Flex>\n </>\n )}\n </Flex>\n </Box>\n </div>\n )}\n </Box>\n );\n};\n","import React from \"react\";\nimport { Box, cn, Flex, Marquee } from \"@orderly.network/ui\";\nimport type { HorizontalMarketsScriptReturn } from \"./horizontalMarkets.script\";\nimport { MarketItem } from \"./marketItem.ui\";\nimport { MarketTypeFilter } from \"./marketTypeFilter.ui\";\nimport type { DropdownPos } from \"./marketTypeFilter.ui\";\n\nexport type HorizontalMarketsProps = HorizontalMarketsScriptReturn & {\n className?: string;\n dropdownPos?: DropdownPos;\n};\n\nexport const HorizontalMarkets = React.memo<HorizontalMarketsProps>((props) => {\n const {\n symbols,\n tickerData,\n currentSymbol,\n onSymbolClick,\n selectedMarketType,\n onMarketTypeChange,\n className,\n dropdownPos,\n } = props;\n\n // Memoize the render function to prevent unnecessary re-renders\n const renderMarketItem = React.useCallback(\n (symbol: string, index: number) => {\n const data = tickerData[symbol];\n const isActive = currentSymbol === symbol;\n\n if (!data) {\n return null;\n }\n\n return (\n <MarketItem\n key={symbol}\n symbol={symbol}\n tickerData={data}\n isActive={isActive}\n onSymbolClick={onSymbolClick}\n />\n );\n },\n [tickerData, currentSymbol, onSymbolClick],\n );\n\n const carouselOptions = React.useMemo(\n () => ({\n loop: true,\n align: \"start\" as const,\n axis: \"x\" as const,\n }),\n [],\n );\n\n const autoScrollOptions = React.useMemo(\n () => ({\n speed: 1,\n direction: \"forward\" as const,\n stopOnMouseEnter: true,\n }),\n [],\n );\n\n return (\n <Box\n className={cn(\n \"oui-horizontal-markets\",\n \"oui-bg-base-9 oui-rounded-[12px]\",\n \"oui-w-full oui-px-3 oui-py-2\",\n className,\n )}\n >\n <Flex\n direction=\"row\"\n gapX={3}\n itemAlign=\"center\"\n className=\"oui-size-full\"\n >\n {/* Filter Button */}\n <MarketTypeFilter\n selectedMarketType={selectedMarketType}\n onMarketTypeChange={onMarketTypeChange}\n position={dropdownPos}\n />\n\n {/* Markets List */}\n <Marquee\n data={symbols}\n renderItem={renderMarketItem}\n carouselOptions={carouselOptions}\n autoScrollOptions={autoScrollOptions}\n className=\"oui-h-full\"\n />\n </Flex>\n </Box>\n );\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n HorizontalMarkets.displayName = \"HorizontalMarkets\";\n}\n","import type { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { FundingComparisonWidget } from \"../../../components/fundingComparison\";\nimport { FundingOverviewWidget } from \"../../../components/fundingOverview\";\nimport { SearchInput } from \"../../../components/searchInput\";\nimport { FundingScriptReturn } from \"./funding.script\";\n\nexport const MobileFunding: FC<FundingScriptReturn> = (props) => {\n const { t } = useTranslation();\n\n const search = (\n <SearchInput\n classNames={{\n root: cn(\"oui-mb-2 oui-mt-5\"),\n }}\n />\n );\n\n return (\n <Box\n intensity={900}\n p={3}\n mt={2}\n mb={5}\n r=\"xl\"\n height=\"100%\"\n className=\"oui-markets-funding-list\"\n >\n <Tabs\n variant=\"contained\"\n size=\"lg\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n >\n <TabPanel\n title={t(\"common.overview\")}\n value=\"overview\"\n testid=\"oui-testid-funding-overview-tab\"\n >\n <>\n {search}\n <FundingOverviewWidget />\n </>\n </TabPanel>\n <TabPanel\n title={t(\"markets.funding.comparison\")}\n value=\"comparison\"\n testid=\"oui-testid-funding-comparison-tab\"\n >\n <>\n {search}\n <FundingComparisonWidget />\n </>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { useState } from \"react\";\nimport { FundingTabName } from \"../../../type\";\n\nexport type FundingScriptReturn = ReturnType<typeof useFundingScript>;\n\nexport function useFundingScript() {\n const [activeTab, setActiveTab] = useState<FundingTabName>(\n FundingTabName.Overview,\n );\n\n return {\n activeTab,\n onTabChange: setActiveTab,\n };\n}\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport type { FundingScriptReturn } from \"./funding.script\";\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../../../components/searchInput\").then((mod) => {\n return { default: mod.SearchInput };\n }),\n);\n\nconst LazyFundingOverviewWidget = React.lazy(() =>\n import(\"../../../components/fundingOverview\").then((mod) => {\n return { default: mod.FundingOverviewWidget };\n }),\n);\n\nconst LazyFundingComparisonWidget = React.lazy(() =>\n import(\"../../../components/fundingComparison\").then((mod) => {\n return { default: mod.FundingComparisonWidget };\n }),\n);\n\nexport const Funding: React.FC<FundingScriptReturn> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Box\n intensity={900}\n p={6}\n mt={4}\n r=\"2xl\"\n className=\"oui-markets-funding-list\"\n >\n <Tabs\n variant=\"contained\"\n size=\"lg\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n trailing={\n <React.Suspense fallback={null}>\n <LazySearchInput classNames={{ root: \"oui-my-1 oui-w-[240px]\" }} />\n </React.Suspense>\n }\n >\n <TabPanel\n title={t(\"common.overview\")}\n value=\"overview\"\n testid=\"oui-testid-funding-overview-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingOverviewWidget />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"markets.funding.comparison\")}\n value=\"comparison\"\n testid=\"oui-testid-funding-comparison-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingComparisonWidget />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import React from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileFunding } from \"./funding.mobile.ui\";\nimport { useFundingScript } from \"./funding.script\";\nimport { Funding } from \"./funding.ui\";\n\nexport const FundingWidget: React.FC = () => {\n const state = useFundingScript();\n const { isMobile } = useScreen();\n return isMobile ? <MobileFunding {...state} /> : <Funding {...state} />;\n};\n","export { MarketsHeader } from \"./marketsHeader.ui\";\nexport { useMarketsHeaderScript } from \"./marketsHeader.script\";\nexport { MarketsHeaderWidget } from \"./marketsHeader.widget\";\n","export * from \"./pages/home/marketsHeader\";\nexport * from \"./pages/home/marketsDataList\";\n\nexport * from \"./components/marketsListFull\";\nexport * from \"./components/favoritesListFull\";\n\nexport * from \"./components/favoritesDropdownMenu\";\nexport * from \"./components/favoritesTabs\";\nexport * from \"./components/expandMarkets\";\nexport * from \"./components/subMenuMarkets\";\n\nexport * from \"./components/marketsList\";\nexport * from \"./components/fundingOverview\";\nexport * from \"./components/fundingComparison\";\n\nexport * from \"./components/collapseMarkets\";\nexport * from \"./components/sideMarkets\";\nexport * from \"./components/dropDownMarkets\";\nexport * from \"./components/marketsSheet\";\nexport * from \"./components/symbolInfoBar\";\nexport * from \"./components/symbolInfoBarFull\";\nexport * from \"./components/horizontalMarkets\";\n\nexport * from \"./deprecated/newListingList\";\nexport * from \"./deprecated/favoritesList\";\nexport * from \"./deprecated/recentList\";\nexport * from \"./type\";\n\nexport { MarketsHomePage } from \"./pages/home/page\";\nexport { MarketsProvider } from \"./components/marketsProvider\";\nexport { SymbolDisplay } from \"./components/symbolDisplay\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n cn,\n Tabs,\n TabPanel,\n Flex,\n TokenIcon,\n Badge,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport {\n MarketsTabName,\n type FavoriteInstance,\n type SortType,\n} from \"../../type\";\nimport { FavoritesTabWidget } from \"../favoritesTabs\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { RwaTab } from \"../rwaTab\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nconst LIST_ROW_COMPACT = \"oui-h-auto\";\nconst TABLE_CLASSNAMES = {\n scroll: \"oui-px-0\",\n header: \"oui-hidden oui-h-0 oui-p-0\",\n};\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../searchInput\").then((mod) => ({ default: mod.SearchInput })),\n);\n\nexport type SubMenuMarketsProps = {\n activeTab: MarketsTabName;\n onTabChange: (value: string) => void;\n className?: string;\n tabSort: Record<MarketsTabName, SortType | undefined>;\n onTabSort: (type: MarketsTabName) => (sort?: SortType) => void;\n};\n\nconst cls = \"oui-h-[calc(100%_-_36px)]\";\n\ntype MarketTabPanelProps = {\n type: MarketsTabName;\n getColumns: (_favorite: FavoriteInstance, _isFavoritesList: boolean) => any[];\n initialSort?: SortType;\n onSort?: (sort?: SortType) => void;\n dataFilter?: any;\n renderHeader?: (favorite: FavoriteInstance) => React.ReactNode;\n emptyView?: React.ReactNode;\n};\n\nconst MarketTabPanel: React.FC<MarketTabPanelProps> = ({\n type,\n getColumns,\n initialSort,\n onSort,\n dataFilter,\n renderHeader,\n emptyView,\n}) => {\n return (\n <div className={cls}>\n <MarketsListWidget\n type={type}\n getColumns={getColumns}\n tableClassNames={TABLE_CLASSNAMES}\n rowClassName={LIST_ROW_COMPACT}\n dataFilter={dataFilter}\n renderHeader={renderHeader}\n initialSort={initialSort}\n onSort={onSort}\n emptyView={emptyView}\n />\n </div>\n );\n};\n\nexport const SubMenuMarkets: React.FC<SubMenuMarketsProps> = (props) => {\n const { activeTab, onTabChange, className, tabSort, onTabSort } = props;\n const { t } = useTranslation();\n const { getFavoritesProps } = useFavoritesProps();\n\n const getColumns = (\n _favorite: FavoriteInstance,\n _isFavoritesList: boolean,\n ) => {\n return [\n {\n title: \"\",\n dataIndex: \"symbol\",\n className: \"oui-p-2\",\n render: (_: unknown, record: any) => {\n return (\n <div className=\"oui-mx-[-8px]\">\n <Flex gapX={1} itemAlign=\"center\">\n <TokenIcon symbol={record.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {record.symbol}\n </SymbolDisplay>\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n </div>\n );\n },\n },\n ];\n };\n\n return (\n <Box\n className={cn(\n \"oui-overflow-hidden oui-font-semibold oui-bg-base-9\",\n className,\n )}\n height=\"100%\"\n >\n <Box className=\"oui-p-1\">\n <React.Suspense fallback={null}>\n <LazySearchInput />\n </React.Suspense>\n </Box>\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n tabsList: cn(\"oui-my-1\"),\n tabsContent: \"oui-h-full\",\n scrollIndicator: \"oui-mx-1\",\n }}\n className={cn(cls, \"oui-my-1.5\")}\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {(() => {\n const favProps = getFavoritesProps(MarketsTabName.Favorites) as {\n dataFilter?: any;\n };\n return (\n <MarketTabPanel\n type={MarketsTabName.Favorites}\n getColumns={getColumns}\n dataFilter={favProps?.dataFilter}\n renderHeader={(favorite) => (\n <Box className=\"oui-px-1 oui-my-1\">\n <FavoritesTabWidget favorite={favorite} size=\"sm\" />\n </Box>\n )}\n initialSort={tabSort[MarketsTabName.Favorites]}\n onSort={onTabSort(MarketsTabName.Favorites)}\n emptyView={<EmptyDataState />}\n />\n );\n })()}\n </TabPanel>\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n <MarketTabPanel\n type={MarketsTabName.All}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.All]}\n onSort={onTabSort(MarketsTabName.All)}\n />\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n <MarketTabPanel\n type={MarketsTabName.Rwa}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.Rwa]}\n onSort={onTabSort(MarketsTabName.Rwa)}\n />\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n value={MarketsTabName.NewListing}\n >\n <MarketTabPanel\n type={MarketsTabName.NewListing}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.NewListing]}\n onSort={onTabSort(MarketsTabName.NewListing)}\n />\n </TabPanel>\n <TabPanel title={t(\"markets.recent\")} value={MarketsTabName.Recent}>\n <MarketTabPanel\n type={MarketsTabName.Recent}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.Recent]}\n onSort={onTabSort(MarketsTabName.Recent)}\n />\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import React from \"react\";\nimport { MarketsProvider, type MarketsProviderProps } from \"../marketsProvider\";\nimport {\n useSubMenuMarketsScript,\n type SubMenuMarketsScriptOptions,\n} from \"./subMenuMarkets.script\";\nimport { SubMenuMarkets } from \"./subMenuMarkets.ui\";\nimport type { SubMenuMarketsProps } from \"./subMenuMarkets.ui\";\n\nexport type SubMenuMarketsWidgetProps = MarketsProviderProps &\n SubMenuMarketsScriptOptions &\n Pick<SubMenuMarketsProps, \"className\">;\n\nexport const SubMenuMarketsWidget: React.FC<SubMenuMarketsWidgetProps> = (\n props,\n) => {\n const state = useSubMenuMarketsScript({\n activeTab: props.activeTab,\n onTabChange: props.onTabChange,\n });\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <SubMenuMarkets\n activeTab={state.activeTab}\n onTabChange={state.onTabChange}\n tabSort={state.tabSort}\n onTabSort={state.onTabSort}\n className={props.className}\n />\n </MarketsProvider>\n );\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type SubMenuMarketsScriptOptions = {\n activeTab?: MarketsTabName;\n onTabChange?: (tab: MarketsTabName) => void;\n};\n\nexport type SubMenuMarketsScriptReturn = ReturnType<\n typeof useSubMenuMarketsScript\n>;\n\nexport function useSubMenuMarketsScript(options?: SubMenuMarketsScriptOptions) {\n const [activeTab, setActiveTab] = useState<MarketsTabName>(\n (options?.activeTab ?? MarketsTabName.All) as MarketsTabName,\n );\n\n const { clearSearchValue } = useMarketsContext();\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const onTabChange = useCallback(\n (value: string) => {\n if (typeof options?.onTabChange === \"function\") {\n options.onTabChange(value as MarketsTabName);\n } else {\n setActiveTab(value as MarketsTabName);\n }\n },\n [options?.onTabChange],\n );\n\n useEffect(() => {\n if (options?.activeTab !== undefined) {\n setActiveTab(options.activeTab as MarketsTabName);\n }\n }, [options?.activeTab]);\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab,\n onTabChange,\n tabSort,\n onTabSort,\n } as const;\n}\n","export { SideMarkets } from \"./sideMarkets.ui\";\nexport { useSideMarketsScript } from \"./sideMarkets.script\";\nexport { SideMarketsWidget } from \"./sideMarkets.widget\";\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type SideMarketsScriptOptions = {\n resizeable?: boolean;\n panelSize?: \"small\" | \"middle\" | \"large\";\n onPanelSizeChange?: React.Dispatch<\n React.SetStateAction<\"small\" | \"middle\" | \"large\">\n >;\n};\n\nexport type SideMarketsScriptReturn = ReturnType<typeof useSideMarketsScript>;\n\nconst SIDE_MARKETS_SEL_TAB_KEY = \"orderly_side_markets_sel_tab_key\";\n\nexport const useSideMarketsScript = (options?: SideMarketsScriptOptions) => {\n const [panelSize, setPanelSize] = useState(options?.panelSize);\n const [activeTab, setActiveTab] = useLocalStorage(\n SIDE_MARKETS_SEL_TAB_KEY,\n MarketsTabName.All,\n );\n\n const { tabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const onPanelSizeChange = useCallback(\n (size: \"small\" | \"middle\" | \"large\") => {\n if (typeof options?.onPanelSizeChange === \"function\") {\n options.onPanelSizeChange(size);\n } else {\n setPanelSize(size);\n }\n },\n [options?.onPanelSizeChange],\n );\n\n useEffect(() => {\n setPanelSize(options?.panelSize);\n }, [options?.panelSize]);\n\n return {\n resizeable: options?.resizeable ?? true,\n panelSize: panelSize,\n onPanelSizeChange: onPanelSizeChange as React.Dispatch<\n React.SetStateAction<\"small\" | \"middle\" | \"large\">\n >,\n activeTab: activeTab as MarketsTabName,\n onTabChange: setActiveTab,\n tabSort: tabSort,\n } as const;\n};\n","import React from \"react\";\nimport { pick } from \"ramda\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useSideMarketsScript } from \"./sideMarkets.script\";\nimport type { SideMarketsProps } from \"./sideMarkets.ui\";\n\nconst LazySideMarkets = React.lazy(() =>\n import(\"./sideMarkets.ui\").then((mod) => {\n return { default: mod.SideMarkets };\n }),\n);\n\nexport type SideMarketsWidgetProps = MarketsProviderProps &\n Partial<\n Pick<\n SideMarketsProps,\n \"resizeable\" | \"panelSize\" | \"onPanelSizeChange\" | \"className\"\n >\n >;\n\nexport const SideMarketsWidget: React.FC<SideMarketsWidgetProps> = (props) => {\n const state = useSideMarketsScript(\n pick([\"resizeable\", \"panelSize\", \"onPanelSizeChange\"], props),\n );\n return (\n <MarketsProvider {...pick([\"symbol\", \"onSymbolChange\"], props)}>\n <React.Suspense fallback={null}>\n <LazySideMarkets {...state} className={props.className} />\n </React.Suspense>\n </MarketsProvider>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport { MarketsTabName } from \"../../type\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { RwaTab } from \"../rwaTab\";\nimport { SearchInput } from \"../searchInput\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport { getMarketsSheetColumns } from \"./column\";\nimport { MarketsSheetScriptReturn } from \"./marketsSheet.script\";\n\nexport type MarketsSheetProps = MarketsSheetScriptReturn & {\n className?: string;\n};\n\nexport const MarketsSheet: React.FC<MarketsSheetProps> = (props) => {\n const { className, tabSort, onTabSort } = props;\n\n const { t } = useTranslation();\n\n const { getFavoritesProps, renderEmptyView } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n const isFavorites = type === MarketsTabName.Favorites;\n return (\n <MarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n getColumns={getMarketsSheetColumns}\n tableClassNames={{\n root: \"!oui-bg-base-8\",\n scroll: cn(\n \"oui-pb-[env(safe-area-inset-bottom,_20px)]\",\n isFavorites\n ? \"oui-h-[calc(100%_-_70px)]\"\n : \"oui-h-[calc(100%_-_40px)]\",\n ),\n }}\n emptyView={renderEmptyView({\n type,\n onClick: () => {\n props.onTabChange(MarketsTabName.All);\n },\n })}\n {...getFavoritesProps(type)}\n />\n );\n };\n\n return (\n <Box height=\"100%\" className={cn(\"oui-font-semibold\", className)}>\n <Box px={3} mt={3} mb={2}>\n <Text size=\"base\" intensity={80}>\n {t(\"common.markets\")}\n </Text>\n <SearchInput classNames={{ root: \"oui-mt-4\" }} />\n </Box>\n\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (tab: string) => void}\n classNames={{\n tabsList: cn(\"oui-my-[6px]\"),\n tabsContent: \"oui-h-full\",\n scrollIndicator: \"oui-mx-3\",\n }}\n className=\"oui-h-[calc(100%_-_92px)]\"\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { MouseEventHandler, ReactNode } from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { Flex, TokenIcon, Text, Badge, cn, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n DeleteIcon,\n FavoritesIcon2,\n TopIcon,\n UnFavoritesIcon2,\n} from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport const getMarketsSheetColumns = (\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) => {\n return [\n {\n title: `${i18n.t(\"markets.column.market\")} / ${i18n.t(\"common.volume\")}`,\n dataIndex: \"24h_amount\",\n multiSort: {\n fields: [\n {\n sortKey: \"symbol\",\n label: i18n.t(\"markets.column.market\"),\n },\n {\n sortKey: \"24h_amount\",\n label: i18n.t(\"common.volume\"),\n },\n ],\n },\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n let favoritesIcon: ReactNode;\n if (!isFavoriteList) {\n favoritesIcon = (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {record.isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n </FavoritesDropdownMenuWidget>\n );\n }\n return (\n <Flex>\n {favoritesIcon}\n <Flex direction=\"column\" itemAlign=\"start\" gapY={1}>\n <Flex gapX={1}>\n <TokenIcon symbol={record.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {record.symbol}\n </SymbolDisplay>\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n\n <Text.numeral\n intensity={54}\n rule=\"human\"\n dp={2}\n rm={Decimal.ROUND_DOWN}\n >\n {value}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n },\n },\n {\n title: i18n.t(\"markets.column.price&Change\"),\n dataIndex: \"change\",\n align: \"right\",\n onSort: true,\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const iconCls =\n \"oui-w-4 oui-h-4 oui-text-base-contrast-54 hover:oui-text-base-contrast\";\n\n const actions = (\n <div\n className={cn(\n \"oui-absolute oui-right-0 oui-top-[6.5px]\",\n \"oui-hidden group-hover:oui-block\",\n )}\n >\n <Flex\n className={cn(\n \"oui-inline-flex\",\n \"oui-bg-primary-darken oui-py-[6px]\",\n )}\n r=\"base\"\n width={52}\n justify=\"center\"\n itemAlign=\"end\"\n gapX={2}\n >\n <TopIcon\n className={iconCls}\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n />\n <DeleteIcon className={iconCls} onClick={onDelSymbol} />\n </Flex>\n </div>\n );\n\n return (\n <div className=\"oui-relative\">\n {isFavoriteList && actions}\n\n <Flex\n direction=\"column\"\n justify=\"end\"\n itemAlign=\"end\"\n gapY={1}\n className={cn(isFavoriteList && \"group-hover:oui-invisible\")}\n >\n <Text.numeral dp={record.quote_dp || 2} size=\"2xs\">\n {record[\"24h_close\"]}\n </Text.numeral>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {value}\n </Text.numeral>\n </Flex>\n </div>\n );\n },\n },\n ] as Column[];\n};\n","import { useLocalStorage } from \"@orderly.network/hooks\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type MarketsSheetScriptReturn = ReturnType<typeof useMarketsSheetScript>;\n\nconst MARKETS_SHEET_SEL_TAB_KEY = \"orderly_markets_sheet_sel_tab_key\";\n\nexport function useMarketsSheetScript() {\n const { tabSort, onTabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const [activeTab, setActiveTab] = useLocalStorage(\n MARKETS_SHEET_SEL_TAB_KEY,\n MarketsTabName.All,\n );\n\n return {\n tabSort,\n onTabSort,\n activeTab,\n onTabChange: setActiveTab,\n };\n}\n","import React from \"react\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useMarketsSheetScript } from \"./marketsSheet.script\";\nimport { MarketsSheet, MarketsSheetProps } from \"./marketsSheet.ui\";\n\nexport type MarketsSheetWidgetProps = MarketsProviderProps &\n Partial<Pick<MarketsSheetProps, \"className\">>;\n\nexport const MarketsSheetWidget: React.FC<MarketsSheetWidgetProps> = (\n props,\n) => {\n const state = useMarketsSheetScript();\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <MarketsSheet {...state} className={props.className} />\n </MarketsProvider>\n );\n};\n","import { FC, ReactNode } from \"react\";\nimport { Flex, Text, cn, Divider, Badge, TokenIcon } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { TriangleDownIcon } from \"../../icons\";\nimport { MarketsProviderProps } from \"../marketsProvider\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { RwaTooltip } from \"../symbolInfoBarFull/rwaTooltip\";\nimport { UseSymbolInfoBarScriptReturn } from \"./symbolInfoBar.script\";\n\nexport type Layout = \"left\" | \"right\";\n\nexport type SymbolInfoBarProps = Pick<MarketsProviderProps, \"onSymbolChange\"> &\n UseSymbolInfoBarScriptReturn & {\n className?: string;\n trailing?: ReactNode;\n onSymbol?: () => void;\n };\n\nexport const SymbolInfoBar: FC<SymbolInfoBarProps> = (props) => {\n const {\n symbol,\n data,\n leverage,\n onSymbol,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n } = props;\n\n const symbolView = (\n <Flex\n className=\"oui-h-5 oui-cursor-pointer oui-gap-x-[6px]\"\n onClick={onSymbol}\n >\n <SymbolDisplay formatString=\"base\" size=\"sm\">\n {symbol}\n </SymbolDisplay>\n <TriangleDownIcon className=\"oui-size-[14px] oui-text-base-contrast-54\" />\n </Flex>\n );\n\n return (\n <Flex\n className={cn(\n \"oui-symbol-info-bar-mobile\",\n \"oui-h-full oui-font-semibold\",\n props.className,\n )}\n >\n <Flex gapX={3} className=\"oui-h-full oui-flex-1 oui-overflow-hidden\">\n <Flex gapX={3}>\n <TokenIcon symbol={symbol} size=\"xs\" />\n <Flex direction=\"column\" itemAlign=\"start\">\n {symbolView}\n <Flex gap={1}>\n <Badge size=\"xs\" color=\"primary\">\n {leverage}x\n </Badge>\n <RwaTooltip\n isRwa={isRwa}\n open={open}\n closeTimeInterval={closeTimeInterval}\n openTimeInterval={openTimeInterval}\n />\n </Flex>\n </Flex>\n </Flex>\n\n <Divider className=\"oui-h-[38px]\" direction=\"vertical\" intensity={8} />\n <Text.numeral\n size=\"2xs\"\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {data?.[\"change\"]!}\n </Text.numeral>\n </Flex>\n {props.trailing}\n </Flex>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport React from \"react\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Tooltip, Text, cn, modal } from \"@orderly.network/ui\";\nimport { useScreen } from \"@orderly.network/ui\";\n\nexport type RwaTooltipProps = {\n isRwa: boolean;\n open?: boolean;\n closeTimeInterval?: number;\n openTimeInterval?: number;\n};\n\nexport const RwaTooltip = (props: RwaTooltipProps) => {\n const { isRwa, open, closeTimeInterval, openTimeInterval } = props;\n const { isMobile } = useScreen();\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(false);\n\n const timeInterval = open ? closeTimeInterval : openTimeInterval;\n const tooltipContent = useMemo(() => {\n return <Content open={open} timeInterval={timeInterval} />;\n }, [open, t, timeInterval]);\n\n const triggerView = (\n <Flex\n r=\"base\"\n px={2}\n className={cn(\n open ? \"oui-bg-success/15\" : \"oui-bg-danger/15\",\n \"oui-shrink-0\",\n )}\n >\n <Text size=\"2xs\" color={open ? \"success\" : \"danger\"}>\n {open\n ? t(\"trading.rwa.marketHours\")\n : t(\"trading.rwa.outsideMarketHours\")}\n </Text>\n </Flex>\n );\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n e.preventDefault();\n\n modal.alert({\n title: open\n ? t(\"trading.rwa.marketHours\")\n : t(\"trading.rwa.outsideMarketHours\"),\n message: <AlertContent open={open} timeInterval={timeInterval} />,\n });\n };\n\n if (!isRwa) {\n return null;\n }\n\n if (isMobile) {\n return <button onClick={handleClick}>{triggerView}</button>;\n }\n\n return (\n <Tooltip\n content={tooltipContent}\n open={isOpen}\n onOpenChange={setIsOpen}\n disableHoverableContent={false}\n >\n <button\n onMouseEnter={() => {\n setIsOpen(true);\n }}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {triggerView}\n </button>\n </Tooltip>\n );\n};\n\nconst AlertContent = ({\n open,\n timeInterval,\n}: {\n open?: boolean;\n timeInterval?: number;\n}) => {\n const [innerTimeInterval, setInnerTimeInterval] = useState(timeInterval);\n\n useEffect(() => {\n setInnerTimeInterval(timeInterval);\n }, [timeInterval]);\n\n useEffect(() => {\n if (!innerTimeInterval || innerTimeInterval <= 0) {\n return;\n }\n\n const id = setInterval(() => {\n setInnerTimeInterval((prev) => {\n if (!prev || prev <= 1) {\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n return () => {\n clearInterval(id);\n };\n }, [innerTimeInterval]);\n\n return <Content open={open} timeInterval={innerTimeInterval} />;\n};\n\nconst Content = ({\n open,\n timeInterval,\n}: {\n open?: boolean;\n timeInterval?: number;\n}) => {\n const { t } = useTranslation();\n return (\n <Flex\n direction=\"column\"\n gapY={1}\n className=\"oui-text-2xs oui-max-w-[275px]\"\n itemAlign=\"start\"\n py={1}\n >\n {open\n ? t(\"trading.rwa.tooltip.description.open\")\n : t(\"trading.rwa.tooltip.description.close\")}\n\n <div className=\"oui-text-base-contrast-54\">\n {timeInterval && (\n <Trans\n i18nKey={\n !open\n ? \"trading.rwa.tooltip.openIn\"\n : \"trading.rwa.tooltip.closeIn\"\n }\n values={{ timeFormat: timeInterval }}\n components={[\n // @ts-ignore\n <CountdownText key=\"0\" />,\n ]}\n />\n )}\n </div>\n {/* TODO: wait for rwa detail page to be ready */}\n {/* <a\n href=\"https://orderly.network/rwa\"\n target=\"_blank\"\n className=\"oui-flex oui-items-center oui-gap-x-1 oui-text-primary-darken oui-cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n console.log(\"Link clicked in tooltip\");\n }}\n >\n {t(\"trading.rwa.tooltip.checkDetailRules\")}\n <ArrowRightShortIcon color=\"primary\" opacity={1} />\n </a> */}\n </Flex>\n );\n};\n\nconst CountdownText: React.FC<React.PropsWithChildren> = (props) => {\n const { children } = props;\n const { t } = useTranslation();\n const timeInterval = Number(children);\n\n // calculate days\n const days = Math.floor(timeInterval / (60 * 60 * 24));\n const daysStr = days.toString().padStart(2, \"0\");\n\n // calculate hours\n const hours = Math.floor((timeInterval % (60 * 60 * 24)) / (60 * 60));\n const hoursStr = hours.toString().padStart(2, \"0\");\n\n // calculate minutes\n const minutes = Math.floor((timeInterval % (60 * 60)) / 60);\n const minutesStr = minutes.toString().padStart(2, \"0\");\n\n // calculate seconds\n const seconds = timeInterval % 60;\n const secondsStr = seconds.toString().padStart(2, \"0\");\n\n return (\n <span className=\"oui-text-base-contrast oui-px-1\">\n {days > 0 ? (\n <span>\n {daysStr}\n <span className=\"oui-text-base-contrast-54 oui-mr-1 oui-ml-[2px]\">\n {t(\"common.dayShort\")}\n </span>\n </span>\n ) : (\n \"\"\n )}\n {hoursStr}:{minutesStr}:{secondsStr}\n </span>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useGetRwaSymbolInfo,\n useSymbolsInfo,\n useTickerStream,\n} from \"@orderly.network/hooks\";\n\nexport type UseSymbolInfoBarScriptOptions = {\n symbol: string;\n};\n\nexport type UseSymbolInfoBarScriptReturn = ReturnType<\n typeof useSymbolInfoBarScript\n>;\n\nexport function useSymbolInfoBarScript(options: UseSymbolInfoBarScriptOptions) {\n const { symbol } = options;\n const { isRwa, open, closeTimeInterval, openTimeInterval } =\n useGetRwaSymbolInfo(symbol);\n\n const data = useTickerStream(symbol);\n\n const symbolsInfo = useSymbolsInfo();\n\n const leverage = useMemo(() => {\n const info = symbolsInfo[symbol];\n const baseImr = info(\"base_imr\");\n return getLeverage(baseImr);\n }, [symbol, symbolsInfo]);\n\n return {\n symbol,\n data,\n leverage,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n };\n}\n\nfunction getLeverage(base_imr: number) {\n return base_imr ? 1 / base_imr : undefined;\n}\n","import {\n useSymbolInfoBarScript,\n UseSymbolInfoBarScriptOptions,\n} from \"./symbolInfoBar.script\";\nimport { SymbolInfoBar, SymbolInfoBarProps } from \"./symbolInfoBar.ui\";\n\nexport type SymbolInfoBarWidgetPros = UseSymbolInfoBarScriptOptions &\n Pick<SymbolInfoBarProps, \"className\" | \"trailing\" | \"onSymbol\">;\n\nexport const SymbolInfoBarWidget: React.FC<SymbolInfoBarWidgetPros> = (\n props,\n) => {\n const { symbol, ...rest } = props;\n\n const state = useSymbolInfoBarScript({ symbol });\n return <SymbolInfoBar {...state} {...rest} />;\n};\n","import React, { ReactNode } from \"react\";\nimport { useFundingRate } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n TokenIcon,\n Flex,\n Text,\n cn,\n Divider,\n NewsFillIcon,\n Box,\n} from \"@orderly.network/ui\";\nimport { CloseIcon } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n ArrowLeftIcon,\n FavoritesIcon2,\n TriangleDownIcon,\n UnFavoritesIcon2,\n} from \"../../icons\";\nimport { FundingRateHintWidget } from \"../fundingRateHint\";\nimport type { MarketsProviderProps } from \"../marketsProvider\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { RwaTooltip } from \"./rwaTooltip\";\nimport type { UseSymbolInfoBarFullScriptReturn } from \"./symbolInfoBarFull.script\";\n\nconst LazyDropDownMarketsWidget = React.lazy(() =>\n import(\"../dropDownMarkets\").then((mod) => {\n return { default: mod.DropDownMarketsWidget };\n }),\n);\n\nconst LazyFavoritesDropdownMenuWidget = React.lazy(() =>\n import(\"../favoritesDropdownMenu\").then((mod) => {\n return { default: mod.FavoritesDropdownMenuWidget };\n }),\n);\n\nconst LazyDataItem = React.lazy(() =>\n import(\"./dataItem.ui\").then((mod) => {\n return { default: mod.DataItem };\n }),\n);\n\nexport type Layout = \"left\" | \"right\";\n\nexport type SymbolInfoBarFullProps = Pick<\n MarketsProviderProps,\n \"onSymbolChange\"\n> &\n UseSymbolInfoBarFullScriptReturn & {\n className?: string;\n trailing?: ReactNode;\n closeCountdown?: () => void;\n showCountdown?: boolean;\n };\n\nexport const SymbolInfoBarFull: React.FC<SymbolInfoBarFullProps> = (props) => {\n const {\n symbol,\n isFavorite,\n favorite,\n data,\n quotoDp,\n openInterest,\n containerRef,\n leadingElementRef,\n tailingElementRef,\n leadingVisible,\n tailingVisible,\n onScoll,\n fundingPeriod,\n capFunding,\n floorFunding,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n closeCountdown,\n showCountdown,\n } = props;\n\n const { t } = useTranslation();\n\n const favoriteIcon = (\n <React.Suspense fallback={null}>\n <LazyFavoritesDropdownMenuWidget row={{ symbol }} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-warning-darken\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-warning-darken\" />\n )}\n </Flex>\n </LazyFavoritesDropdownMenuWidget>\n </React.Suspense>\n );\n\n const symbolView = (\n <React.Suspense fallback={null}>\n <Flex\n direction=\"column\"\n itemAlign=\"start\"\n className=\"oui-shrink-0 oui-gap-y-[2px]\"\n >\n <LazyDropDownMarketsWidget\n contentClassName=\"oui-w-[429px] oui-h-[496px]\"\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <Flex gapX={1} className=\"oui-cursor-pointer\">\n <TokenIcon symbol={symbol} className=\"oui-size-4\" />\n <SymbolDisplay\n formatString=\"base\"\n size=\"xs\"\n className=\"oui-text-base-contrast\"\n >\n {symbol}\n </SymbolDisplay>\n <TriangleDownIcon className=\"oui-text-base-contrast-54\" />\n </Flex>\n </LazyDropDownMarketsWidget>\n {isRwa && (\n <RwaTooltip\n isRwa={isRwa}\n open={open}\n closeTimeInterval={closeTimeInterval}\n openTimeInterval={openTimeInterval}\n />\n )}\n </Flex>\n </React.Suspense>\n );\n\n const price = (\n <Text.numeral\n dp={quotoDp || 2}\n currency=\"$\"\n size=\"sm\"\n intensity={98}\n className=\"oui-data-value\"\n >\n {data?.[\"24h_close\"]}\n </Text.numeral>\n );\n\n const change = (\n <>\n <Text.numeral coloring rm={Decimal.ROUND_DOWN} showIdentifier>\n {data?.[\"24h_change\"]!}\n </Text.numeral>\n <Text intensity={36}>/</Text>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {data?.[\"change\"]!}\n </Text.numeral>\n </>\n );\n\n return (\n <Flex direction=\"column\" className=\"oui-h-full oui-w-full\">\n <Flex\n className={cn(\n \"oui-symbol-info-bar-desktop\",\n \"oui-font-semibold\",\n \"oui-flex-1 oui-w-full\",\n props.className,\n )}\n // fix Safari text opacity transition bug\n style={{\n transform: \"translateZ(0)\",\n willChange: \"transform\",\n }}\n >\n <Flex gapX={6} className=\"oui-h-full oui-flex-1 oui-overflow-hidden\">\n <Flex gapX={1}>\n {favoriteIcon}\n {symbolView}\n </Flex>\n <Divider\n className=\"oui-h-[26px]\"\n direction=\"vertical\"\n intensity={8}\n />\n {price}\n <div className=\"oui-relative oui-h-full oui-overflow-hidden\">\n <div\n ref={containerRef}\n className=\"oui-hide-scrollbar oui-h-full oui-overflow-x-auto\"\n >\n <Flex gapX={8} height=\"100%\">\n <div ref={leadingElementRef}>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.column.24hChange\")}\n value={change}\n />\n </React.Suspense>\n </div>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.Mark\")}\n value={\n <Text.numeral\n dp={quotoDp}\n data-testid=\"oui-testid-tokenInfo-markPrice-value\"\n >\n {data?.[\"mark_price\"]}\n </Text.numeral>\n }\n hint={t(\"markets.symbolInfoBar.Mark.tooltip\")}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.Index\")}\n value={\n <Text.numeral dp={quotoDp}>\n {data?.[\"index_price\"]}\n </Text.numeral>\n }\n hint={t(\"markets.symbolInfoBar.Index.tooltip\")}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.24hVolume\")}\n value={\n <Text.numeral rule=\"human\" dp={2}>\n {data?.[\"24h_amount\"]}\n </Text.numeral>\n }\n hint={t(\"markets.symbolInfoBar.24hVolume.tooltip\")}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.predFundingRate\")}\n value={<FundingRate symbol={symbol} />}\n hint={<FundingRateHintWidget symbol={symbol} />}\n />\n </React.Suspense>\n\n <div ref={tailingElementRef}>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.openInterest\")}\n value={\n <>\n <Text.numeral rule=\"human\" dp={2}>\n {openInterest}\n </Text.numeral>\n <Text intensity={36}>{` USDC`}</Text>\n </>\n }\n hint={t(\"markets.openInterest.tooltip\")}\n />\n </React.Suspense>\n </div>\n </Flex>\n </div>\n <ScrollIndicator\n leading\n onClick={onScoll}\n visible={leadingVisible}\n />\n <ScrollIndicator\n tailing\n onClick={onScoll}\n visible={tailingVisible}\n />\n </div>\n </Flex>\n {props.trailing}\n </Flex>\n {showCountdown && (\n <RwaCountdown\n closeCountdown={closeCountdown}\n isRwa={isRwa}\n open={open}\n closeTimeInterval={closeTimeInterval}\n />\n )}\n </Flex>\n );\n};\n\ntype ScrollIndicatorProps = {\n tailing?: boolean;\n leading?: boolean;\n visible?: boolean;\n onClick?: (direction: string) => void;\n};\n\nconst ScrollIndicator: React.FC<ScrollIndicatorProps> = (props) => {\n const { visible, leading, tailing, onClick } = props;\n if (!visible) {\n return null;\n }\n\n return (\n <button\n onClick={() => {\n onClick?.(leading ? \"left\" : \"right\");\n }}\n style={{\n background:\n \"linear-gradient(90deg, #07080A 0%, rgba(7, 8, 10, 0.60) 65%, rgba(7, 8, 10, 0.00) 100%)\",\n }}\n className={cn(\n \"oui-flex oui-w-[80px] oui-items-center\",\n \"oui-absolute oui-inset-y-0 oui-rounded-l\",\n leading && \"oui-left-0 oui-pl-1\",\n tailing && \"oui-right-0 oui-rotate-180 oui-pr-1\",\n )}\n >\n <ArrowLeftIcon className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80\" />\n </button>\n );\n};\n\nconst FundingRate: React.FC<{ symbol: string }> = ({ symbol }) => {\n const data = useFundingRate(symbol);\n\n if (data?.est_funding_rate === null) {\n return \"--\";\n }\n\n return (\n <div>\n <Text.numeral unit=\"%\" dp={4} intensity={98}>\n {data.est_funding_rate!}\n </Text.numeral>\n <Text intensity={36} className=\"oui-tabular-nums\">\n {/* not need to translate */}\n {` in ${data.countDown}`}\n </Text>\n </div>\n );\n};\n\nconst RwaCountdown: React.FC<{\n closeCountdown?: () => void;\n isRwa: boolean;\n open: boolean | undefined;\n closeTimeInterval: number | undefined;\n}> = ({ closeCountdown, isRwa, open, closeTimeInterval }) => {\n const { t } = useTranslation();\n if (\n !isRwa ||\n closeTimeInterval === undefined ||\n open === undefined ||\n closeTimeInterval > 30 * 60\n ) {\n return null;\n }\n if (!open) {\n return null;\n }\n\n const minutes = closeTimeInterval ? Math.floor(closeTimeInterval / 60) : 0;\n const minutesStr = minutes.toString().padStart(2, \"0\");\n const seconds = closeTimeInterval ? closeTimeInterval % 60 : 0;\n const secondsStr = seconds.toString().padStart(2, \"0\");\n\n return (\n <Flex\n itemAlign=\"center\"\n px={2}\n r=\"lg\"\n className=\"oui-w-full oui-text-warning-darken oui-bg-warning-darken/15 oui-flex-1 oui-my-2 oui-text-sm\"\n >\n <Flex className=\"oui-w-full oui-pr-2\">\n <NewsFillIcon className=\"oui-text-warning-darken\" size={16} />\n <Flex>\n {t(\"trading.rwa.countdown.title\")}\n <Flex className=\"oui-text-base-contrast-54 oui-text-xs oui-font-normal\">\n <Box\n ml={2}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {minutesStr}\n </Box>\n {t(\"common.minuteShort\")}\n {\" : \"}\n <Box\n ml={1}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {secondsStr}\n </Box>\n {t(\"common.secondShort\")}\n </Flex>\n </Flex>\n </Flex>\n\n <button className=\"oui-cursor-pointer\" onClick={closeCountdown}>\n <CloseIcon className=\"oui-text-base-contrast\" size={16} opacity={1} />\n </button>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Divider, Flex, Text } from \"@orderly.network/ui\";\nimport { FundingRateHintState } from \"./fundingRateHint.script\";\n\nexport type FundingRateHintProps = FundingRateHintState & {\n className?: string;\n style?: React.CSSProperties;\n};\n\nexport const FundingRateHint: FC<FundingRateHintProps> = (props) => {\n const { t } = useTranslation();\n const {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n } = props;\n\n const renderRow = (\n label: string,\n value?: string | number,\n annualizedValue?: string,\n ) => {\n if (!value) {\n return null;\n }\n return (\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {annualizedValue\n ? `${label}/ ${t(\"trading.fundingRate.annualized\")}`\n : label}\n </Text>\n <Flex itemAlign=\"end\" gap={1} className=\"oui-text-base-contrast-80\">\n <Text intensity={80}>{value}</Text>\n {annualizedValue && \" / \"}\n {annualizedValue && annualizedValue}\n </Flex>\n </Flex>\n );\n };\n\n return (\n <Flex width={\"100%\"} itemAlign={\"center\"} direction=\"column\" gap={1}>\n {renderRow(\n t(\"trading.fundingRate.predFundingRate.interval\"),\n fundingPeriod,\n )}\n {renderRow(\n t(\"trading.fundingRate.predFundingRate.cap\") +\n \" / \" +\n t(\"trading.fundingRate.predFundingRate.floor\"),\n capFunding + \" / \" + floorFunding,\n )}\n {renderRow(\n t(\"trading.fundingRate.lastFundingRate\"),\n lastFundingRate,\n lastFundingRateAnnualized,\n )}\n {renderRow(\n t(\"trading.fundingRate.estimatedFundingRate\"),\n estFundingRate,\n estFundingRateAnnualized,\n )}\n {renderRow(t(\"trading.fundingRate.estimatedFundingFee\"), estFundingFee)}\n <Divider className=\"oui-w-full\" intensity={8} />\n {t(\"markets.symbolInfoBar.predFundingRate.tooltip\")}\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useFundingDetails,\n useFundingRateBySymbol,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const useFundingRateHintScript = (symbol: string) => {\n const { data: fundingDetails, isLoading: isFundingLoading } =\n useFundingDetails(symbol);\n\n const { last_funding_rate, est_funding_rate } =\n useFundingRateBySymbol(symbol) ?? {};\n\n const [{ aggregated, rows }] = usePositionStream(symbol);\n\n const { notional } = aggregated ?? {};\n\n const fundingPeriod = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${fundingDetails.funding_period}h`;\n }, [fundingDetails, isFundingLoading]);\n\n const capFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.cap_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const floorFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.floor_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const lastFundingRate = useMemo(() => {\n if (!last_funding_rate) {\n return undefined;\n }\n return `${new Decimal(last_funding_rate).mul(100).toNumber()}%`;\n }, [last_funding_rate]);\n\n const estFundingRate = useMemo(() => {\n if (!est_funding_rate) {\n return undefined;\n }\n return `${new Decimal(est_funding_rate).mul(100).toNumber()}%`;\n }, [est_funding_rate]);\n\n const estFundingFee = useMemo(() => {\n if (!est_funding_rate || !notional || rows.length === 0) {\n return \"--\";\n }\n\n return `${new Decimal(est_funding_rate).mul(notional).todp(4).toNumber()}`;\n }, [est_funding_rate, notional, rows]);\n\n // Calculate annualized funding rate\n const calculateAnnualizedRate = (rate: number, intervalHours: number) => {\n if (!rate || !intervalHours) return undefined;\n // annualized rate = funding rate * 24h / interval(h) * 365\n const annualizedRate = new Decimal(rate)\n .mul(24)\n .div(intervalHours)\n .mul(365);\n // Round down to two decimal places\n return annualizedRate.todp(2, Decimal.ROUND_DOWN).toNumber();\n };\n\n const lastFundingRateAnnualized = useMemo(() => {\n if (!last_funding_rate || !fundingDetails?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(last_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(\n rate,\n fundingDetails.funding_period,\n );\n return annualized ? `${annualized}%` : undefined;\n }, [last_funding_rate, fundingDetails?.funding_period]);\n\n const estFundingRateAnnualized = useMemo(() => {\n if (!est_funding_rate || !fundingDetails?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(est_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(\n rate,\n fundingDetails.funding_period,\n );\n return annualized ? `${annualized}%` : undefined;\n }, [est_funding_rate, fundingDetails?.funding_period]);\n\n return useMemo(() => {\n return {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n };\n }, [\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n symbol,\n ]);\n};\n\nexport type FundingRateHintState = ReturnType<typeof useFundingRateHintScript>;\n","import { useFundingRateHintScript } from \"./fundingRateHint.script\";\nimport { FundingRateHint, FundingRateHintProps } from \"./fundingRateHint.ui\";\n\nexport type FundingRateHintWidgetProps = Pick<\n FundingRateHintProps,\n \"style\" | \"className\"\n>;\n\nexport const FundingRateHintWidget: React.FC<\n FundingRateHintWidgetProps & {\n symbol: string;\n }\n> = (props) => {\n const state = useFundingRateHintScript(props.symbol);\n return <FundingRateHint {...state} {...props} />;\n};\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n useFundingDetails,\n useFundingRate,\n useGetRwaSymbolInfo,\n useMarketsStore,\n useSymbolsInfo,\n useTickerStream,\n} from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport type UseSymbolInfoBarFullScriptOptions = {\n symbol: string;\n};\n\nexport type UseSymbolInfoBarFullScriptReturn = ReturnType<\n typeof useSymbolInfoBarFullScript\n>;\n\nexport function useSymbolInfoBarFullScript(\n options: UseSymbolInfoBarFullScriptOptions,\n) {\n const { symbol } = options;\n\n const data = useTickerStream(symbol);\n const fundingRate = useFundingRate(symbol);\n\n const favorite = useMarketsStore();\n\n const { isRwa, open, closeTimeInterval, openTimeInterval } =\n useGetRwaSymbolInfo(symbol);\n\n const { data: fundingDetails, isLoading: isFundingLoading } =\n useFundingDetails(symbol);\n\n const fundingPeriod = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${fundingDetails.funding_period}h`;\n }, [fundingDetails, isFundingLoading]);\n\n const capFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.cap_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const floorFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.floor_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const info = useSymbolsInfo();\n const quotoDp = info[symbol](\"quote_dp\");\n const [leadingVisible, setLeadingVisible] = useState(false);\n const [tailingVisible, setTailingVisible] = useState(false);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const leadingElementRef = useRef<HTMLDivElement>(null);\n const tailingElementRef = useRef<HTMLDivElement>(null);\n\n const isFavorite = useMemo(\n () => !!favorite.favorites.find((item) => item.name === symbol),\n [favorite.favorites, symbol],\n );\n\n const openInterest = useMemo(\n () =>\n new Decimal(data?.open_interest ?? 0)\n .mul(data?.index_price ?? 0)\n .toDecimalPlaces(2)\n .valueOf(),\n [data],\n );\n\n useEffect(() => {\n const intersectionObserver = new IntersectionObserver((entries) => {\n for (let index = 0; index < entries.length; index++) {\n const item = entries[index];\n if (item) {\n if (item.target === leadingElementRef.current) {\n setLeadingVisible(!item.isIntersecting);\n }\n\n if (item.target === tailingElementRef.current) {\n setTailingVisible(!item.isIntersecting);\n }\n }\n }\n });\n if (leadingElementRef.current) {\n intersectionObserver.observe(leadingElementRef.current);\n }\n\n if (tailingElementRef.current) {\n intersectionObserver.observe(tailingElementRef.current);\n }\n\n return () => {\n intersectionObserver.disconnect();\n };\n }, []);\n\n const onScoll = (direction: string) => {\n containerRef.current?.scrollBy({\n left: direction === \"left\" ? -100 : 100,\n behavior: \"smooth\",\n });\n };\n\n return {\n symbol,\n isFavorite,\n favorite,\n data,\n quotoDp,\n openInterest,\n fundingRate,\n containerRef,\n leadingElementRef,\n tailingElementRef,\n leadingVisible,\n tailingVisible,\n onScoll,\n fundingPeriod,\n capFunding,\n floorFunding,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n };\n}\n","import { FC } from \"react\";\nimport { MarketsProviderProps } from \"../marketsProvider\";\nimport {\n useSymbolInfoBarFullScript,\n UseSymbolInfoBarFullScriptOptions,\n} from \"./symbolInfoBarFull.script\";\nimport {\n SymbolInfoBarFull,\n SymbolInfoBarFullProps,\n} from \"./symbolInfoBarFull.ui\";\n\nexport type SymbolInfoBarFullWidgetPros = UseSymbolInfoBarFullScriptOptions &\n Pick<SymbolInfoBarFullProps, \"className\" | \"trailing\"> &\n Pick<MarketsProviderProps, \"onSymbolChange\"> & {\n closeCountdown?: () => void;\n showCountdown?: boolean;\n };\n\nexport const SymbolInfoBarFullWidget: FC<SymbolInfoBarFullWidgetPros> = (\n props,\n) => {\n const { symbol, ...rest } = props;\n\n const state = useSymbolInfoBarFullScript({ symbol });\n return <SymbolInfoBarFull {...state} {...rest} />;\n};\n","import React from \"react\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useHorizontalMarketsScript } from \"./horizontalMarkets.script\";\nimport type { MarketType } from \"./horizontalMarkets.script\";\nimport type { HorizontalMarketsProps } from \"./horizontalMarkets.ui\";\nimport type { DropdownPos } from \"./marketTypeFilter.ui\";\n\nconst LazyHorizontalMarkets = React.lazy(() =>\n import(\"./horizontalMarkets.ui\").then((mod) => {\n return { default: mod.HorizontalMarkets };\n }),\n);\n\nexport type HorizontalMarketsWidgetProps = MarketsProviderProps &\n Partial<Pick<HorizontalMarketsProps, \"symbols\" | \"className\">> & {\n maxItems?: number;\n defaultMarketType?: MarketType;\n dropdownPos?: DropdownPos;\n };\n\nconst HorizontalMarketsInner: React.FC<\n Pick<\n HorizontalMarketsWidgetProps,\n \"symbols\" | \"maxItems\" | \"defaultMarketType\" | \"className\" | \"dropdownPos\"\n >\n> = (props) => {\n const { symbols, maxItems, className, defaultMarketType, dropdownPos } =\n props;\n const state = useHorizontalMarketsScript({\n symbols,\n maxItems,\n defaultMarketType,\n });\n return (\n <React.Suspense fallback={null}>\n <LazyHorizontalMarkets\n {...state}\n className={className}\n dropdownPos={dropdownPos}\n />\n </React.Suspense>\n );\n};\n\nexport const HorizontalMarketsWidget: React.FC<HorizontalMarketsWidgetProps> = (\n props,\n) => {\n const {\n symbols,\n maxItems,\n className,\n defaultMarketType,\n dropdownPos,\n ...providerProps\n } = props;\n\n return (\n <MarketsProvider {...providerProps}>\n <HorizontalMarketsInner\n symbols={symbols}\n maxItems={maxItems}\n className={className}\n defaultMarketType={defaultMarketType}\n dropdownPos={dropdownPos}\n />\n </MarketsProvider>\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport {\n useMarkets,\n MarketsType,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { API } from \"@orderly.network/types\";\nimport {\n SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n SIDE_MARKETS_SEL_TAB_KEY,\n} from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { sortList } from \"../../utils\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type MarketType = \"all\" | \"recent\" | \"newListing\" | \"favorites\";\n\nexport type HorizontalMarketsScriptOptions = {\n symbols?: string[];\n maxItems?: number;\n defaultMarketType?: MarketType;\n};\n\nexport type HorizontalMarketsScriptReturn = ReturnType<\n typeof useHorizontalMarketsScript\n>;\n\nexport const useHorizontalMarketsScript = (\n options?: HorizontalMarketsScriptOptions,\n) => {\n const {\n symbols: optionSymbols,\n maxItems: optionMaxItems,\n defaultMarketType,\n } = options || {};\n const { symbol: currentSymbol, onSymbolChange } = useMarketsContext();\n const [selectedMarketType, setSelectedMarketType] =\n useLocalStorage<MarketType>(\n SIDE_MARKETS_SEL_TAB_KEY,\n (defaultMarketType || \"all\") as MarketType,\n );\n\n const MarketsTypeMap: Record<MarketType, MarketsType> = {\n all: MarketsType.ALL,\n recent: MarketsType.RECENT,\n newListing: MarketsType.NEW_LISTING,\n favorites: MarketsType.FAVORITES,\n };\n\n // Pull markets from the shared store (same as SideMarkets)\n const marketTypeKey = (selectedMarketType as MarketType) || \"all\";\n const [markets, favorite] = useMarkets(\n MarketsTypeMap[marketTypeKey] || MarketsType.ALL,\n );\n // Apply the same ordering rules as SideMarkets\n const filteredMarkets = useMemo(() => {\n if (selectedMarketType === \"favorites\") {\n const { favorites, selectedFavoriteTab } = favorite;\n const symbolsInTab = favorites\n ?.filter((fav) =>\n fav.tabs?.some((tab) => tab.id === selectedFavoriteTab.id),\n )\n ?.map((fav) => fav.name);\n\n const map: Record<string, (typeof markets)[number]> = Object.create(null);\n for (const m of markets) map[m.symbol] = m;\n return (symbolsInTab || [])\n .map((s) => map[s])\n .filter(Boolean) as typeof markets;\n }\n\n if (selectedMarketType === \"recent\") {\n const symbolsInRecent = favorite.recent?.map((r) => r.name) || [];\n const map: Record<string, (typeof markets)[number]> = Object.create(null);\n for (const m of markets) map[m.symbol] = m;\n return symbolsInRecent\n .map((s) => map[s])\n .filter(Boolean) as typeof markets;\n }\n\n return markets;\n }, [\n markets,\n favorite.favorites,\n favorite.selectedFavoriteTab,\n favorite.recent,\n selectedMarketType,\n ]);\n\n // Read the tabSort from the same storage used by side markets and apply it\n const { tabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n const sortedMarkets = useMemo(() => {\n const sort = tabSort?.[selectedMarketType as MarketsTabName];\n return sort ? sortList(filteredMarkets, sort) : filteredMarkets;\n }, [filteredMarkets, tabSort, selectedMarketType]);\n\n const symbols = useMemo(() => {\n const list = optionSymbols\n ? optionSymbols\n : sortedMarkets.map((m) => m.symbol);\n const max = optionMaxItems;\n if (typeof max === \"number\") {\n if (max === -1) return list;\n if (max >= 0) return list.slice(0, max);\n }\n return list;\n }, [sortedMarkets, optionSymbols, optionMaxItems]);\n\n type TickerData = Record<\n string,\n { \"24h_close\": number; change: number; quote_dp: number }\n >;\n const tickerData = useMemo<TickerData>(() => {\n return sortedMarkets.reduce<TickerData>((acc, item) => {\n acc[item.symbol] = {\n \"24h_close\": item[\"24h_close\"],\n change: item.change,\n quote_dp: item.quote_dp,\n };\n return acc;\n }, {} as TickerData);\n }, [sortedMarkets]);\n\n const onSymbolClick = useCallback(\n (symbol: string) => {\n const record = sortedMarkets.find((m) => m.symbol === symbol);\n if (record) {\n onSymbolChange?.(record as any);\n favorite.addToHistory(record as any);\n } else {\n onSymbolChange?.({ symbol } as API.Symbol);\n }\n },\n [sortedMarkets, favorite, onSymbolChange],\n );\n\n const onMarketTypeChange = useCallback(\n (marketType: MarketType) => {\n setSelectedMarketType(marketType);\n },\n [setSelectedMarketType],\n );\n\n return {\n symbols,\n tickerData,\n currentSymbol,\n onSymbolClick,\n selectedMarketType,\n onMarketTypeChange,\n } as const;\n};\n","export { HorizontalMarketsWidget } from \"./horizontalMarkets.widget\";\nexport { HorizontalMarkets } from \"./horizontalMarkets.ui\";\nexport { MarketTypeFilter } from \"./marketTypeFilter.ui\";\nexport { MarketItem } from \"./marketItem.ui\";\nexport { useHorizontalMarketsScript } from \"./horizontalMarkets.script\";\nexport type { HorizontalMarketsProps } from \"./horizontalMarkets.ui\";\nexport type { HorizontalMarketsWidgetProps } from \"./horizontalMarkets.widget\";\nexport type { MarketTypeFilterProps } from \"./marketTypeFilter.ui\";\nexport type { MarketItemProps } from \"./marketItem.ui\";\nexport type {\n HorizontalMarketsScriptOptions,\n HorizontalMarketsScriptReturn,\n MarketType,\n} from \"./horizontalMarkets.script\";\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../../components/collapseMarkets\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSideMarketsColumns } from \"../../components/sideMarkets/column\";\nimport { UseNewListingListReturn } from \"./newListingList.script\";\nimport { NewListingListWidgetProps } from \"./widget\";\n\nexport type NewListingListProps = UseNewListingListReturn &\n NewListingListWidgetProps;\n\nexport const NewListingList: FC<NewListingListProps> = (props) => {\n const { dataSource, favorite, onSort, loading, getColumns, collapsed } =\n props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, false);\n\n const columns =\n typeof getColumns === \"function\"\n ? getColumns(favorite, false)\n : sideColumns;\n\n if (collapsed) {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n }}\n columns={columns}\n dataSource={dataSource}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n manualSorting\n />\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseNewListingListReturn = ReturnType<\n typeof useNewListingListScript\n>;\n\nexport const useNewListingListScript = () => {\n const [data, favorite] = useMarkets(MarketsType.NEW_LISTING);\n const [loading, setLoading] = useState(true);\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const dataSource = useMemo(() => {\n const searchResults = searchBySymbol(data, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [data, searchValue, getSortedList]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n };\n};\n","import { DataTableClassNames } from \"@orderly.network/ui\";\nimport { GetColumns } from \"../../type\";\nimport { useNewListingListScript } from \"./newListingList.script\";\nimport { NewListingList } from \"./newListingList.ui\";\n\nexport type NewListingListWidgetProps = {\n getColumns?: GetColumns;\n collapsed?: boolean;\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n};\n\nexport const NewListingListWidget: React.FC<NewListingListWidgetProps> = (\n props,\n) => {\n const state = useNewListingListScript();\n return <NewListingList {...state} {...props} />;\n};\n","import { FC } from \"react\";\nimport { Box, cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../../components/collapseMarkets\";\nimport { FavoritesTabWidget } from \"../../components/favoritesTabs\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSideMarketsColumns } from \"../../components/sideMarkets/column\";\nimport { UseFavoritesListReturn } from \"./favoritesList.script\";\nimport type { FavoritesListWidgetProps } from \"./widget\";\n\nexport type FavoritesListProps = UseFavoritesListReturn &\n FavoritesListWidgetProps;\n\nexport const FavoritesList: FC<FavoritesListProps> = (props) => {\n const { dataSource, favorite, onSort, loading, getColumns, collapsed } =\n props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, true);\n\n const columns =\n typeof getColumns === \"function\" ? getColumns(favorite, true) : sideColumns;\n\n if (collapsed) {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <>\n <Box px={3} className=\"oui-my-[6px]\">\n <FavoritesTabWidget favorite={favorite} size=\"sm\" />\n </Box>\n\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n }}\n columns={columns}\n dataSource={dataSource}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n manualSorting\n />\n </>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseFavoritesListReturn = ReturnType<typeof useFavoritesListScript>;\n\nexport const useFavoritesListScript = () => {\n const [data, favorite] = useMarkets(MarketsType.FAVORITES);\n const [loading, setLoading] = useState(true);\n\n const { favorites, selectedFavoriteTab } = favorite;\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const dataSource = useMemo(() => {\n const filterList = favorites\n ?.filter(\n (item) =>\n item.tabs?.findIndex((tab) => tab.id === selectedFavoriteTab.id) !==\n -1,\n )\n ?.map((fav) => {\n const index = data?.findIndex((item) => item.symbol === fav.name);\n if (index !== -1) {\n return data[index];\n }\n return null;\n })\n ?.filter((item) => !!item);\n\n const searchResults = searchBySymbol(filterList, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [data, selectedFavoriteTab, favorites, searchValue, getSortedList]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n };\n};\n","import { DataTableClassNames } from \"@orderly.network/ui\";\nimport { GetColumns } from \"../../type\";\nimport { useFavoritesListScript } from \"./favoritesList.script\";\nimport { FavoritesList } from \"./favoritesList.ui\";\n\nexport type FavoritesListWidgetProps = {\n getColumns?: GetColumns;\n collapsed?: boolean;\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n};\n\nexport const FavoritesListWidget: React.FC<FavoritesListWidgetProps> = (\n props,\n) => {\n const state = useFavoritesListScript();\n return <FavoritesList {...state} {...props} />;\n};\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../../components/collapseMarkets\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSideMarketsColumns } from \"../../components/sideMarkets/column\";\nimport { UseRecentListReturn } from \"./recentList.script\";\nimport { RecentListWidgetProps } from \"./widget\";\n\nexport type RecentListProps = UseRecentListReturn & RecentListWidgetProps;\n\nexport const RecentList: FC<RecentListProps> = (props) => {\n const { dataSource, favorite, onSort, loading, getColumns, collapsed } =\n props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, false);\n\n const columns =\n typeof getColumns === \"function\"\n ? getColumns(favorite, false)\n : sideColumns;\n\n if (collapsed) {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n }}\n columns={columns}\n dataSource={dataSource}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n manualSorting\n />\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseRecentListReturn = ReturnType<typeof useRecentListScript>;\n\nexport const useRecentListScript = () => {\n const [data, favorite] = useMarkets(MarketsType.RECENT);\n const [loading, setLoading] = useState(true);\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const dataSource = useMemo(() => {\n const searchResults = searchBySymbol(data, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [data, searchValue, getSortedList]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n };\n};\n","import { DataTableClassNames } from \"@orderly.network/ui\";\nimport { GetColumns } from \"../../type\";\nimport { useRecentListScript } from \"./recentList.script\";\nimport { RecentList } from \"./recentList.ui\";\n\nexport type RecentListWidgetProps = {\n getColumns?: GetColumns;\n collapsed?: boolean;\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n};\n\nexport const RecentListWidget: React.FC<RecentListWidgetProps> = (props) => {\n const state = useRecentListScript();\n return <RecentList {...state} {...props} />;\n};\n","import React, { FC, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport type { RouterAdapter } from \"@orderly.network/types\";\nimport { Box, cn, TabPanel, Tabs, useScreen } from \"@orderly.network/ui\";\nimport { LeftNavProps, LeftNavUI } from \"@orderly.network/ui-scaffold\";\nimport {\n MarketsProvider,\n type MarketsProviderProps,\n} from \"../../components/marketsProvider\";\nimport { MarketsPageTab } from \"../../type\";\n\nconst LazyMarketsHeaderWidget = React.lazy(() =>\n import(\"./marketsHeader/marketsHeader.widget\").then((mod) => {\n return { default: mod.MarketsHeaderWidget };\n }),\n);\n\nconst LazyMarketsDataListWidget = React.lazy(() =>\n import(\"./marketsDataList\").then((mod) => {\n return { default: mod.MarketsDataListWidget };\n }),\n);\n\nconst LazyFundingWidget = React.lazy(() =>\n import(\"./funding/funding.widget\").then((mod) => {\n return { default: mod.FundingWidget };\n }),\n);\n\nexport type MarketsHomePageProps = MarketsProviderProps & {\n className?: string;\n};\n\nexport const MarketsHomePage: FC<MarketsHomePageProps> = (props) => {\n const { isMobile } = useScreen();\n\n const [activeTab, setActiveTab] = useState<MarketsPageTab>(\n MarketsPageTab.Markets,\n );\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n navProps={props.navProps}\n comparisonProps={props.comparisonProps}\n >\n <div\n id=\"oui-markets-home-page\"\n className={cn(\"oui-font-semibold\", props.className)}\n >\n {isMobile ? (\n <MarketsMobileContent\n activeTab={activeTab}\n onTabChange={setActiveTab}\n navProps={props.navProps}\n />\n ) : (\n <MarketsDesktopContent\n activeTab={activeTab}\n onTabChange={setActiveTab}\n />\n )}\n </div>\n </MarketsProvider>\n );\n};\n\ntype MarketsContentProps = {\n activeTab: MarketsPageTab;\n onTabChange: (value: MarketsPageTab) => void;\n // only for mobile\n navProps?: {\n logo?: {\n src: string;\n alt: string;\n };\n routerAdapter?: RouterAdapter;\n leftNav?: LeftNavProps;\n };\n};\n\nconst MarketsDesktopContent: React.FC<MarketsContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Box p={6}>\n <Tabs\n size=\"xl\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n >\n <TabPanel\n title={t(\"common.markets\")}\n value={MarketsPageTab.Markets}\n testid=\"oui-testid-markets-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsHeaderWidget className=\"oui-mt-4\" />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyMarketsDataListWidget />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"common.funding\")}\n value={MarketsPageTab.Funding}\n testid=\"oui-testid-funding-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingWidget />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n\nconst MarketsMobileContent: React.FC<MarketsContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Tabs\n variant=\"text\"\n size=\"xl\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n classNames={{\n tabsListContainer: \"oui-border-0\",\n tabsList: \"oui-mx-6 oui-my-2\",\n trigger: cn(\n \"oui-text-2xl oui-font-bold\",\n \"data-[state=active]:after:oui-bg-transparent!\",\n ),\n tabsContent: \"oui-px-3\",\n }}\n leading={\n props.navProps?.leftNav && (\n <LeftNavUI\n className=\"-oui-mr-4 oui-ml-3\"\n {...props?.navProps?.leftNav}\n logo={props?.navProps?.logo}\n routerAdapter={props?.navProps?.routerAdapter}\n />\n )\n }\n >\n <TabPanel\n title={t(\"common.markets\")}\n value=\"markets\"\n testid=\"oui-testid-markets-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsHeaderWidget className=\"oui-mt-2\" />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyMarketsDataListWidget />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"common.funding\")}\n value=\"funding\"\n testid=\"oui-testid-funding-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingWidget />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/marketsProvider/index.tsx","../src/components/symbolDisplay.tsx","../src/icons.tsx","../src/pages/home/marketsHeader/marketsHeader.ui.tsx","../src/utils.ts","../src/pages/home/marketsHeader/marketsHeader.script.tsx","../src/pages/home/marketsHeader/marketsHeader.mobile.ui.tsx","../src/pages/home/marketsHeader/marketsHeader.widget.tsx","../src/components/collapseMarkets/index.tsx","../src/components/favoritesDropdownMenu/favoritesDropdownMenu.ui.tsx","../src/components/favoritesDropdownMenu/favoritesDropdownMenu.script.ts","../src/components/favoritesDropdownMenu/favoritesDropdownMenu.widget.tsx","../src/components/favoritesDropdownMenu/index.ts","../src/components/rwaDotTooltip.tsx","../src/components/sideMarkets/column.tsx","../src/components/marketsList/marketsList.ui.tsx","../src/type.ts","../src/components/marketsList/marketsList.script.ts","../src/components/marketsList/marketsList.widget.tsx","../src/components/marketsList/index.tsx","../src/components/rwaTab.tsx","../src/components/searchInput/index.tsx","../src/components/shared/column.tsx","../src/components/favoritesEmpty/index.tsx","../src/components/favoritesTabs/favoritesTabs.ui.tsx","../src/components/favoritesTabs/favoritesTabs.script.ts","../src/components/favoritesTabs/favoritesTabs.widget.tsx","../src/components/favoritesTabs/index.ts","../src/components/shared/hooks/useFavoritesExtraProps.tsx","../src/pages/home/marketsDataList/marketsDataList.mobile.ui.tsx","../src/components/shared/hooks/useTabSort.ts","../src/pages/home/marketsDataList/marketsDataList.script.ts","../src/components/marketsListFull/column.tsx","../src/components/favoritesListFull/favoritesListFull.ui.tsx","../src/components/favoritesListFull/favoritesListFull.script.ts","../src/components/favoritesListFull/favoritesListFull.widget.tsx","../src/components/favoritesListFull/index.tsx","../src/components/marketsListFull/marketsListFull.ui.tsx","../src/components/marketsListFull/marketsListFull.script.ts","../src/components/marketsListFull/marketsListFull.widget.tsx","../src/components/marketsListFull/index.tsx","../src/pages/home/marketsDataList/marketsDataList.ui.tsx","../src/pages/home/marketsDataList/marketsDataList.widget.tsx","../src/pages/home/marketsDataList/index.ts","../src/components/expandMarkets/expandMarkets.ui.tsx","../src/constant.ts","../src/components/expandMarkets/expandMarkets.script.ts","../src/components/expandMarkets/expandMarkets.widget.tsx","../src/components/expandMarkets/index.ts","../src/components/fundingOverview/columns.tsx","../src/components/fundingOverview/fundingOverview.ui.tsx","../src/components/fundingOverview/fundingOverview.script.tsx","../src/components/fundingOverview/fundingOverview.mobile.ui.tsx","../src/components/fundingOverview/fundingOverview.widget.tsx","../src/components/fundingOverview/index.tsx","../src/components/fundingComparison/useEXchanges.ts","../src/components/fundingComparison/columns.tsx","../src/components/fundingComparison/fundingComparison.ui.tsx","../src/components/fundingComparison/fundingComparison.script.tsx","../src/components/fundingComparison/fundingComparison.mobile.ui.tsx","../src/components/fundingComparison/fundingComparison.widget.tsx","../src/components/fundingComparison/index.tsx","../src/components/sideMarkets/sideMarkets.ui.tsx","../src/components/dropDownMarkets/column.tsx","../src/components/dropDownMarkets/dropDownMarkets.ui.tsx","../src/components/dropDownMarkets/dropDownMarkets.script.ts","../src/components/dropDownMarkets/dropDownMarkets.widget.tsx","../src/components/dropDownMarkets/index.ts","../src/components/symbolInfoBarFull/dataItem.ui.tsx","../src/components/horizontalMarkets/marketItem.ui.tsx","../src/components/horizontalMarkets/marketTypeFilter.ui.tsx","../src/components/horizontalMarkets/horizontalMarkets.ui.tsx","../src/pages/home/funding/funding.mobile.ui.tsx","../src/pages/home/funding/funding.script.tsx","../src/pages/home/funding/funding.ui.tsx","../src/pages/home/funding/funding.widget.tsx","../src/pages/home/marketsHeader/index.ts","../src/index.ts","../src/components/subMenuMarkets/subMenuMarkets.ui.tsx","../src/components/subMenuMarkets/subMenuMarkets.widget.tsx","../src/components/subMenuMarkets/subMenuMarkets.script.ts","../src/components/sideMarkets/index.ts","../src/components/sideMarkets/sideMarkets.script.ts","../src/components/sideMarkets/sideMarkets.widget.tsx","../src/components/marketsSheet/marketsSheet.ui.tsx","../src/components/marketsSheet/column.tsx","../src/components/marketsSheet/marketsSheet.script.ts","../src/components/marketsSheet/marketsSheet.widget.tsx","../src/components/symbolInfoBar/symbolInfoBar.ui.tsx","../src/components/symbolInfoBarFull/rwaTooltip.tsx","../src/components/symbolInfoBar/symbolInfoBar.script.ts","../src/components/symbolInfoBar/symbolInfoBar.widget.tsx","../src/components/symbolInfoBarFull/symbolInfoBarFull.ui.tsx","../src/components/fundingRateHint/fundingRateHint.ui.tsx","../src/components/fundingRateHint/fundingRateHint.script.tsx","../src/components/fundingRateHint/fundingRateHint.widget.tsx","../src/components/symbolInfoBarFull/symbolInfoBarFull.script.ts","../src/components/symbolInfoBarFull/symbolInfoBarFull.widget.tsx","../src/components/horizontalMarkets/horizontalMarkets.widget.tsx","../src/components/horizontalMarkets/horizontalMarkets.script.ts","../src/components/horizontalMarkets/index.ts","../src/deprecated/newListingList/newListingList.ui.tsx","../src/deprecated/newListingList/newListingList.script.ts","../src/deprecated/newListingList/widget.tsx","../src/deprecated/favoritesList/favoritesList.ui.tsx","../src/deprecated/favoritesList/favoritesList.script.ts","../src/deprecated/favoritesList/widget.tsx","../src/deprecated/recentList/recentList.ui.tsx","../src/deprecated/recentList/recentList.script.ts","../src/deprecated/recentList/widget.tsx","../src/pages/home/page.tsx"],"names":["MarketsProvider","createContext","useState","useCallback","useMemo","useContext","SymbolDisplay","memo","useSymbolsInfo","Flex","jsx","TokenIcon","Text","jsxs","MarketsHeader","useTranslation","cls","cn","Box","Decimal","formatSymbol","useEffect","useMarkets","MarketsType","useQuery","useMarketsHeaderScript","useEmblaCarousel","BlockList","BlockItem","CardItem","ListItem","Tabs","TabPanel","MarketsHeaderWidget","useScreen","CollapseMarkets","Badge","Tooltip","FavoritesDropdownMenu","Input","CloseCircleFillIcon","Button","PlusIcon","CloseIcon","CheckedSquareFillIcon","CheckSquareEmptyIcon","DropdownMenuRoot","DropdownMenuTrigger","DropdownMenuPortal","DropdownMenuContent","Divider","FavoritesDropdownMenuWidget","isCurrentlyTrading","MarketsList","Fragment","DataTable","MarketsPageTab","MarketsTabName","FundingTabName","useMarketsListScript","MarketsListWidget","RwaIcon","GradientText","useRef","i18n","init_column","EmptyStateIcon","FavoritesTab","modal","open","tab","FavoritesTabWidget","useSessionStorage","FavoritesListFull","Trans","useFavoritesListFullScript","usePagination","FavoritesListFullWidget","MarketsListFull","MarketsTypeMap","useMarketsListFullScript","MarketsListFullWidget","MarketsDataList","React","MarketsDataListWidget","LazySearchInput","ExpandMarkets","ExpandMarketsWidget","Picker","Select","FundingOverview","useFundingOverviewScript","useFundingRateHistory","useFundingRates","FundingOverviewWidget","init_columns","FundingComparison","useFundingComparisonScript","useMarketsStream","FundingComparisonWidget","SideMarkets","pick","useDropDownMarketsColumns","DropDownMarkets","DropDownMarketsConetnt","useLocalStorage","DropDownMarketsWidget","MarketItem","MarketTypeFilter","Checkbox","HorizontalMarkets","Marquee","EmptyDataState","SIDE_MARKETS_SEL_TAB_KEY","useGetRwaSymbolInfo","useTickerStream","useFundingDetails","useFundingRateBySymbol","usePositionStream","ScrollIndicator","useFundingRate","NewsFillIcon","useMarketsStore","LeftNavUI"],"mappings":"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","file":"index.js","sourcesContent":["import {\n FC,\n createContext,\n PropsWithChildren,\n useState,\n useContext,\n useCallback,\n useMemo,\n} from \"react\";\nimport type { API, RouterAdapter } from \"@orderly.network/types\";\nimport { LeftNavProps } from \"@orderly.network/ui-scaffold\";\n\ntype MarketsContextState = {\n symbol?: string;\n searchValue?: string;\n onSearchValueChange?: (searchValue: string) => void;\n clearSearchValue?: () => void;\n} & MarketsProviderProps;\n\nexport const MarketsContext = createContext<MarketsContextState>({});\n\nexport type MarketsProviderProps = {\n symbol?: string;\n onSymbolChange?: (symbol: API.Symbol) => void;\n // only for mobile\n navProps?: {\n logo?: {\n src: string;\n alt: string;\n };\n routerAdapter?: RouterAdapter;\n leftNav?: LeftNavProps;\n };\n comparisonProps?: {\n /**\n * Set Name of Exchanges in the comparison list.\n * @default 'Orderly'\n */\n exchangesName?: string;\n /**\n * Set Icon URL of Exchanges in the comparison list.\n * @default \"\"\n */\n exchangesIconSrc?: string;\n };\n};\n\nexport const MarketsProvider: FC<PropsWithChildren<MarketsProviderProps>> = (\n props,\n) => {\n const { symbol, comparisonProps, children, onSymbolChange } = props;\n const [searchValue, setSearchValue] = useState(\"\");\n\n const clearSearchValue = useCallback(() => {\n setSearchValue(\"\");\n }, []);\n\n const memoizedValue = useMemo<MarketsContextState>(() => {\n return {\n searchValue,\n onSearchValueChange: setSearchValue,\n clearSearchValue,\n symbol: symbol,\n onSymbolChange: onSymbolChange,\n comparisonProps: comparisonProps,\n };\n }, [searchValue, symbol, onSymbolChange, setSearchValue, comparisonProps]);\n\n return (\n <MarketsContext.Provider value={memoizedValue}>\n {children}\n </MarketsContext.Provider>\n );\n};\n\nexport const useMarketsContext = () => {\n return useContext<MarketsContextState>(MarketsContext);\n};\n","import { memo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { Text, FormattedTextProps, TokenIcon, Flex } from \"@orderly.network/ui\";\n\ntype SymbolDisplayProps = FormattedTextProps;\n\nexport const SymbolDisplay = memo((props: SymbolDisplayProps) => {\n const { children, size = \"xs\", ...rest } = props;\n const symbol = children as string;\n\n const symbolsInfo = useSymbolsInfo();\n const displayName = symbolsInfo[symbol](\"displayName\");\n\n if (displayName) {\n return (\n <Flex gapX={1} className={props.className}>\n {props.showIcon && <TokenIcon size={size as any} symbol={symbol} />}\n <Text\n size=\"xs\"\n weight=\"semibold\"\n className=\"oui-whitespace-nowrap oui-break-normal\"\n >\n {displayName}\n </Text>\n </Flex>\n );\n }\n\n return (\n <Text.formatted size=\"xs\" rule=\"symbol\" weight=\"semibold\" {...rest}>\n {symbol}\n </Text.formatted>\n );\n});\n","import React, { FC, PropsWithChildren, SVGProps } from \"react\";\n\nexport const EditIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"16\"\n height=\"16\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 0h16v16H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M3.333 12.667h.95L10.8 6.15l-.95-.95-6.517 6.517zM2.667 14a.65.65 0 0 1-.475-.192.65.65 0 0 1-.192-.475v-1.616a1.32 1.32 0 0 1 .383-.934l8.417-8.4q.2-.183.442-.283.24-.1.508-.1.267 0 .517.1.249.1.433.3l.917.933q.2.184.291.434a1.44 1.44 0 0 1 0 1.008 1.25 1.25 0 0 1-.291.442l-8.4 8.4a1.32 1.32 0 0 1-.933.383zm7.65-8.317L9.85 5.2l.95.95z\" />\n </g>\n </svg>\n);\n\nexport const TrashIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M7.205 1.334c-.345 0-.674.136-.918.38L6.001 2H2.667a.667.667 0 1 0 0 1.334h10.667a.667.667 0 1 0 0-1.334h-3.333l-.287-.286a1.3 1.3 0 0 0-.918-.38zM2.911 4.667l1.018 8.842c.088.66.656 1.158 1.322 1.158h5.498c.666 0 1.235-.497 1.323-1.163l1.019-8.837z\" />\n </svg>\n);\n\nexport const AllMarketsIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"12\"\n height=\"12\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 0h12v12H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M8.5 10a.48.48 0 0 1-.356-.144A.48.48 0 0 1 8 9.5V7q0-.213.144-.356A.48.48 0 0 1 8.5 6.5h1q.212 0 .356.144A.48.48 0 0 1 10 7v2.5q0 .212-.144.356A.48.48 0 0 1 9.5 10zm-3 0a.48.48 0 0 1-.356-.144A.48.48 0 0 1 5 9.5v-7q0-.212.144-.356A.48.48 0 0 1 5.5 2h1q.213 0 .356.144A.48.48 0 0 1 7 2.5v7q0 .212-.144.356A.48.48 0 0 1 6.5 10zm-3 0a.48.48 0 0 1-.356-.144A.48.48 0 0 1 2 9.5V5q0-.213.144-.356A.48.48 0 0 1 2.5 4.5h1q.212 0 .356.144A.48.48 0 0 1 4 5v4.5q0 .212-.144.356A.48.48 0 0 1 3.5 10z\" />\n </g>\n </svg>\n);\n\nexport const NewListingsIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M5.993.958a.416.416 0 0 0-.41.422v.416a.416.416 0 1 0 .832 0V1.38a.416.416 0 0 0-.422-.422M2.749 2.29a.416.416 0 0 0-.29.714l.291.292a.416.416 0 1 0 .589-.588l-.292-.292a.42.42 0 0 0-.298-.126m6.489 0a.42.42 0 0 0-.286.126l-.292.292a.416.416 0 1 0 .588.588l.292-.292a.416.416 0 0 0-.302-.714m-3.239.753a2.895 2.895 0 0 0-2.913 2.914A2.86 2.86 0 0 0 4.751 8.58v1.123c0 .458.374.833.832.833h.832a.835.835 0 0 0 .833-.833V8.58a2.86 2.86 0 0 0 1.665-2.622 2.895 2.895 0 0 0-2.914-2.914M1.421 5.541a.416.416 0 1 0 0 .833h.417a.416.416 0 1 0 0-.833zm8.74 0a.416.416 0 1 0 0 .833h.416a.417.417 0 1 0 0-.833zM3.037 8.492a.42.42 0 0 0-.287.126l-.291.292a.416.416 0 1 0 .588.588l.292-.292a.416.416 0 0 0-.302-.714m5.913 0a.416.416 0 0 0-.29.714l.292.292a.416.416 0 1 0 .588-.588l-.292-.292a.42.42 0 0 0-.298-.126\" />\n </svg>\n);\n\nexport const FavoritesIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"20\"\n height=\"21\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 .5h20v20H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"m10 14.074-3.2 1.913a.6.6 0 0 1-.332.068.6.6 0 0 1-.277-.101.5.5 0 0 1-.186-.256.5.5 0 0 1-.005-.336l.84-3.556-2.82-2.394a.5.5 0 0 1-.174-.281.6.6 0 0 1 .013-.315.5.5 0 0 1 .173-.252.55.55 0 0 1 .305-.112l3.693-.33 1.467-3.393a.57.57 0 0 1 .211-.255A.54.54 0 0 1 10 4.39q.16 0 .292.083.131.082.211.255l1.467 3.414 3.693.309q.178.014.305.123.126.11.173.262t.002.304a.56.56 0 0 1-.183.27l-2.8 2.395.84 3.556a.5.5 0 0 1-.005.336.5.5 0 0 1-.186.256.6.6 0 0 1-.277.101.6.6 0 0 1-.332-.068z\" />\n </g>\n </svg>\n);\n\nexport const UnFavoritesIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"20\"\n height=\"21\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 .5h20v20H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M7.333 14.396 10 12.813l2.688 1.583-.709-3 2.313-1.98-3.063-.27L10 6.292 8.77 9.146l-3.062.27 2.334 1.98zM10 14.074l-3.2 1.913a.6.6 0 0 1-.332.068.6.6 0 0 1-.277-.101.5.5 0 0 1-.186-.256.5.5 0 0 1-.005-.336l.84-3.556-2.82-2.394a.5.5 0 0 1-.174-.281.6.6 0 0 1 .013-.315.5.5 0 0 1 .173-.252.55.55 0 0 1 .305-.112l3.693-.33 1.467-3.393a.57.57 0 0 1 .211-.255A.54.54 0 0 1 10 4.39q.16 0 .292.083.131.082.211.255l1.467 3.414 3.693.309q.178.014.305.123.126.11.173.262t.002.304a.56.56 0 0 1-.183.27l-2.8 2.395.84 3.556a.5.5 0 0 1-.005.336.5.5 0 0 1-.186.256.6.6 0 0 1-.277.101.6.6 0 0 1-.332-.068z\" />\n </g>\n </svg>\n);\n\nexport const CirclePlusIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"18\"\n height=\"18\"\n >\n <path fill=\"#D9D9D9\" d=\"M0 0h18v18H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M8.325 12.6h1.35V9.675H12.6v-1.35H9.675V5.4h-1.35v2.925H5.4v1.35h2.925zm.68 3.6a7 7 0 0 1-2.799-.562A7.3 7.3 0 0 1 3.91 14.09a7.3 7.3 0 0 1-1.546-2.296A7 7 0 0 1 1.8 8.99q0-1.49.563-2.794a7.26 7.26 0 0 1 3.843-3.834A7 7 0 0 1 9.009 1.8q1.49 0 2.794.562 1.303.563 2.288 1.547a7.3 7.3 0 0 1 1.547 2.292q.561 1.308.562 2.794a7 7 0 0 1-.562 2.799 7.3 7.3 0 0 1-1.547 2.297 7.3 7.3 0 0 1-2.292 1.547 7 7 0 0 1-2.794.562M9 14.85q2.437 0 4.144-1.706Q14.85 11.437 14.85 9t-1.706-4.144Q11.437 3.15 9 3.15T4.856 4.856 3.15 9t1.706 4.144Q6.563 14.85 9 14.85\" />\n </g>\n </svg>\n);\n\nexport const SearchIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M5.841 1.14a4.667 4.667 0 0 0 0 9.333 4.74 4.74 0 0 0 2.875-.975l2.54 2.56a.6.6 0 0 0 .838 0 .6.6 0 0 0 0-.838L9.537 8.677a4.72 4.72 0 0 0 .971-2.871 4.667 4.667 0 0 0-4.667-4.667m0 1.166a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7\" />\n </svg>\n);\n\nexport const MoveToTopIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M10 5.5a.76.76 0 0 0-.583.25l-4.334 4c0 .083-.083.25-.083.333 0 .25.167.417.417.417h2.916v6.667c0 .416.334.833.834.833h1.666c.5 0 .834-.417.834-.833V10.5h2.916c.25 0 .417-.167.417-.417 0-.083-.083-.25-.083-.333l-4.25-4.084c-.25-.083-.417-.166-.667-.166M2.177 3.06A.8.8 0 0 1 2.5 3h15a.834.834 0 1 1 0 1.667h-15a.833.833 0 0 1-.323-1.607\" />\n </svg>\n);\n\nexport const OrderlyIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.015.34h-.029a5.98 5.98 0 0 0-3.93 1.477c-.074.065-.027.184.072.184h7.745c.099 0 .146-.119.072-.184A5.98 5.98 0 0 0 6.015.341M3.48 7.866a.23.23 0 0 1 .187.1A2.85 2.85 0 0 0 6 9.178a2.85 2.85 0 0 0 2.334-1.213.23.23 0 0 1 .186-.1h3.104c.09 0 .155.086.13.172A6 6 0 0 1 6 12.327a6 6 0 0 1-5.755-4.29.134.134 0 0 1 .13-.172zM8.26 4.6a.29.29 0 0 0 .229.116h3.11c.09 0 .156-.086.13-.173a6 6 0 0 0-1.106-2.03.22.22 0 0 0-.165-.077H1.543a.22.22 0 0 0-.165.077 6 6 0 0 0-1.105 2.03.134.134 0 0 0 .13.173h3.11A.29.29 0 0 0 3.74 4.6 2.85 2.85 0 0 1 6 3.488c.92 0 1.738.436 2.26 1.112m.414 2.717c-.02.055.02.115.079.115h3.033a.135.135 0 0 0 .133-.112 6 6 0 0 0-.015-2.058.135.135 0 0 0-.133-.11H8.72c-.06 0-.1.061-.078.117a2.83 2.83 0 0 1 .032 2.048m-5.427.115c.06 0 .1-.06.079-.115a2.84 2.84 0 0 1 .032-2.048.085.085 0 0 0-.078-.118H.23a.135.135 0 0 0-.134.11A6 6 0 0 0 .08 7.32c.01.065.067.112.133.112z\"\n />\n </svg>\n);\n\nexport const FavoritesIcon2: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.012 1.72c-.286 0-.577.178-.75.532L4.2 4.438l-2.42.344c-.78.108-1.03.872-.47 1.42l1.75 1.703-.407 2.39c-.133.773.508 1.24 1.203.874.268-.142 1.648-.857 2.155-1.124l2.155 1.124c.695.367 1.339-.1 1.202-.874l-.421-2.39 1.749-1.702c.565-.547.326-1.31-.453-1.421l-2.436-.344L6.76 2.252c-.172-.354-.464-.531-.75-.531\" />\n </svg>\n);\n\nexport const UnFavoritesIcon2: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.012 1.72c-.286 0-.577.178-.75.532L4.2 4.438l-2.42.344c-.78.108-1.03.872-.47 1.42l1.75 1.703-.407 2.39c-.133.773.508 1.24 1.203.874.268-.142 1.648-.857 2.155-1.124l2.155 1.124c.695.367 1.339-.1 1.202-.874l-.421-2.39 1.749-1.702c.565-.547.326-1.31-.453-1.421l-2.436-.344L6.76 2.252c-.172-.354-.464-.531-.75-.531m0 1.297 1.03 2.108c.073.15.211.242.375.266l2.343.343-1.702 1.64a.48.48 0 0 0-.14.437l.405 2.312L6.246 9.03a.5.5 0 0 0-.468 0L3.7 10.123l.39-2.296a.52.52 0 0 0-.14-.453l-1.687-1.64 2.327-.328a.52.52 0 0 0 .39-.28z\" />\n </svg>\n);\n\nexport const TopIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M2.01 2.915a.667.667 0 1 0 0 1.334h12a.667.667 0 0 0 0-1.334zM7.343 13.59a.667.667 0 0 0 1.333 0V7.88l2 1.98.937-.938L8.49 5.777a.686.686 0 0 0-.959 0L4.405 8.923l.938.937 2-1.979z\" />\n </svg>\n);\n\nexport const DeleteIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M4.67 2.203A2.667 2.667 0 0 0 2.005 4.87v6.667a2.667 2.667 0 0 0 2.667 2.666h6.666a2.667 2.667 0 0 0 2.667-2.666V4.87a2.667 2.667 0 0 0-2.667-2.667zm1.334 3.334c.17 0 .349.057.48.187l1.52 1.52 1.52-1.52a.68.68 0 0 1 .48-.187c.17 0 .349.057.48.187.26.26.26.698 0 .959l-1.521 1.52 1.52 1.52c.26.262.26.699 0 .96a.687.687 0 0 1-.958 0L8.004 9.162l-1.52 1.52a.687.687 0 0 1-.96 0 .687.687 0 0 1 0-.958l1.521-1.52-1.52-1.521a.687.687 0 0 1 0-.96.68.68 0 0 1 .479-.186\" />\n </svg>\n);\n\nexport const AddIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"a\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"16\"\n height=\"16\"\n >\n <path d=\"M0 0h16v16H0z\" />\n </mask>\n <g mask=\"url(#a)\">\n <path d=\"M7.333 8.667h-4V7.333h4v-4h1.333v4h4v1.334h-4v4H7.333z\" />\n </g>\n </svg>\n);\n\nexport const ActiveAddIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n d=\"M5.99536 1.46487C5.71936 1.46487 5.49536 1.68887 5.49536 1.96487V5.46487H1.99536C1.71936 5.46487 1.49536 5.68887 1.49536 5.96487C1.49536 6.24087 1.71936 6.46487 1.99536 6.46487H5.49536V9.96487C5.49536 10.2409 5.71936 10.4649 5.99536 10.4649C6.27136 10.4649 6.49536 10.2409 6.49536 9.96487V6.46487H9.99536C10.2714 6.46487 10.4954 6.24087 10.4954 5.96487C10.4954 5.68887 10.2714 5.46487 9.99536 5.46487H6.49536V1.96487C6.49536 1.68887 6.27136 1.46487 5.99536 1.46487Z\"\n fill=\"url(#paint0_linear_1951_55156)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1951_55156\"\n x1=\"10.4954\"\n y1=\"5.96487\"\n x2=\"1.49536\"\n y2=\"5.96487\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nexport const ExpandIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.326 8.826a.84.84 0 0 0-.6.234L2.16 12.627v-2.135H.492v4.167c0 .46.373.833.834.833h4.166v-1.667H3.357l3.567-3.567a.857.857 0 0 0 0-1.198.84.84 0 0 0-.598-.234M10.502.492V2.16h2.135L9.07 5.726a.857.857 0 0 0 0 1.199.86.86 0 0 0 1.197 0l3.568-3.568v2.135h1.667V1.326a.834.834 0 0 0-.834-.834z\" />\n </svg>\n);\n\nexport const CollapseIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M14.668.492a.85.85 0 0 0-.599.234l-3.567 3.568V2.159H8.835v4.167c0 .46.373.833.833.833h4.167V5.492H11.7l3.569-3.567a.86.86 0 0 0 0-1.199.85.85 0 0 0-.6-.234m-12.5 8.334v1.666h2.135L.736 14.06a.86.86 0 0 0 0 1.198.86.86 0 0 0 1.198 0l3.568-3.567v2.134h1.666V9.66a.834.834 0 0 0-.833-.833z\" />\n </svg>\n);\n\nexport const FilterIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M11.2422 2.19751C10.2913 2.19751 9.40469 2.82152 9.12801 3.69902L2.99219 3.69751C2.57796 3.69751 2.24219 4.03351 2.24219 4.44751C2.24219 4.86151 2.57796 5.19751 2.99219 5.19751L9.12801 5.19678C9.46409 6.11553 10.2913 6.69751 11.2422 6.69751C12.193 6.69751 13.0288 6.11403 13.3707 5.19078L14.9922 5.19751C15.4064 5.19751 15.7422 4.86151 15.7422 4.44751C15.7422 4.03351 15.4064 3.69751 14.9922 3.69751H13.3643C13.0032 2.78326 12.193 2.19751 11.2422 2.19751ZM11.2422 3.69751C11.6564 3.69751 11.9922 4.03351 11.9922 4.44751C11.9922 4.86151 11.6564 5.19751 11.2422 5.19751C10.828 5.19751 10.4922 4.86151 10.4922 4.44751C10.4922 4.03351 10.828 3.69751 11.2422 3.69751ZM6.74219 6.69751C5.75369 6.69751 4.92629 7.31252 4.62419 8.19902C4.51874 8.20577 2.99219 8.19751 2.99219 8.19751C2.57796 8.19751 2.24219 8.53351 2.24219 8.94751C2.24219 9.36151 2.57796 9.69751 2.99219 9.69751C2.99219 9.69751 4.53149 9.68176 4.62741 9.69151C4.92951 10.578 5.75369 11.1975 6.74219 11.1975C7.69304 11.1975 8.50784 10.6148 8.86424 9.69975L14.9922 9.69751C15.4064 9.69751 15.7422 9.36151 15.7422 8.94751C15.7422 8.53351 15.4064 8.19751 14.9922 8.19751L8.86034 8.19078C8.53161 7.29603 7.69304 6.69751 6.74219 6.69751ZM6.74219 8.19751C7.15641 8.19751 7.49219 8.53351 7.49219 8.94751C7.49219 9.36151 7.15641 9.69751 6.74219 9.69751C6.32796 9.69751 5.99219 9.36151 5.99219 8.94751C5.99219 8.53351 6.32796 8.19751 6.74219 8.19751ZM11.2422 11.1975C10.2913 11.1975 9.42157 11.8238 9.12749 12.69L2.99219 12.6975C2.57796 12.6975 2.24219 13.0335 2.24219 13.4475C2.24219 13.8615 2.57796 14.1975 2.99219 14.1975L9.11639 14.1982C9.42756 15.087 10.2913 15.6975 11.2422 15.6975C12.193 15.6975 13.0129 15.1027 13.3741 14.1982L14.9922 14.1975C15.4064 14.1975 15.7422 13.8615 15.7422 13.4475C15.7422 13.0335 15.4064 12.6975 14.9922 12.6975L13.3672 12.693C13.0435 11.8058 12.193 11.1975 11.2422 11.1975ZM11.2422 12.6975C11.6564 12.6975 11.9922 13.0335 11.9922 13.4475C11.9922 13.8615 11.6564 14.1975 11.2422 14.1975C10.828 14.1975 10.4922 13.8615 10.4922 13.4475C10.4922 13.0335 10.828 12.6975 11.2422 12.6975Z\" />\n </svg>\n);\n\nexport const TriangleDownIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M3.003 3.998a.494.494 0 0 0-.39.797l3 4c.2.266.597.266.797 0l3-4a.5.5 0 0 0-.407-.797z\" />\n </svg>\n);\n\nexport const ArrowLeftIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M9.186 3.348a.67.67 0 0 0-.436.27l-2.657 4a.69.69 0 0 0 0 .75l2.657 4a.68.68 0 0 0 .934.188.685.685 0 0 0 .187-.937L7.463 7.993 9.87 4.37a.685.685 0 0 0-.187-.938.65.65 0 0 0-.498-.083\" />\n </svg>\n);\n\nexport const ArrowRightIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M6.777 3.348a.65.65 0 0 0-.498.083.685.685 0 0 0-.187.938L8.5 7.993l-2.408 3.625a.685.685 0 0 0 .187.938.68.68 0 0 0 .934-.187l2.657-4a.69.69 0 0 0 0-.75l-2.657-4a.67.67 0 0 0-.436-.271\" />\n </svg>\n);\n\nconst BaseSortIcon = (props: PropsWithChildren) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n >\n {props.children}\n </svg>\n );\n};\n\nexport const SortingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042m0 7.916a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </BaseSortIcon>\n );\n};\n\nexport const AscendingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n <path\n d=\"M5 8.958a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </BaseSortIcon>\n );\n};\n\nexport const DescendingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M5 8.958a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </BaseSortIcon>\n );\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../../../components/marketsProvider\";\nimport { SymbolDisplay } from \"../../../components/symbolDisplay\";\nimport { OrderlyIcon } from \"../../../icons\";\nimport { MarketsHeaderReturns } from \"./marketsHeader.script\";\n\n/** -----------MarketsHeader start ------------ */\ntype MarketsHeaderProps = MarketsHeaderReturns & {\n className?: string;\n};\nexport const MarketsHeader: FC<MarketsHeaderProps> = (props) => {\n const {\n emblaRef,\n emblaApi,\n scrollIndex,\n enableScroll,\n news,\n gainers,\n losers,\n total24Amount,\n totalOpenInterest,\n tvl,\n favorite,\n } = props;\n const { onSymbolChange } = useMarketsContext();\n const { t } = useTranslation();\n\n const cls = cn(\n \"oui-min-w-0 oui-flex-[0_0_calc((100%_-_32px)_/_3)] 3xl:oui-flex-[0_0_calc((100%_-_48px)_/_4)]\",\n enableScroll && \"oui-cursor-pointer oui-select-none\",\n );\n\n const onSymbol = (item: any) => {\n onSymbolChange?.(item);\n favorite.addToHistory(item);\n };\n\n return (\n <div\n id=\"oui-markets-header\"\n className={cn(\"oui-overflow-hidden\", props.className)}\n ref={enableScroll ? emblaRef : undefined}\n >\n <Flex width=\"100%\" gapX={4}>\n <BlockList\n total24Amount={total24Amount}\n totalOpenInterest={totalOpenInterest}\n tvl={tvl}\n className={cls}\n />\n <CardItem\n data={news}\n title={\n <Text.gradient color=\"brand\">\n {t(\"markets.newListings\")}\n </Text.gradient>\n }\n className={cls}\n onSymbol={onSymbol}\n />\n <CardItem\n data={gainers}\n title={\n <Text className=\"oui-text-success-light\">\n {t(\"markets.topGainers\")}\n </Text>\n }\n className={cls}\n onSymbol={onSymbol}\n />\n <CardItem\n data={losers}\n title={\n <Text className=\"oui-text-danger-light\">\n {t(\"markets.topLosers\")}\n </Text>\n }\n className={cls}\n onSymbol={onSymbol}\n />\n </Flex>\n <div className=\"oui-mb-3 oui-mt-1 3xl:oui-mb-0 3xl:oui-mt-4\">\n <ScrollIndicator\n scrollIndex={scrollIndex}\n scrollPrev={emblaApi?.scrollPrev}\n scrollNext={emblaApi?.scrollNext}\n />\n </div>\n </div>\n );\n};\n/** -----------MarketsHeader end ------------ */\n\ntype BlockListProps = {\n className?: string;\n total24Amount?: number;\n totalOpenInterest?: number;\n tvl?: number;\n};\n\n/** -----------MarketsHeader start ------------ */\nconst BlockList: React.FC<BlockListProps> = (props) => {\n const { total24Amount, totalOpenInterest, tvl } = props;\n const { t } = useTranslation();\n\n const list = useMemo(() => {\n return [\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.column.24hVolume\")}\n </Flex>\n ),\n value: total24Amount,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n value: totalOpenInterest,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {`${t(\"common.assets\")} (TVL)`}\n </Flex>\n ),\n value: tvl,\n },\n ];\n }, [total24Amount, totalOpenInterest, tvl]);\n\n return (\n <Flex\n direction=\"column\"\n justify=\"between\"\n width=\"100%\"\n height={236}\n className={props.className}\n >\n {list?.map((item, index) => (\n <BlockItem key={`item-${index}`} {...item} />\n ))}\n </Flex>\n );\n};\n/** -----------MarketsHeader start ------------ */\n\ntype BlockItemProps = {\n label: ReactNode;\n value?: number;\n rule?: string;\n dp?: number;\n};\n\nconst BlockItem: React.FC<BlockItemProps> = (props) => {\n return (\n <Box intensity={900} r=\"lg\" px={4} py={3} width=\"100%\">\n <Text as=\"div\" intensity={36} size=\"xs\" weight=\"semibold\">\n {props.label}\n </Text>\n\n <Text.numeral\n size=\"base\"\n currency=\"$\"\n dp={props.dp || 0}\n rm={Decimal.ROUND_DOWN}\n rule={props.rule as any}\n >\n {props.value!}\n </Text.numeral>\n </Box>\n );\n};\n\ntype CardItemProps = {\n data?: TListItem[];\n title: ReactNode;\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst CardItem: React.FC<CardItemProps> = (props) => {\n return (\n <Box\n intensity={900}\n r=\"lg\"\n py={4}\n pb={2}\n height={236}\n className={props.className}\n >\n <Box px={4}>\n <Text.gradient color=\"brand\" size=\"sm\" weight=\"semibold\">\n {props.title}\n </Text.gradient>\n </Box>\n\n <Flex direction=\"column\" itemAlign=\"start\" mt={2}>\n {props.data?.map((item, index) => (\n <ListItem key={item.symbol} item={item} onSymbol={props.onSymbol} />\n ))}\n </Flex>\n </Box>\n );\n};\n\ntype TListItem = {\n symbol: string;\n price: string;\n change: number;\n precision: number;\n [x: string]: any;\n};\n\ntype ListItemProps = {\n item: TListItem;\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst ListItem: React.FC<ListItemProps> = (props) => {\n const { item } = props;\n\n return (\n <Flex\n width=\"100%\"\n gapX={3}\n py={2}\n px={4}\n className={cn(\"oui-cursor-pointer hover:oui-bg-base-8\", props.className)}\n onClick={() => {\n props.onSymbol(item);\n }}\n >\n <SymbolDisplay formatString=\"base\" showIcon className=\"oui-w-full\">\n {item.symbol}\n </SymbolDisplay>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n currency=\"$\"\n size=\"xs\"\n weight=\"semibold\"\n dp={item.quote_dp}\n >\n {item[\"24h_close\"]}\n </Text.numeral>\n </Flex>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n rule=\"percentages\"\n coloring\n size=\"xs\"\n weight=\"semibold\"\n showIdentifier\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n};\n\ninterface ScrollIndicatorProps {\n scrollIndex: number;\n scrollPrev?: () => void;\n scrollNext?: () => void;\n}\n\nconst ScrollIndicator: React.FC<ScrollIndicatorProps> = (props) => {\n const { scrollIndex, scrollPrev, scrollNext } = props;\n\n return (\n <Flex gapX={1} justify=\"center\" className=\"3xl:oui-hidden\">\n {[0, 1].map((item) => {\n return (\n <Box\n key={item}\n py={1}\n pl={item === 0 ? 1 : 0}\n pr={item === 1 ? 1 : 0}\n onClick={() => {\n if (scrollIndex === 0 && item === 1) {\n scrollNext?.();\n } else if (scrollIndex === 1 && item === 0) {\n scrollPrev?.();\n }\n }}\n className=\"oui-cursor-pointer\"\n >\n <Box\n key={item}\n width={8}\n height={4}\n r=\"full\"\n className={cn(\n \"oui-transition-all oui-duration-300\",\n scrollIndex === item\n ? \"oui-w-4 oui-bg-base-contrast-36\"\n : \"oui-bg-base-contrast-20\",\n )}\n />\n </Box>\n );\n })}\n </Flex>\n );\n};\n\nexport default ScrollIndicator;\n","import { useCallback, useEffect, useState } from \"react\";\nimport { TableSort } from \"@orderly.network/ui\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport { SortType } from \"./type\";\n\n/**\n * Compare two values intelligently\n */\nconst compareValues = (aValue: any, bValue: any): number => {\n // Handle null/undefined values (always sort to bottom)\n if (aValue == null && bValue == null) return 0;\n if (aValue == null) return 1;\n if (bValue == null) return -1;\n\n // Convert to string first for type checking\n const aStr = String(aValue).trim();\n const bStr = String(bValue).trim();\n\n // More robust number detection - check if values can be converted to valid numbers\n const aNum = Number(aStr);\n const bNum = Number(bStr);\n const aIsNumber =\n !isNaN(aNum) && isFinite(aNum) && /^-?\\d*\\.?\\d+([eE][+-]?\\d+)?$/.test(aStr);\n const bIsNumber =\n !isNaN(bNum) && isFinite(bNum) && /^-?\\d*\\.?\\d+([eE][+-]?\\d+)?$/.test(bStr);\n\n if (aIsNumber && bIsNumber) {\n return aNum - bNum;\n }\n\n // Check if both are valid dates (ISO format or timestamp)\n const aIsDate = /^\\d{4}-\\d{2}-\\d{2}/.test(aStr) || /^\\d{13}$/.test(aStr);\n const bIsDate = /^\\d{4}-\\d{2}-\\d{2}/.test(bStr) || /^\\d{13}$/.test(bStr);\n\n if (aIsDate && bIsDate) {\n const aDate = new Date(aValue);\n const bDate = new Date(bValue);\n if (!isNaN(aDate.getTime()) && !isNaN(bDate.getTime())) {\n return aDate.getTime() - bDate.getTime();\n }\n }\n\n // String comparison - use localeCompare for proper string sorting\n return aStr.localeCompare(bStr, undefined, {\n sensitivity: \"base\",\n numeric: false, // Disable numeric sorting for pure string comparison\n caseFirst: \"upper\",\n });\n};\n\n/** get page data */\nexport function getPagedData(list: any[], pageSize: number, pageIndex: number) {\n const pageData: any[][] = [];\n let rows: any[] = [];\n for (let i = 0; i < list.length; i++) {\n rows.push(list[i]);\n if ((i + 1) % pageSize === 0 || i === list.length - 1) {\n pageData.push(rows);\n rows = [];\n }\n }\n return pageData[pageIndex - 1] || [];\n}\n\nexport function sortList(list: any[], sort?: SortType) {\n const { sortKey, sortOrder } = sort || {};\n const sortedList = [...(list || [])];\n\n if (sortKey && sortOrder) {\n // sort list\n sortedList.sort((a: any, b: any) => {\n const comparison = compareValues(a[sortKey], b[sortKey]);\n // Handle sort order: desc means reverse the comparison result\n return sortOrder === \"desc\" ? -comparison : comparison;\n });\n }\n return sortedList;\n}\n\nexport function useSort(\n initialSort?: SortType,\n onSortChange?: (sort?: SortType) => void,\n) {\n const [sort, setSort] = useState<SortType | undefined>(initialSort);\n\n const onSort = useCallback((options?: TableSort) => {\n const nextSort = options\n ? {\n sortKey: options.sortKey,\n sortOrder: options.sort,\n }\n : undefined;\n\n setSort(nextSort);\n onSortChange?.(nextSort);\n // initialSort, onSortChange is not needed to be in the dependency array, otherwise it will cause infinite loop\n }, []);\n\n const getSortedList = useCallback(\n (list: any[]) => sortList(list, sort),\n [sort],\n );\n\n return { sort, onSort, getSortedList };\n}\n\n/**\n * Escape special characters for use in regular expressions\n */\nfunction escapeRegExp(string: string): string {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function searchBySymbol<T extends Record<PropertyKey, any>>(\n list: T[],\n searchValue = \"\",\n formatString?: string,\n) {\n if (!searchValue) {\n return list;\n }\n\n // Escape special characters to prevent RegExp errors\n const escapedSearchValue = escapeRegExp(searchValue);\n const reg = new RegExp(escapedSearchValue, \"i\");\n\n const searchValueLower = searchValue.toLowerCase();\n\n // Split results into three groups: exact matches, starts with search and other matches\n const exactMatches: T[] = [];\n const startsWithMatches: T[] = [];\n const otherMatches: T[] = [];\n\n list?.forEach((item) => {\n const formattedSymbol = formatSymbol(item.symbol, formatString);\n const symbolLower = formattedSymbol.toLowerCase();\n\n // Check if displayName exists and prepare it for search\n const displayName = item.displayName;\n const displayNameLower = displayName\n ? String(displayName).toLowerCase()\n : null;\n\n // Check if search matches symbol or displayName\n const matchesSymbol = reg.test(formattedSymbol);\n const matchesDisplayName = displayNameLower\n ? reg.test(displayNameLower)\n : false;\n\n if (matchesSymbol || matchesDisplayName) {\n // Use displayName for comparison if available, otherwise use symbol\n const searchText = displayNameLower || symbolLower;\n\n if (searchText === searchValueLower) {\n exactMatches.push(item);\n } else if (searchText.startsWith(searchValueLower)) {\n startsWithMatches.push(item);\n } else {\n otherMatches.push(item);\n }\n }\n });\n\n const compareSymbols = (a: T, b: T) => {\n // Use displayName if available, otherwise use formatted symbol\n const textA = a.displayName || formatSymbol(a.symbol, formatString);\n const textB = b.displayName || formatSymbol(b.symbol, formatString);\n if (textA < textB) return -1;\n if (textA > textB) return 1;\n return 0;\n };\n\n // Sort each group alphabetically\n startsWithMatches.sort(compareSymbols);\n otherMatches.sort(compareSymbols);\n\n // Combine results with prioritized matches first\n return [...exactMatches, ...startsWithMatches, ...otherMatches];\n}\n\nexport function useSize() {\n const [width, setWidth] = useState<number>(0);\n const [height, setHeight] = useState<number>(0);\n\n useEffect(() => {\n setWidth(window.innerWidth);\n setHeight(window.innerHeight);\n\n const handleResize = () => {\n setHeight(window.innerHeight);\n setWidth(window.innerWidth);\n };\n\n window?.addEventListener(\"resize\", handleResize);\n\n return () => {\n window?.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return {\n width,\n height,\n };\n}\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useMarkets, useQuery, MarketsType } from \"@orderly.network/hooks\";\nimport { useEmblaCarousel } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { sortList, useSize } from \"../../../utils\";\n\n// export type EmblaCarouselType = Exclude<UseEmblaCarouselType[1], undefined>;\n// export type TEmblaApi = Pick<EmblaCarouselType, \"scrollPrev\" | \"scrollNext\">;\n// use UseEmblaCarouselType will bring type error\nexport type TEmblaApi = {\n scrollPrev: (jump?: boolean) => void;\n scrollNext: (jump?: boolean) => void;\n};\n\nexport type MarketsHeaderReturns = ReturnType<typeof useMarketsHeaderScript>;\n\nexport const useMarketsHeaderScript = () => {\n const [scrollIndex, setScrollIndex] = useState(0);\n const data = useDataSource();\n\n const { width } = useSize();\n\n const [emblaRef, emblaApi] = useEmblaCarousel({\n loop: true,\n // duration: 25,\n slidesToScroll: \"auto\",\n });\n\n useEffect(() => {\n emblaApi?.on(\"select\", () => {\n setScrollIndex(emblaApi?.selectedScrollSnap());\n });\n }, [emblaApi]);\n\n return {\n scrollIndex,\n setScrollIndex,\n emblaRef,\n emblaApi: emblaApi as TEmblaApi,\n enableScroll: width < 1440,\n ...data,\n };\n};\n\nexport function useDataSource() {\n const [markets, favorite] = useMarkets(MarketsType.ALL);\n const { data: balance } = useQuery(\"/v1/public/balance/stats\");\n\n const news = useMemo(\n () =>\n sortList(markets, { sortKey: \"created_time\", sortOrder: \"desc\" }).slice(\n 0,\n 5,\n ),\n [markets],\n );\n\n const gainers = useMemo(\n () =>\n sortList(markets, { sortKey: \"change\", sortOrder: \"desc\" }).slice(0, 5),\n [markets],\n );\n\n const losers = useMemo(\n () =>\n sortList(markets, { sortKey: \"change\", sortOrder: \"asc\" }).slice(0, 5),\n [markets],\n );\n\n const total24Amount = useMemo(\n () =>\n markets?.reduce((prevValue: Decimal, curValue: any) => {\n return prevValue.add(curValue[\"24h_amount\"] || 0);\n }, new Decimal(0)) || new Decimal(0),\n [markets],\n );\n\n const totalOpenInterest = useMemo(\n () =>\n markets?.reduce((prevValue: Decimal, curValue: any) => {\n return prevValue.add(curValue[\"openInterest\"] || 0);\n }, new Decimal(0)) || new Decimal(0),\n [markets],\n );\n\n const tvl = useMemo(() => {\n if (!balance) return 0;\n\n const { total_holding = 0 } = balance as any;\n return new Decimal(total_holding).toNumber();\n }, [balance]);\n\n return {\n markets,\n news,\n gainers,\n losers,\n total24Amount: total24Amount.toNumber(),\n totalOpenInterest: totalOpenInterest.toNumber(),\n tvl,\n favorite,\n };\n}\n","import { FC, ReactNode, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../../../components/marketsProvider\";\nimport { SymbolDisplay } from \"../../../components/symbolDisplay\";\nimport { OrderlyIcon } from \"../../../icons\";\nimport { MarketsHeaderReturns } from \"./marketsHeader.script\";\n\ntype MobileMarketsHeaderProps = MarketsHeaderReturns & {\n className?: string;\n};\n\nexport const MobileMarketsHeader: FC<MobileMarketsHeaderProps> = (props) => {\n const {\n news,\n gainers,\n losers,\n total24Amount,\n totalOpenInterest,\n tvl,\n favorite,\n } = props;\n const [activeTab, setActiveTab] = useState(\"newListings\");\n const { onSymbolChange } = useMarketsContext();\n const { t } = useTranslation();\n\n const onSymbol = (item: any) => {\n onSymbolChange?.(item);\n favorite.addToHistory(item);\n };\n\n return (\n <div\n id=\"oui-markets-header\"\n className={cn(\"oui-overflow-hidden\", props.className)}\n >\n <BlockList\n total24Amount={total24Amount}\n totalOpenInterest={totalOpenInterest}\n tvl={tvl}\n />\n\n <Box intensity={900} r=\"xl\" p={3} mt={3}>\n <Tabs size=\"md\" value={activeTab} onValueChange={setActiveTab}>\n <TabPanel\n title={t(\"markets.newListings\")}\n value=\"newListings\"\n testid=\"oui-testid-markets-tab\"\n >\n <CardItem data={news} onSymbol={onSymbol} />\n </TabPanel>\n <TabPanel\n title={t(\"markets.topGainers\")}\n value=\"topGainers\"\n testid=\"oui-testid-funding-tab\"\n >\n <CardItem data={gainers} onSymbol={onSymbol} />\n </TabPanel>\n <TabPanel\n title={t(\"markets.topLosers\")}\n value=\"topLosers\"\n testid=\"oui-testid-funding-tab\"\n >\n <CardItem data={losers} onSymbol={onSymbol} />\n </TabPanel>\n </Tabs>\n </Box>\n </div>\n );\n};\n\ntype BlockListProps = {\n className?: string;\n total24Amount?: number;\n totalOpenInterest?: number;\n tvl?: number;\n};\n\nconst BlockList: React.FC<BlockListProps> = (props) => {\n const { total24Amount, totalOpenInterest, tvl } = props;\n const { t } = useTranslation();\n\n const list = useMemo(() => {\n return [\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.column.24hVolume\")}\n </Flex>\n ),\n value: total24Amount,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n value: totalOpenInterest,\n },\n {\n label: (\n <Flex gapX={1}>\n <OrderlyIcon /> {`${t(\"common.assets\")} (TVL)`}\n </Flex>\n ),\n value: tvl,\n },\n ];\n }, [total24Amount, totalOpenInterest, tvl]);\n\n return (\n <Flex\n intensity={900}\n r=\"xl\"\n width=\"100%\"\n py={3}\n className={props.className}\n >\n {list?.map((item, index) => (\n <BlockItem\n key={`item-${index}`}\n {...item}\n className={cn(\n index !== list.length - 1 && \"oui-border-r oui-border-line-6\",\n )}\n />\n ))}\n </Flex>\n );\n};\n\ntype BlockItemProps = {\n label: ReactNode;\n value?: number;\n rule?: string;\n dp?: number;\n className?: string;\n};\n\nconst BlockItem: React.FC<BlockItemProps> = (props) => {\n return (\n <Box px={3} width=\"100%\" className={props.className}>\n <Text as=\"div\" intensity={36} size=\"2xs\" weight=\"semibold\">\n {props.label}\n </Text>\n\n <Text.numeral\n size=\"base\"\n currency=\"$\"\n dp={props.dp || 2}\n rm={Decimal.ROUND_DOWN}\n rule={(props.rule as any) || \"human\"}\n >\n {props.value!}\n </Text.numeral>\n </Box>\n );\n};\n\ntype CardItemProps = {\n data?: TListItem[];\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst CardItem: React.FC<CardItemProps> = (props) => {\n return (\n <Flex direction=\"column\" itemAlign=\"start\" mt={3}>\n {props.data?.map((item) => (\n <ListItem\n key={item.symbol}\n item={item}\n onSymbol={props.onSymbol}\n className=\"oui-px-0\"\n />\n ))}\n </Flex>\n );\n};\n\ntype TListItem = {\n symbol: string;\n price: string;\n change: number;\n precision: number;\n [x: string]: any;\n};\n\ntype ListItemProps = {\n item: TListItem;\n className?: string;\n onSymbol: (item: any) => void;\n};\n\nconst ListItem: React.FC<ListItemProps> = (props) => {\n const { item } = props;\n\n return (\n <Flex\n width=\"100%\"\n gapX={3}\n py={2}\n px={4}\n className={cn(\"oui-cursor-pointer hover:oui-bg-base-8\", props.className)}\n onClick={() => {\n props.onSymbol(item);\n }}\n >\n <SymbolDisplay formatString=\"base\" showIcon className=\"oui-w-full\">\n {item.symbol}\n </SymbolDisplay>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n currency=\"$\"\n size=\"xs\"\n weight=\"semibold\"\n dp={item.quote_dp}\n >\n {item[\"24h_close\"]}\n </Text.numeral>\n </Flex>\n\n <Flex width=\"100%\" justify=\"end\">\n <Text.numeral\n rule=\"percentages\"\n coloring\n size=\"xs\"\n weight=\"semibold\"\n showIdentifier\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileMarketsHeader } from \"./marketsHeader.mobile.ui\";\nimport { useMarketsHeaderScript } from \"./marketsHeader.script\";\nimport { MarketsHeader } from \"./marketsHeader.ui\";\n\ntype MarketsHeaderWidgetProps = {\n className?: string;\n};\n\nexport const MarketsHeaderWidget: FC<MarketsHeaderWidgetProps> = (props) => {\n const state = useMarketsHeaderScript();\n const { isMobile } = useScreen();\n return isMobile ? (\n <MobileMarketsHeader className={props.className} {...state} />\n ) : (\n <MarketsHeader className={props.className} {...state} />\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { TokenIcon, Flex, Text, cn, Tooltip, Badge } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport type CollapseMarketsProps = {\n dataSource: any[];\n};\n\nexport const CollapseMarkets: React.FC<CollapseMarketsProps> = (props) => {\n const { symbol, onSymbolChange } = useMarketsContext();\n const { t } = useTranslation();\n if (props.dataSource?.length === 0) {\n return null;\n }\n return (\n <div className=\"oui-custom-scrollbar oui-h-full oui-overflow-y-auto\">\n <Flex direction=\"column\" px={2} gapY={1}>\n {props.dataSource?.map((item) => {\n const content = (\n <Flex intensity={800} p={2} className=\"oui-gap-x-7\" r=\"base\">\n <Flex direction=\"column\" itemAlign=\"start\" gapY={1}>\n <Flex gapX={1}>\n <TokenIcon symbol={item.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {item.symbol}\n </SymbolDisplay>\n </Flex>\n <Text size=\"2xs\" intensity={36}>\n {t(\"markets.column.last\")}\n </Text>\n <Text size=\"2xs\" intensity={36}>\n {t(\"markets.column.24hPercentage\")}\n </Text>\n </Flex>\n\n <Flex direction=\"column\" itemAlign=\"end\" gapY={1}>\n <Badge size=\"xs\" color=\"primary\">\n {item.leverage}x\n </Badge>\n <Text.numeral\n dp={item.quote_dp || 2}\n currency=\"$\"\n size=\"2xs\"\n intensity={80}\n >\n {item[\"24h_close\"]}\n </Text.numeral>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n\n return (\n <Tooltip\n side=\"right\"\n sideOffset={6}\n content={content}\n delayDuration={0}\n key={item.symbol}\n >\n <Flex\n direction=\"column\"\n justify=\"center\"\n itemAlign=\"center\"\n gapY={1}\n width={54}\n height={54}\n r=\"lg\"\n className={cn(\n \"oui-cursor-pointer\",\n \"hover:oui-bg-base-7\",\n symbol === item.symbol && \"oui-bg-base-6 hover:oui-bg-base-6\",\n )}\n onClick={() => {\n onSymbolChange?.(item);\n }}\n >\n <TokenIcon symbol={item.symbol} className=\"oui-size-[18px]\" />\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {item.change}\n </Text.numeral>\n </Flex>\n </Tooltip>\n );\n })}\n </Flex>\n </div>\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n Button,\n CheckedSquareFillIcon,\n CheckSquareEmptyIcon,\n PlusIcon,\n CloseIcon,\n Divider,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n Flex,\n Input,\n Text,\n cn,\n CloseCircleFillIcon,\n Tooltip,\n} from \"@orderly.network/ui\";\nimport type { UseFavoritesDropdownMenuScriptReturn } from \"./favoritesDropdownMenu.script\";\n\nexport type FavoritesDropdownMenuProps =\n PropsWithChildren<UseFavoritesDropdownMenuScriptReturn>;\n\nexport const FavoritesDropdownMenu: React.FC<FavoritesDropdownMenuProps> = (\n props,\n) => {\n const {\n symbol,\n favoriteTabs,\n open,\n onOpenChange,\n inputVisible,\n selectedTabs,\n value,\n onValueChange,\n hide,\n hideInput,\n showInput,\n onCheck,\n addTab,\n confirm,\n } = props;\n\n const { t } = useTranslation();\n\n const overLen = value?.length > 15;\n\n const renderInput = () => {\n if (inputVisible) {\n return (\n <Box>\n <Flex gapX={2}>\n <Input\n autoFocus\n value={value}\n onValueChange={onValueChange}\n classNames={{\n root: cn(\n \"oui-ml-px oui-h-7 oui-w-full oui-rounded-sm oui-bg-base-6\",\n overLen &&\n \"focus-within:oui-outline-danger focus-visible:oui-outline-danger\",\n ),\n }}\n autoComplete=\"off\"\n suffix={\n value && (\n <Box mr={2}>\n <CloseCircleFillIcon\n opacity={1}\n size={14}\n className=\"oui-cursor-pointer oui-text-base-contrast-20\"\n onClick={() => {\n onValueChange(\"\");\n }}\n />\n </Box>\n )\n }\n />\n\n <Button\n className=\"oui-rounded-sm\"\n size=\"sm\"\n onClick={addTab}\n disabled={!value || overLen}\n >\n {t(\"common.add\")}\n </Button>\n </Flex>\n\n {overLen && (\n <Flex itemAlign=\"center\" gapX={1} mt={1}>\n <div className=\"oui-size-1 oui-rounded-full oui-bg-danger\"></div>\n <Text color=\"danger\">{t(\"markets.favorites.tabs.maxName\")}</Text>\n </Flex>\n )}\n </Box>\n );\n }\n\n const overTabs = favoriteTabs.length >= 10;\n\n return (\n <Tooltip\n open={overTabs ? undefined : false}\n content={\n <Text size=\"2xs\" intensity={80}>\n {t(\"markets.favorites.tabs.maxList\")}\n </Text>\n }\n className=\"oui-bg-base-6\"\n delayDuration={0}\n arrow={{ className: \"oui-fill-base-6\" }}\n >\n <div>\n <Flex\n className={cn(\n overTabs ? \"oui-cursor-not-allowed\" : \"oui-cursor-pointer\",\n )}\n itemAlign=\"center\"\n gapX={2}\n p={2}\n intensity={overTabs ? 500 : 600}\n onClick={overTabs ? undefined : showInput}\n height={28}\n r=\"base\"\n >\n <PlusIcon\n size={14}\n className=\"oui-text-base-contrast-36\"\n opacity={1}\n />\n <Text className=\"\" intensity={20}>\n {t(\"markets.favorites.dropdown.addPlaceholder\")}\n </Text>\n </Flex>\n </div>\n </Tooltip>\n );\n };\n\n const header = (\n <Flex justify=\"between\" className=\"oui-mb-[10px] oui-mt-3\">\n <Flex gapX={1}>\n {t(\"markets.favorites.dropdown.title\")}\n <Text.formatted\n rule=\"symbol\"\n formatString=\"base-type\"\n size=\"base\"\n showIcon\n >\n {symbol}\n </Text.formatted>\n </Flex>\n <CloseIcon\n size={16}\n className=\"oui-cursor-pointer oui-text-base-contrast\"\n onClick={hide}\n />\n </Flex>\n );\n\n const content = (\n // <ScrollArea className=\"custom-scrollbar\">\n <Box>\n <Box\n my={2}\n className=\"oui-custom-scrollbar oui-max-h-[288px] oui-overflow-y-auto\"\n >\n {favoriteTabs?.slice(0, 10)?.map((item) => {\n const checked = !!selectedTabs.find((tab) => tab.id === item.id);\n return (\n <Box key={item.id} className=\"oui-cursor-pointer\">\n <Flex\n className=\"oui-gap-x-[6px] hover:oui-bg-base-6\"\n p={2}\n r=\"md\"\n onClick={() => {\n onCheck(item, checked);\n }}\n >\n {checked ? (\n <CheckedSquareFillIcon\n size={18}\n className=\"oui-text-base-contrast-80\"\n />\n ) : (\n <CheckSquareEmptyIcon\n size={18}\n className=\"oui-text-base-contrast-80\"\n />\n )}\n\n <Text intensity={54}>{item.name}</Text>\n </Flex>\n </Box>\n );\n })}\n </Box>\n <Box mt={3} pb={5}>\n {renderInput()}\n </Box>\n </Box>\n // </ScrollArea>\n );\n\n const footer = (\n <Flex gapX={3} mt={3}>\n <Button\n key=\"secondary\"\n color=\"gray\"\n onClick={hide}\n fullWidth\n className=\"oui-text-sm\"\n size=\"md\"\n >\n {t(\"common.cancel\")}\n </Button>\n\n <Button\n key=\"primary\"\n onClick={confirm}\n fullWidth\n className=\"oui-text-sm\"\n size=\"md\"\n >\n {t(\"common.confirm\")}\n </Button>\n </Flex>\n );\n\n return (\n <DropdownMenuRoot open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(e) => e.preventDefault()}\n onClick={(e) => e.stopPropagation()}\n align=\"start\"\n alignOffset={-12}\n sideOffset={24}\n className=\"oui-markets-favorite-dropdown-menu-content oui-bg-base-8\"\n >\n <Box px={5} pb={5} width={360}>\n <Text as=\"div\" size=\"sm\" weight=\"semibold\">\n {header}\n <Divider />\n {content}\n {footer}\n </Text>\n </Box>\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { FavoriteTab } from \"@orderly.network/hooks\";\nimport { FavoriteInstance } from \"../../type\";\n\nexport type UseFavoritesDropdownMenuScriptOptions = {\n row: any;\n favorite: FavoriteInstance;\n};\n\nexport type UseFavoritesDropdownMenuScriptReturn = ReturnType<\n typeof useFavoritesDropdownMenuScript\n>;\n\nexport function useFavoritesDropdownMenuScript(\n options: UseFavoritesDropdownMenuScriptOptions\n) {\n const { symbol } = options.row || {};\n const {\n favorites,\n favoriteTabs,\n updateFavoriteTabs,\n updateSymbolFavoriteState,\n } = options.favorite;\n const [open, setOpen] = useState(false);\n const [inputVisible, setInputVisible] = useState(false);\n const [value, setValue] = useState(\"\");\n const [selectedTabs, setSelectedTabs] = useState([] as FavoriteTab[]);\n\n const hide = () => {\n setOpen(false);\n };\n\n const showInput = () => {\n setInputVisible(true);\n };\n\n const hideInput = () => {\n setInputVisible(false);\n };\n\n const clearState = () => {\n setValue(\"\");\n hideInput();\n setSelectedTabs([]);\n };\n\n const addTab = () => {\n const newTab = {\n name: value || `WatchList_${favoriteTabs.length}`,\n id: Date.now(),\n };\n updateFavoriteTabs(newTab, { add: true });\n clearState();\n };\n\n const onCheck = (item: FavoriteTab, checked: boolean) => {\n if (checked) {\n setSelectedTabs(selectedTabs?.filter((tab) => tab.id !== item.id));\n } else {\n setSelectedTabs([...selectedTabs, item]);\n }\n hideInput();\n };\n\n const confirm = () => {\n updateSymbolFavoriteState(options.row, selectedTabs, false);\n setOpen(false);\n };\n\n useEffect(() => {\n if (!open) {\n return;\n }\n\n const find = favorites?.find((item) => item.name === symbol);\n if (find?.tabs?.length) {\n setSelectedTabs(find?.tabs);\n }\n }, [open, favorites, favoriteTabs, symbol]);\n\n useEffect(() => {\n if (!open) {\n clearState();\n }\n }, [open]);\n\n return {\n symbol,\n favoriteTabs,\n open,\n onOpenChange: setOpen,\n inputVisible,\n selectedTabs,\n value,\n onValueChange: setValue,\n hide,\n hideInput,\n showInput,\n onCheck,\n addTab,\n confirm,\n };\n}\n","import { PropsWithChildren } from \"react\";\nimport {\n useFavoritesDropdownMenuScript,\n UseFavoritesDropdownMenuScriptOptions,\n} from \"./favoritesDropdownMenu.script\";\nimport { FavoritesDropdownMenu } from \"./favoritesDropdownMenu.ui\";\n\nexport type FavoritesDropdownMenuWidgetProps =\n PropsWithChildren<UseFavoritesDropdownMenuScriptOptions>;\n\nexport const FavoritesDropdownMenuWidget: React.FC<\n FavoritesDropdownMenuWidgetProps\n> = (props) => {\n const state = useFavoritesDropdownMenuScript(props);\n return (\n <FavoritesDropdownMenu {...state}>{props.children}</FavoritesDropdownMenu>\n );\n};\n","export { FavoritesDropdownMenu } from \"./favoritesDropdownMenu.ui\";\nexport { useFavoritesDropdownMenuScript } from \"./favoritesDropdownMenu.script\";\nexport { FavoritesDropdownMenuWidget } from \"./favoritesDropdownMenu.widget\";\n","import { isCurrentlyTrading } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Text, Tooltip, Box } from \"@orderly.network/ui\";\n\nexport type RwaDotTooltipProps = {\n record: any;\n};\n\nexport const RwaDotTooltip = ({ record }: RwaDotTooltipProps) => {\n const { t } = useTranslation();\n\n const isInTradingHours = isCurrentlyTrading(\n record.rwaNextClose,\n record.rwaStatus,\n );\n\n if (!record.isRwa) {\n return null;\n }\n\n return (\n <Tooltip\n content={\n <Text color={isInTradingHours ? \"success\" : \"danger\"}>\n {isInTradingHours\n ? t(\"trading.rwa.marketHours\")\n : t(\"trading.rwa.outsideMarketHours\")}\n </Text>\n }\n >\n <Box p={2}>\n <Box\n width={4}\n height={4}\n r=\"full\"\n className={isInTradingHours ? \"oui-bg-success\" : \"oui-bg-danger\"}\n />\n </Box>\n </Tooltip>\n );\n};\n","import { MouseEventHandler, ReactNode } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, TokenIcon, Text, Badge, cn, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n DeleteIcon,\n FavoritesIcon2,\n TopIcon,\n UnFavoritesIcon2,\n} from \"../../icons\";\nimport type { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { RwaDotTooltip } from \"../rwaDotTooltip\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport const useSideMarketsColumns = (\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) => {\n const { t } = useTranslation();\n\n return [\n {\n title: `${t(\"markets.column.market\")} / ${t(\"common.volume\")}`,\n dataIndex: \"24h_amount\",\n multiSort: {\n fields: [\n {\n sortKey: \"symbol\",\n label: t(\"markets.column.market\"),\n },\n {\n sortKey: \"24h_amount\",\n label: t(\"common.volume\"),\n },\n ],\n },\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n let favoritesIcon: ReactNode;\n if (!isFavoriteList) {\n favoritesIcon = (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {record.isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n </FavoritesDropdownMenuWidget>\n );\n }\n\n return (\n <Flex>\n {favoritesIcon}\n <Flex direction=\"column\" itemAlign=\"start\" gapY={1}>\n <Flex gapX={1}>\n <TokenIcon symbol={record.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {record.symbol}\n </SymbolDisplay>\n <RwaDotTooltip record={record} />\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n\n <Text.numeral\n intensity={54}\n size=\"2xs\"\n rule=\"human\"\n dp={2}\n rm={Decimal.ROUND_DOWN}\n >\n {value}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n },\n },\n {\n title: t(\"markets.column.price&Change\"),\n dataIndex: \"change\",\n align: \"right\",\n onSort: true,\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const iconCls =\n \"oui-w-4 oui-h-4 oui-text-base-contrast-54 hover:oui-text-base-contrast\";\n\n const actions = (\n <div\n className={cn(\n \"oui-absolute oui-right-0 oui-top-[6.5px]\",\n \"oui-hidden group-hover:oui-block\",\n )}\n >\n <Flex\n className={cn(\n \"oui-inline-flex\",\n \"oui-bg-primary-darken oui-py-[6px]\",\n )}\n r=\"base\"\n width={52}\n justify=\"center\"\n itemAlign=\"end\"\n gapX={2}\n >\n <TopIcon\n className={iconCls}\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n />\n <DeleteIcon className={iconCls} onClick={onDelSymbol} />\n </Flex>\n </div>\n );\n\n return (\n <div className=\"oui-relative\">\n {isFavoriteList && actions}\n\n <Flex\n direction=\"column\"\n justify=\"end\"\n itemAlign=\"end\"\n gapY={1}\n className={cn(isFavoriteList && \"group-hover:oui-invisible\")}\n >\n <Text.numeral dp={record.quote_dp || 2} size=\"2xs\">\n {record[\"24h_close\"]}\n </Text.numeral>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {value}\n </Text.numeral>\n </Flex>\n </div>\n );\n },\n },\n ] as Column[];\n};\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../collapseMarkets\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useSideMarketsColumns } from \"../sideMarkets/column\";\nimport { type MarketsListScriiptReturn } from \"./marketsList.script\";\nimport { type MarketsListWidgetProps } from \"./marketsList.widget\";\n\nexport type MarketsListProps = MarketsListScriiptReturn &\n Pick<\n MarketsListWidgetProps,\n | \"getColumns\"\n | \"panelSize\"\n | \"tableClassNames\"\n | \"rowClassName\"\n | \"initialSort\"\n | \"renderHeader\"\n | \"emptyView\"\n >;\n\nexport const MarketsList: FC<MarketsListProps> = (props) => {\n const {\n loading,\n dataSource,\n favorite,\n onSort,\n initialSort,\n getColumns,\n panelSize,\n isFavoritesList,\n renderHeader,\n emptyView,\n } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, isFavoritesList);\n\n const columns =\n typeof getColumns === \"function\"\n ? getColumns(favorite, isFavoritesList)\n : sideColumns;\n\n if (panelSize === \"small\") {\n return null;\n }\n\n if (panelSize === \"middle\") {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <>\n {renderHeader?.(favorite)}\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n empty: \"oui-items-start oui-mt-6\",\n }}\n columns={columns}\n loading={loading}\n dataSource={dataSource}\n onRow={(record) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n initialSort={\n initialSort\n ? { sortKey: initialSort.sortKey, sort: initialSort.sortOrder }\n : undefined\n }\n manualSorting\n emptyView={emptyView}\n />\n </>\n );\n};\n","import { useMarkets } from \"@orderly.network/hooks\";\nimport { SortOrder, Column } from \"@orderly.network/ui\";\n\nexport type FavoriteInstance = ReturnType<typeof useMarkets>[1];\n\nexport type SortType = {\n sortKey: string;\n sortOrder: SortOrder;\n};\n\nexport type GetColumns = (\n favorite: FavoriteInstance,\n isFavoriteList: boolean,\n) => Column[];\n\nexport enum MarketsPageTab {\n Markets = \"markets\",\n Funding = \"funding\",\n}\n\nexport enum MarketsTabName {\n Favorites = \"favorites\",\n Recent = \"recent\",\n All = \"all\",\n Rwa = \"rwa\",\n NewListing = \"newListing\",\n}\n\nexport enum FundingTabName {\n Overview = \"overview\",\n Comparison = \"comparison\",\n}\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { MarketsTabName } from \"../../type\";\nimport { searchBySymbol, useSort } from \"../../utils\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { type MarketsListWidgetProps } from \"./marketsList.widget\";\n\nexport type MarketsListScriptOptions = MarketsListWidgetProps;\n\nexport type MarketsListScriiptReturn = ReturnType<typeof useMarketsListScript>;\n\nconst MarketsTypeMap = {\n [MarketsTabName.All]: MarketsType.ALL,\n [MarketsTabName.Rwa]: MarketsType.RWA,\n [MarketsTabName.Favorites]: MarketsType.FAVORITES,\n [MarketsTabName.Recent]: MarketsType.RECENT,\n [MarketsTabName.NewListing]: MarketsType.NEW_LISTING,\n};\n\nexport const useMarketsListScript = (options: MarketsListScriptOptions) => {\n const [loading, setLoading] = useState(true);\n\n const [data, favorite] = useMarkets(\n MarketsTypeMap[options.type] || MarketsType.ALL,\n );\n\n const { favorites, selectedFavoriteTab } = favorite;\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort(\n options.initialSort,\n options.onSort,\n );\n\n const dataSource = useMemo(() => {\n const filterList =\n typeof options.dataFilter === \"function\"\n ? options.dataFilter(data, { favorites, selectedFavoriteTab })\n : data;\n const searchResults = searchBySymbol(filterList, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [\n data,\n getSortedList,\n searchValue,\n options.dataFilter,\n favorites,\n selectedFavoriteTab,\n ]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n const isFavoritesList = options.type === MarketsTabName.Favorites;\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n isFavoritesList,\n };\n};\n","import { ReactNode } from \"react\";\nimport { Favorite, FavoriteTab } from \"@orderly.network/hooks\";\nimport { DataTableClassNames } from \"@orderly.network/ui\";\nimport {\n FavoriteInstance,\n GetColumns,\n SortType,\n MarketsTabName,\n} from \"../../type\";\nimport { useMarketsListScript } from \"./marketsList.script\";\nimport { MarketsList } from \"./marketsList.ui\";\n\nexport type MarketsListWidgetProps = {\n type: MarketsTabName;\n getColumns?: GetColumns;\n panelSize?: \"small\" | \"middle\" | \"large\";\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n initialSort?: SortType;\n onSort?: (sort?: SortType) => void;\n renderHeader?: (favorite: FavoriteInstance) => ReactNode;\n dataFilter?: (\n data: any[],\n options: { favorites: Favorite[]; selectedFavoriteTab: FavoriteTab },\n ) => any[];\n emptyView?: ReactNode;\n};\n\nexport const MarketsListWidget: React.FC<MarketsListWidgetProps> = (props) => {\n const state = useMarketsListScript(props);\n return (\n <MarketsList\n {...state}\n initialSort={props.initialSort}\n getColumns={props.getColumns}\n panelSize={props.panelSize}\n tableClassNames={props.tableClassNames}\n rowClassName={props.rowClassName}\n renderHeader={props.renderHeader}\n emptyView={props.emptyView}\n />\n );\n};\n","export { MarketsList } from \"./marketsList.ui\";\nexport { useMarketsListScript } from \"./marketsList.script\";\nexport { MarketsListWidget } from \"./marketsList.widget\";\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex, GradientText, RwaIcon, Text } from \"@orderly.network/ui\";\n\nconst RwaIconTab = (props: { iconSize?: number }) => {\n const { iconSize = 12 } = props;\n const { t } = useTranslation();\n return (\n <Flex gap={1}>\n <RwaIcon\n size={iconSize}\n className=\"group-data-[state=active]:oui-text-base-contrast group-data-[state=inactive]:oui-text-base-contrast-36\"\n />\n <Text>{t(\"common.rwa\")}</Text>\n </Flex>\n );\n};\n\nconst RwaTab = () => {\n const { t } = useTranslation();\n return (\n <Flex gap={1}>\n <Text>{t(\"common.rwa\")}</Text>\n <Box\n r=\"base\"\n px={2}\n className=\"oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)]\"\n >\n <GradientText color=\"brand\">{t(\"common.new\")}</GradientText>\n </Box>\n </Flex>\n );\n};\n\nexport { RwaIconTab, RwaTab };\n","import React, { useRef, useCallback } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CloseCircleFillIcon,\n cn,\n Input,\n InputProps,\n} from \"@orderly.network/ui\";\nimport { SearchIcon } from \"../../icons\";\nimport { useMarketsContext } from \"../marketsProvider\";\n\ntype SearchInputProps = Pick<InputProps, \"classNames\" | \"suffix\">;\n\nexport const SearchInput: React.FC<SearchInputProps> = (props) => {\n const { classNames, suffix } = props;\n const isComposingRef = useRef<boolean>(false);\n\n const { t } = useTranslation();\n\n const { searchValue, onSearchValueChange, clearSearchValue } =\n useMarketsContext();\n\n const handleCompositionStart = useCallback(() => {\n isComposingRef.current = true;\n }, []);\n\n const handleCompositionEnd = useCallback(\n (event: React.CompositionEvent<HTMLInputElement>) => {\n isComposingRef.current = false;\n onSearchValueChange?.(event.currentTarget.value);\n },\n [onSearchValueChange],\n );\n\n return (\n <Input\n value={searchValue}\n onValueChange={onSearchValueChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n placeholder={t(\"markets.search.placeholder\")}\n classNames={{\n ...classNames,\n // use mt-px to fix the top border issue\n root: cn(\"oui-mt-px oui-border oui-border-line\", classNames?.root),\n }}\n size=\"sm\"\n prefix={\n <Box pl={3} pr={1}>\n <SearchIcon className=\"oui-text-base-contrast-36\" />\n </Box>\n }\n suffix={\n suffix ||\n (searchValue && (\n <Box mr={2}>\n <CloseCircleFillIcon\n size={14}\n className=\"oui-cursor-pointer oui-text-base-contrast-36\"\n onClick={clearSearchValue}\n />\n </Box>\n ))\n }\n autoComplete=\"off\"\n />\n );\n};\n","import { ReactNode } from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { Text, Column, Flex, TokenIcon, Badge } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { FavoritesIcon2, UnFavoritesIcon2 } from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { RwaDotTooltip } from \"../rwaDotTooltip\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport function getSymbolColumn(\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) {\n return {\n title: i18n.t(\"common.symbol\"),\n dataIndex: \"symbol\",\n width: 150,\n onSort: true,\n render: (value, record) => {\n let favoritesIcon: ReactNode;\n if (!isFavoriteList) {\n favoritesIcon = (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {record.isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n </FavoritesDropdownMenuWidget>\n );\n }\n\n return (\n <Flex gapX={1}>\n {favoritesIcon}\n <TokenIcon symbol={value} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {value}\n </SymbolDisplay>\n <RwaDotTooltip record={record} />\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n );\n },\n } as Column<any>;\n}\n\nexport function getLastColumn() {\n return {\n title: i18n.t(\"markets.column.last\"),\n dataIndex: \"24h_close\",\n align: \"right\",\n onSort: true,\n width: 100,\n render: (value, record) => {\n return (\n <Text.numeral dp={record.quote_dp || 2} size=\"2xs\">\n {value}\n </Text.numeral>\n );\n },\n } as Column<any>;\n}\n\nexport function get24hPercentageColumn() {\n return {\n title: i18n.t(\"markets.column.24hPercentage\"),\n dataIndex: \"change\",\n align: \"right\",\n onSort: true,\n width: 80,\n render: (value) => {\n return (\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {value}\n </Text.numeral>\n );\n },\n } as Column<any>;\n}\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Button,\n cn,\n EmptyStateIcon,\n Flex,\n PlusIcon,\n Text,\n} from \"@orderly.network/ui\";\n\ntype FavoritesEmptyProps = {\n className?: string;\n onClick: () => void;\n};\n\nexport const FavoritesEmpty: FC<FavoritesEmptyProps> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex\n direction=\"column\"\n itemAlign=\"center\"\n gapY={4}\n className={cn(\"oui-text-center\", props.className)}\n >\n <EmptyStateIcon />\n <Button\n color=\"gray\"\n size=\"xs\"\n className=\"oui-bg-base-4\"\n onClick={props.onClick}\n >\n <PlusIcon\n className=\"oui-mr-1 oui-text-base-contrast\"\n opacity={1}\n size={12}\n />\n <Text intensity={98}>{t(\"markets.favorites.addFavorites\")}</Text>\n </Button>\n </Flex>\n );\n};\n","import { KeyboardEventHandler } from \"react\";\nimport { FavoriteTab } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n cn,\n Flex,\n Text,\n Tooltip,\n Input,\n modal,\n} from \"@orderly.network/ui\";\nimport { AddIcon, ActiveAddIcon, EditIcon, TrashIcon } from \"../../icons\";\nimport {\n UseFavoritesTabScriptOptions,\n UseFavoritesTabScriptReturn,\n} from \"./favoritesTabs.script\";\n\nexport type FavoritesTabProps = UseFavoritesTabScriptReturn &\n Pick<UseFavoritesTabScriptOptions, \"size\"> & {\n className?: string;\n };\n\nexport const FavoritesTab: React.FC<FavoritesTabProps> = (props) => {\n const {\n open,\n setOpen,\n container,\n inputRef,\n inputWidth,\n spanRef,\n editing,\n value,\n onValueChange,\n updateCurTab,\n onEdit,\n addTab,\n delTab,\n size = \"default\",\n scrollable,\n } = props;\n\n const { t } = useTranslation();\n\n const { selectedFavoriteTab, favoriteTabs, updateSelectedFavoriteTab } =\n props.favorite;\n\n const addIconWidth = size === \"sm\" ? 28 : 36;\n const tabHeight = size === \"sm\" ? 18 : 24;\n const overLen = value?.length > 15;\n\n const gradientColor =\n \"oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)]\";\n\n const onDel = (item: any) => {\n modal.confirm({\n title: t(\"markets.favorites.tabs.delete.dialog.title\"),\n content: (\n <Text size=\"sm\">\n {t(\"markets.favorites.tabs.delete.dialog.description\", {\n name: item.name,\n })}\n </Text>\n ),\n onOk() {\n delTab(item);\n return Promise.resolve();\n },\n });\n };\n\n const onKeyUp: KeyboardEventHandler = (e) => {\n if (e.key === \"Enter\") {\n updateCurTab(overLen);\n }\n };\n\n const renderActions = (item: any) => {\n return (\n <Flex gapX={2} itemAlign=\"center\" px={2} py={1}>\n <EditIcon\n className=\"oui-cursor-pointer oui-text-base-contrast-36 hover:oui-text-base-contrast\"\n onClick={() => {\n onEdit(item);\n }}\n />\n <TrashIcon\n className=\"oui-cursor-pointer oui-text-base-contrast-36 hover:oui-text-base-contrast\"\n onClick={() => {\n onDel(item);\n }}\n />\n </Flex>\n );\n };\n\n const renderAdd = () => {\n const overTabs = favoriteTabs.length >= 10;\n\n const icon = (\n <Flex\n className={cn(\n \"oui-inline-flex\",\n overTabs ? \"oui-cursor-not-allowed\" : \"oui-cursor-pointer\",\n overTabs ? \"oui-bg-base-3\" : gradientColor,\n )}\n width={addIconWidth}\n height={tabHeight}\n r=\"base\"\n justify=\"center\"\n itemAlign=\"center\"\n onClick={overTabs ? undefined : addTab}\n >\n {overTabs ? (\n <AddIcon className=\"oui-z-[1] oui-size-3 oui-text-base-contrast-54\" />\n ) : (\n <ActiveAddIcon className=\"oui-size-3\" />\n )}\n </Flex>\n );\n\n if (overTabs) {\n return (\n <Tooltip\n // @ts-ignore\n content={\n <Text size=\"2xs\" intensity={80}>\n Maximum 10 groups in the favorite list\n </Text>\n }\n className=\"oui-bg-base-6\"\n delayDuration={0}\n arrow={{ className: \"oui-fill-base-6\" }}\n >\n {icon}\n </Tooltip>\n );\n }\n\n return icon;\n };\n\n const renderInput = (isActive: boolean) => {\n return (\n <Tooltip\n open={overLen}\n // @ts-ignore\n content={\n <Text size=\"2xs\" intensity={80}>\n List name cannot exceed 15 characters\n </Text>\n }\n className=\"oui-bg-base-6\"\n delayDuration={0}\n sideOffset={0}\n >\n <Input\n ref={inputRef}\n style={\n overLen\n ? { width: inputWidth }\n : {\n // @ts-ignore\n \"--oui-gradient-angle\": \"270deg\",\n backgroundClip: \"text\",\n WebkitTextFillColor: \"transparent\",\n WebkitBackgroundClip: \"text\",\n width: inputWidth,\n }\n }\n classNames={{\n root: cn(\n \"oui-my-px oui-rounded oui-p-0 oui-px-2\",\n \"focus-within:oui-outline-transparent focus-visible:oui-outline-none\",\n size === \"sm\" ? \"oui-h-[18px]\" : \"oui-h-[24px]\",\n isActive && cn(overLen ? \"oui-bg-danger/15\" : gradientColor),\n ),\n input: cn(\n \"oui-font-semibold oui-caret-[rgba(217,217,217,1)]\",\n overLen\n ? \"oui-text-danger\"\n : \"oui-text-transparent oui-gradient-brand \",\n size === \"sm\" ? \"oui-text-2xs\" : \"oui-text-sm\",\n ),\n }}\n value={value}\n onValueChange={onValueChange}\n onBlur={() => {\n updateCurTab(overLen);\n }}\n onKeyUp={onKeyUp}\n autoComplete=\"off\"\n />\n </Tooltip>\n );\n };\n\n const renderContent = (item: FavoriteTab, isActive: boolean) => {\n if (editing && isActive) {\n return renderInput(isActive);\n }\n\n const textProps = {\n weight: \"semibold\",\n size: size === \"sm\" ? \"2xs\" : \"sm\",\n className: size === \"sm\" ? \"oui-leading-[18px]\" : \"oui-leading-[24px]\",\n as: \"div\",\n } as any;\n\n const content = isActive ? (\n <Text.gradient color=\"brand\" angle={270} {...textProps}>\n {item.name}\n </Text.gradient>\n ) : (\n <Text {...textProps}>{item.name}</Text>\n );\n\n return (\n <Box\n r=\"base\"\n px={2}\n height={tabHeight}\n className={cn(\n \"oui-cursor-pointer oui-select-none\",\n isActive\n ? \"oui-markets-favorites-active-tab-item\"\n : \"oui-markets-favorites-tab-item\",\n isActive\n ? gradientColor\n : \"oui-bg-line-6 oui-text-base-contrast-36 hover:oui-text-base-contrast\",\n )}\n onClick={() => {\n updateSelectedFavoriteTab(item);\n if (isActive) {\n setOpen(true);\n }\n }}\n >\n {content}\n </Box>\n );\n };\n\n return (\n <Flex width=\"100%\" gapX={3} className={props.className}>\n <Flex\n ref={container}\n id=\"oui-markets-favorites-tabs-container\"\n className={cn(\n \"oui-hide-scrollbar oui-relative oui-cursor-pointer\",\n \"oui-overflow-hidden oui-overflow-x-auto\",\n )}\n // my={3}\n gapX={size === \"sm\" ? 2 : 3}\n width=\"100%\"\n >\n {favoriteTabs?.slice(0, 10)?.map((item: any) => {\n const isActive = selectedFavoriteTab.id === item.id;\n return (\n <Tooltip\n key={item.id}\n open={isActive && !editing ? open : false}\n onOpenChange={(open) => {\n if (isActive) {\n setOpen(open);\n }\n }}\n // @ts-ignore\n content={renderActions(item)}\n delayDuration={0}\n className={cn(\"oui-bg-base-5\")}\n arrow={{\n className: \"oui-fill-base-5\",\n }}\n >\n {renderContent(item, isActive)}\n </Tooltip>\n );\n })}\n\n {!scrollable && renderAdd()}\n\n <Text size=\"xs\" ref={spanRef} className=\"oui-invisible\">\n {value}\n </Text>\n </Flex>\n {scrollable && renderAdd()}\n </Flex>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport { FavoriteInstance } from \"../../type\";\n\nexport type UseFavoritesTabScriptOptions = {\n favorite: FavoriteInstance;\n size?: \"sm\" | \"default\";\n};\n\nexport type UseFavoritesTabScriptReturn = ReturnType<\n typeof useFavoritesTabScript\n>;\n\nexport function useFavoritesTabScript(options: UseFavoritesTabScriptOptions) {\n const { favorite, size = \"default\" } = options;\n const {\n favorites,\n favoriteTabs,\n selectedFavoriteTab,\n updateFavoriteTabs,\n updateSelectedFavoriteTab,\n updateFavorites,\n } = favorite;\n\n const [open, setOpen] = useState(false);\n const [editing, setEditing] = useState(false);\n const [value, setValue] = useState(\"\");\n const [scrollable, setScrollable] = useState(false);\n\n const scrollView = useRef<HTMLInputElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const spanRef = useRef<HTMLSpanElement>(null);\n\n const [inputWidth, setInputWidth] = useState(50);\n\n const updateScrollLayout = () => {\n const addIconWidth = size === \"sm\" ? 28 : 36;\n setTimeout(() => {\n const { scrollWidth, clientWidth } = scrollView.current || {};\n\n if (scrollWidth! > clientWidth!) {\n setScrollable(true);\n }\n }, 0);\n };\n\n const scrollToRight = () => {\n setTimeout(() => {\n if (scrollView.current) {\n scrollView.current.scrollLeft =\n scrollView.current.scrollWidth - scrollView.current.clientWidth;\n }\n }, 0);\n };\n\n const onEdit = (item: any) => {\n setEditing(true);\n setValue(item.name);\n setTimeout(() => {\n inputRef.current?.focus();\n inputRef.current?.setSelectionRange(-1, -1);\n }, 0);\n };\n\n const updateCurTab = (overLen: boolean) => {\n updateFavoriteTabs(\n {\n ...selectedFavoriteTab,\n name: overLen ? selectedFavoriteTab.name : value,\n },\n { update: true },\n );\n setEditing(false);\n setOpen(false);\n updateScrollLayout();\n };\n\n const addTab = () => {\n const newTab = {\n name: `WatchList_${favoriteTabs.length}`,\n id: Date.now(),\n };\n updateFavoriteTabs(newTab, { add: true });\n updateSelectedFavoriteTab(newTab);\n updateScrollLayout();\n scrollToRight();\n };\n\n const delTab = (selectedTab: any) => {\n updateFavoriteTabs(selectedTab, { delete: true });\n\n setTimeout(() => {\n // remove all symbol favorite in this tab\n const _favorites = favorites.map((item) => ({\n ...item,\n tabs: item.tabs?.filter((tab) => tab.id !== selectedTab.id),\n }));\n\n updateFavorites(_favorites);\n\n // auto selected last tab\n const tabs = favoriteTabs.filter((item) => item.id !== selectedTab.id);\n const tab = tabs?.[tabs?.length - 1] || tabs?.[0];\n updateSelectedFavoriteTab(tab);\n }, 0);\n };\n\n useEffect(() => {\n if (value) {\n const rect = spanRef.current?.getBoundingClientRect();\n const offset = size === \"sm\" ? 0 : 14;\n setInputWidth(Math.max((rect?.width || 0) + offset, 50));\n }\n }, [value]);\n\n useEffect(() => {\n updateScrollLayout();\n }, []);\n\n return {\n favorite,\n open,\n setOpen,\n container: scrollView,\n inputRef,\n inputWidth,\n spanRef,\n editing,\n value,\n onValueChange: setValue,\n onEdit,\n updateCurTab,\n addTab,\n delTab,\n scrollable,\n };\n}\n","import {\n useFavoritesTabScript,\n UseFavoritesTabScriptOptions,\n} from \"./favoritesTabs.script\";\nimport { FavoritesTab } from \"./favoritesTabs.ui\";\n\nexport type FavoritesTabWidgetProps = UseFavoritesTabScriptOptions & {\n className?: string;\n};\n\nexport const FavoritesTabWidget: React.FC<FavoritesTabWidgetProps> = (\n props,\n) => {\n const { className, ...rest } = props;\n const state = useFavoritesTabScript(rest);\n return <FavoritesTab {...state} size={props.size} className={className} />;\n};\n","export { FavoritesTab } from \"./favoritesTabs.ui\";\nexport { useFavoritesTabScript } from \"./favoritesTabs.script\";\nexport { FavoritesTabWidget } from \"./favoritesTabs.widget\";\n","import { useCallback } from \"react\";\nimport { Favorite, FavoriteTab } from \"@orderly.network/hooks\";\nimport { Box } from \"@orderly.network/ui\";\nimport { FavoriteInstance, MarketsTabName } from \"../../../type\";\nimport { FavoritesEmpty } from \"../../favoritesEmpty\";\nimport { FavoritesTabWidget } from \"../../favoritesTabs\";\nimport { useMarketsContext } from \"../../marketsProvider\";\n\nexport function useFavoritesProps() {\n const { searchValue } = useMarketsContext();\n const renderHeader = useCallback((favorite: FavoriteInstance) => {\n return (\n <Box px={3} className=\"oui-my-[6px]\">\n <FavoritesTabWidget favorite={favorite} size=\"sm\" />\n </Box>\n );\n }, []);\n\n const dataFilter = useCallback(\n (\n data: any[],\n options: { favorites: Favorite[]; selectedFavoriteTab: FavoriteTab },\n ) => {\n const { favorites, selectedFavoriteTab } = options;\n\n return favorites\n ?.filter(\n (item) =>\n item.tabs?.findIndex((tab) => tab.id === selectedFavoriteTab.id) !==\n -1,\n )\n ?.map((fav) => {\n const index = data?.findIndex((item) => item.symbol === fav.name);\n if (index !== -1) {\n return data[index];\n }\n return null;\n })\n ?.filter((item) => item);\n },\n [],\n );\n\n const getFavoritesProps = useCallback(\n (type: MarketsTabName) => {\n if (type === MarketsTabName.Favorites) {\n return { renderHeader, dataFilter };\n }\n return {};\n },\n [renderHeader, dataFilter],\n );\n\n const renderEmptyView = useCallback(\n (options: {\n type: MarketsTabName;\n onClick: () => void;\n className?: string;\n }) => {\n if (options.type === MarketsTabName.Favorites && !searchValue) {\n return (\n <FavoritesEmpty\n onClick={options.onClick}\n className={options.className}\n />\n );\n }\n\n return undefined;\n },\n [searchValue],\n );\n\n return {\n renderHeader,\n dataFilter,\n getFavoritesProps,\n renderEmptyView,\n };\n}\n","import { useCallback } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Column, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { MarketsListWidget } from \"../../../components/marketsList\";\nimport { RwaIconTab } from \"../../../components/rwaTab\";\nimport { SearchInput } from \"../../../components/searchInput\";\nimport {\n get24hPercentageColumn,\n getLastColumn,\n getSymbolColumn,\n} from \"../../../components/shared/column\";\nimport { useFavoritesProps } from \"../../../components/shared/hooks/useFavoritesExtraProps\";\nimport { AllMarketsIcon, FavoritesIcon, NewListingsIcon } from \"../../../icons\";\nimport { FavoriteInstance, MarketsTabName } from \"../../../type\";\nimport { UseMarketsDataListScript } from \"./marketsDataList.script\";\n\nexport type MobileMarketsDataListProps = UseMarketsDataListScript;\n\nexport const MobileMarketsDataList: React.FC<MobileMarketsDataListProps> = (\n props,\n) => {\n const { activeTab, onTabChange, tabSort, onTabSort } = props;\n const { t } = useTranslation();\n\n const getColumns = useCallback(\n (favorite: FavoriteInstance, isFavoriteList = false) => {\n return [\n getSymbolColumn(favorite, isFavoriteList),\n getLastColumn(),\n get24hPercentageColumn(),\n ] as Column[];\n },\n [],\n );\n\n const { getFavoritesProps } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n return (\n <>\n <SearchInput\n classNames={{\n root: cn(\n \"oui-mx-3 oui-mb-4 oui-mt-5\",\n activeTab !== MarketsTabName.Favorites && \"oui-mb-2\",\n ),\n }}\n />\n <MarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n getColumns={getColumns}\n rowClassName=\"!oui-h-[34px]\"\n {...getFavoritesProps(type)}\n />\n </>\n );\n };\n\n return (\n <Box id=\"oui-markets-list\" intensity={900} py={3} mt={2} r=\"2xl\">\n <Tabs\n variant=\"contained\"\n size=\"lg\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n scrollIndicator: \"oui-mx-3\",\n }}\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value=\"favorites\">\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.allMarkets\")}\n icon={<AllMarketsIcon />}\n value=\"all\"\n >\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaIconTab />} value=\"rwa\">\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n icon={<NewListingsIcon />}\n value=\"new\"\n >\n {renderTab(MarketsTabName.NewListing)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { useCallback } from \"react\";\nimport { useSessionStorage } from \"@orderly.network/hooks\";\nimport { SortType, MarketsTabName } from \"../../../type\";\n\nexport function useTabSort(options: { storageKey: string }) {\n const [tabSort, setTabSort] = useSessionStorage(options.storageKey, {\n [MarketsTabName.All]: {\n sortKey: \"24h_amount\",\n sortOrder: \"desc\",\n },\n } as Record<MarketsTabName, SortType>);\n\n const onTabSort = useCallback(\n (type: MarketsTabName) => (sort?: SortType) => {\n setTabSort({ ...tabSort, [type]: sort });\n },\n [tabSort],\n );\n\n return {\n tabSort,\n onTabSort,\n };\n}\n","import { useEffect, useState } from \"react\";\nimport { useMarketsContext } from \"../../../components/marketsProvider\";\nimport { useTabSort } from \"../../../components/shared/hooks/useTabSort\";\nimport { MarketsTabName } from \"../../../type\";\n\nexport type UseMarketsDataListScript = ReturnType<\n typeof useMarketsDataListScript\n>;\n\nconst MOBILE_MARKETS_TAB_SORT_STORAGE_KEY = \"orderly_mobile_markets_tab_sort\";\n\nexport function useMarketsDataListScript() {\n const [activeTab, setActiveTab] = useState<MarketsTabName>(\n MarketsTabName.All,\n );\n const { clearSearchValue, searchValue } = useMarketsContext();\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: MOBILE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab,\n onTabChange: (value: string) => setActiveTab(value as MarketsTabName),\n tabSort,\n onTabSort,\n searchValue,\n };\n}\n","import { MouseEventHandler, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, Box, Tooltip, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n FavoritesIcon,\n MoveToTopIcon,\n OrderlyIcon,\n UnFavoritesIcon,\n} from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport const useMarketsListFullColumns = (\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) => {\n const { t } = useTranslation();\n\n const columns = useMemo(() => {\n return [\n {\n title: <UnFavoritesIcon className=\"oui-mt-1\" />,\n dataIndex: \"isFavorite\",\n align: \"center\",\n width: 30,\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const button = (\n <Flex\n width=\"100%\"\n height=\"100%\"\n mr={3}\n justify=\"center\"\n itemAlign=\"center\"\n onClick={isFavoriteList ? onDelSymbol : undefined}\n data-testid=\"oui-testid-markets-table-row-favorite-icon\"\n >\n {value ? (\n <FavoritesIcon className=\"oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon className=\"oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n );\n\n if (isFavoriteList) {\n return button;\n }\n\n return (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n {button}\n </FavoritesDropdownMenuWidget>\n );\n },\n },\n {\n title: t(\"markets.column.market\"),\n dataIndex: \"symbol\",\n width: 90,\n onSort: true,\n render: (value) => {\n return (\n <SymbolDisplay formatString=\"base\" showIcon>\n {value}\n </SymbolDisplay>\n );\n },\n },\n {\n title: t(\"common.price\"),\n dataIndex: \"24h_close\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value, record) => {\n return (\n <Text.numeral dp={record.quote_dp || 2} currency=\"$\">\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: t(\"markets.column.24hChange\"),\n dataIndex: \"change\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n return (\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.column.24hVolume\")}\n </Flex>\n ),\n dataIndex: \"24h_amount\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n return (\n <Text.numeral currency=\"$\" dp={0} rm={Decimal.ROUND_DOWN}>\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n dataIndex: \"openInterest\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n return (\n <Text.numeral currency=\"$\" dp={0} rm={Decimal.ROUND_DOWN}>\n {value}\n </Text.numeral>\n );\n },\n },\n {\n title: t(\"markets.dataList.column.8hFunding\"),\n dataIndex: \"8h_funding\",\n width: 100,\n align: \"right\",\n onSort: true,\n render: (value) => {\n if (value === null) {\n return \"--\";\n }\n return (\n <Text.numeral\n rule=\"percentages\"\n coloring\n dp={4}\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n },\n },\n {\n dataIndex: \"action\",\n type: \"action\",\n width: 40,\n render: (value, record) => {\n if (isFavoriteList) {\n return (\n <Flex justify=\"end\" mr={4}>\n <Tooltip\n content={t(\"markets.dataList.column.moveTop\")}\n align=\"center\"\n delayDuration={0}\n >\n <Box\n className=\"oui-hidden oui-cursor-pointer group-hover:oui-block\"\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n data-testid=\"oui-markets-favorites-pinned-icon\"\n >\n <MoveToTopIcon className=\"oui-text-base-contrast-20 hover:oui-text-base-contrast\" />\n </Box>\n </Tooltip>\n </Flex>\n );\n }\n return null;\n },\n },\n ] as Column[];\n }, [favorite, isFavoriteList, t]);\n\n return columns;\n};\n","import { FC, ReactNode } from \"react\";\nimport { Trans } from \"@orderly.network/i18n\";\nimport { cn, Flex, DataTable } from \"@orderly.network/ui\";\nimport { FavoritesTabWidget } from \"../../components/favoritesTabs\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { UnFavoritesIcon } from \"../../icons\";\nimport { useMarketsListFullColumns } from \"../marketsListFull/column\";\nimport { UseFavoritesListFullReturn } from \"./favoritesListFull.script\";\n\nexport type FavoritesListFullProps = UseFavoritesListFullReturn & {\n emptyView?: ReactNode;\n};\n\nexport const FavoritesListFull: FC<FavoritesListFullProps> = (props) => {\n const { dataSource, favorite, onSort, loading, pagination } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const columns = useMarketsListFullColumns(favorite, true);\n\n const emptyView = props.emptyView || (\n <Flex className=\"oui-text-xs oui-text-base-contrast-36\">\n {/* @ts-ignore */}\n <Trans\n i18nKey=\"markets.dataList.favorites.empty\"\n components={[\n <UnFavoritesIcon key=\"0\" className=\"oui-text-base-contrast-36\" />,\n ]}\n />\n </Flex>\n );\n\n return (\n <div>\n <FavoritesTabWidget favorite={favorite} className=\"oui-my-3\" />\n\n <DataTable\n bordered\n // minHeight={187.5}\n columns={columns}\n dataSource={dataSource}\n emptyView={emptyView}\n classNames={{\n empty: \"oui-items-start oui-mt-6\",\n }}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[55px] oui-cursor-pointer\"),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n pagination={pagination}\n manualSorting\n />\n </div>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseFavoritesListFullReturn = ReturnType<\n typeof useFavoritesListFullScript\n>;\n\nexport const useFavoritesListFullScript = () => {\n const { pageSize, setPage, pagination } = usePagination({\n pageSize: 10,\n });\n const [data, favorite] = useMarkets(MarketsType.FAVORITES);\n const [loading, setLoading] = useState(true);\n\n const { favorites, selectedFavoriteTab } = favorite;\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const filterData = useMemo(() => {\n const filterList = favorites\n ?.filter(\n (item) =>\n item.tabs?.findIndex((tab) => tab.id === selectedFavoriteTab.id) !==\n -1,\n )\n ?.map((fav) => {\n const index = data?.findIndex((item) => item.symbol === fav.name);\n if (index !== -1) {\n return data[index];\n }\n return null;\n })\n ?.filter((item) => !!item);\n\n return searchBySymbol(filterList, searchValue, \"base-type\");\n }, [data, selectedFavoriteTab, favorites, searchValue]);\n\n const dataSource = useMemo(\n () => getSortedList(filterData),\n [filterData, getSortedList],\n );\n\n useEffect(() => {\n setLoading(false);\n }, [favorites]);\n\n useEffect(() => {\n setPage(1);\n }, [searchValue]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n pagination,\n };\n};\n","import { ReactNode } from \"react\";\nimport { useFavoritesListFullScript } from \"./favoritesListFull.script\";\nimport { FavoritesListFull } from \"./favoritesListFull.ui\";\n\nexport type FavoritesListFullWidgetProps = {\n emptyView?: ReactNode;\n};\n\nexport const FavoritesListFullWidget: React.FC<FavoritesListFullWidgetProps> = (\n props,\n) => {\n const state = useFavoritesListFullScript();\n return <FavoritesListFull {...state} emptyView={props.emptyView} />;\n};\n","export { FavoritesListFull } from \"./favoritesListFull.ui\";\nexport { useFavoritesListFullScript } from \"./favoritesListFull.script\";\nexport { FavoritesListFullWidget } from \"./favoritesListFull.widget\";\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useMarketsListFullColumns } from \"./column\";\nimport {\n type MarketsListFullType,\n type UseMarketsListFullReturn,\n} from \"./marketsListFull.script\";\n\nexport type MarketsListFullProps = UseMarketsListFullReturn & {\n type?: MarketsListFullType;\n};\n\nexport const MarketsListFull: FC<MarketsListFullProps> = (props) => {\n const {\n loading,\n dataSource,\n favorite,\n onSort,\n initialSort,\n type,\n pagination,\n } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const columns = useMarketsListFullColumns(favorite, false);\n\n return (\n <DataTable\n bordered\n columns={columns}\n loading={loading}\n dataSource={dataSource}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[55px] oui-cursor-pointer\"),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n \"data-testid\": `oui-testid-markets-${\n type === \"new\" ? \"newListing\" : type === \"rwa\" ? \"rwa\" : \"all\"\n }-tr-${record.symbol}`,\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n initialSort={initialSort}\n pagination={pagination}\n classNames={{\n header: \"oui-h-12\",\n }}\n manualSorting\n />\n );\n};\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { TableSort, usePagination } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\nimport { MarketsListFullWidgetProps } from \"./marketsListFull.widget\";\n\nexport type UseMarketsListFullScriptOptions = MarketsListFullWidgetProps;\n\nexport type UseMarketsListFullReturn = ReturnType<\n typeof useMarketsListFullScript\n>;\n\nconst MarketsTypeMap = {\n all: MarketsType.ALL,\n new: MarketsType.NEW_LISTING,\n rwa: MarketsType.RWA,\n};\n\nexport type MarketsListFullType = keyof typeof MarketsTypeMap;\n\nexport const useMarketsListFullScript = (\n options: UseMarketsListFullScriptOptions,\n) => {\n const { type = \"all\" } = options;\n const [loading, setLoading] = useState(true);\n const { setPage, pagination } = usePagination({\n pageSize: 10,\n });\n\n const [data, favorite] = useMarkets(MarketsTypeMap[type]);\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList, sort } = useSort(options.initialSort);\n\n const dataSource = useMemo(() => {\n const searchList = searchBySymbol(data, searchValue, \"base-type\");\n return getSortedList(searchList);\n }, [data, getSortedList, searchValue]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n useEffect(() => {\n setPage(1);\n }, [searchValue]);\n\n useEffect(() => {\n // Only all markets store sort\n if (type === \"all\") {\n favorite.updateTabsSortState(\"all\", sort?.sortKey!, sort?.sortOrder!);\n }\n }, [sort, type]);\n\n const initialSort = useMemo(() => {\n const sortStore = type === \"all\" ? favorite.tabSort?.all : undefined;\n\n return {\n sortKey: sortStore?.sortKey || options?.initialSort?.sortKey,\n sort: sortStore?.sortOrder || options?.initialSort?.sortOrder,\n } as TableSort;\n }, [favorite.tabSort, options.initialSort, type]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n pagination,\n initialSort,\n };\n};\n","import { SortType } from \"../../type\";\nimport {\n MarketsListFullType,\n useMarketsListFullScript,\n} from \"./marketsListFull.script\";\nimport { MarketsListFull } from \"./marketsListFull.ui\";\n\nexport type MarketsListFullWidgetProps = {\n type?: MarketsListFullType;\n initialSort?: SortType;\n};\n\nexport const MarketsListFullWidget: React.FC<MarketsListFullWidgetProps> = (\n props,\n) => {\n const state = useMarketsListFullScript(props);\n\n return <MarketsListFull {...state} type={props.type} />;\n};\n","export { MarketsListFull } from \"./marketsListFull.ui\";\nexport { useMarketsListFullScript } from \"./marketsListFull.script\";\nexport { MarketsListFullWidget } from \"./marketsListFull.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, RwaIcon, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { FavoritesEmpty } from \"../../../components/favoritesEmpty\";\nimport { RwaIconTab } from \"../../../components/rwaTab\";\nimport { AllMarketsIcon, FavoritesIcon, NewListingsIcon } from \"../../../icons\";\nimport { MarketsTabName } from \"../../../type\";\nimport { UseMarketsDataListScript } from \"./marketsDataList.script\";\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../../../components/searchInput\").then((mod) => {\n return { default: mod.SearchInput };\n }),\n);\n\nconst LazyFavoritesListFullWidget = React.lazy(() =>\n import(\"../../../components/favoritesListFull\").then((mod) => {\n return { default: mod.FavoritesListFullWidget };\n }),\n);\n\nconst LazyMarketsListFullWidget = React.lazy(() =>\n import(\"../../../components/marketsListFull\").then((mod) => {\n return { default: mod.MarketsListFullWidget };\n }),\n);\n\nexport type MarketsDataListProps = UseMarketsDataListScript;\n\nexport const MarketsDataList: React.FC<MarketsDataListProps> = (props) => {\n const { searchValue, activeTab, onTabChange } = props;\n const { t } = useTranslation();\n\n return (\n <Box id=\"oui-markets-list\" intensity={900} p={6} r=\"2xl\">\n <Tabs\n variant=\"contained\"\n size=\"xl\"\n value={activeTab}\n onValueChange={onTabChange}\n trailing={\n <React.Suspense fallback={null}>\n <LazySearchInput classNames={{ root: \"oui-my-1 oui-w-[240px]\" }} />\n </React.Suspense>\n }\n >\n <TabPanel\n title={<FavoritesIcon />}\n value=\"favorites\"\n testid=\"oui-testid-markets-favorites-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFavoritesListFullWidget\n emptyView={\n !searchValue && (\n <FavoritesEmpty\n onClick={() => onTabChange(MarketsTabName.All)}\n />\n )\n }\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"markets.allMarkets\")}\n icon={<AllMarketsIcon />}\n value=\"all\"\n testid=\"oui-testid-markets-all-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsListFullWidget\n type=\"all\"\n initialSort={{ sortKey: \"24h_amount\", sortOrder: \"desc\" }}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={<RwaIconTab />}\n value=\"rwa\"\n testid=\"oui-testid-markets-rwa-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsListFullWidget\n type=\"rwa\"\n initialSort={{ sortKey: \"24h_amount\", sortOrder: \"desc\" }}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n icon={<NewListingsIcon />}\n value=\"new\"\n testid=\"oui-testid-markets-newListings-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsListFullWidget\n type=\"new\"\n initialSort={{ sortKey: \"created_time\", sortOrder: \"desc\" }}\n />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import React from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileMarketsDataList } from \"./marketsDataList.mobile.ui\";\nimport { useMarketsDataListScript } from \"./marketsDataList.script\";\nimport { MarketsDataList } from \"./marketsDataList.ui\";\n\nexport const MarketsDataListWidget: React.FC = () => {\n const { isMobile } = useScreen();\n const state = useMarketsDataListScript();\n return isMobile ? (\n <MobileMarketsDataList {...state} />\n ) : (\n <MarketsDataList {...state} />\n );\n};\n","export { MarketsDataListWidget } from \"./marketsDataList.widget\";\nexport { useMarketsDataListScript } from \"./marketsDataList.script\";\nexport { MarketsDataList } from \"./marketsDataList.ui\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport { MarketsTabName } from \"../../type\";\nimport { RwaTab } from \"../rwaTab\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport type { ExpandMarketsScriptReturn } from \"./expandMarkets.script\";\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../searchInput\").then((mod) => {\n return { default: mod.SearchInput };\n }),\n);\n\nconst LazyMarketsListWidget = React.lazy(() =>\n import(\"../marketsList\").then((mod) => {\n return { default: mod.MarketsListWidget };\n }),\n);\n\nexport type ExpandMarketsProps = ExpandMarketsScriptReturn;\n\nconst cls = \"oui-h-[calc(100%_-_36px)]\";\n\nexport const ExpandMarkets: React.FC<ExpandMarketsProps> = (props) => {\n const { activeTab, onTabChange, tabSort, onTabSort } = props;\n\n const { t } = useTranslation();\n\n const { getFavoritesProps, renderEmptyView } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n return (\n <div className={cls}>\n <React.Suspense fallback={null}>\n <LazyMarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n tableClassNames={{\n scroll: cn(\n \"oui-px-1\",\n type === MarketsTabName.Favorites ? \"oui-pb-9\" : \"oui-pb-2\",\n ),\n }}\n {...getFavoritesProps(type)}\n emptyView={renderEmptyView({\n type,\n onClick: () => {\n onTabChange(MarketsTabName.All);\n },\n })}\n />\n </React.Suspense>\n </div>\n );\n };\n\n return (\n <Box className={cn(\"oui-overflow-hidden oui-font-semibold\")} height=\"100%\">\n <Box px={3} pb={2}>\n <React.Suspense fallback={null}>\n <LazySearchInput />\n </React.Suspense>\n </Box>\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n tabsList: cn(\"oui-my-[6px]\"),\n tabsContent: \"oui-h-full\",\n scrollIndicator: \"oui-mx-3\",\n }}\n className={cls}\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n value={MarketsTabName.NewListing}\n >\n {renderTab(MarketsTabName.NewListing)}\n </TabPanel>\n <TabPanel title={t(\"markets.recent\")} value={MarketsTabName.Recent}>\n {renderTab(MarketsTabName.Recent)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","export const SIDE_MARKETS_TAB_SORT_STORAGE_KEY =\n \"orderly_side_markets_tab_sort\";\n\nexport const SIDE_MARKETS_SEL_TAB_KEY = \"orderly_side_markets_sel_tab_key\";\n","import { useCallback, useEffect, useState } from \"react\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type ExpandMarketsScriptOptions = {\n activeTab?: MarketsTabName;\n onTabChange?: (tab: MarketsTabName) => void;\n};\n\nexport type ExpandMarketsScriptReturn = ReturnType<\n typeof useExpandMarketsScript\n>;\n\nexport function useExpandMarketsScript(options: ExpandMarketsScriptOptions) {\n const [activeTab, setActiveTab] = useState<MarketsTabName>(\n options.activeTab!,\n );\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const { clearSearchValue } = useMarketsContext();\n\n const onTabChange = useCallback(\n (value: string) => {\n if (typeof options?.onTabChange === \"function\") {\n options.onTabChange(value as MarketsTabName);\n } else {\n setActiveTab(value as MarketsTabName);\n }\n },\n [options?.onTabChange],\n );\n useEffect(() => {\n setActiveTab(options?.activeTab || MarketsTabName.Favorites);\n }, [options?.activeTab]);\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab,\n onTabChange,\n tabSort,\n onTabSort,\n };\n}\n","import { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport {\n useExpandMarketsScript,\n ExpandMarketsScriptOptions,\n} from \"./expandMarkets.script\";\nimport { ExpandMarkets } from \"./expandMarkets.ui\";\n\nexport type ExpandMarketsWidgetProps = MarketsProviderProps &\n ExpandMarketsScriptOptions;\n\nexport const ExpandMarketsWidget: React.FC<ExpandMarketsWidgetProps> = (\n props,\n) => {\n const state = useExpandMarketsScript({\n activeTab: props.activeTab,\n onTabChange: props.onTabChange,\n });\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <ExpandMarkets {...state} />\n </MarketsProvider>\n );\n};\n","export { ExpandMarkets } from \"./expandMarkets.ui\";\nexport { useExpandMarketsScript } from \"./expandMarkets.script\";\nexport { ExpandMarketsWidget } from \"./expandMarkets.widget\";\n","import { useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Column,\n Flex,\n Picker,\n Select,\n Text,\n TokenIcon,\n useScreen,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { ProcessedFundingData } from \"./fundingOverview.script\";\n\nconst createFundingRenderer =\n (dp: number = 5) =>\n (value: number) => {\n if (value === 0) {\n return <Text> - </Text>;\n }\n\n return (\n <Text.numeral\n rule=\"percentages\"\n dp={dp}\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n };\n\nexport const useFundingOverviewColumns = (\n selectedPeriod: string,\n setSelectedPeriod: (value: string) => void,\n) => {\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n\n return useMemo<Column<ProcessedFundingData>[]>(() => {\n return [\n {\n title: t(\"markets.column.market\"),\n dataIndex: \"symbol\",\n onSort: true,\n width: 135,\n className: isMobile ? \"oui-pl-0\" : undefined,\n render: (value) => (\n <Flex gapX={1}>\n <TokenIcon\n symbol={value}\n className={isMobile ? \"oui-size-[18px]\" : \"oui-size-5\"}\n />\n <SymbolDisplay formatString=\"base\" size=\"xs\">\n {value}\n </SymbolDisplay>\n </Flex>\n ),\n },\n {\n title: t(\"markets.funding.column.estFunding\"),\n dataIndex: \"estFunding\",\n width: 120,\n onSort: true,\n render: (value, record) => (\n <div>\n <Text.numeral\n rule=\"percentages\"\n dp={5}\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n <span className=\"oui-text-base-contrast-54\">\n {`/ ${record.fundingInterval}h`}\n </span>\n </div>\n ),\n },\n {\n title: t(\"markets.funding.column.lastFunding\"),\n dataIndex: \"lastFunding\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.1dAvg\"),\n dataIndex: \"funding1d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.3dAvg\"),\n dataIndex: \"funding3d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.7dAvg\"),\n dataIndex: \"funding7d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.14dAvg\"),\n dataIndex: \"funding14d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.30dAvg\"),\n dataIndex: \"funding30d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: t(\"markets.funding.column.90dAvg\"),\n dataIndex: \"funding90d\",\n width: 90,\n onSort: true,\n render: createFundingRenderer(),\n },\n {\n title: (\n <div className=\"oui-flex oui-gap-1\">\n <FundingPeriodSelect\n value={selectedPeriod}\n onValueChange={setSelectedPeriod}\n />\n <span>{t(\"markets.funding.column.positiveRate\")}</span>\n </div>\n ),\n dataIndex: selectedPeriod,\n width: 130,\n align: \"right\",\n onSort: true,\n render: createFundingRenderer(2),\n },\n ];\n }, [t, isMobile, selectedPeriod, setSelectedPeriod]);\n};\n\ntype FundingPeriodSelectProps = {\n value: string;\n onValueChange: (value: string) => void;\n};\n\nconst FundingPeriodSelect = (props: FundingPeriodSelectProps) => {\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n\n const options = useMemo(() => {\n return [\n {\n label: t(\"common.select.1d\"),\n value: \"1dPositive\",\n },\n {\n label: t(\"common.select.3d\"),\n value: \"3dPositive\",\n },\n {\n label: t(\"common.select.7d\"),\n value: \"7dPositive\",\n },\n {\n label: t(\"common.select.14d\"),\n value: \"14dPositive\",\n },\n {\n label: t(\"common.select.30d\"),\n value: \"30dPositive\",\n },\n {\n label: t(\"common.select.90d\"),\n value: \"90dPositive\",\n },\n ];\n }, [t]);\n\n if (isMobile) {\n return (\n <Picker\n size=\"sm\"\n value={props.value}\n onValueChange={props.onValueChange}\n options={options}\n />\n );\n }\n\n return (\n <Select.options\n size=\"xs\"\n value={props.value}\n onValueChange={props.onValueChange}\n options={options}\n />\n );\n};\n","import { FC, useState } from \"react\";\nimport { DataTable, cn } from \"@orderly.network/ui\";\nimport { useFundingOverviewColumns } from \"./columns\";\nimport { FundingOverviewReturn } from \"./fundingOverview.script\";\n\nexport type FundingOverviewProps = FundingOverviewReturn;\n\nexport const FundingOverview: FC<FundingOverviewProps> = (props) => {\n const { dataSource, isLoading, pagination, onSort } = props;\n const [selectedPeriod, setSelectedPeriod] = useState(\"1dPositive\");\n\n const columns = useFundingOverviewColumns(selectedPeriod, setSelectedPeriod);\n\n return (\n <DataTable\n columns={columns}\n dataSource={dataSource}\n loading={isLoading}\n bordered\n onRow={() => {\n return {\n className: cn(\"oui-h-[48px] oui-cursor-pointer\"),\n };\n }}\n classNames={{\n header: \"oui-h-12\",\n }}\n pagination={pagination}\n onSort={onSort}\n manualSorting\n generatedRowKey={(record) => record.symbol}\n />\n );\n};\n","import { useMemo } from \"react\";\nimport {\n MarketsType,\n useFundingRateHistory,\n useFundingRates,\n useMarkets,\n} from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSort, searchBySymbol } from \"../../utils\";\n\nexport type ProcessedFundingData = {\n symbol: string;\n estFunding: number;\n lastFunding: number;\n fundingInterval: number;\n funding1d: number | string;\n funding3d: number | string;\n funding7d: number | string;\n funding14d: number | string;\n funding30d: number | string;\n funding90d: number | string;\n \"1dPositive\": number | string;\n \"3dPositive\": number | string;\n \"7dPositive\": number | string;\n \"14dPositive\": number | string;\n \"30dPositive\": number | string;\n \"90dPositive\": number | string;\n};\n\nexport type FundingOverviewReturn = ReturnType<typeof useFundingOverviewScript>;\n\nexport const useFundingOverviewScript = () => {\n const { pagination } = usePagination({ pageSize: 10 });\n const [marketData] = useMarkets(MarketsType.ALL);\n\n const {\n data: fundingHistory,\n isLoading: isHistoryLoading,\n getPositiveRates,\n } = useFundingRateHistory();\n const fundingRates = useFundingRates();\n\n const { onSort, getSortedList } = useSort();\n const { searchValue } = useMarketsContext();\n\n const processedData = useMemo((): ProcessedFundingData[] => {\n if (!marketData?.length) {\n return [];\n }\n\n const periods = [\"1d\", \"3d\", \"7d\", \"14d\", \"30d\", \"90d\"] as const;\n const posRates = periods.reduce(\n (acc, period) => {\n acc[period] = getPositiveRates(fundingHistory, period);\n return acc;\n },\n {} as Record<string, Record<string, number>>,\n );\n\n // because fundingHistory list is unstable sort, so use marketData instead\n // TODO: feedback to backend to fix this if possible\n return marketData.map((item) => {\n const symbol = item.symbol;\n const history = fundingHistory?.find((h) => h.symbol === symbol);\n\n const fundingRate = fundingRates[symbol];\n\n const fundingInterval = getFundingInterval(\n fundingRate(\"next_funding_time\"),\n fundingRate(\"last_funding_rate_timestamp\"),\n );\n\n return {\n symbol,\n estFunding: fundingRate(\"est_funding_rate\"),\n lastFunding: fundingRate(\"last_funding_rate\"),\n fundingInterval,\n funding1d: history?.funding?.[\"1d\"]?.rate ?? 0,\n funding3d: history?.funding?.[\"3d\"]?.rate ?? 0,\n funding7d: history?.funding?.[\"7d\"]?.rate ?? 0,\n funding14d: history?.funding?.[\"14d\"]?.rate ?? 0,\n funding30d: history?.funding?.[\"30d\"]?.rate ?? 0,\n funding90d: history?.funding?.[\"90d\"]?.rate ?? 0,\n \"1dPositive\": posRates[\"1d\"][symbol] ?? \"-\",\n \"3dPositive\": posRates[\"3d\"][symbol] ?? \"-\",\n \"7dPositive\": posRates[\"7d\"][symbol] ?? \"-\",\n \"14dPositive\": posRates[\"14d\"][symbol] ?? \"-\",\n \"30dPositive\": posRates[\"30d\"][symbol] ?? \"-\",\n \"90dPositive\": posRates[\"90d\"][symbol] ?? \"-\",\n };\n });\n }, [marketData, fundingHistory, fundingRates, getPositiveRates]);\n\n const filteredData = useMemo(() => {\n return searchBySymbol(processedData, searchValue, \"base-type\");\n }, [processedData, searchValue, pagination]);\n\n const dataSource = useMemo(\n () => getSortedList(filteredData),\n [filteredData, getSortedList],\n );\n\n return { dataSource, isLoading: isHistoryLoading, pagination, onSort };\n};\n\nfunction getFundingInterval(\n next_funding_time: number,\n last_funding_rate_timestamp: number,\n) {\n // default interval is 8 hours\n if (!next_funding_time || !last_funding_rate_timestamp) return 8;\n const diff = next_funding_time - last_funding_rate_timestamp;\n\n return Math.round(diff / 3600000);\n}\n","import { FC, useState } from \"react\";\nimport { DataTable, cn } from \"@orderly.network/ui\";\nimport { useFundingOverviewColumns } from \"./columns\";\nimport { FundingOverviewReturn } from \"./fundingOverview.script\";\n\nexport type MobileFundingOverviewProps = FundingOverviewReturn;\n\nexport const MobileFundingOverview: FC<MobileFundingOverviewProps> = (\n props,\n) => {\n const { dataSource, isLoading, onSort } = props;\n const [selectedPeriod, setSelectedPeriod] = useState(\"1dPositive\");\n\n const columns = useFundingOverviewColumns(selectedPeriod, setSelectedPeriod);\n\n return (\n <DataTable\n columns={columns}\n dataSource={dataSource}\n loading={isLoading}\n onRow={() => {\n return {\n className: cn(\"oui-h-[34px] oui-cursor-pointer\"),\n };\n }}\n classNames={{\n header: \"oui-h-9\",\n body: \"oui-text-2xs\",\n }}\n onSort={onSort}\n manualSorting\n generatedRowKey={(record) => record.symbol}\n />\n );\n};\n","import { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileFundingOverview } from \"./fundingOverview.mobile.ui\";\nimport { useFundingOverviewScript } from \"./fundingOverview.script\";\nimport { FundingOverview } from \"./fundingOverview.ui\";\n\nexport const FundingOverviewWidget: FC = () => {\n const props = useFundingOverviewScript();\n const { isMobile } = useScreen();\n return isMobile ? (\n <MobileFundingOverview {...props} />\n ) : (\n <FundingOverview {...props} />\n );\n};\n","export { FundingOverview } from \"./fundingOverview.ui\";\nexport { useFundingOverviewScript } from \"./fundingOverview.script\";\nexport { FundingOverviewWidget } from \"./fundingOverview.widget\";\n","import { useMemo } from \"react\";\nimport { useMarketsContext } from \"../marketsProvider\";\n\nexport const useEXchanges = () => {\n const { comparisonProps } = useMarketsContext();\n const brokerName = comparisonProps?.exchangesName || \"Orderly\";\n const brokerIconSrc =\n comparisonProps?.exchangesIconSrc ||\n \"https://oss.orderly.network/static/exchange_logo/orderly.png\";\n const exchanges = useMemo<string[]>(() => {\n return [\n brokerName,\n \"Binance\",\n `${brokerName} - Binance`,\n \"OKX\",\n `${brokerName} - OKX`,\n \"Bybit\",\n `${brokerName} - Bybit`,\n \"dYdX\",\n `${brokerName} - dYdX`,\n \"Bitget\",\n `${brokerName} - Bitget`,\n \"KuCoin\",\n `${brokerName} - KuCoin`,\n ];\n }, [comparisonProps?.exchangesName]);\n return {\n exchanges,\n brokerName,\n brokerIconSrc: brokerIconSrc,\n };\n};\n","import { useCallback, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Flex, TokenIcon, useScreen } from \"@orderly.network/ui\";\nimport type { Column } from \"@orderly.network/ui\";\nimport { Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { OrderlyIcon } from \"../../icons\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { useEXchanges } from \"./useEXchanges\";\n\nconst CDN_PREFIX = \"https://oss.orderly.network/static/exchange_logo\";\n\nexport const useFundingColumns = () => {\n const { t } = useTranslation();\n const { isMobile } = useScreen();\n const { exchanges, brokerName, brokerIconSrc } = useEXchanges();\n const getImgSrc = useCallback(\n (val: string) => {\n if (val === brokerName) {\n return brokerIconSrc;\n }\n return `${CDN_PREFIX}/${val.toLowerCase().replace(\" \", \"_\")}.png`;\n },\n [brokerName, brokerIconSrc],\n );\n return useMemo<Column[]>(() => {\n return [\n {\n title: t(\"markets.column.market\"),\n dataIndex: \"symbol\",\n width: 150,\n onSort: true,\n className: isMobile ? \"oui-pl-0\" : undefined,\n render: (value) => (\n <Flex gapX={1}>\n <TokenIcon\n symbol={value}\n className={isMobile ? \"oui-size-[18px]\" : \"oui-size-5\"}\n />\n <SymbolDisplay formatString=\"base\" size=\"xs\">\n {value}\n </SymbolDisplay>\n </Flex>\n ),\n },\n {\n title: (\n <Flex gapX={1}>\n <OrderlyIcon /> {t(\"markets.openInterest\")}\n </Flex>\n ),\n dataIndex: \"openInterest\",\n width: 120,\n // align: \"right\",\n onSort: true,\n render: (value) => {\n if (value === \"-\") {\n return \"-\";\n }\n return (\n <Text.numeral currency=\"$\" dp={0} rm={Decimal.ROUND_DOWN}>\n {value}\n </Text.numeral>\n );\n },\n },\n ...exchanges.map<Column>((item) => {\n const imgSrc = getImgSrc(item);\n return {\n title: (\n <Flex justify=\"start\" itemAlign=\"center\" gap={1}>\n {!item.includes(\" - \") && imgSrc && (\n <img\n src={imgSrc}\n className={cn(\n \"oui-size-6 oui-rounded-full oui-object-cover\",\n isMobile ? \"oui-size-[18px]\" : \"oui-size-6\",\n )}\n />\n )}\n {item}\n </Flex>\n ),\n dataIndex: item,\n onSort: true,\n width: item.includes(\" - \") ? 160 : 130,\n render(value: number | null) {\n if (value === null) {\n return \"-\";\n }\n return (\n <Text.numeral\n rule=\"percentages\"\n dp={5}\n coloring={item.includes(\" - \") || item === brokerName}\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {value}\n </Text.numeral>\n );\n },\n };\n }),\n ];\n }, [t, isMobile, exchanges, brokerName, getImgSrc]);\n};\n","import type { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { DataTable } from \"@orderly.network/ui\";\nimport { useFundingColumns } from \"./columns\";\nimport { FundingComparisonReturn } from \"./fundingComparison.script\";\n\nexport const FundingComparison: FC<FundingComparisonReturn> = (props) => {\n const columns = useFundingColumns();\n\n return (\n <DataTable\n columns={columns}\n dataSource={props.dataSource}\n loading={props.isLoading}\n onRow={() => {\n return {\n className: cn(\"oui-h-[48px] oui-cursor-pointer\"),\n };\n }}\n classNames={{\n header: \"oui-h-12\",\n }}\n bordered\n pagination={props.pagination}\n />\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useFundingRates,\n useMarketsStream,\n useQuery,\n} from \"@orderly.network/hooks\";\nimport { usePagination } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSort, searchBySymbol } from \"../../utils\";\nimport { useEXchanges } from \"./useEXchanges\";\n\nfunction getOpenInterest(open_interest?: number, index_price?: number) {\n return new Decimal(open_interest || 0).mul(index_price || 0).toNumber();\n}\n\nexport type FundingComparisonReturn = ReturnType<\n typeof useFundingComparisonScript\n>;\n\nexport const useFundingComparisonScript = () => {\n const { pagination } = usePagination({ pageSize: 10 });\n const { onSort, getSortedList } = useSort();\n const { searchValue } = useMarketsContext();\n const { exchanges, brokerName } = useEXchanges();\n const fundingRates = useFundingRates();\n\n const { data, isLoading } = useQuery<\n Array<{ symbol: string; exchanges: Array<{ name: string; last: number }> }>\n >(\"/v1/public/market_info/funding_comparison\");\n const { data: futures } = useMarketsStream();\n\n const processedData = useMemo(() => {\n if (!Array.isArray(data) || !data.length) {\n return [];\n }\n return data.map((row) => {\n const target = futures?.find((item) => item.symbol === row.symbol);\n const result: Record<PropertyKey, any> = {\n symbol: row.symbol,\n openInterest: target\n ? getOpenInterest(\n target?.open_interest as number,\n target?.index_price as number,\n )\n : \"-\",\n };\n for (const item of exchanges) {\n const isCompare = item.includes(` - `);\n if (!isCompare) {\n if (item === brokerName) {\n const rate = fundingRates[row.symbol];\n result[item] = rate(\"last_funding_rate\") ?? null;\n } else {\n const exchange = row.exchanges?.find(\n (e) => e.name.toLowerCase() === item.toLowerCase(),\n );\n result[item] = exchange?.last ?? null;\n }\n } else {\n const [, exchangeName] = item.replace(/ /g, \"\").split(\"-\");\n const rate = fundingRates[row.symbol];\n const wooFiRate = rate(\"last_funding_rate\") ?? null;\n const exchange = row.exchanges?.find(\n (e) => e.name.toLowerCase() === exchangeName.toLowerCase(),\n );\n const otherRate = exchange?.last ?? null;\n if (wooFiRate !== null && otherRate !== null) {\n result[item] = new Decimal(wooFiRate).sub(otherRate).toString();\n } else {\n result[item] = null;\n }\n }\n }\n return result;\n });\n }, [data, futures, fundingRates, exchanges, brokerName]);\n\n const filteredData = useMemo(() => {\n return searchBySymbol(processedData, searchValue, \"base-type\");\n }, [processedData, searchValue, pagination]);\n\n const dataSource = useMemo(\n () => getSortedList(filteredData),\n [getSortedList, filteredData],\n );\n\n return {\n dataSource,\n isLoading,\n pagination,\n onSort,\n };\n};\n","import type { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { DataTable } from \"@orderly.network/ui\";\nimport { useFundingColumns } from \"./columns\";\nimport { FundingComparisonReturn } from \"./fundingComparison.script\";\n\nexport const MobileFundingComparison: FC<FundingComparisonReturn> = (props) => {\n const columns = useFundingColumns();\n\n return (\n <DataTable\n columns={columns}\n dataSource={props.dataSource}\n loading={props.isLoading}\n onRow={() => {\n return {\n className: cn(\"oui-h-[34px] oui-cursor-pointer\"),\n };\n }}\n onSort={props.onSort}\n classNames={{\n header: \"oui-h-9\",\n body: \"oui-text-2xs\",\n }}\n manualSorting\n />\n );\n};\n","import type { FC } from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileFundingComparison } from \"./fundingComparison.mobile.ui\";\nimport { useFundingComparisonScript } from \"./fundingComparison.script\";\nimport { FundingComparison } from \"./fundingComparison.ui\";\n\nexport const FundingComparisonWidget: FC = () => {\n const state = useFundingComparisonScript();\n const { isMobile } = useScreen();\n return isMobile ? (\n <MobileFundingComparison {...state} />\n ) : (\n <FundingComparison {...state} />\n );\n};\n","export { FundingComparison } from \"./fundingComparison.ui\";\nexport { useFundingComparisonScript } from \"./fundingComparison.script\";\nexport { FundingComparisonWidget } from \"./fundingComparison.widget\";\n","import React from \"react\";\nimport { pick } from \"ramda\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { CollapseIcon, ExpandIcon } from \"../../icons\";\nimport { ExpandMarketsWidget } from \"../expandMarkets\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport type { SideMarketsScriptReturn } from \"./sideMarkets.script\";\n\nexport const SideMarketsHeader: React.FC<\n Pick<\n SideMarketsScriptReturn,\n \"resizeable\" | \"panelSize\" | \"onPanelSizeChange\"\n >\n> = (props) => {\n const { resizeable, panelSize, onPanelSizeChange } = props;\n\n const { t } = useTranslation();\n\n const cls = cn(\n \"oui-text-base-contrast-36\",\n resizeable\n ? \"oui-cursor-pointer hover:oui-text-base-contrast-80\"\n : \"oui-cursor-not-allowed\",\n );\n\n return (\n <Flex\n className={\n panelSize === \"small\"\n ? \"oui-absolute oui-end-[-20px] oui-z-50\"\n : \"oui-relative\"\n }\n justify={panelSize === \"large\" ? \"between\" : \"center\"}\n width=\"100%\"\n px={3}\n >\n {panelSize === \"large\" && (\n <Text size=\"base\" intensity={80}>\n {t(\"common.markets\")}\n </Text>\n )}\n {panelSize === \"large\" && (\n <div\n onClick={resizeable ? () => onPanelSizeChange?.(\"middle\") : undefined}\n >\n <CollapseIcon className={cls} />\n </div>\n )}\n {(panelSize === \"middle\" || panelSize === \"small\") && (\n <div\n onClick={resizeable ? () => onPanelSizeChange?.(\"large\") : undefined}\n >\n <ExpandIcon className={cls} />\n </div>\n )}\n </Flex>\n );\n};\n\nexport type SideMarketsProps = SideMarketsScriptReturn & { className?: string };\n\nexport const SideMarkets: React.FC<SideMarketsProps> = (props) => {\n const { panelSize, activeTab, onTabChange, className, tabSort } = props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const { getFavoritesProps } = useFavoritesProps();\n\n const renderContent = () => {\n if (panelSize === \"large\") {\n return (\n <ExpandMarketsWidget\n activeTab={activeTab}\n onTabChange={onTabChange}\n symbol={symbol}\n onSymbolChange={onSymbolChange}\n />\n );\n }\n return (\n <MarketsListWidget\n type={activeTab}\n initialSort={tabSort[activeTab]}\n panelSize={\"middle\"}\n {...getFavoritesProps(activeTab)}\n />\n );\n };\n\n return (\n <Flex\n id=\"oui-side-markets\"\n className={cn(\"oui-relative oui-font-semibold\", className)}\n direction=\"column\"\n gapY={5}\n height=\"100%\"\n width=\"100%\"\n >\n <SideMarketsHeader\n {...pick([\"resizeable\", \"panelSize\", \"onPanelSizeChange\"], props)}\n />\n <Box\n width=\"100%\"\n className={cn(\n panelSize === \"large\" && \"oui-h-[calc(100%_-_56px)]\",\n panelSize === \"middle\" && \"oui-h-[calc(100%_-_52px)]\",\n )}\n >\n {renderContent()}\n </Box>\n </Flex>\n );\n};\n","import { MouseEventHandler, useCallback } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, cn, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { DeleteIcon, TopIcon } from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport {\n get24hPercentageColumn,\n getLastColumn,\n getSymbolColumn,\n} from \"../shared/column\";\n\nexport const useDropDownMarketsColumns = () => {\n const { t } = useTranslation();\n\n return useCallback(\n (favorite: FavoriteInstance, isFavoriteList = false) => {\n return [\n getSymbolColumn(favorite, isFavoriteList),\n getLastColumn(),\n get24hPercentageColumn(),\n {\n title: t(\"common.volume\"),\n dataIndex: \"24h_amount\",\n align: \"right\",\n onSort: true,\n className: \"oui-relative\",\n width: 80,\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const iconCls =\n \"oui-w-4 oui-h-4 oui-text-base-contrast-54 hover:oui-text-base-contrast\";\n\n const actions = (\n <div className={cn(\"oui-absolute oui-right-1 oui-top-[3px]\")}>\n <Flex\n className={cn(\n \"oui-bg-primary-darken oui-py-[6px]\",\n \"oui-hidden group-hover:oui-inline-flex\",\n )}\n r=\"base\"\n width={52}\n justify=\"center\"\n itemAlign=\"end\"\n gapX={2}\n >\n <TopIcon\n className={iconCls}\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n />\n <DeleteIcon className={iconCls} onClick={onDelSymbol} />\n </Flex>\n </div>\n );\n return (\n <>\n {isFavoriteList && actions}\n <Text.numeral\n rule=\"human\"\n dp={2}\n rm={Decimal.ROUND_DOWN}\n className={cn(isFavoriteList && \"group-hover:oui-invisible\")}\n >\n {value}\n </Text.numeral>\n </>\n );\n },\n },\n ] as Column[];\n },\n [t],\n );\n};\n","import { PropsWithChildren } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n CloseIcon,\n cn,\n Flex,\n TabPanel,\n Tabs,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n} from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport { MarketsTabName } from \"../../type\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { RwaTab } from \"../rwaTab\";\nimport { SearchInput } from \"../searchInput\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport { useDropDownMarketsColumns } from \"./column\";\nimport { DropDownMarketsScriptReturn } from \"./dropDownMarkets.script\";\n\nexport type DropDownMarketsProps = DropDownMarketsScriptReturn & {\n contentClassName?: string;\n};\n\nexport const DropDownMarkets: React.FC<\n PropsWithChildren<DropDownMarketsProps>\n> = (props) => {\n return (\n <DropdownMenuRoot open={props.open} onOpenChange={props.onOpenChange}>\n <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(e) => e.preventDefault()}\n onClick={(e) => e.stopPropagation()}\n align=\"start\"\n alignOffset={-32}\n sideOffset={20}\n className={cn(\n \"oui-markets-dropdown-menu-content oui-bg-base-8 oui-p-0\",\n props.contentClassName,\n )}\n >\n <DropDownMarketsConetnt {...props} hide={props.hide} />\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n\nexport const DropDownMarketsConetnt: React.FC<DropDownMarketsProps> = (\n props,\n) => {\n const { activeTab, onTabChange, tabSort, onTabSort } = props;\n\n const { t } = useTranslation();\n\n const getColumns = useDropDownMarketsColumns();\n\n const search = (\n <Flex mx={3} gapX={3} pt={3} pb={2}>\n <SearchInput\n classNames={{\n root: \"oui-w-full\",\n }}\n />\n <CloseIcon\n size={12}\n className=\"oui-cursor-pointer oui-text-base-contrast-80\"\n onClick={props.hide}\n opacity={1}\n />\n </Flex>\n );\n\n const cls = \"oui-h-[calc(100%_-_36px)]\";\n\n const { getFavoritesProps, renderEmptyView } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n return (\n <div className={cls}>\n <MarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n getColumns={getColumns}\n tableClassNames={{\n root: \"!oui-bg-base-8\",\n scroll: \"oui-pb-5 oui-px-1\",\n }}\n rowClassName=\"!oui-h-[34px]\"\n {...getFavoritesProps(type)}\n emptyView={renderEmptyView({\n type,\n onClick: () => {\n onTabChange(MarketsTabName.All);\n },\n })}\n />\n </div>\n );\n };\n\n return (\n <Box\n className={cn(\"oui-overflow-hidden oui-font-semibold\")}\n height=\"100%\"\n intensity={800}\n >\n {search}\n\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n tabsList: \"oui-my-[6px] oui-px-3\",\n tabsContent: \"oui-h-full\",\n }}\n className={cls}\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n value={MarketsTabName.NewListing}\n >\n {renderTab(MarketsTabName.NewListing)}\n </TabPanel>\n <TabPanel title={t(\"markets.recent\")} value={MarketsTabName.Recent}>\n {renderTab(MarketsTabName.Recent)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { MarketsTabName } from \"../../type\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type DropDownMarketsScriptReturn = ReturnType<\n typeof useDropDownMarketsScript\n>;\n\nconst DROPDOWN_MARKETS_SEL_TAB_KEY = \"orderly_dropdown_markets_sel_tab_key\";\n\nconst DROPDOWN_MARKETS_TAB_SORT_STORAGE_KEY =\n \"orderly_dropdown_markets_tab_sort\";\n\nexport function useDropDownMarketsScript() {\n const [open, setOpen] = useState(false);\n\n const [activeTab, setActiveTab] = useLocalStorage(\n DROPDOWN_MARKETS_SEL_TAB_KEY,\n MarketsTabName.All,\n );\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: DROPDOWN_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const { clearSearchValue } = useMarketsContext();\n\n const hide = () => {\n setOpen(false);\n };\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab: activeTab as MarketsTabName,\n onTabChange: (value: string) => setActiveTab(value as MarketsTabName),\n open,\n onOpenChange: setOpen,\n hide,\n tabSort,\n onTabSort,\n };\n}\n","import React, { PropsWithChildren } from \"react\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useDropDownMarketsScript } from \"./dropDownMarkets.script\";\nimport { DropDownMarkets, DropDownMarketsProps } from \"./dropDownMarkets.ui\";\n\nexport type DropDownMarketsWidgetProps = MarketsProviderProps &\n Pick<DropDownMarketsProps, \"contentClassName\">;\n\nexport const DropDownMarketsWidget: React.FC<\n PropsWithChildren<DropDownMarketsWidgetProps>\n> = (props) => {\n const state = useDropDownMarketsScript();\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <DropDownMarkets {...state} contentClassName={props.contentClassName}>\n {props.children}\n </DropDownMarkets>\n </MarketsProvider>\n );\n};\n","export { DropDownMarkets, DropDownMarketsConetnt } from \"./dropDownMarkets.ui\";\nexport { useDropDownMarketsScript } from \"./dropDownMarkets.script\";\nexport { useDropDownMarketsColumns } from \"./column\";\nexport { DropDownMarketsWidget } from \"./dropDownMarkets.widget\";\n","import React from \"react\";\nimport { cn, Flex, Tooltip, Text } from \"@orderly.network/ui\";\n\ninterface DataItemProps {\n label: string;\n value: React.ReactNode;\n hint?: React.ReactNode;\n}\n\nexport const DataItem: React.FC<DataItemProps> = (props) => {\n const { label, value, hint } = props;\n return (\n <Flex direction=\"column\" itemAlign=\"start\">\n <Tooltip\n open={hint ? undefined : false}\n content={hint}\n className=\"oui-max-w-[330px] oui-bg-base-6 \"\n arrow={{ className: \"oui-fill-base-6\" }}\n delayDuration={300}\n >\n <Text\n size=\"2xs\"\n intensity={36}\n className={cn(\n \"oui-data-label\",\n \"oui-whitespace-nowrap oui-break-normal\",\n hint &&\n \"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\",\n )}\n >\n {label}\n </Text>\n </Tooltip>\n <Text\n size=\"2xs\"\n intensity={98}\n className={cn(\n \"oui-data-value\",\n \"oui-whitespace-nowrap oui-break-normal oui-leading-[20px]\",\n )}\n >\n {value}\n </Text>\n </Flex>\n );\n};\n","import React from \"react\";\nimport { cn, Flex, Text, TokenIcon, Divider } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport interface MarketItemProps {\n symbol: string;\n tickerData: {\n \"24h_close\": number;\n change: number;\n quote_dp: number;\n };\n isActive: boolean;\n onSymbolClick: (symbol: string) => void;\n}\n\nconst MarketItemComponent: React.FC<MarketItemProps> = (props) => {\n const { symbol, tickerData, isActive, onSymbolClick } = props;\n\n const handleClick = React.useCallback(() => {\n onSymbolClick(symbol);\n }, [symbol, onSymbolClick]);\n\n return (\n <Flex\n direction=\"row\"\n className={cn(\n \"oui-mr-3 oui-h-[18px] oui-shrink-0 oui-cursor-pointer oui-items-center oui-rounded\",\n \"oui-transition-all oui-duration-200\",\n )}\n onClick={handleClick}\n >\n {/* Symbol */}\n <Flex gapX={1} itemAlign=\"center\" className=\"oui-mr-[6px]\">\n <TokenIcon symbol={symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay\n formatString=\"base\"\n size=\"2xs\"\n className=\"oui-text-base-contrast-80\"\n >\n {symbol}\n </SymbolDisplay>\n </Flex>\n\n {/* Price */}\n <Flex gapX={1} className=\"oui-mr-[6px]\">\n <Text.numeral\n dp={tickerData.quote_dp || 2}\n size=\"xs\"\n className=\"oui-text-base-contrast-80\"\n >\n {tickerData[\"24h_close\"]}\n </Text.numeral>\n </Flex>\n\n {/* Change */}\n <Flex gapX={1} className=\"oui-mr-3\">\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"xs\"\n >\n {tickerData.change}\n </Text.numeral>\n </Flex>\n\n {/* Divider */}\n <Divider direction=\"vertical\" className=\"oui-h-[18px] oui-border-line\" />\n </Flex>\n );\n};\n\n// Memoize the component to prevent unnecessary re-renders\nexport const MarketItem = React.memo<MarketItemProps>(\n MarketItemComponent,\n (prevProps, nextProps) => {\n return (\n prevProps.symbol === nextProps.symbol &&\n prevProps.isActive === nextProps.isActive &&\n prevProps.tickerData[\"24h_close\"] === nextProps.tickerData[\"24h_close\"] &&\n prevProps.tickerData.change === nextProps.tickerData.change &&\n prevProps.tickerData.quote_dp === nextProps.tickerData.quote_dp &&\n prevProps.onSymbolClick === nextProps.onSymbolClick\n );\n },\n);\n\nMarketItem.displayName = \"MarketItem\";\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport { useMarkets, MarketsType } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex, Text, cn, Checkbox, Divider } from \"@orderly.network/ui\";\nimport { FilterIcon } from \"../../icons\";\nimport type { MarketType } from \"./horizontalMarkets.script\";\n\nexport type DropdownPos = \"top\" | \"bottom\";\n\nexport type MarketTypeFilterProps = {\n selectedMarketType: MarketType;\n onMarketTypeChange: (marketType: MarketType) => void;\n className?: string;\n position?: DropdownPos;\n};\n\nconst marketTypeBase: Array<{\n value: MarketType;\n label: string;\n translationKey: string;\n}> = [\n { value: \"recent\", label: \"Recent\", translationKey: \"Recent\" },\n { value: \"all\", label: \"All Markets\", translationKey: \"All\" },\n { value: \"newListing\", label: \"New Listing\", translationKey: \"New listing\" },\n];\n\nconst marketTypeFavorites: Array<{\n value: MarketType;\n label: string;\n translationKey: string;\n}> = [{ value: \"favorites\", label: \"Favorites\", translationKey: \"Favorites\" }];\n\nexport const MarketTypeFilter: React.FC<MarketTypeFilterProps> = (props) => {\n const {\n selectedMarketType,\n onMarketTypeChange,\n className,\n position = \"bottom\" as DropdownPos,\n } = props;\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n // Access shared favorites store for tabs rendering\n const [, favorite] = useMarkets(MarketsType.FAVORITES);\n const hasFavorites = (favorite?.favorites?.length || 0) > 0;\n\n // Handle click outside to close dropdown\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n // Open dropdown\n const handleFilterClick = useCallback(() => {\n setIsOpen((prev) => !prev);\n }, []);\n\n // Handle option click\n const handleOptionClick = useCallback(\n (marketType: MarketType) => {\n onMarketTypeChange(marketType);\n setIsOpen(false);\n },\n [onMarketTypeChange],\n );\n\n return (\n <Box\n ref={dropdownRef}\n className={cn(\"oui-relative oui-inline-block\", className)}\n >\n {/* Filter Button */}\n <Flex\n className={cn(\"oui-cursor-pointer oui-rounded\")}\n itemAlign=\"center\"\n onClick={handleFilterClick}\n >\n <FilterIcon\n className={cn(\n \"oui-size-[18px] oui-text-base-contrast-36 hover:oui-text-base-contrast-80 oui-transition-colors\",\n )}\n />\n </Flex>\n\n {/* Dropdown Menu */}\n {isOpen && (\n <div className=\"oui-text-base-contrast-54\">\n <Box\n className={cn(\n \"oui-absolute oui-left-0 oui-z-50\",\n \"oui-bg-base-9 oui-border oui-border-line-6 oui-rounded-[12px]\",\n \"oui-shadow-lg oui-w-[320px] oui-p-5\",\n // animation\n \"oui-animate-in oui-fade-in-0 oui-zoom-in-95\",\n position === \"top\"\n ? \"oui-bottom-full oui-mb-1 oui-slide-in-from-bottom-2\"\n : \"oui-top-full oui-mt-1 oui-slide-in-from-top-2\",\n )}\n >\n <Flex direction=\"column\" gapY={3} itemAlign=\"start\">\n {/* Base Market Types */}\n <Flex\n direction=\"row\"\n gapX={3}\n wrap=\"wrap\"\n gapY={1}\n className=\"oui-gap-x-2 md:oui-gap-x-3\"\n >\n {marketTypeBase.map((option) => (\n <Flex\n key={option.value}\n className={cn(\"oui-cursor-pointer\")}\n itemAlign=\"center\"\n onClick={() => handleOptionClick(option.value)}\n >\n {/* Checkbox */}\n <Checkbox\n data-testid={`oui-testid-marketType-${option.value}-checkBox`}\n id={`toggle_market_type_${option.value}`}\n className=\"oui-peer\"\n color=\"white\"\n checked={selectedMarketType === option.value}\n />\n\n <label\n htmlFor={`toggle_market_type_${option.value}`}\n className={cn(\n \"oui-text-2xs oui-ml-1\",\n \"oui-break-normal oui-whitespace-nowrap oui-cursor-pointer\",\n )}\n >\n {option.translationKey}\n </label>\n </Flex>\n ))}\n </Flex>\n\n {hasFavorites && (\n <>\n {/* Divider */}\n <Divider\n className=\"oui-w-full\"\n direction=\"horizontal\"\n intensity={16}\n />\n\n {/* Favorites Title */}\n <Text className=\"oui-text-xs oui-text-base-contrast-54 oui-font-medium\">\n Favorites\n </Text>\n\n {/* Favorites Tabs as checkbox list */}\n <Flex\n direction=\"row\"\n gapX={3}\n wrap=\"wrap\"\n gapY={1}\n className=\"oui-gap-x-2 md:oui-gap-x-3\"\n >\n {favorite.favoriteTabs?.slice(0, 10)?.map((tab) => {\n const isActiveTab =\n selectedMarketType === \"favorites\" &&\n favorite.selectedFavoriteTab?.id === tab.id;\n const htmlId = `toggle_market_type_favorites_${tab.id}`;\n return (\n <Flex\n key={tab.id}\n className={cn(\"oui-cursor-pointer\")}\n itemAlign=\"center\"\n onClick={() => {\n favorite.updateSelectedFavoriteTab(tab);\n onMarketTypeChange(\"favorites\");\n setIsOpen(false);\n }}\n >\n <Checkbox\n data-testid={`oui-testid-marketType-favorites-${tab.id}-checkBox`}\n id={htmlId}\n className=\"oui-peer\"\n color=\"white\"\n checked={isActiveTab}\n />\n\n <label\n htmlFor={htmlId}\n className={cn(\n \"oui-text-2xs oui-ml-1\",\n \"oui-break-normal oui-whitespace-nowrap oui-cursor-pointer\",\n )}\n >\n {tab.name}\n </label>\n </Flex>\n );\n })}\n </Flex>\n </>\n )}\n </Flex>\n </Box>\n </div>\n )}\n </Box>\n );\n};\n","import React from \"react\";\nimport { Box, cn, Flex, Marquee } from \"@orderly.network/ui\";\nimport type { HorizontalMarketsScriptReturn } from \"./horizontalMarkets.script\";\nimport { MarketItem } from \"./marketItem.ui\";\nimport { MarketTypeFilter } from \"./marketTypeFilter.ui\";\nimport type { DropdownPos } from \"./marketTypeFilter.ui\";\n\nexport type HorizontalMarketsProps = HorizontalMarketsScriptReturn & {\n className?: string;\n dropdownPos?: DropdownPos;\n};\n\nexport const HorizontalMarkets = React.memo<HorizontalMarketsProps>((props) => {\n const {\n symbols,\n tickerData,\n currentSymbol,\n onSymbolClick,\n selectedMarketType,\n onMarketTypeChange,\n className,\n dropdownPos,\n } = props;\n\n // Memoize the render function to prevent unnecessary re-renders\n const renderMarketItem = React.useCallback(\n (symbol: string, index: number) => {\n const data = tickerData[symbol];\n const isActive = currentSymbol === symbol;\n\n if (!data) {\n return null;\n }\n\n return (\n <MarketItem\n key={symbol}\n symbol={symbol}\n tickerData={data}\n isActive={isActive}\n onSymbolClick={onSymbolClick}\n />\n );\n },\n [tickerData, currentSymbol, onSymbolClick],\n );\n\n const carouselOptions = React.useMemo(\n () => ({\n loop: true,\n align: \"start\" as const,\n axis: \"x\" as const,\n }),\n [],\n );\n\n const autoScrollOptions = React.useMemo(\n () => ({\n speed: 1,\n direction: \"forward\" as const,\n stopOnMouseEnter: true,\n }),\n [],\n );\n\n return (\n <Box\n className={cn(\n \"oui-horizontal-markets\",\n \"oui-bg-base-9 oui-rounded-[12px]\",\n \"oui-w-full oui-px-3 oui-py-2\",\n className,\n )}\n >\n <Flex\n direction=\"row\"\n gapX={3}\n itemAlign=\"center\"\n className=\"oui-size-full\"\n >\n {/* Filter Button */}\n <MarketTypeFilter\n selectedMarketType={selectedMarketType}\n onMarketTypeChange={onMarketTypeChange}\n position={dropdownPos}\n />\n\n {/* Markets List */}\n <Marquee\n data={symbols}\n renderItem={renderMarketItem}\n carouselOptions={carouselOptions}\n autoScrollOptions={autoScrollOptions}\n className=\"oui-h-full\"\n />\n </Flex>\n </Box>\n );\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n HorizontalMarkets.displayName = \"HorizontalMarkets\";\n}\n","import type { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { FundingComparisonWidget } from \"../../../components/fundingComparison\";\nimport { FundingOverviewWidget } from \"../../../components/fundingOverview\";\nimport { SearchInput } from \"../../../components/searchInput\";\nimport { FundingScriptReturn } from \"./funding.script\";\n\nexport const MobileFunding: FC<FundingScriptReturn> = (props) => {\n const { t } = useTranslation();\n\n const search = (\n <SearchInput\n classNames={{\n root: cn(\"oui-mb-2 oui-mt-5\"),\n }}\n />\n );\n\n return (\n <Box\n intensity={900}\n p={3}\n mt={2}\n mb={5}\n r=\"xl\"\n height=\"100%\"\n className=\"oui-markets-funding-list\"\n >\n <Tabs\n variant=\"contained\"\n size=\"lg\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n >\n <TabPanel\n title={t(\"common.overview\")}\n value=\"overview\"\n testid=\"oui-testid-funding-overview-tab\"\n >\n <>\n {search}\n <FundingOverviewWidget />\n </>\n </TabPanel>\n <TabPanel\n title={t(\"markets.funding.comparison\")}\n value=\"comparison\"\n testid=\"oui-testid-funding-comparison-tab\"\n >\n <>\n {search}\n <FundingComparisonWidget />\n </>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { useState } from \"react\";\nimport { FundingTabName } from \"../../../type\";\n\nexport type FundingScriptReturn = ReturnType<typeof useFundingScript>;\n\nexport function useFundingScript() {\n const [activeTab, setActiveTab] = useState<FundingTabName>(\n FundingTabName.Overview,\n );\n\n return {\n activeTab,\n onTabChange: setActiveTab,\n };\n}\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport type { FundingScriptReturn } from \"./funding.script\";\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../../../components/searchInput\").then((mod) => {\n return { default: mod.SearchInput };\n }),\n);\n\nconst LazyFundingOverviewWidget = React.lazy(() =>\n import(\"../../../components/fundingOverview\").then((mod) => {\n return { default: mod.FundingOverviewWidget };\n }),\n);\n\nconst LazyFundingComparisonWidget = React.lazy(() =>\n import(\"../../../components/fundingComparison\").then((mod) => {\n return { default: mod.FundingComparisonWidget };\n }),\n);\n\nexport const Funding: React.FC<FundingScriptReturn> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Box\n intensity={900}\n p={6}\n mt={4}\n r=\"2xl\"\n className=\"oui-markets-funding-list\"\n >\n <Tabs\n variant=\"contained\"\n size=\"lg\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n trailing={\n <React.Suspense fallback={null}>\n <LazySearchInput classNames={{ root: \"oui-my-1 oui-w-[240px]\" }} />\n </React.Suspense>\n }\n >\n <TabPanel\n title={t(\"common.overview\")}\n value=\"overview\"\n testid=\"oui-testid-funding-overview-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingOverviewWidget />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"markets.funding.comparison\")}\n value=\"comparison\"\n testid=\"oui-testid-funding-comparison-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingComparisonWidget />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import React from \"react\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { MobileFunding } from \"./funding.mobile.ui\";\nimport { useFundingScript } from \"./funding.script\";\nimport { Funding } from \"./funding.ui\";\n\nexport const FundingWidget: React.FC = () => {\n const state = useFundingScript();\n const { isMobile } = useScreen();\n return isMobile ? <MobileFunding {...state} /> : <Funding {...state} />;\n};\n","export { MarketsHeader } from \"./marketsHeader.ui\";\nexport { useMarketsHeaderScript } from \"./marketsHeader.script\";\nexport { MarketsHeaderWidget } from \"./marketsHeader.widget\";\n","export * from \"./pages/home/marketsHeader\";\nexport * from \"./pages/home/marketsDataList\";\n\nexport * from \"./components/marketsListFull\";\nexport * from \"./components/favoritesListFull\";\n\nexport * from \"./components/favoritesDropdownMenu\";\nexport * from \"./components/favoritesTabs\";\nexport * from \"./components/expandMarkets\";\nexport * from \"./components/subMenuMarkets\";\n\nexport * from \"./components/marketsList\";\nexport * from \"./components/fundingOverview\";\nexport * from \"./components/fundingComparison\";\n\nexport * from \"./components/collapseMarkets\";\nexport * from \"./components/sideMarkets\";\nexport * from \"./components/dropDownMarkets\";\nexport * from \"./components/marketsSheet\";\nexport * from \"./components/symbolInfoBar\";\nexport * from \"./components/symbolInfoBarFull\";\nexport * from \"./components/horizontalMarkets\";\n\nexport * from \"./deprecated/newListingList\";\nexport * from \"./deprecated/favoritesList\";\nexport * from \"./deprecated/recentList\";\nexport * from \"./type\";\n\nexport { MarketsHomePage } from \"./pages/home/page\";\nexport { MarketsProvider } from \"./components/marketsProvider\";\nexport { SymbolDisplay } from \"./components/symbolDisplay\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Box,\n cn,\n Tabs,\n TabPanel,\n Flex,\n TokenIcon,\n Badge,\n EmptyDataState,\n} from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport {\n MarketsTabName,\n type FavoriteInstance,\n type SortType,\n} from \"../../type\";\nimport { FavoritesTabWidget } from \"../favoritesTabs\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { RwaIconTab } from \"../rwaTab\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nconst LIST_ROW_COMPACT = \"oui-h-auto\";\nconst TABLE_CLASSNAMES = {\n scroll: \"oui-px-0\",\n header: \"oui-hidden oui-h-0 oui-p-0\",\n};\n\nconst LazySearchInput = React.lazy(() =>\n import(\"../searchInput\").then((mod) => ({ default: mod.SearchInput })),\n);\n\nexport type SubMenuMarketsProps = {\n activeTab: MarketsTabName;\n onTabChange: (value: string) => void;\n className?: string;\n tabSort: Record<MarketsTabName, SortType | undefined>;\n onTabSort: (type: MarketsTabName) => (sort?: SortType) => void;\n};\n\nconst cls = \"oui-h-[calc(100%_-_36px)]\";\n\ntype MarketTabPanelProps = {\n type: MarketsTabName;\n getColumns: (_favorite: FavoriteInstance, _isFavoritesList: boolean) => any[];\n initialSort?: SortType;\n onSort?: (sort?: SortType) => void;\n dataFilter?: any;\n renderHeader?: (favorite: FavoriteInstance) => React.ReactNode;\n emptyView?: React.ReactNode;\n};\n\nconst MarketTabPanel: React.FC<MarketTabPanelProps> = ({\n type,\n getColumns,\n initialSort,\n onSort,\n dataFilter,\n renderHeader,\n emptyView,\n}) => {\n return (\n <div className={cls}>\n <MarketsListWidget\n type={type}\n getColumns={getColumns}\n tableClassNames={TABLE_CLASSNAMES}\n rowClassName={LIST_ROW_COMPACT}\n dataFilter={dataFilter}\n renderHeader={renderHeader}\n initialSort={initialSort}\n onSort={onSort}\n emptyView={emptyView}\n />\n </div>\n );\n};\n\nexport const SubMenuMarkets: React.FC<SubMenuMarketsProps> = (props) => {\n const { activeTab, onTabChange, className, tabSort, onTabSort } = props;\n const { t } = useTranslation();\n const { getFavoritesProps } = useFavoritesProps();\n\n const getColumns = (\n _favorite: FavoriteInstance,\n _isFavoritesList: boolean,\n ) => {\n return [\n {\n title: \"\",\n dataIndex: \"symbol\",\n className: \"oui-p-2\",\n render: (_: unknown, record: any) => {\n return (\n <div className=\"oui-mx-[-8px]\">\n <Flex gapX={1} itemAlign=\"center\">\n <TokenIcon symbol={record.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {record.symbol}\n </SymbolDisplay>\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n </div>\n );\n },\n },\n ];\n };\n\n return (\n <Box\n className={cn(\n \"oui-overflow-hidden oui-font-semibold oui-bg-base-9\",\n className,\n )}\n height=\"100%\"\n >\n <Box className=\"oui-p-1\">\n <React.Suspense fallback={null}>\n <LazySearchInput />\n </React.Suspense>\n </Box>\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={activeTab}\n onValueChange={onTabChange}\n classNames={{\n tabsList: cn(\"oui-my-1\"),\n tabsContent: \"oui-h-full\",\n scrollIndicator: \"oui-mx-1\",\n }}\n className={cn(cls, \"oui-my-1.5\")}\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {(() => {\n const favProps = getFavoritesProps(MarketsTabName.Favorites) as {\n dataFilter?: any;\n };\n return (\n <MarketTabPanel\n type={MarketsTabName.Favorites}\n getColumns={getColumns}\n dataFilter={favProps?.dataFilter}\n renderHeader={(favorite) => (\n <Box className=\"oui-px-1 oui-my-1\">\n <FavoritesTabWidget favorite={favorite} size=\"sm\" />\n </Box>\n )}\n initialSort={tabSort[MarketsTabName.Favorites]}\n onSort={onTabSort(MarketsTabName.Favorites)}\n emptyView={<EmptyDataState />}\n />\n );\n })()}\n </TabPanel>\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n <MarketTabPanel\n type={MarketsTabName.All}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.All]}\n onSort={onTabSort(MarketsTabName.All)}\n />\n </TabPanel>\n <TabPanel title={<RwaIconTab />} value={MarketsTabName.Rwa}>\n <MarketTabPanel\n type={MarketsTabName.Rwa}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.Rwa]}\n onSort={onTabSort(MarketsTabName.Rwa)}\n />\n </TabPanel>\n <TabPanel\n title={t(\"markets.newListings\")}\n value={MarketsTabName.NewListing}\n >\n <MarketTabPanel\n type={MarketsTabName.NewListing}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.NewListing]}\n onSort={onTabSort(MarketsTabName.NewListing)}\n />\n </TabPanel>\n <TabPanel title={t(\"markets.recent\")} value={MarketsTabName.Recent}>\n <MarketTabPanel\n type={MarketsTabName.Recent}\n getColumns={getColumns}\n initialSort={tabSort[MarketsTabName.Recent]}\n onSort={onTabSort(MarketsTabName.Recent)}\n />\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import React from \"react\";\nimport { MarketsProvider, type MarketsProviderProps } from \"../marketsProvider\";\nimport {\n useSubMenuMarketsScript,\n type SubMenuMarketsScriptOptions,\n} from \"./subMenuMarkets.script\";\nimport { SubMenuMarkets } from \"./subMenuMarkets.ui\";\nimport type { SubMenuMarketsProps } from \"./subMenuMarkets.ui\";\n\nexport type SubMenuMarketsWidgetProps = MarketsProviderProps &\n SubMenuMarketsScriptOptions &\n Pick<SubMenuMarketsProps, \"className\">;\n\nexport const SubMenuMarketsWidget: React.FC<SubMenuMarketsWidgetProps> = (\n props,\n) => {\n const state = useSubMenuMarketsScript({\n activeTab: props.activeTab,\n onTabChange: props.onTabChange,\n });\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <SubMenuMarkets\n activeTab={state.activeTab}\n onTabChange={state.onTabChange}\n tabSort={state.tabSort}\n onTabSort={state.onTabSort}\n className={props.className}\n />\n </MarketsProvider>\n );\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type SubMenuMarketsScriptOptions = {\n activeTab?: MarketsTabName;\n onTabChange?: (tab: MarketsTabName) => void;\n};\n\nexport type SubMenuMarketsScriptReturn = ReturnType<\n typeof useSubMenuMarketsScript\n>;\n\nexport function useSubMenuMarketsScript(options?: SubMenuMarketsScriptOptions) {\n const [activeTab, setActiveTab] = useState<MarketsTabName>(\n (options?.activeTab ?? MarketsTabName.All) as MarketsTabName,\n );\n\n const { clearSearchValue } = useMarketsContext();\n\n const { tabSort, onTabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const onTabChange = useCallback(\n (value: string) => {\n if (typeof options?.onTabChange === \"function\") {\n options.onTabChange(value as MarketsTabName);\n } else {\n setActiveTab(value as MarketsTabName);\n }\n },\n [options?.onTabChange],\n );\n\n useEffect(() => {\n if (options?.activeTab !== undefined) {\n setActiveTab(options.activeTab as MarketsTabName);\n }\n }, [options?.activeTab]);\n\n useEffect(() => {\n clearSearchValue?.();\n }, [activeTab]);\n\n return {\n activeTab,\n onTabChange,\n tabSort,\n onTabSort,\n } as const;\n}\n","export { SideMarkets } from \"./sideMarkets.ui\";\nexport { useSideMarketsScript } from \"./sideMarkets.script\";\nexport { SideMarketsWidget } from \"./sideMarkets.widget\";\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type SideMarketsScriptOptions = {\n resizeable?: boolean;\n panelSize?: \"small\" | \"middle\" | \"large\";\n onPanelSizeChange?: React.Dispatch<\n React.SetStateAction<\"small\" | \"middle\" | \"large\">\n >;\n};\n\nexport type SideMarketsScriptReturn = ReturnType<typeof useSideMarketsScript>;\n\nconst SIDE_MARKETS_SEL_TAB_KEY = \"orderly_side_markets_sel_tab_key\";\n\nexport const useSideMarketsScript = (options?: SideMarketsScriptOptions) => {\n const [panelSize, setPanelSize] = useState(options?.panelSize);\n const [activeTab, setActiveTab] = useLocalStorage(\n SIDE_MARKETS_SEL_TAB_KEY,\n MarketsTabName.All,\n );\n\n const { tabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const onPanelSizeChange = useCallback(\n (size: \"small\" | \"middle\" | \"large\") => {\n if (typeof options?.onPanelSizeChange === \"function\") {\n options.onPanelSizeChange(size);\n } else {\n setPanelSize(size);\n }\n },\n [options?.onPanelSizeChange],\n );\n\n useEffect(() => {\n setPanelSize(options?.panelSize);\n }, [options?.panelSize]);\n\n return {\n resizeable: options?.resizeable ?? true,\n panelSize: panelSize,\n onPanelSizeChange: onPanelSizeChange as React.Dispatch<\n React.SetStateAction<\"small\" | \"middle\" | \"large\">\n >,\n activeTab: activeTab as MarketsTabName,\n onTabChange: setActiveTab,\n tabSort: tabSort,\n } as const;\n};\n","import React from \"react\";\nimport { pick } from \"ramda\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useSideMarketsScript } from \"./sideMarkets.script\";\nimport type { SideMarketsProps } from \"./sideMarkets.ui\";\n\nconst LazySideMarkets = React.lazy(() =>\n import(\"./sideMarkets.ui\").then((mod) => {\n return { default: mod.SideMarkets };\n }),\n);\n\nexport type SideMarketsWidgetProps = MarketsProviderProps &\n Partial<\n Pick<\n SideMarketsProps,\n \"resizeable\" | \"panelSize\" | \"onPanelSizeChange\" | \"className\"\n >\n >;\n\nexport const SideMarketsWidget: React.FC<SideMarketsWidgetProps> = (props) => {\n const state = useSideMarketsScript(\n pick([\"resizeable\", \"panelSize\", \"onPanelSizeChange\"], props),\n );\n return (\n <MarketsProvider {...pick([\"symbol\", \"onSymbolChange\"], props)}>\n <React.Suspense fallback={null}>\n <LazySideMarkets {...state} className={props.className} />\n </React.Suspense>\n </MarketsProvider>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport { FavoritesIcon } from \"../../icons\";\nimport { MarketsTabName } from \"../../type\";\nimport { MarketsListWidget } from \"../marketsList\";\nimport { RwaTab } from \"../rwaTab\";\nimport { SearchInput } from \"../searchInput\";\nimport { useFavoritesProps } from \"../shared/hooks/useFavoritesExtraProps\";\nimport { getMarketsSheetColumns } from \"./column\";\nimport { MarketsSheetScriptReturn } from \"./marketsSheet.script\";\n\nexport type MarketsSheetProps = MarketsSheetScriptReturn & {\n className?: string;\n};\n\nexport const MarketsSheet: React.FC<MarketsSheetProps> = (props) => {\n const { className, tabSort, onTabSort } = props;\n\n const { t } = useTranslation();\n\n const { getFavoritesProps, renderEmptyView } = useFavoritesProps();\n\n const renderTab = (type: MarketsTabName) => {\n const isFavorites = type === MarketsTabName.Favorites;\n return (\n <MarketsListWidget\n type={type}\n initialSort={tabSort[type]}\n onSort={onTabSort(type)}\n getColumns={getMarketsSheetColumns}\n tableClassNames={{\n root: \"!oui-bg-base-8\",\n scroll: cn(\n \"oui-pb-[env(safe-area-inset-bottom,_20px)]\",\n isFavorites\n ? \"oui-h-[calc(100%_-_70px)]\"\n : \"oui-h-[calc(100%_-_40px)]\",\n ),\n }}\n emptyView={renderEmptyView({\n type,\n onClick: () => {\n props.onTabChange(MarketsTabName.All);\n },\n })}\n {...getFavoritesProps(type)}\n />\n );\n };\n\n return (\n <Box height=\"100%\" className={cn(\"oui-font-semibold\", className)}>\n <Box px={3} mt={3} mb={2}>\n <Text size=\"base\" intensity={80}>\n {t(\"common.markets\")}\n </Text>\n <SearchInput classNames={{ root: \"oui-mt-4\" }} />\n </Box>\n\n <Tabs\n variant=\"contained\"\n size=\"md\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (tab: string) => void}\n classNames={{\n tabsList: cn(\"oui-my-[6px]\"),\n tabsContent: \"oui-h-full\",\n scrollIndicator: \"oui-mx-3\",\n }}\n className=\"oui-h-[calc(100%_-_92px)]\"\n showScrollIndicator\n >\n <TabPanel title={<FavoritesIcon />} value={MarketsTabName.Favorites}>\n {renderTab(MarketsTabName.Favorites)}\n </TabPanel>\n\n <TabPanel title={t(\"common.all\")} value={MarketsTabName.All}>\n {renderTab(MarketsTabName.All)}\n </TabPanel>\n <TabPanel title={<RwaTab />} value={MarketsTabName.Rwa}>\n {renderTab(MarketsTabName.Rwa)}\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n","import { MouseEventHandler, ReactNode } from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { Flex, TokenIcon, Text, Badge, cn, Column } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n DeleteIcon,\n FavoritesIcon2,\n TopIcon,\n UnFavoritesIcon2,\n} from \"../../icons\";\nimport { FavoriteInstance } from \"../../type\";\nimport { FavoritesDropdownMenuWidget } from \"../favoritesDropdownMenu\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\n\nexport const getMarketsSheetColumns = (\n favorite: FavoriteInstance,\n isFavoriteList = false,\n) => {\n return [\n {\n title: `${i18n.t(\"markets.column.market\")} / ${i18n.t(\"common.volume\")}`,\n dataIndex: \"24h_amount\",\n multiSort: {\n fields: [\n {\n sortKey: \"symbol\",\n label: i18n.t(\"markets.column.market\"),\n },\n {\n sortKey: \"24h_amount\",\n label: i18n.t(\"common.volume\"),\n },\n ],\n },\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n let favoritesIcon: ReactNode;\n if (!isFavoriteList) {\n favoritesIcon = (\n <FavoritesDropdownMenuWidget row={record} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {record.isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-[rgba(255,154,46,1)]\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-[rgba(255,154,46,1)]\" />\n )}\n </Flex>\n </FavoritesDropdownMenuWidget>\n );\n }\n return (\n <Flex>\n {favoritesIcon}\n <Flex direction=\"column\" itemAlign=\"start\" gapY={1}>\n <Flex gapX={1}>\n <TokenIcon symbol={record.symbol} className=\"oui-size-[18px]\" />\n <SymbolDisplay formatString=\"base\" size=\"2xs\">\n {record.symbol}\n </SymbolDisplay>\n <Badge size=\"xs\" color=\"primary\">\n {record.leverage}x\n </Badge>\n </Flex>\n\n <Text.numeral\n intensity={54}\n rule=\"human\"\n dp={2}\n rm={Decimal.ROUND_DOWN}\n >\n {value}\n </Text.numeral>\n </Flex>\n </Flex>\n );\n },\n },\n {\n title: i18n.t(\"markets.column.price&Change\"),\n dataIndex: \"change\",\n align: \"right\",\n onSort: true,\n className: \"oui-h-[36px]\",\n render: (value, record) => {\n const onDelSymbol: MouseEventHandler = (e) => {\n favorite.updateSymbolFavoriteState(\n record,\n favorite.selectedFavoriteTab,\n true,\n );\n e.stopPropagation();\n };\n\n const iconCls =\n \"oui-w-4 oui-h-4 oui-text-base-contrast-54 hover:oui-text-base-contrast\";\n\n const actions = (\n <div\n className={cn(\n \"oui-absolute oui-right-0 oui-top-[6.5px]\",\n \"oui-hidden group-hover:oui-block\",\n )}\n >\n <Flex\n className={cn(\n \"oui-inline-flex\",\n \"oui-bg-primary-darken oui-py-[6px]\",\n )}\n r=\"base\"\n width={52}\n justify=\"center\"\n itemAlign=\"end\"\n gapX={2}\n >\n <TopIcon\n className={iconCls}\n onClick={(e) => {\n e.stopPropagation();\n favorite.pinToTop(record);\n }}\n />\n <DeleteIcon className={iconCls} onClick={onDelSymbol} />\n </Flex>\n </div>\n );\n\n return (\n <div className=\"oui-relative\">\n {isFavoriteList && actions}\n\n <Flex\n direction=\"column\"\n justify=\"end\"\n itemAlign=\"end\"\n gapY={1}\n className={cn(isFavoriteList && \"group-hover:oui-invisible\")}\n >\n <Text.numeral dp={record.quote_dp || 2} size=\"2xs\">\n {record[\"24h_close\"]}\n </Text.numeral>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n size=\"2xs\"\n >\n {value}\n </Text.numeral>\n </Flex>\n </div>\n );\n },\n },\n ] as Column[];\n};\n","import { useLocalStorage } from \"@orderly.network/hooks\";\nimport { SIDE_MARKETS_TAB_SORT_STORAGE_KEY } from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type MarketsSheetScriptReturn = ReturnType<typeof useMarketsSheetScript>;\n\nconst MARKETS_SHEET_SEL_TAB_KEY = \"orderly_markets_sheet_sel_tab_key\";\n\nexport function useMarketsSheetScript() {\n const { tabSort, onTabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n\n const [activeTab, setActiveTab] = useLocalStorage(\n MARKETS_SHEET_SEL_TAB_KEY,\n MarketsTabName.All,\n );\n\n return {\n tabSort,\n onTabSort,\n activeTab,\n onTabChange: setActiveTab,\n };\n}\n","import React from \"react\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useMarketsSheetScript } from \"./marketsSheet.script\";\nimport { MarketsSheet, MarketsSheetProps } from \"./marketsSheet.ui\";\n\nexport type MarketsSheetWidgetProps = MarketsProviderProps &\n Partial<Pick<MarketsSheetProps, \"className\">>;\n\nexport const MarketsSheetWidget: React.FC<MarketsSheetWidgetProps> = (\n props,\n) => {\n const state = useMarketsSheetScript();\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <MarketsSheet {...state} className={props.className} />\n </MarketsProvider>\n );\n};\n","import { FC, ReactNode } from \"react\";\nimport { Flex, Text, cn, Divider, Badge, TokenIcon } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { TriangleDownIcon } from \"../../icons\";\nimport { MarketsProviderProps } from \"../marketsProvider\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { RwaTooltip } from \"../symbolInfoBarFull/rwaTooltip\";\nimport { UseSymbolInfoBarScriptReturn } from \"./symbolInfoBar.script\";\n\nexport type Layout = \"left\" | \"right\";\n\nexport type SymbolInfoBarProps = Pick<MarketsProviderProps, \"onSymbolChange\"> &\n UseSymbolInfoBarScriptReturn & {\n className?: string;\n trailing?: ReactNode;\n onSymbol?: () => void;\n };\n\nexport const SymbolInfoBar: FC<SymbolInfoBarProps> = (props) => {\n const {\n symbol,\n data,\n leverage,\n onSymbol,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n } = props;\n\n const symbolView = (\n <Flex\n className=\"oui-h-5 oui-cursor-pointer oui-gap-x-[6px]\"\n onClick={onSymbol}\n >\n <SymbolDisplay formatString=\"base\" size=\"sm\">\n {symbol}\n </SymbolDisplay>\n <TriangleDownIcon className=\"oui-size-[14px] oui-text-base-contrast-54\" />\n </Flex>\n );\n\n return (\n <Flex\n className={cn(\n \"oui-symbol-info-bar-mobile\",\n \"oui-h-full oui-font-semibold\",\n props.className,\n )}\n >\n <Flex gapX={3} className=\"oui-h-full oui-flex-1 oui-overflow-hidden\">\n <Flex gapX={3}>\n <TokenIcon symbol={symbol} size=\"xs\" />\n <Flex direction=\"column\" itemAlign=\"start\">\n {symbolView}\n <Flex gap={1}>\n <Badge size=\"xs\" color=\"primary\">\n {leverage}x\n </Badge>\n <RwaTooltip\n isRwa={isRwa}\n open={open}\n closeTimeInterval={closeTimeInterval}\n openTimeInterval={openTimeInterval}\n />\n </Flex>\n </Flex>\n </Flex>\n\n <Divider className=\"oui-h-[38px]\" direction=\"vertical\" intensity={8} />\n <Text.numeral\n size=\"2xs\"\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {data?.[\"change\"]!}\n </Text.numeral>\n </Flex>\n {props.trailing}\n </Flex>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport React from \"react\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Tooltip, Text, cn, modal } from \"@orderly.network/ui\";\nimport { useScreen } from \"@orderly.network/ui\";\n\nexport type RwaTooltipProps = {\n isRwa: boolean;\n open?: boolean;\n closeTimeInterval?: number;\n openTimeInterval?: number;\n};\n\nexport const RwaTooltip = (props: RwaTooltipProps) => {\n const { isRwa, open, closeTimeInterval, openTimeInterval } = props;\n const { isMobile } = useScreen();\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(false);\n\n const timeInterval = open ? closeTimeInterval : openTimeInterval;\n const tooltipContent = useMemo(() => {\n return <Content open={open} timeInterval={timeInterval} />;\n }, [open, t, timeInterval]);\n\n const triggerView = (\n <Flex\n r=\"base\"\n px={2}\n className={cn(\n open ? \"oui-bg-success/15\" : \"oui-bg-danger/15\",\n \"oui-shrink-0\",\n )}\n >\n <Text size=\"2xs\" color={open ? \"success\" : \"danger\"}>\n {open\n ? t(\"trading.rwa.marketHours\")\n : t(\"trading.rwa.outsideMarketHours\")}\n </Text>\n </Flex>\n );\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n e.preventDefault();\n\n modal.alert({\n title: open\n ? t(\"trading.rwa.marketHours\")\n : t(\"trading.rwa.outsideMarketHours\"),\n message: <AlertContent open={open} timeInterval={timeInterval} />,\n });\n };\n\n if (!isRwa) {\n return null;\n }\n\n if (isMobile) {\n return <button onClick={handleClick}>{triggerView}</button>;\n }\n\n return (\n <Tooltip\n content={tooltipContent}\n open={isOpen}\n onOpenChange={setIsOpen}\n disableHoverableContent={false}\n >\n <button\n onMouseEnter={() => {\n setIsOpen(true);\n }}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {triggerView}\n </button>\n </Tooltip>\n );\n};\n\nconst AlertContent = ({\n open,\n timeInterval,\n}: {\n open?: boolean;\n timeInterval?: number;\n}) => {\n const [innerTimeInterval, setInnerTimeInterval] = useState(timeInterval);\n\n useEffect(() => {\n setInnerTimeInterval(timeInterval);\n }, [timeInterval]);\n\n useEffect(() => {\n if (!innerTimeInterval || innerTimeInterval <= 0) {\n return;\n }\n\n const id = setInterval(() => {\n setInnerTimeInterval((prev) => {\n if (!prev || prev <= 1) {\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n return () => {\n clearInterval(id);\n };\n }, [innerTimeInterval]);\n\n return <Content open={open} timeInterval={innerTimeInterval} />;\n};\n\nconst Content = ({\n open,\n timeInterval,\n}: {\n open?: boolean;\n timeInterval?: number;\n}) => {\n const { t } = useTranslation();\n return (\n <Flex\n direction=\"column\"\n gapY={1}\n className=\"oui-text-2xs oui-max-w-[275px]\"\n itemAlign=\"start\"\n py={1}\n >\n {open\n ? t(\"trading.rwa.tooltip.description.open\")\n : t(\"trading.rwa.tooltip.description.close\")}\n\n <div className=\"oui-text-base-contrast-54\">\n {timeInterval && (\n <Trans\n i18nKey={\n !open\n ? \"trading.rwa.tooltip.openIn\"\n : \"trading.rwa.tooltip.closeIn\"\n }\n values={{ timeFormat: timeInterval }}\n components={[\n // @ts-ignore\n <CountdownText key=\"0\" />,\n ]}\n />\n )}\n </div>\n {/* TODO: wait for rwa detail page to be ready */}\n {/* <a\n href=\"https://orderly.network/rwa\"\n target=\"_blank\"\n className=\"oui-flex oui-items-center oui-gap-x-1 oui-text-primary-darken oui-cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n console.log(\"Link clicked in tooltip\");\n }}\n >\n {t(\"trading.rwa.tooltip.checkDetailRules\")}\n <ArrowRightShortIcon color=\"primary\" opacity={1} />\n </a> */}\n </Flex>\n );\n};\n\nconst CountdownText: React.FC<React.PropsWithChildren> = (props) => {\n const { children } = props;\n const { t } = useTranslation();\n const timeInterval = Number(children);\n\n // calculate days\n const days = Math.floor(timeInterval / (60 * 60 * 24));\n const daysStr = days.toString().padStart(2, \"0\");\n\n // calculate hours\n const hours = Math.floor((timeInterval % (60 * 60 * 24)) / (60 * 60));\n const hoursStr = hours.toString().padStart(2, \"0\");\n\n // calculate minutes\n const minutes = Math.floor((timeInterval % (60 * 60)) / 60);\n const minutesStr = minutes.toString().padStart(2, \"0\");\n\n // calculate seconds\n const seconds = timeInterval % 60;\n const secondsStr = seconds.toString().padStart(2, \"0\");\n\n return (\n <span className=\"oui-text-base-contrast oui-px-1\">\n {days > 0 ? (\n <span>\n {daysStr}\n <span className=\"oui-text-base-contrast-54 oui-mr-1 oui-ml-[2px]\">\n {t(\"common.dayShort\")}\n </span>\n </span>\n ) : (\n \"\"\n )}\n {hoursStr}:{minutesStr}:{secondsStr}\n </span>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useGetRwaSymbolInfo,\n useSymbolsInfo,\n useTickerStream,\n} from \"@orderly.network/hooks\";\n\nexport type UseSymbolInfoBarScriptOptions = {\n symbol: string;\n};\n\nexport type UseSymbolInfoBarScriptReturn = ReturnType<\n typeof useSymbolInfoBarScript\n>;\n\nexport function useSymbolInfoBarScript(options: UseSymbolInfoBarScriptOptions) {\n const { symbol } = options;\n const { isRwa, open, closeTimeInterval, openTimeInterval } =\n useGetRwaSymbolInfo(symbol);\n\n const data = useTickerStream(symbol);\n\n const symbolsInfo = useSymbolsInfo();\n\n const leverage = useMemo(() => {\n const info = symbolsInfo[symbol];\n const baseImr = info(\"base_imr\");\n return getLeverage(baseImr);\n }, [symbol, symbolsInfo]);\n\n return {\n symbol,\n data,\n leverage,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n };\n}\n\nfunction getLeverage(base_imr: number) {\n return base_imr ? 1 / base_imr : undefined;\n}\n","import {\n useSymbolInfoBarScript,\n UseSymbolInfoBarScriptOptions,\n} from \"./symbolInfoBar.script\";\nimport { SymbolInfoBar, SymbolInfoBarProps } from \"./symbolInfoBar.ui\";\n\nexport type SymbolInfoBarWidgetPros = UseSymbolInfoBarScriptOptions &\n Pick<SymbolInfoBarProps, \"className\" | \"trailing\" | \"onSymbol\">;\n\nexport const SymbolInfoBarWidget: React.FC<SymbolInfoBarWidgetPros> = (\n props,\n) => {\n const { symbol, ...rest } = props;\n\n const state = useSymbolInfoBarScript({ symbol });\n return <SymbolInfoBar {...state} {...rest} />;\n};\n","import React, { ReactNode } from \"react\";\nimport { useFundingRate } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n TokenIcon,\n Flex,\n Text,\n cn,\n Divider,\n NewsFillIcon,\n Box,\n} from \"@orderly.network/ui\";\nimport { CloseIcon } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport {\n ArrowLeftIcon,\n FavoritesIcon2,\n TriangleDownIcon,\n UnFavoritesIcon2,\n} from \"../../icons\";\nimport { FundingRateHintWidget } from \"../fundingRateHint\";\nimport type { MarketsProviderProps } from \"../marketsProvider\";\nimport { SymbolDisplay } from \"../symbolDisplay\";\nimport { RwaTooltip } from \"./rwaTooltip\";\nimport type { UseSymbolInfoBarFullScriptReturn } from \"./symbolInfoBarFull.script\";\n\nconst LazyDropDownMarketsWidget = React.lazy(() =>\n import(\"../dropDownMarkets\").then((mod) => {\n return { default: mod.DropDownMarketsWidget };\n }),\n);\n\nconst LazyFavoritesDropdownMenuWidget = React.lazy(() =>\n import(\"../favoritesDropdownMenu\").then((mod) => {\n return { default: mod.FavoritesDropdownMenuWidget };\n }),\n);\n\nconst LazyDataItem = React.lazy(() =>\n import(\"./dataItem.ui\").then((mod) => {\n return { default: mod.DataItem };\n }),\n);\n\nexport type Layout = \"left\" | \"right\";\n\nexport type SymbolInfoBarFullProps = Pick<\n MarketsProviderProps,\n \"onSymbolChange\"\n> &\n UseSymbolInfoBarFullScriptReturn & {\n className?: string;\n trailing?: ReactNode;\n closeCountdown?: () => void;\n showCountdown?: boolean;\n };\n\nexport const SymbolInfoBarFull: React.FC<SymbolInfoBarFullProps> = (props) => {\n const {\n symbol,\n isFavorite,\n favorite,\n data,\n quotoDp,\n openInterest,\n containerRef,\n leadingElementRef,\n tailingElementRef,\n leadingVisible,\n tailingVisible,\n onScoll,\n fundingPeriod,\n capFunding,\n floorFunding,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n closeCountdown,\n showCountdown,\n } = props;\n\n const { t } = useTranslation();\n\n const favoriteIcon = (\n <React.Suspense fallback={null}>\n <LazyFavoritesDropdownMenuWidget row={{ symbol }} favorite={favorite}>\n <Flex\n width={12}\n height={12}\n justify=\"center\"\n itemAlign=\"center\"\n className=\"oui-mr-1 oui-cursor-pointer\"\n >\n {isFavorite ? (\n <FavoritesIcon2 className=\"oui-size-3 oui-text-warning-darken\" />\n ) : (\n <UnFavoritesIcon2 className=\"oui-size-3 oui-text-base-contrast-36 hover:oui-text-warning-darken\" />\n )}\n </Flex>\n </LazyFavoritesDropdownMenuWidget>\n </React.Suspense>\n );\n\n const symbolView = (\n <React.Suspense fallback={null}>\n <Flex\n direction=\"column\"\n itemAlign=\"start\"\n className=\"oui-shrink-0 oui-gap-y-[2px]\"\n >\n <LazyDropDownMarketsWidget\n contentClassName=\"oui-w-[429px] oui-h-[496px]\"\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n >\n <Flex gapX={1} className=\"oui-cursor-pointer\">\n <TokenIcon symbol={symbol} className=\"oui-size-4\" />\n <SymbolDisplay\n formatString=\"base\"\n size=\"xs\"\n className=\"oui-text-base-contrast\"\n >\n {symbol}\n </SymbolDisplay>\n <TriangleDownIcon className=\"oui-text-base-contrast-54\" />\n </Flex>\n </LazyDropDownMarketsWidget>\n {isRwa && (\n <RwaTooltip\n isRwa={isRwa}\n open={open}\n closeTimeInterval={closeTimeInterval}\n openTimeInterval={openTimeInterval}\n />\n )}\n </Flex>\n </React.Suspense>\n );\n\n const price = (\n <Text.numeral\n dp={quotoDp || 2}\n currency=\"$\"\n size=\"sm\"\n intensity={98}\n className=\"oui-data-value\"\n >\n {data?.[\"24h_close\"]}\n </Text.numeral>\n );\n\n const change = (\n <>\n <Text.numeral coloring rm={Decimal.ROUND_DOWN} showIdentifier>\n {data?.[\"24h_change\"]!}\n </Text.numeral>\n <Text intensity={36}>/</Text>\n <Text.numeral\n rule=\"percentages\"\n coloring\n rm={Decimal.ROUND_DOWN}\n showIdentifier\n >\n {data?.[\"change\"]!}\n </Text.numeral>\n </>\n );\n\n return (\n <Flex direction=\"column\" className=\"oui-h-full oui-w-full\">\n <Flex\n className={cn(\n \"oui-symbol-info-bar-desktop\",\n \"oui-font-semibold\",\n \"oui-flex-1 oui-w-full\",\n props.className,\n )}\n // fix Safari text opacity transition bug\n style={{\n transform: \"translateZ(0)\",\n willChange: \"transform\",\n }}\n >\n <Flex gapX={6} className=\"oui-h-full oui-flex-1 oui-overflow-hidden\">\n <Flex gapX={1}>\n {favoriteIcon}\n {symbolView}\n </Flex>\n <Divider\n className=\"oui-h-[26px]\"\n direction=\"vertical\"\n intensity={8}\n />\n {price}\n <div className=\"oui-relative oui-h-full oui-overflow-hidden\">\n <div\n ref={containerRef}\n className=\"oui-hide-scrollbar oui-h-full oui-overflow-x-auto\"\n >\n <Flex gapX={8} height=\"100%\">\n <div ref={leadingElementRef}>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.column.24hChange\")}\n value={change}\n />\n </React.Suspense>\n </div>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.Mark\")}\n value={\n <Text.numeral\n dp={quotoDp}\n data-testid=\"oui-testid-tokenInfo-markPrice-value\"\n >\n {data?.[\"mark_price\"]}\n </Text.numeral>\n }\n hint={t(\"markets.symbolInfoBar.Mark.tooltip\")}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.Index\")}\n value={\n <Text.numeral dp={quotoDp}>\n {data?.[\"index_price\"]}\n </Text.numeral>\n }\n hint={t(\"markets.symbolInfoBar.Index.tooltip\")}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.24hVolume\")}\n value={\n <Text.numeral rule=\"human\" dp={2}>\n {data?.[\"24h_amount\"]}\n </Text.numeral>\n }\n hint={t(\"markets.symbolInfoBar.24hVolume.tooltip\")}\n />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.symbolInfoBar.predFundingRate\")}\n value={<FundingRate symbol={symbol} />}\n hint={<FundingRateHintWidget symbol={symbol} />}\n />\n </React.Suspense>\n\n <div ref={tailingElementRef}>\n <React.Suspense fallback={null}>\n <LazyDataItem\n label={t(\"markets.openInterest\")}\n value={\n <>\n <Text.numeral rule=\"human\" dp={2}>\n {openInterest}\n </Text.numeral>\n <Text intensity={36}>{` USDC`}</Text>\n </>\n }\n hint={t(\"markets.openInterest.tooltip\")}\n />\n </React.Suspense>\n </div>\n </Flex>\n </div>\n <ScrollIndicator\n leading\n onClick={onScoll}\n visible={leadingVisible}\n />\n <ScrollIndicator\n tailing\n onClick={onScoll}\n visible={tailingVisible}\n />\n </div>\n </Flex>\n {props.trailing}\n </Flex>\n {showCountdown && (\n <RwaCountdown\n closeCountdown={closeCountdown}\n isRwa={isRwa}\n open={open}\n closeTimeInterval={closeTimeInterval}\n />\n )}\n </Flex>\n );\n};\n\ntype ScrollIndicatorProps = {\n tailing?: boolean;\n leading?: boolean;\n visible?: boolean;\n onClick?: (direction: string) => void;\n};\n\nconst ScrollIndicator: React.FC<ScrollIndicatorProps> = (props) => {\n const { visible, leading, tailing, onClick } = props;\n if (!visible) {\n return null;\n }\n\n return (\n <button\n onClick={() => {\n onClick?.(leading ? \"left\" : \"right\");\n }}\n style={{\n background:\n \"linear-gradient(90deg, #07080A 0%, rgba(7, 8, 10, 0.60) 65%, rgba(7, 8, 10, 0.00) 100%)\",\n }}\n className={cn(\n \"oui-flex oui-w-[80px] oui-items-center\",\n \"oui-absolute oui-inset-y-0 oui-rounded-l\",\n leading && \"oui-left-0 oui-pl-1\",\n tailing && \"oui-right-0 oui-rotate-180 oui-pr-1\",\n )}\n >\n <ArrowLeftIcon className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80\" />\n </button>\n );\n};\n\nconst FundingRate: React.FC<{ symbol: string }> = ({ symbol }) => {\n const data = useFundingRate(symbol);\n\n if (data?.est_funding_rate === null) {\n return \"--\";\n }\n\n return (\n <div>\n <Text.numeral unit=\"%\" dp={4} intensity={98}>\n {data.est_funding_rate!}\n </Text.numeral>\n <Text intensity={36} className=\"oui-tabular-nums\">\n {/* not need to translate */}\n {` in ${data.countDown}`}\n </Text>\n </div>\n );\n};\n\nconst RwaCountdown: React.FC<{\n closeCountdown?: () => void;\n isRwa: boolean;\n open: boolean | undefined;\n closeTimeInterval: number | undefined;\n}> = ({ closeCountdown, isRwa, open, closeTimeInterval }) => {\n const { t } = useTranslation();\n if (\n !isRwa ||\n closeTimeInterval === undefined ||\n open === undefined ||\n closeTimeInterval > 30 * 60\n ) {\n return null;\n }\n if (!open) {\n return null;\n }\n\n const minutes = closeTimeInterval ? Math.floor(closeTimeInterval / 60) : 0;\n const minutesStr = minutes.toString().padStart(2, \"0\");\n const seconds = closeTimeInterval ? closeTimeInterval % 60 : 0;\n const secondsStr = seconds.toString().padStart(2, \"0\");\n\n return (\n <Flex\n itemAlign=\"center\"\n px={2}\n r=\"lg\"\n className=\"oui-w-full oui-text-warning-darken oui-bg-warning-darken/15 oui-flex-1 oui-my-2 oui-text-sm\"\n >\n <Flex className=\"oui-w-full oui-pr-2\">\n <NewsFillIcon className=\"oui-text-warning-darken\" size={16} />\n <Flex>\n {t(\"trading.rwa.countdown.title\")}\n <Flex className=\"oui-text-base-contrast-54 oui-text-xs oui-font-normal\">\n <Box\n ml={2}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {minutesStr}\n </Box>\n {t(\"common.minuteShort\")}\n {\" : \"}\n <Box\n ml={1}\n className=\"oui-bg-base-7 oui-px-1 oui-rounded-md oui-text-base-contrast oui-min-w-[22px] oui-text-center oui-text-xs\"\n >\n {secondsStr}\n </Box>\n {t(\"common.secondShort\")}\n </Flex>\n </Flex>\n </Flex>\n\n <button className=\"oui-cursor-pointer\" onClick={closeCountdown}>\n <CloseIcon className=\"oui-text-base-contrast\" size={16} opacity={1} />\n </button>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Divider, Flex, Text } from \"@orderly.network/ui\";\nimport { FundingRateHintState } from \"./fundingRateHint.script\";\n\nexport type FundingRateHintProps = FundingRateHintState & {\n className?: string;\n style?: React.CSSProperties;\n};\n\nexport const FundingRateHint: FC<FundingRateHintProps> = (props) => {\n const { t } = useTranslation();\n const {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n } = props;\n\n const renderRow = (\n label: string,\n value?: string | number,\n annualizedValue?: string,\n ) => {\n if (!value) {\n return null;\n }\n return (\n <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n <Text intensity={54}>\n {annualizedValue\n ? `${label}/ ${t(\"trading.fundingRate.annualized\")}`\n : label}\n </Text>\n <Flex itemAlign=\"end\" gap={1} className=\"oui-text-base-contrast-80\">\n <Text intensity={80}>{value}</Text>\n {annualizedValue && \" / \"}\n {annualizedValue && annualizedValue}\n </Flex>\n </Flex>\n );\n };\n\n return (\n <Flex width={\"100%\"} itemAlign={\"center\"} direction=\"column\" gap={1}>\n {renderRow(\n t(\"trading.fundingRate.predFundingRate.interval\"),\n fundingPeriod,\n )}\n {renderRow(\n t(\"trading.fundingRate.predFundingRate.cap\") +\n \" / \" +\n t(\"trading.fundingRate.predFundingRate.floor\"),\n capFunding + \" / \" + floorFunding,\n )}\n {renderRow(\n t(\"trading.fundingRate.lastFundingRate\"),\n lastFundingRate,\n lastFundingRateAnnualized,\n )}\n {renderRow(\n t(\"trading.fundingRate.estimatedFundingRate\"),\n estFundingRate,\n estFundingRateAnnualized,\n )}\n {renderRow(t(\"trading.fundingRate.estimatedFundingFee\"), estFundingFee)}\n <Divider className=\"oui-w-full\" intensity={8} />\n {t(\"markets.symbolInfoBar.predFundingRate.tooltip\")}\n </Flex>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useFundingDetails,\n useFundingRateBySymbol,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const useFundingRateHintScript = (symbol: string) => {\n const { data: fundingDetails, isLoading: isFundingLoading } =\n useFundingDetails(symbol);\n\n const { last_funding_rate, est_funding_rate } =\n useFundingRateBySymbol(symbol) ?? {};\n\n const [{ aggregated, rows }] = usePositionStream(symbol);\n\n const { notional } = aggregated ?? {};\n\n const fundingPeriod = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${fundingDetails.funding_period}h`;\n }, [fundingDetails, isFundingLoading]);\n\n const capFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.cap_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const floorFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.floor_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const lastFundingRate = useMemo(() => {\n if (!last_funding_rate) {\n return undefined;\n }\n return `${new Decimal(last_funding_rate).mul(100).toNumber()}%`;\n }, [last_funding_rate]);\n\n const estFundingRate = useMemo(() => {\n if (!est_funding_rate) {\n return undefined;\n }\n return `${new Decimal(est_funding_rate).mul(100).toNumber()}%`;\n }, [est_funding_rate]);\n\n const estFundingFee = useMemo(() => {\n if (!est_funding_rate || !notional || rows.length === 0) {\n return \"--\";\n }\n\n return `${new Decimal(est_funding_rate).mul(notional).todp(4).toNumber()}`;\n }, [est_funding_rate, notional, rows]);\n\n // Calculate annualized funding rate\n const calculateAnnualizedRate = (rate: number, intervalHours: number) => {\n if (!rate || !intervalHours) return undefined;\n // annualized rate = funding rate * 24h / interval(h) * 365\n const annualizedRate = new Decimal(rate)\n .mul(24)\n .div(intervalHours)\n .mul(365);\n // Round down to two decimal places\n return annualizedRate.todp(2, Decimal.ROUND_DOWN).toNumber();\n };\n\n const lastFundingRateAnnualized = useMemo(() => {\n if (!last_funding_rate || !fundingDetails?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(last_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(\n rate,\n fundingDetails.funding_period,\n );\n return annualized ? `${annualized}%` : undefined;\n }, [last_funding_rate, fundingDetails?.funding_period]);\n\n const estFundingRateAnnualized = useMemo(() => {\n if (!est_funding_rate || !fundingDetails?.funding_period) {\n return undefined;\n }\n const rate = new Decimal(est_funding_rate).mul(100).toNumber();\n const annualized = calculateAnnualizedRate(\n rate,\n fundingDetails.funding_period,\n );\n return annualized ? `${annualized}%` : undefined;\n }, [est_funding_rate, fundingDetails?.funding_period]);\n\n return useMemo(() => {\n return {\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n };\n }, [\n fundingPeriod,\n capFunding,\n floorFunding,\n lastFundingRate,\n estFundingRate,\n estFundingFee,\n lastFundingRateAnnualized,\n estFundingRateAnnualized,\n symbol,\n ]);\n};\n\nexport type FundingRateHintState = ReturnType<typeof useFundingRateHintScript>;\n","import { useFundingRateHintScript } from \"./fundingRateHint.script\";\nimport { FundingRateHint, FundingRateHintProps } from \"./fundingRateHint.ui\";\n\nexport type FundingRateHintWidgetProps = Pick<\n FundingRateHintProps,\n \"style\" | \"className\"\n>;\n\nexport const FundingRateHintWidget: React.FC<\n FundingRateHintWidgetProps & {\n symbol: string;\n }\n> = (props) => {\n const state = useFundingRateHintScript(props.symbol);\n return <FundingRateHint {...state} {...props} />;\n};\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n useFundingDetails,\n useFundingRate,\n useGetRwaSymbolInfo,\n useMarketsStore,\n useSymbolsInfo,\n useTickerStream,\n} from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport type UseSymbolInfoBarFullScriptOptions = {\n symbol: string;\n};\n\nexport type UseSymbolInfoBarFullScriptReturn = ReturnType<\n typeof useSymbolInfoBarFullScript\n>;\n\nexport function useSymbolInfoBarFullScript(\n options: UseSymbolInfoBarFullScriptOptions,\n) {\n const { symbol } = options;\n\n const data = useTickerStream(symbol);\n const fundingRate = useFundingRate(symbol);\n\n const favorite = useMarketsStore();\n\n const { isRwa, open, closeTimeInterval, openTimeInterval } =\n useGetRwaSymbolInfo(symbol);\n\n const { data: fundingDetails, isLoading: isFundingLoading } =\n useFundingDetails(symbol);\n\n const fundingPeriod = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${fundingDetails.funding_period}h`;\n }, [fundingDetails, isFundingLoading]);\n\n const capFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.cap_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const floorFunding = useMemo(() => {\n if (!fundingDetails || isFundingLoading) {\n return \"-\";\n }\n return `${new Decimal(fundingDetails.floor_funding).mul(100).toNumber()}%`;\n }, [fundingDetails, isFundingLoading]);\n\n const info = useSymbolsInfo();\n const quotoDp = info[symbol](\"quote_dp\");\n const [leadingVisible, setLeadingVisible] = useState(false);\n const [tailingVisible, setTailingVisible] = useState(false);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const leadingElementRef = useRef<HTMLDivElement>(null);\n const tailingElementRef = useRef<HTMLDivElement>(null);\n\n const isFavorite = useMemo(\n () => !!favorite.favorites.find((item) => item.name === symbol),\n [favorite.favorites, symbol],\n );\n\n const openInterest = useMemo(\n () =>\n new Decimal(data?.open_interest ?? 0)\n .mul(data?.index_price ?? 0)\n .toDecimalPlaces(2)\n .valueOf(),\n [data],\n );\n\n useEffect(() => {\n const intersectionObserver = new IntersectionObserver((entries) => {\n for (let index = 0; index < entries.length; index++) {\n const item = entries[index];\n if (item) {\n if (item.target === leadingElementRef.current) {\n setLeadingVisible(!item.isIntersecting);\n }\n\n if (item.target === tailingElementRef.current) {\n setTailingVisible(!item.isIntersecting);\n }\n }\n }\n });\n if (leadingElementRef.current) {\n intersectionObserver.observe(leadingElementRef.current);\n }\n\n if (tailingElementRef.current) {\n intersectionObserver.observe(tailingElementRef.current);\n }\n\n return () => {\n intersectionObserver.disconnect();\n };\n }, []);\n\n const onScoll = (direction: string) => {\n containerRef.current?.scrollBy({\n left: direction === \"left\" ? -100 : 100,\n behavior: \"smooth\",\n });\n };\n\n return {\n symbol,\n isFavorite,\n favorite,\n data,\n quotoDp,\n openInterest,\n fundingRate,\n containerRef,\n leadingElementRef,\n tailingElementRef,\n leadingVisible,\n tailingVisible,\n onScoll,\n fundingPeriod,\n capFunding,\n floorFunding,\n isRwa,\n open,\n closeTimeInterval,\n openTimeInterval,\n };\n}\n","import { FC } from \"react\";\nimport { MarketsProviderProps } from \"../marketsProvider\";\nimport {\n useSymbolInfoBarFullScript,\n UseSymbolInfoBarFullScriptOptions,\n} from \"./symbolInfoBarFull.script\";\nimport {\n SymbolInfoBarFull,\n SymbolInfoBarFullProps,\n} from \"./symbolInfoBarFull.ui\";\n\nexport type SymbolInfoBarFullWidgetPros = UseSymbolInfoBarFullScriptOptions &\n Pick<SymbolInfoBarFullProps, \"className\" | \"trailing\"> &\n Pick<MarketsProviderProps, \"onSymbolChange\"> & {\n closeCountdown?: () => void;\n showCountdown?: boolean;\n };\n\nexport const SymbolInfoBarFullWidget: FC<SymbolInfoBarFullWidgetPros> = (\n props,\n) => {\n const { symbol, ...rest } = props;\n\n const state = useSymbolInfoBarFullScript({ symbol });\n return <SymbolInfoBarFull {...state} {...rest} />;\n};\n","import React from \"react\";\nimport { MarketsProvider, MarketsProviderProps } from \"../marketsProvider\";\nimport { useHorizontalMarketsScript } from \"./horizontalMarkets.script\";\nimport type { MarketType } from \"./horizontalMarkets.script\";\nimport type { HorizontalMarketsProps } from \"./horizontalMarkets.ui\";\nimport type { DropdownPos } from \"./marketTypeFilter.ui\";\n\nconst LazyHorizontalMarkets = React.lazy(() =>\n import(\"./horizontalMarkets.ui\").then((mod) => {\n return { default: mod.HorizontalMarkets };\n }),\n);\n\nexport type HorizontalMarketsWidgetProps = MarketsProviderProps &\n Partial<Pick<HorizontalMarketsProps, \"symbols\" | \"className\">> & {\n maxItems?: number;\n defaultMarketType?: MarketType;\n dropdownPos?: DropdownPos;\n };\n\nconst HorizontalMarketsInner: React.FC<\n Pick<\n HorizontalMarketsWidgetProps,\n \"symbols\" | \"maxItems\" | \"defaultMarketType\" | \"className\" | \"dropdownPos\"\n >\n> = (props) => {\n const { symbols, maxItems, className, defaultMarketType, dropdownPos } =\n props;\n const state = useHorizontalMarketsScript({\n symbols,\n maxItems,\n defaultMarketType,\n });\n return (\n <React.Suspense fallback={null}>\n <LazyHorizontalMarkets\n {...state}\n className={className}\n dropdownPos={dropdownPos}\n />\n </React.Suspense>\n );\n};\n\nexport const HorizontalMarketsWidget: React.FC<HorizontalMarketsWidgetProps> = (\n props,\n) => {\n const {\n symbols,\n maxItems,\n className,\n defaultMarketType,\n dropdownPos,\n ...providerProps\n } = props;\n\n return (\n <MarketsProvider {...providerProps}>\n <HorizontalMarketsInner\n symbols={symbols}\n maxItems={maxItems}\n className={className}\n defaultMarketType={defaultMarketType}\n dropdownPos={dropdownPos}\n />\n </MarketsProvider>\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport {\n useMarkets,\n MarketsType,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { API } from \"@orderly.network/types\";\nimport {\n SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n SIDE_MARKETS_SEL_TAB_KEY,\n} from \"../../constant\";\nimport { MarketsTabName } from \"../../type\";\nimport { sortList } from \"../../utils\";\nimport { useMarketsContext } from \"../marketsProvider\";\nimport { useTabSort } from \"../shared/hooks/useTabSort\";\n\nexport type MarketType = \"all\" | \"recent\" | \"newListing\" | \"favorites\";\n\nexport type HorizontalMarketsScriptOptions = {\n symbols?: string[];\n maxItems?: number;\n defaultMarketType?: MarketType;\n};\n\nexport type HorizontalMarketsScriptReturn = ReturnType<\n typeof useHorizontalMarketsScript\n>;\n\nexport const useHorizontalMarketsScript = (\n options?: HorizontalMarketsScriptOptions,\n) => {\n const {\n symbols: optionSymbols,\n maxItems: optionMaxItems,\n defaultMarketType,\n } = options || {};\n const { symbol: currentSymbol, onSymbolChange } = useMarketsContext();\n const [selectedMarketType, setSelectedMarketType] =\n useLocalStorage<MarketType>(\n SIDE_MARKETS_SEL_TAB_KEY,\n (defaultMarketType || \"all\") as MarketType,\n );\n\n const MarketsTypeMap: Record<MarketType, MarketsType> = {\n all: MarketsType.ALL,\n recent: MarketsType.RECENT,\n newListing: MarketsType.NEW_LISTING,\n favorites: MarketsType.FAVORITES,\n };\n\n // Pull markets from the shared store (same as SideMarkets)\n const marketTypeKey = (selectedMarketType as MarketType) || \"all\";\n const [markets, favorite] = useMarkets(\n MarketsTypeMap[marketTypeKey] || MarketsType.ALL,\n );\n // Apply the same ordering rules as SideMarkets\n const filteredMarkets = useMemo(() => {\n if (selectedMarketType === \"favorites\") {\n const { favorites, selectedFavoriteTab } = favorite;\n const symbolsInTab = favorites\n ?.filter((fav) =>\n fav.tabs?.some((tab) => tab.id === selectedFavoriteTab.id),\n )\n ?.map((fav) => fav.name);\n\n const map: Record<string, (typeof markets)[number]> = Object.create(null);\n for (const m of markets) map[m.symbol] = m;\n return (symbolsInTab || [])\n .map((s) => map[s])\n .filter(Boolean) as typeof markets;\n }\n\n if (selectedMarketType === \"recent\") {\n const symbolsInRecent = favorite.recent?.map((r) => r.name) || [];\n const map: Record<string, (typeof markets)[number]> = Object.create(null);\n for (const m of markets) map[m.symbol] = m;\n return symbolsInRecent\n .map((s) => map[s])\n .filter(Boolean) as typeof markets;\n }\n\n return markets;\n }, [\n markets,\n favorite.favorites,\n favorite.selectedFavoriteTab,\n favorite.recent,\n selectedMarketType,\n ]);\n\n // Read the tabSort from the same storage used by side markets and apply it\n const { tabSort } = useTabSort({\n storageKey: SIDE_MARKETS_TAB_SORT_STORAGE_KEY,\n });\n const sortedMarkets = useMemo(() => {\n const sort = tabSort?.[selectedMarketType as MarketsTabName];\n return sort ? sortList(filteredMarkets, sort) : filteredMarkets;\n }, [filteredMarkets, tabSort, selectedMarketType]);\n\n const symbols = useMemo(() => {\n const list = optionSymbols\n ? optionSymbols\n : sortedMarkets.map((m) => m.symbol);\n const max = optionMaxItems;\n if (typeof max === \"number\") {\n if (max === -1) return list;\n if (max >= 0) return list.slice(0, max);\n }\n return list;\n }, [sortedMarkets, optionSymbols, optionMaxItems]);\n\n type TickerData = Record<\n string,\n { \"24h_close\": number; change: number; quote_dp: number }\n >;\n const tickerData = useMemo<TickerData>(() => {\n return sortedMarkets.reduce<TickerData>((acc, item) => {\n acc[item.symbol] = {\n \"24h_close\": item[\"24h_close\"],\n change: item.change,\n quote_dp: item.quote_dp,\n };\n return acc;\n }, {} as TickerData);\n }, [sortedMarkets]);\n\n const onSymbolClick = useCallback(\n (symbol: string) => {\n const record = sortedMarkets.find((m) => m.symbol === symbol);\n if (record) {\n onSymbolChange?.(record as any);\n favorite.addToHistory(record as any);\n } else {\n onSymbolChange?.({ symbol } as API.Symbol);\n }\n },\n [sortedMarkets, favorite, onSymbolChange],\n );\n\n const onMarketTypeChange = useCallback(\n (marketType: MarketType) => {\n setSelectedMarketType(marketType);\n },\n [setSelectedMarketType],\n );\n\n return {\n symbols,\n tickerData,\n currentSymbol,\n onSymbolClick,\n selectedMarketType,\n onMarketTypeChange,\n } as const;\n};\n","export { HorizontalMarketsWidget } from \"./horizontalMarkets.widget\";\nexport { HorizontalMarkets } from \"./horizontalMarkets.ui\";\nexport { MarketTypeFilter } from \"./marketTypeFilter.ui\";\nexport { MarketItem } from \"./marketItem.ui\";\nexport { useHorizontalMarketsScript } from \"./horizontalMarkets.script\";\nexport type { HorizontalMarketsProps } from \"./horizontalMarkets.ui\";\nexport type { HorizontalMarketsWidgetProps } from \"./horizontalMarkets.widget\";\nexport type { MarketTypeFilterProps } from \"./marketTypeFilter.ui\";\nexport type { MarketItemProps } from \"./marketItem.ui\";\nexport type {\n HorizontalMarketsScriptOptions,\n HorizontalMarketsScriptReturn,\n MarketType,\n} from \"./horizontalMarkets.script\";\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../../components/collapseMarkets\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSideMarketsColumns } from \"../../components/sideMarkets/column\";\nimport { UseNewListingListReturn } from \"./newListingList.script\";\nimport { NewListingListWidgetProps } from \"./widget\";\n\nexport type NewListingListProps = UseNewListingListReturn &\n NewListingListWidgetProps;\n\nexport const NewListingList: FC<NewListingListProps> = (props) => {\n const { dataSource, favorite, onSort, loading, getColumns, collapsed } =\n props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, false);\n\n const columns =\n typeof getColumns === \"function\"\n ? getColumns(favorite, false)\n : sideColumns;\n\n if (collapsed) {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n }}\n columns={columns}\n dataSource={dataSource}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n manualSorting\n />\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseNewListingListReturn = ReturnType<\n typeof useNewListingListScript\n>;\n\nexport const useNewListingListScript = () => {\n const [data, favorite] = useMarkets(MarketsType.NEW_LISTING);\n const [loading, setLoading] = useState(true);\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const dataSource = useMemo(() => {\n const searchResults = searchBySymbol(data, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [data, searchValue, getSortedList]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n };\n};\n","import { DataTableClassNames } from \"@orderly.network/ui\";\nimport { GetColumns } from \"../../type\";\nimport { useNewListingListScript } from \"./newListingList.script\";\nimport { NewListingList } from \"./newListingList.ui\";\n\nexport type NewListingListWidgetProps = {\n getColumns?: GetColumns;\n collapsed?: boolean;\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n};\n\nexport const NewListingListWidget: React.FC<NewListingListWidgetProps> = (\n props,\n) => {\n const state = useNewListingListScript();\n return <NewListingList {...state} {...props} />;\n};\n","import { FC } from \"react\";\nimport { Box, cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../../components/collapseMarkets\";\nimport { FavoritesTabWidget } from \"../../components/favoritesTabs\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSideMarketsColumns } from \"../../components/sideMarkets/column\";\nimport { UseFavoritesListReturn } from \"./favoritesList.script\";\nimport type { FavoritesListWidgetProps } from \"./widget\";\n\nexport type FavoritesListProps = UseFavoritesListReturn &\n FavoritesListWidgetProps;\n\nexport const FavoritesList: FC<FavoritesListProps> = (props) => {\n const { dataSource, favorite, onSort, loading, getColumns, collapsed } =\n props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, true);\n\n const columns =\n typeof getColumns === \"function\" ? getColumns(favorite, true) : sideColumns;\n\n if (collapsed) {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <>\n <Box px={3} className=\"oui-my-[6px]\">\n <FavoritesTabWidget favorite={favorite} size=\"sm\" />\n </Box>\n\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n }}\n columns={columns}\n dataSource={dataSource}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n manualSorting\n />\n </>\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseFavoritesListReturn = ReturnType<typeof useFavoritesListScript>;\n\nexport const useFavoritesListScript = () => {\n const [data, favorite] = useMarkets(MarketsType.FAVORITES);\n const [loading, setLoading] = useState(true);\n\n const { favorites, selectedFavoriteTab } = favorite;\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const dataSource = useMemo(() => {\n const filterList = favorites\n ?.filter(\n (item) =>\n item.tabs?.findIndex((tab) => tab.id === selectedFavoriteTab.id) !==\n -1,\n )\n ?.map((fav) => {\n const index = data?.findIndex((item) => item.symbol === fav.name);\n if (index !== -1) {\n return data[index];\n }\n return null;\n })\n ?.filter((item) => !!item);\n\n const searchResults = searchBySymbol(filterList, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [data, selectedFavoriteTab, favorites, searchValue, getSortedList]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n };\n};\n","import { DataTableClassNames } from \"@orderly.network/ui\";\nimport { GetColumns } from \"../../type\";\nimport { useFavoritesListScript } from \"./favoritesList.script\";\nimport { FavoritesList } from \"./favoritesList.ui\";\n\nexport type FavoritesListWidgetProps = {\n getColumns?: GetColumns;\n collapsed?: boolean;\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n};\n\nexport const FavoritesListWidget: React.FC<FavoritesListWidgetProps> = (\n props,\n) => {\n const state = useFavoritesListScript();\n return <FavoritesList {...state} {...props} />;\n};\n","import { FC } from \"react\";\nimport { cn, DataTable } from \"@orderly.network/ui\";\nimport { CollapseMarkets } from \"../../components/collapseMarkets\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { useSideMarketsColumns } from \"../../components/sideMarkets/column\";\nimport { UseRecentListReturn } from \"./recentList.script\";\nimport { RecentListWidgetProps } from \"./widget\";\n\nexport type RecentListProps = UseRecentListReturn & RecentListWidgetProps;\n\nexport const RecentList: FC<RecentListProps> = (props) => {\n const { dataSource, favorite, onSort, loading, getColumns, collapsed } =\n props;\n\n const { symbol, onSymbolChange } = useMarketsContext();\n\n const sideColumns = useSideMarketsColumns(favorite, false);\n\n const columns =\n typeof getColumns === \"function\"\n ? getColumns(favorite, false)\n : sideColumns;\n\n if (collapsed) {\n return <CollapseMarkets dataSource={dataSource} />;\n }\n\n return (\n <DataTable\n classNames={{\n root: props.tableClassNames?.root,\n body: props.tableClassNames?.body,\n header: cn(\"oui-h-9\", props.tableClassNames?.header),\n scroll: props.tableClassNames?.scroll,\n }}\n columns={columns}\n dataSource={dataSource}\n loading={loading}\n onRow={(record, index) => {\n return {\n className: cn(\"oui-h-[53px]\", props.rowClassName),\n onClick: () => {\n onSymbolChange?.(record);\n favorite.addToHistory(record);\n },\n };\n }}\n generatedRowKey={(record) => record.symbol}\n rowSelection={{ [symbol!]: true }}\n onSort={onSort}\n manualSorting\n />\n );\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { MarketsType, useMarkets } from \"@orderly.network/hooks\";\nimport { useMarketsContext } from \"../../components/marketsProvider\";\nimport { searchBySymbol, useSort } from \"../../utils\";\n\nexport type UseRecentListReturn = ReturnType<typeof useRecentListScript>;\n\nexport const useRecentListScript = () => {\n const [data, favorite] = useMarkets(MarketsType.RECENT);\n const [loading, setLoading] = useState(true);\n\n const { searchValue } = useMarketsContext();\n\n const { onSort, getSortedList } = useSort();\n\n const dataSource = useMemo(() => {\n const searchResults = searchBySymbol(data, searchValue, \"base\");\n return getSortedList(searchResults);\n }, [data, searchValue, getSortedList]);\n\n useEffect(() => {\n setLoading(false);\n }, [data]);\n\n return {\n loading,\n dataSource,\n favorite,\n onSort,\n };\n};\n","import { DataTableClassNames } from \"@orderly.network/ui\";\nimport { GetColumns } from \"../../type\";\nimport { useRecentListScript } from \"./recentList.script\";\nimport { RecentList } from \"./recentList.ui\";\n\nexport type RecentListWidgetProps = {\n getColumns?: GetColumns;\n collapsed?: boolean;\n tableClassNames?: DataTableClassNames;\n rowClassName?: string;\n};\n\nexport const RecentListWidget: React.FC<RecentListWidgetProps> = (props) => {\n const state = useRecentListScript();\n return <RecentList {...state} {...props} />;\n};\n","import React, { FC, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport type { RouterAdapter } from \"@orderly.network/types\";\nimport { Box, cn, TabPanel, Tabs, useScreen } from \"@orderly.network/ui\";\nimport { LeftNavProps, LeftNavUI } from \"@orderly.network/ui-scaffold\";\nimport {\n MarketsProvider,\n type MarketsProviderProps,\n} from \"../../components/marketsProvider\";\nimport { MarketsPageTab } from \"../../type\";\n\nconst LazyMarketsHeaderWidget = React.lazy(() =>\n import(\"./marketsHeader/marketsHeader.widget\").then((mod) => {\n return { default: mod.MarketsHeaderWidget };\n }),\n);\n\nconst LazyMarketsDataListWidget = React.lazy(() =>\n import(\"./marketsDataList\").then((mod) => {\n return { default: mod.MarketsDataListWidget };\n }),\n);\n\nconst LazyFundingWidget = React.lazy(() =>\n import(\"./funding/funding.widget\").then((mod) => {\n return { default: mod.FundingWidget };\n }),\n);\n\nexport type MarketsHomePageProps = MarketsProviderProps & {\n className?: string;\n};\n\nexport const MarketsHomePage: FC<MarketsHomePageProps> = (props) => {\n const { isMobile } = useScreen();\n\n const [activeTab, setActiveTab] = useState<MarketsPageTab>(\n MarketsPageTab.Markets,\n );\n\n return (\n <MarketsProvider\n symbol={props.symbol}\n onSymbolChange={props.onSymbolChange}\n navProps={props.navProps}\n comparisonProps={props.comparisonProps}\n >\n <div\n id=\"oui-markets-home-page\"\n className={cn(\"oui-font-semibold\", props.className)}\n >\n {isMobile ? (\n <MarketsMobileContent\n activeTab={activeTab}\n onTabChange={setActiveTab}\n navProps={props.navProps}\n />\n ) : (\n <MarketsDesktopContent\n activeTab={activeTab}\n onTabChange={setActiveTab}\n />\n )}\n </div>\n </MarketsProvider>\n );\n};\n\ntype MarketsContentProps = {\n activeTab: MarketsPageTab;\n onTabChange: (value: MarketsPageTab) => void;\n // only for mobile\n navProps?: {\n logo?: {\n src: string;\n alt: string;\n };\n routerAdapter?: RouterAdapter;\n leftNav?: LeftNavProps;\n };\n};\n\nconst MarketsDesktopContent: React.FC<MarketsContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Box p={6}>\n <Tabs\n size=\"xl\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n >\n <TabPanel\n title={t(\"common.markets\")}\n value={MarketsPageTab.Markets}\n testid=\"oui-testid-markets-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsHeaderWidget className=\"oui-mt-4\" />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyMarketsDataListWidget />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"common.funding\")}\n value={MarketsPageTab.Funding}\n testid=\"oui-testid-funding-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingWidget />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n </Box>\n );\n};\n\nconst MarketsMobileContent: React.FC<MarketsContentProps> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Tabs\n variant=\"text\"\n size=\"xl\"\n value={props.activeTab}\n onValueChange={props.onTabChange as (value: string) => void}\n classNames={{\n tabsListContainer: \"oui-border-0\",\n tabsList: \"oui-mx-6 oui-my-2\",\n trigger: cn(\n \"oui-text-2xl oui-font-bold\",\n \"data-[state=active]:after:oui-bg-transparent!\",\n ),\n tabsContent: \"oui-px-3\",\n }}\n leading={\n props.navProps?.leftNav && (\n <LeftNavUI\n className=\"-oui-mr-4 oui-ml-3\"\n {...props?.navProps?.leftNav}\n logo={props?.navProps?.logo}\n routerAdapter={props?.navProps?.routerAdapter}\n />\n )\n }\n >\n <TabPanel\n title={t(\"common.markets\")}\n value=\"markets\"\n testid=\"oui-testid-markets-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyMarketsHeaderWidget className=\"oui-mt-2\" />\n </React.Suspense>\n <React.Suspense fallback={null}>\n <LazyMarketsDataListWidget />\n </React.Suspense>\n </TabPanel>\n <TabPanel\n title={t(\"common.funding\")}\n value=\"funding\"\n testid=\"oui-testid-funding-tab\"\n >\n <React.Suspense fallback={null}>\n <LazyFundingWidget />\n </React.Suspense>\n </TabPanel>\n </Tabs>\n );\n};\n"]}
|