{"version":3,"sources":["../src/hooks/useTradingLocalStorage.ts","../src/hooks/usePositionsCount.ts","../src/hooks/usePendingOrderCount.ts","../src/hooks/index.ts","../src/provider/tradingPageContext.tsx","../src/components/desktop/dataList/dataList.script.tsx","../src/components/desktop/dataList/setting/setting.ui.tsx","../src/components/desktop/dataList/setting/setting.script.tsx","../src/components/desktop/dataList/setting/setting.widget.tsx","../src/components/desktop/dataList/setting/index.ts","../src/components/base/positionHeader/positionHeader.ui.tsx","../src/components/base/positionHeader/positionHeader.script.tsx","../src/components/base/positionHeader/positionHeader.widget.tsx","../src/components/base/positionHeader/index.ts","../src/components/desktop/dataList/dataList.ui.tsx","../src/components/desktop/dataList/dataList.widget.tsx","../src/components/desktop/dataList/index.ts","../src/components/base/lastTrades/lastTrades.ui.tsx","../src/components/base/lastTrades/lastTrades.script.tsx","../src/components/base/lastTrades/lastTrades.widget.tsx","../src/components/base/lastTrades/index.ts","../src/components/desktop/assetView/faucet/faucet.ui.tsx","../src/components/desktop/assetView/faucet/faucet.script.tsx","../src/components/desktop/assetView/faucet/faucet.widget.tsx","../src/components/desktop/assetView/assetView.ui.tsx","../src/components/desktop/assetView/assetView.script.tsx","../src/components/desktop/assetView/assetView.widget.tsx","../src/components/desktop/assetView/index.ts","../src/components/base/orderBook/orderContext.tsx","../src/components/base/orderBook/types.ts","../src/components/base/orderBook/cellBar.tsx","../src/components/desktop/orderBook/cell.desktop.tsx","../src/components/desktop/orderBook/listBox.desktop.tsx","../src/components/desktop/orderBook/asks.desktop.tsx","../src/components/desktop/orderBook/bids.desktop.tsx","../src/components/desktop/orderBook/buySellRatio.tsx","../src/components/desktop/orderBook/depthSelect.desktop.tsx","../src/components/desktop/orderBook/header.desktop.tsx","../src/components/base/orderBook/markPrice.tsx","../src/components/base/orderBook/midPriceView.tsx","../src/components/desktop/orderBook/markPrice.desktop.tsx","../src/components/desktop/orderBook/index.desktop.tsx","../src/components/mobile/fundingRate/fundingRate.ui.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.script.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.ui.tsx","../src/components/mobile/fundingRateModal/fundingRateModal.widget.tsx","../src/components/mobile/fundingRate/fundingRate.script.tsx","../src/components/mobile/fundingRate/fundingRate.widget.tsx","../src/components/mobile/fundingRate/index.ts","../src/components/mobile/orderBook/cell.tsx","../src/components/mobile/orderBook/listBox.tsx","../src/components/mobile/orderBook/asks.tsx","../src/components/mobile/orderBook/bids.tsx","../src/components/mobile/orderBook/depthSelect.tsx","../src/components/mobile/orderBook/header.tsx","../src/components/mobile/orderBook/markPrice.tsx","../src/components/mobile/orderBook/index.tsx","../src/components/base/orderBook/orderBook.ui.tsx","../src/utils/utils.ts","../src/components/base/orderBook/orderBook.script.tsx","../src/components/base/orderBook/orderBook.widget.tsx","../src/components/base/orderBook/buySellRatioBar.tsx","../src/components/base/orderBook/index.ts","../src/components/desktop/riskRate/riskRate.ui.tsx","../src/components/desktop/riskRate/riskRate.script.tsx","../src/components/desktop/riskRate/riskRate.widget.tsx","../src/components/desktop/riskRate/index.ts","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.ui.tsx","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.script.tsx","../src/components/desktop/orderBookAndTrades/orderBookAndTrades.widget.tsx","../src/components/desktop/orderBookAndTrades/index.ts","../src/components/base/icons.tsx","../src/components/desktop/layout/switchLayout.tsx","../src/components/mobile/topTab/topTab.script.tsx","../src/components/mobile/tradingview/tradingview.script.tsx","../src/components/mobile/tradingview/tradingview.ui.tsx","../src/components/mobile/tradingview/tradingview.widget.tsx","../src/components/mobile/lastTrades/lastTrades.widget.tsx","../src/components/mobile/tradeData/tradeData.ui.tsx","../src/components/mobile/tradeData/tradeData.script.tsx","../src/components/mobile/tradeData/tradeData.widget.tsx","../src/components/mobile/tradeData/index.ts","../src/components/mobile/topTab/topTab.ui.tsx","../src/components/mobile/topTab/topTab.widget.tsx","../src/components/mobile/topTab/index.ts","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.ui.tsx","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.script.tsx","../src/components/mobile/orderBookAndEntry/orderBookAndEntry.widget.tsx","../src/components/mobile/orderBookAndEntry/index.ts","../src/components/mobile/dataList/dataList.script.tsx","../src/components/mobile/dataList/dataList.ui.tsx","../src/components/mobile/dataList/dataList.widget.tsx","../src/components/mobile/dataList/index.ts","../src/index.ts","../src/components/desktop/layout/splitLayout/splitLineBar.tsx","../src/components/desktop/layout/splitLayout/splitLayout.tsx","../src/components/mobile/bottomNavBar/account/account.script.tsx","../src/components/mobile/accountSheet/icons.tsx","../src/components/mobile/accountSheet/accountSheet.ui.tsx","../src/components/mobile/accountSheet/accountSheet.script.tsx","../src/components/mobile/accountSheet/accountSheet.widget.tsx","../src/components/mobile/bottomNavBar/account/account.ui.tsx","../src/components/mobile/bottomNavBar/account/account.widget.tsx","../src/components/mobile/bottomNavBar/balance/balance.ui.tsx","../src/components/mobile/bottomNavBar/balance/balance.script.tsx","../src/components/mobile/bottomNavBar/balance/balance.widget.tsx","../src/components/mobile/bottomNavBar/chain/chain.ui.tsx","../src/components/mobile/bottomNavBar/chain/chain.script.tsx","../src/components/mobile/bottomNavBar/chain/chain.widget.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.ui.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.script.tsx","../src/components/mobile/bottomNavBar/bottomNavBar.widget.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.script.tsx","../src/components/mobile/portfolioSheet/riskIndicator.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.ui.tsx","../src/components/mobile/portfolioSheet/portfolioSheet.widget.tsx","../src/components/mobile/fundingRateModal/index.ts","../src/pages/trading/trading.ui.desktop.tsx","../src/components/desktop/layout/sortablePanel.tsx","../src/components/desktop/notify/rwaNotification.tsx","../src/hooks/useShowRwaCountdown.ts","../src/components/desktop/layout/useSplitPersistent.ts","../src/pages/trading/trading.script.tsx","../src/pages/trading/hooks/useFirstTimeDeposit.ts","../src/pages/trading/trading.injectable.tsx","../src/components/base/countdown.tsx","../src/pages/trading/trading.ui.mobile.tsx","../src/pages/trading/trading.ui.tsx","../src/pages/trading/trading.widget.tsx","../src/provider/tradingPageProvider.tsx","../src/pages/trading/trading.page.tsx"],"names":["useMemo","useDataTap","localStorage","jsx","useScreen","useTranslation","jsxs","Flex","Divider","Text","usePositionStream","React","Tooltip","OrderStatus","Box","Button","useState","modal","toast","useAccount","AccountStatusEnum","cn","useLocalStorage","Fragment","useConfig","useCallback","visible","createContext","useContext","Row","Decimal","TooltipContent","injectable","Checkbox","DesktopLayout","MobileLayout","ArrowDownShortIcon","SimpleDialog","init_orderBook","Grid","getPrecisionByNumber","Header","Picker","CaretUpIcon","CaretDownIcon","init_markPrice","EMPTY_LIST","Spinner","OrderBook","useSymbolsInfo","useEffect","level","useOrderStream","useAppContext","gradientTextVariants","useMarginRatio","Title","Tabs","TabPanel","useRef","CloseIcon","DropdownMenuRoot","DropdownMenuTrigger","DropdownMenuContent","offsetY","TradingviewWidget","init_lastTrades_widget","openInterest","LazyOrderBookWidget","OrderEntryWidget","useDataListScript","init_dataList_script","TabType","LazyPositionHeaderWidget","PositionsView","DataList","init_dataList_ui","formatSymbol","AssetsModule","createElement","DataListWidget","init_dataList_widget","dataList_exports","init_dataList","useWalletConnector","isTestnet","useMutation","ChainNamespace","AuthGuard","useEventEmitter","useCollateral","useLeverage","leverage","EyeIcon","EyeCloseIcon","Statistic","ArrowUpShortIcon","ExclamationFillIcon","size","endTime","startTime","pos","space","symbolInfoBarHeight","CSS","LazyDataListWidget","useBadgeBySymbol"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useLocalStorage } from \"@orderly.network/hooks\";\n\nexport const useTradingLocalStorage = (props?: {\n  pnlNotionalDecimalPrecision?: number;\n}) => {\n  const [unPnlPriceBasis, setUnPnlPriceBasic] = useLocalStorage(\n    \"unPnlPriceBasis\",\n    \"markPrice\",\n  );\n  const [pnlNotionalDecimalPrecision, setPnlNotionalDecimalPrecision] =\n    useLocalStorage(\n      \"pnlNotionalDecimalPrecision\",\n      props?.pnlNotionalDecimalPrecision ?? 2,\n    );\n  const [showAllSymbol, setShowAllSymbol] = useLocalStorage(\n    \"showAllSymbol\",\n    true,\n  );\n\n  const [hideAssets, setHideAssets] = useLocalStorage(\"hideAssets\", false);\n\n  return {\n    unPnlPriceBasis,\n    setUnPnlPriceBasic,\n    pnlNotionalDecimalPrecision,\n    setPnlNotionalDecimalPrecision,\n    showAllSymbol,\n    setShowAllSymbol,\n    hideAssets,\n    setHideAssets,\n  };\n};\n","import { useMemo } from \"react\";\nimport { usePositionStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { useTradingLocalStorage } from \"./useTradingLocalStorage\";\n\nexport const usePositionsCount = (symbol?: string) => {\n  const { showAllSymbol } = useTradingLocalStorage();\n  const [data] = usePositionStream(showAllSymbol ? undefined : symbol);\n\n  const count = useMemo(() => {\n    return data.rows?.length;\n  }, [data.rows?.length]);\n\n  const positionCount = useDataTap(count) ?? 0;\n\n  return {\n    positionCount,\n  };\n};\n","import { useMemo } from \"react\";\nimport { useOrderStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AlgoOrderRootType, OrderStatus } from \"@orderly.network/types\";\nimport { useTradingLocalStorage } from \"./useTradingLocalStorage\";\n\nexport const usePendingOrderCount = (symbol?: string) => {\n  const { showAllSymbol } = useTradingLocalStorage();\n\n  // const pendingOrdersPageSizeKey = `orderly_${TabType.pending}_pageSize`;\n  // const tpslOrdersPageSizeKey = `orderly_${TabType.tp_sl}_pageSize`;\n\n  // const [pendingOrderPageSize] = useLocalStorage(pendingOrdersPageSizeKey, 500);\n  // const [tpslOrderPageSize] = useLocalStorage(tpslOrdersPageSizeKey, 500);\n\n  const [pendingOrders] = useOrderStream(\n    {\n      symbol: showAllSymbol ? undefined : symbol,\n      status: OrderStatus.INCOMPLETE,\n      excludes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n      // size: pendingOrderPageSize,\n      size: 500,\n      // sourceTypeAll: true,\n    },\n    {\n      keeplive: true,\n    },\n  );\n\n  const [tpslOrders] = useOrderStream(\n    {\n      symbol: showAllSymbol ? undefined : symbol,\n      status: OrderStatus.INCOMPLETE,\n      includes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n      // size: tpslOrderPageSize,\n      size: 500,\n      // sourceTypeAll: true,\n    },\n    {\n      keeplive: true,\n    },\n  );\n\n  const pendingCount = useMemo(() => {\n    if (showAllSymbol) {\n      return pendingOrders?.length ?? 0;\n    }\n    return pendingOrders?.filter((item) => item.symbol === symbol)?.length ?? 0;\n  }, [pendingOrders, showAllSymbol, symbol]);\n\n  const tpslCount = useMemo(() => {\n    if (showAllSymbol) {\n      return tpslOrders?.length ?? 0;\n    }\n    return tpslOrders?.filter((item) => item.symbol === symbol)?.length ?? 0;\n  }, [tpslOrders, showAllSymbol, symbol]);\n\n  const pendingOrderCount = useDataTap(pendingCount) ?? 0;\n  const tpSlOrderCount = useDataTap(tpslCount) ?? 0;\n\n  return {\n    pendingOrderCount,\n    tpSlOrderCount,\n  };\n};\n","export { useTradingLocalStorage } from \"./useTradingLocalStorage\";\nexport { usePositionsCount } from \"./usePositionsCount\";\nexport { usePendingOrderCount } from \"./usePendingOrderCount\";\n","import { createContext, useContext } from \"react\";\nimport { TradingPageState } from \"../types/types\";\n\nexport const TradingPageContext = createContext({} as TradingPageState);\n\nexport const useTradingPageContext = () => {\n  return useContext(TradingPageContext);\n};\n","import type { PositionsProps } from \"@orderly.network/ui-positions\";\nimport {\n  usePendingOrderCount,\n  usePositionsCount,\n  useTradingLocalStorage,\n} from \"../../../hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum DataListTabType {\n  positions = \"Positions\",\n  pending = \"Pending\",\n  tp_sl = \"TP/SL\",\n  filled = \"Filled\",\n  positionHistory = \"Position history\",\n  orderHistory = \"Order history\",\n  liquidation = \"Liquidation\",\n  assets = \"Assets\",\n}\n\nexport const useDataListScript = (\n  inputs: { current?: DataListTabType } & PositionsProps,\n) => {\n  const {\n    current,\n    pnlNotionalDecimalPrecision,\n    sharePnLConfig,\n    symbol,\n    includedPendingOrder,\n  } = inputs;\n\n  const localStorage = useTradingLocalStorage({ pnlNotionalDecimalPrecision });\n\n  const { onSymbolChange } = useTradingPageContext();\n\n  const { positionCount } = usePositionsCount(symbol);\n\n  const { pendingOrderCount, tpSlOrderCount } = usePendingOrderCount(symbol);\n\n  return {\n    current,\n    sharePnLConfig,\n    symbol,\n    calcMode: localStorage.unPnlPriceBasis,\n    includedPendingOrder,\n    ...localStorage,\n    positionCount,\n    pendingOrderCount,\n    tpSlOrderCount,\n    onSymbolChange,\n  };\n};\n\nexport type DataListState = ReturnType<typeof useDataListScript>;\n","import { FC, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  Button,\n  Checkbox,\n  Divider,\n  DropdownMenuContent,\n  DropdownMenuRoot,\n  DropdownMenuTrigger,\n  ExclamationFillIcon,\n  Flex,\n  SettingFillIcon,\n  Switch,\n  Text,\n  Tooltip,\n  useScreen,\n  Sheet,\n  SheetContent,\n  SheetTrigger,\n  modal,\n} from \"@orderly.network/ui\";\nimport { SettingState } from \"./setting.script\";\n\nexport const Setting: FC<SettingState> = (props) => {\n  const [open, setOpen] = useState(false);\n  const { t } = useTranslation();\n  const { isMobile } = useScreen();\n\n  const SettingsContent = useMemo(() => {\n    return () => (\n      <>\n        <div className=\"oui-flex oui-flex-col oui-text-sm\">\n          <Flex\n            itemAlign=\"center\"\n            justify={isMobile ? \"center\" : \"start\"}\n            className=\"oui-w-full\"\n          >\n            <Text className=\"oui-text-base oui-pb-3\">\n              {t(\"trading.portfolioSettings\")}\n            </Text>\n          </Flex>\n          <Divider />\n          <Text className=\"oui-pb-3 oui-text-base-contrast-54 oui-mt-2\">\n            {t(\"trading.portfolioSettings.decimalPrecision\")}\n          </Text>\n          <DecimalPrecisionCheckbox\n            value={props.pnlNotionalDecimalPrecision}\n            onValueChange={(e) => {\n              props.setPnlNotionalDecimalPrecision(e);\n              setOpen(false);\n            }}\n          />\n          <Divider className=\"oui-my-3\" />\n          <Text className=\"oui-pb-3 oui-text-base-contrast-54 oui-mt-2\">\n            {t(\"trading.portfolioSettings.unrealPnlPriceBasis\")}\n          </Text>\n          <UnPnlPriceBasisCheckBox\n            value={props.unPnlPriceBasis}\n            onValueChange={(e) => {\n              props.setUnPnlPriceBasic(e);\n              setOpen(false);\n            }}\n          />\n        </div>\n        <Divider className=\"oui-my-3\" />\n        <Flex itemAlign=\"center\" gap={1} justify=\"between\">\n          <Flex gap={1} itemAlign=\"center\">\n            <Text size=\"sm\" intensity={54}>\n              {t(\"trading.portfolioSettings.reversePosition\")}\n            </Text>\n            {isMobile ? (\n              <ExclamationFillIcon\n                size={14}\n                className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-cursor-pointer\"\n                onClick={() => {\n                  modal.alert({\n                    title: t(\"common.tips\"),\n                    message: t(\n                      \"trading.portfolioSettings.reversePosition.tooltip\",\n                    ),\n                  });\n                }}\n              />\n            ) : (\n              <Tooltip\n                content={t(\"trading.portfolioSettings.reversePosition.tooltip\")}\n                className=\"oui-max-w-[300px]\"\n              >\n                <ExclamationFillIcon\n                  size={14}\n                  className=\"oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-cursor-pointer\"\n                />\n              </Tooltip>\n            )}\n          </Flex>\n          <Switch\n            checked={props.reversePosition}\n            onCheckedChange={(checked: boolean) => {\n              props.setReversePosition(checked);\n            }}\n          />\n        </Flex>\n      </>\n    );\n  }, [\n    t,\n    isMobile,\n    props.pnlNotionalDecimalPrecision,\n    props.unPnlPriceBasis,\n    props.reversePosition,\n  ]);\n\n  const triggerButton = (\n    <Button\n      size=\"xs\"\n      type=\"button\"\n      variant=\"contained\"\n      className=\"oui-preference-trigger-btn oui-bg-transparent hover:oui-bg-transparent\"\n    >\n      <SettingFillIcon\n        size={16}\n        color=\"white\"\n        opacity={1}\n        className=\"oui-text-base-contrast-36 hover:oui-text-base-contrast-80\"\n      />\n    </Button>\n  );\n\n  return (\n    <Flex className=\"oui-preference\" gap={0}>\n      <Flex gap={1}>\n        <Checkbox\n          id=\"oui-checkbox-hideOtherSymbols\"\n          className=\"oui-checkbox-hideOtherSymbols\"\n          color=\"white\"\n          checked={props.hideOtherSymbols}\n          onCheckedChange={(checked: boolean) => {\n            props.setHideOtherSymbols(checked);\n          }}\n        />\n        <label\n          className=\"oui-text-xs oui-text-base-contrast-54 oui-cursor-pointer\"\n          htmlFor=\"oui-checkbox-hideOtherSymbols\"\n        >\n          {t(\"trading.hideOtherSymbols\")}\n        </label>\n      </Flex>\n\n      {isMobile ? (\n        <Sheet open={open} onOpenChange={setOpen}>\n          <SheetTrigger asChild>{triggerButton}</SheetTrigger>\n          <SheetContent side=\"bottom\" className=\"oui-px-5 oui-pt-3\">\n            <div\n              style={{\n                paddingBottom: `max(32px, calc(12px + env(safe-area-inset-bottom)))`,\n              }}\n            >\n              <SettingsContent />\n            </div>\n          </SheetContent>\n        </Sheet>\n      ) : (\n        <DropdownMenuRoot open={open} onOpenChange={setOpen}>\n          <DropdownMenuTrigger asChild>{triggerButton}</DropdownMenuTrigger>\n          <DropdownMenuContent\n            className=\"oui-px-5 oui-py-3 oui-w-[360px]\"\n            alignOffset={2}\n            align=\"end\"\n          >\n            <SettingsContent />\n          </DropdownMenuContent>\n        </DropdownMenuRoot>\n      )}\n    </Flex>\n  );\n};\n\nconst UnPnlPriceBasisCheckBox = (props: {\n  value: string;\n  onValueChange: (value: string) => void;\n}) => {\n  const { value, onValueChange } = props;\n  const { t } = useTranslation();\n\n  // \"markPrice\" | \"lastPrice\"\n  return (\n    <Flex gap={2}>\n      <RadioButton\n        sel={value === \"markPrice\"}\n        label={t(\"common.markPrice\")}\n        value={\"markPrice\"}\n        onCheckChange={onValueChange}\n      />\n      <RadioButton\n        sel={value === \"lastPrice\"}\n        label={t(\"common.lastPrice\")}\n        value={\"lastPrice\"}\n        onCheckChange={onValueChange}\n      />\n    </Flex>\n  );\n};\n\nconst DecimalPrecisionCheckbox = (props: {\n  value: number;\n  onValueChange: (value: number) => void;\n}) => {\n  const { value, onValueChange } = props;\n  return (\n    <Flex gap={2}>\n      <RadioButton\n        sel={value === 0}\n        label={1}\n        value={0}\n        onCheckChange={onValueChange}\n      />\n      <RadioButton\n        sel={value === 1}\n        label={0.1}\n        value={1}\n        onCheckChange={onValueChange}\n      />\n      <RadioButton\n        sel={value === 2}\n        label={0.01}\n        value={2}\n        onCheckChange={onValueChange}\n      />\n    </Flex>\n  );\n};\n\n// const InnerCheckbox = (props: {\n//   sel: boolean;\n//   label: any;\n//   value: any;\n//   onCheckChange: (value: any) => void;\n// }) => {\n//   const { sel, label, value, onCheckChange } = props;\n//   return (\n//     <Flex\n//       onClick={(e) => {\n//         onCheckChange(value);\n//         e.stopPropagation();\n//       }}\n//       gap={1}\n//     >\n//       <Checkbox color=\"white\" checked={sel} />\n//       <Text size=\"xs\" intensity={sel ? 98 : 54}>\n//         {`${label}`}\n//       </Text>\n//     </Flex>\n//   );\n// };\n\nconst RadioButton = (props: {\n  sel: boolean;\n  label: any;\n  value: any;\n  onCheckChange: (value: any) => void;\n}) => {\n  const { sel, label, value, onCheckChange } = props;\n  return (\n    <Flex\n      onClick={(e) => {\n        onCheckChange(value);\n        e.stopPropagation();\n      }}\n      gap={1}\n      className=\"oui-cursor-pointer\"\n    >\n      {sel ? (\n        <SelIcon className=\"oui-fill-base-contrast\" />\n      ) : (\n        <UnselIcon className=\"oui-fill-base-contrast-54\" />\n      )}\n      <Text size=\"2xs\" intensity={sel ? 98 : 54}>\n        {label}\n      </Text>\n    </Flex>\n  );\n};\n\nconst SelIcon = (props: { className: string }) => {\n  return (\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      className={props.className}\n    >\n      <path d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\" />\n      <circle cx=\"8\" cy=\"8\" r=\"3.333\" />\n    </svg>\n  );\n};\n\nconst UnselIcon = (props: { className: string }) => {\n  return (\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      className={props.className}\n    >\n      <path d=\"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667\" />\n    </svg>\n  );\n};\n","import { useReversePositionEnabled } from \"@orderly.network/ui-positions\";\nimport { SettingWidgetProps } from \"./setting.widget\";\n\nexport const useSettingScript = (props: SettingWidgetProps) => {\n  const { isEnabled, setEnabled } = useReversePositionEnabled();\n  return {\n    ...props,\n    reversePosition: isEnabled,\n    setReversePosition: setEnabled,\n  };\n};\n\nexport type SettingState = ReturnType<typeof useSettingScript>;\n","import React from \"react\";\nimport { useSettingScript } from \"./setting.script\";\nimport { Setting } from \"./setting.ui\";\n\nexport type SettingWidgetProps = {\n  pnlNotionalDecimalPrecision: any;\n  setPnlNotionalDecimalPrecision: (value: number) => void;\n  unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n  setUnPnlPriceBasic: (value: string) => void;\n  hideOtherSymbols: any;\n  setHideOtherSymbols: (value: boolean) => void;\n};\n\nexport const SettingWidget: React.FC<SettingWidgetProps> = (props) => {\n  const state = useSettingScript(props);\n  return <Setting {...state} />;\n};\n","export { Setting } from \"./setting.ui\";\nexport { SettingWidget } from \"./setting.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  Checkbox,\n  Divider,\n  Flex,\n  Statistic,\n  Text,\n  useScreen,\n} from \"@orderly.network/ui\";\nimport { CloseAllPositionsWidget } from \"@orderly.network/ui-positions\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { SettingWidget } from \"../../desktop/dataList/setting\";\nimport type { PositionHeaderState } from \"./positionHeader.script\";\n\nexport const PositionHeader: React.FC<PositionHeaderState> = (props) => {\n  const { isMobile } = useScreen();\n  return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst MobileLayout: React.FC<PositionHeaderState> = (props) => {\n  const { t } = useTranslation();\n\n  return (\n    <Flex\n      className=\"oui-positionHeader oui-rounded-b-xl oui-bg-base-9\"\n      direction={\"column\"}\n      gap={2}\n      width={\"100%\"}\n      itemAlign={\"start\"}\n      p={2}\n    >\n      <Flex width={\"100%\"} justify={\"between\"} gap={2}>\n        <UnrealPnL\n          classNames={{\n            label: \"oui-text-2xs oui-text-base-contrast-54\",\n            root: \"oui-text-sm\",\n          }}\n          {...props}\n        />\n        <Notional\n          classNames={{\n            label: \"oui-text-2xs oui-text-base-contrast-54\",\n            root: \"oui-text-sm\",\n          }}\n          {...props}\n        />\n      </Flex>\n      <Divider className=\"oui-w-full\" />\n      <Flex\n        className=\"oui-cursor-pointer oui-gap-[2px]\"\n        justify={\"between\"}\n        width={\"100%\"}\n      >\n        <Flex>\n          <SettingWidget\n            pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n            setPnlNotionalDecimalPrecision={\n              props.setPnlNotionalDecimalPrecision\n            }\n            unPnlPriceBasis={props.unPnlPriceBasis}\n            setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n            hideOtherSymbols={!props.showAllSymbol}\n            setHideOtherSymbols={(value: boolean) => {\n              props.setShowAllSymbol(!value);\n            }}\n          />\n        </Flex>\n        <CloseAllPositionsWidget symbol={props.symbol} />\n      </Flex>\n    </Flex>\n  );\n};\n\nconst DesktopLayout: React.FC<PositionHeaderState> = (props) => {\n  return (\n    <Flex\n      className=\"oui-positionHeader\"\n      py={2}\n      px={3}\n      gap={6}\n      width={\"100%\"}\n      justify={\"between\"}\n    >\n      <Flex gap={5}>\n        <UnrealPnL\n          {...props}\n          classNames={{ label: \"oui-text-base-contrast-54\" }}\n        />\n        <Notional\n          {...props}\n          classNames={{ label: \"oui-text-base-contrast-54\" }}\n        />\n      </Flex>\n\n      <CloseAllPositionsWidget symbol={props.symbol} />\n    </Flex>\n  );\n};\n\nconst UnrealPnL: React.FC<\n  PositionHeaderState & {\n    classNames?: { root?: string; label?: string; value?: string };\n  }\n> = (props) => {\n  const { t } = useTranslation();\n\n  const unrealPnLClsName =\n    typeof props.unrealPnL === \"number\"\n      ? props.unrealPnL >= 0\n        ? \"oui-text-trade-profit\"\n        : \"oui-text-trade-loss\"\n      : \"oui-text-base-contrast-80\";\n\n  const unrealPnLROIClsName =\n    typeof props.unrealPnL === \"number\" && props.unrealPnlROI\n      ? props.unrealPnlROI >= 0\n        ? \"oui-text-success-darken\"\n        : \"oui-text-danger-darken\"\n      : \"oui-text-base-contrast-80\";\n\n  return (\n    <Statistic label={t(\"common.unrealizedPnl\")} classNames={props.classNames}>\n      <Flex gap={1}>\n        <Text.pnl\n          dp={props.pnlNotionalDecimalPrecision}\n          intensity={80}\n          className={unrealPnLClsName}\n        >\n          {props.unrealPnL ?? \"--\"}\n        </Text.pnl>\n        {typeof props.unrealPnlROI !== \"undefined\" && (\n          <Text.roi\n            prefix=\"(\"\n            suffix=\")\"\n            rule=\"percentages\"\n            size=\"2xs\"\n            dp={props.pnlNotionalDecimalPrecision}\n            className={unrealPnLROIClsName}\n          >\n            {props.unrealPnlROI}\n          </Text.roi>\n        )}\n      </Flex>\n    </Statistic>\n  );\n};\n\nconst Notional: React.FC<\n  PositionHeaderState & {\n    classNames?: { root?: string; label?: string; value?: string };\n  }\n> = (props) => {\n  const { t } = useTranslation();\n  return (\n    <Statistic label={t(\"common.notional\")} classNames={props.classNames}>\n      <Text.numeral\n        dp={props.pnlNotionalDecimalPrecision}\n        rm={Decimal.ROUND_DOWN}\n        intensity={80}\n      >\n        {props.notional ?? \"--\"}\n      </Text.numeral>\n    </Statistic>\n  );\n};\n","import { usePositionStream } from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { useTradingLocalStorage } from \"../../../hooks\";\n\nexport const usePositionHeaderScript = (inputs: {\n  pnlNotionalDecimalPrecision?: number;\n  setPnlNotionalDecimalPrecision: (value: number) => void;\n  unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n  setUnPnlPriceBasic: (value: string) => void;\n  symbol?: string;\n}) => {\n  const {\n    pnlNotionalDecimalPrecision,\n    setPnlNotionalDecimalPrecision,\n    unPnlPriceBasis,\n    setUnPnlPriceBasic,\n    symbol,\n  } = inputs;\n  const calcMode = unPnlPriceBasis;\n\n  const [data] = usePositionStream(symbol, {\n    calcMode,\n  });\n  const aggregated = useDataTap(data.aggregated);\n\n  const unrealPnL = aggregated?.total_unreal_pnl;\n  const unrealPnlROI = aggregated?.unrealPnlROI;\n  const notional = aggregated?.notional;\n  const { showAllSymbol, setShowAllSymbol } = useTradingLocalStorage();\n\n  return {\n    pnlNotionalDecimalPrecision,\n    unrealPnL,\n    unrealPnlROI,\n    notional,\n    showAllSymbol,\n    setShowAllSymbol,\n    symbol,\n    setPnlNotionalDecimalPrecision,\n    unPnlPriceBasis,\n    setUnPnlPriceBasic,\n  };\n};\n\nexport type PositionHeaderState = ReturnType<typeof usePositionHeaderScript>;\n","import React from \"react\";\nimport { usePositionHeaderScript } from \"./positionHeader.script\";\nimport { PositionHeader } from \"./positionHeader.ui\";\n\nexport const PositionHeaderWidget: React.FC<{\n  pnlNotionalDecimalPrecision?: number;\n  setPnlNotionalDecimalPrecision: (value: number) => void;\n  unPnlPriceBasis: \"markPrice\" | \"lastPrice\";\n  setUnPnlPriceBasic: (value: string) => void;\n  symbol?: string;\n}> = (props) => {\n  const state = usePositionHeaderScript(props);\n  return <PositionHeader {...state} />;\n};\n","export { PositionHeader } from \"./positionHeader.ui\";\nexport { PositionHeaderWidget } from \"./positionHeader.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AssetsModule } from \"@orderly.network/portfolio\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport {\n  Box,\n  Divider,\n  Flex,\n  InfoCircleIcon,\n  ScrollArea,\n  TabPanel,\n  Tabs,\n  Tooltip,\n} from \"@orderly.network/ui\";\nimport type { TabPanelProps } from \"@orderly.network/ui\";\nimport { DesktopOrderListWidget, TabType } from \"@orderly.network/ui-orders\";\nimport {\n  LiquidationWidget,\n  PositionHistoryWidget,\n  PositionsWidget,\n} from \"@orderly.network/ui-positions\";\nimport { DataListState, DataListTabType } from \"./dataList.script\";\n\nconst LazySettingWidget = React.lazy(() =>\n  import(\"./setting\").then((mod) => {\n    return { default: mod.SettingWidget };\n  }),\n);\n\nconst LazyPositionHeaderWidget = React.lazy(() =>\n  import(\"../../base/positionHeader\").then((mod) => {\n    return { default: mod.PositionHeaderWidget };\n  }),\n);\n\nconst PositionsView: React.FC<DataListState> = (props) => {\n  return (\n    <Flex direction=\"column\" width=\"100%\" height=\"100%\">\n      <React.Suspense fallback={null}>\n        <LazyPositionHeaderWidget\n          setPnlNotionalDecimalPrecision={props.setPnlNotionalDecimalPrecision}\n          pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n          symbol={!!props.showAllSymbol ? undefined : props.symbol}\n          setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n          unPnlPriceBasis={props.unPnlPriceBasis}\n        />\n      </React.Suspense>\n      <Divider className=\"oui-w-full\" />\n      <Box className=\"oui-h-[calc(100%_-_60px)]\" width=\"100%\">\n        <PositionsWidget\n          symbol={!!props.showAllSymbol ? undefined : props.symbol}\n          pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n          sharePnLConfig={props.sharePnLConfig}\n          calcMode={props.calcMode}\n          includedPendingOrder={props.includedPendingOrder}\n          onSymbolChange={props.onSymbolChange}\n        />\n      </Box>\n    </Flex>\n  );\n};\n\nexport const LiquidationTab: React.FC = () => {\n  const { t } = useTranslation();\n  return (\n    <div className=\"oui-flex oui-space-x-1\">\n      <span>{t(\"positions.liquidation\")}</span>\n      <Tooltip\n        className=\"oui-max-w-[275px] oui-bg-base-6\"\n        content={\n          <div>\n            <div className=\"oui-text-pretty\">\n              {t(\"positions.Liquidation.tooltip.liquidation\")}\n            </div>\n            <div>\n              <a\n                href=\"https://orderly.network/docs/introduction/trade-on-orderly/perpetual-futures/liquidations\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n                className=\"oui-text-primary\"\n              >\n                {t(\"positions.Liquidation.tooltip.viewMore\")}\n              </a>\n            </div>\n          </div>\n        }\n        arrow={{ className: \"oui-fill-base-6\" }}\n      >\n        <span className=\"oui-hidden oui-cursor-pointer group-data-[state=active]:oui-block\">\n          <InfoCircleIcon />\n        </span>\n      </Tooltip>\n    </div>\n  );\n};\n\nexport const DataList: React.FC<DataListState> = (props) => {\n  const { t } = useTranslation();\n\n  const {\n    positionCount = 0,\n    pendingOrderCount = 0,\n    tpSlOrderCount = 0,\n    showAllSymbol,\n    symbol,\n    onSymbolChange,\n    pnlNotionalDecimalPrecision,\n    sharePnLConfig,\n    setShowAllSymbol,\n    current,\n    unPnlPriceBasis,\n    setUnPnlPriceBasic,\n    setPnlNotionalDecimalPrecision,\n  } = props;\n\n  const tabPanelItems: (TabPanelProps & { content?: React.ReactNode })[] = [\n    {\n      value: DataListTabType.positions,\n      title: `${t(\"common.positions\")} ${positionCount > 0 ? `(${positionCount})` : \"\"}`,\n      content: <PositionsView {...props} />,\n    },\n    {\n      value: DataListTabType.pending,\n      title: `${t(\"orders.status.pending\")} ${pendingOrderCount > 0 ? `(${pendingOrderCount})` : \"\"}`,\n      content: (\n        <DesktopOrderListWidget\n          type={TabType.pending}\n          ordersStatus={OrderStatus.INCOMPLETE}\n          symbol={showAllSymbol ? undefined : symbol}\n          onSymbolChange={onSymbolChange}\n          testIds={{ tableBody: \"oui-testid-dataList-pending-table-body\" }}\n        />\n      ),\n    },\n    {\n      value: DataListTabType.tp_sl,\n      title: `${t(\"common.tpsl\")} ${tpSlOrderCount > 0 ? `(${tpSlOrderCount})` : \"\"}`,\n      content: (\n        <DesktopOrderListWidget\n          type={TabType.tp_sl}\n          ordersStatus={OrderStatus.INCOMPLETE}\n          symbol={showAllSymbol ? undefined : symbol}\n          onSymbolChange={onSymbolChange}\n          testIds={{ tableBody: \"oui-testid-dataList-tpsl-table-body\" }}\n        />\n      ),\n    },\n    {\n      value: DataListTabType.filled,\n      title: t(\"orders.status.filled\"),\n      content: (\n        <DesktopOrderListWidget\n          type={TabType.filled}\n          symbol={showAllSymbol ? undefined : symbol}\n          pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n          ordersStatus={OrderStatus.FILLED}\n          onSymbolChange={onSymbolChange}\n          testIds={{ tableBody: \"oui-testid-dataList-filled-table-body\" }}\n          sharePnLConfig={sharePnLConfig}\n        />\n      ),\n    },\n    {\n      value: DataListTabType.positionHistory,\n      title: t(\"positions.positionHistory\"),\n      content: (\n        <PositionHistoryWidget\n          pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n          symbol={showAllSymbol ? undefined : symbol}\n          onSymbolChange={onSymbolChange}\n          sharePnLConfig={sharePnLConfig}\n        />\n      ),\n    },\n    {\n      value: DataListTabType.orderHistory,\n      title: t(\"orders.orderHistory\"),\n      content: (\n        <DesktopOrderListWidget\n          type={TabType.orderHistory}\n          pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n          symbol={showAllSymbol ? undefined : symbol}\n          onSymbolChange={onSymbolChange}\n          testIds={{ tableBody: \"oui-testid-dataList-orderHistory-table-body\" }}\n          sharePnLConfig={sharePnLConfig}\n        />\n      ),\n    },\n    {\n      value: DataListTabType.liquidation,\n      title: <LiquidationTab />,\n      content: (\n        <LiquidationWidget symbol={showAllSymbol ? undefined : symbol} />\n      ),\n    },\n    {\n      value: DataListTabType.assets,\n      title: t(\"common.assets\"),\n      content: (\n        <Flex\n          width=\"100%\"\n          height=\"100%\"\n          className=\"oui-overflow-y-auto oui-hide-scrollbar oui-pt-3\"\n        >\n          <AssetsModule.AssetsDataTableWidget\n            classNames={{\n              scrollRoot:\n                \"oui-h-full oui-mb-6 oui-mt-0 oui-p-0 oui-pt-3 oui-h-[calc(100%_-_40px)]\",\n              root: \"oui-gap-4 oui-h-full\",\n              desc: \"oui-ml-1\",\n            }}\n            dataTableClassNames={{\n              header: \"oui-bg-base-9\",\n              root: \"oui-h-[calc(100%_-_28px)]\",\n            }}\n          />\n        </Flex>\n      ),\n    },\n  ];\n\n  return (\n    <Tabs\n      className=\"oui-trading-dataList-tabs oui-h-full\"\n      defaultValue={current || DataListTabType.positions}\n      variant=\"contained\"\n      trailing={\n        <React.Suspense fallback={null}>\n          <LazySettingWidget\n            pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n            setPnlNotionalDecimalPrecision={setPnlNotionalDecimalPrecision}\n            unPnlPriceBasis={unPnlPriceBasis}\n            setUnPnlPriceBasic={setUnPnlPriceBasic}\n            hideOtherSymbols={!showAllSymbol}\n            setHideOtherSymbols={(value) => setShowAllSymbol(!value)}\n          />\n        </React.Suspense>\n      }\n      size=\"lg\"\n      classNames={{\n        trigger: \"oui-group\",\n        tabsContent: \"oui-h-[calc(100%_-_32px)]\",\n      }}\n    >\n      {tabPanelItems.map((item) => {\n        const { content, ...rest } = item;\n        return (\n          <TabPanel {...rest} key={`item-${rest.value}`}>\n            {content}\n          </TabPanel>\n        );\n      })}\n    </Tabs>\n  );\n};\n","import React from \"react\";\nimport type { PositionsProps } from \"@orderly.network/ui-positions\";\nimport { DataListTabType, useDataListScript } from \"./dataList.script\";\nimport { DataList } from \"./dataList.ui\";\n\nexport const DataListWidget: React.FC<\n  { current?: DataListTabType } & PositionsProps\n> = (props) => {\n  const state = useDataListScript(props);\n  return <DataList {...state} />;\n};\n","export { DataList } from \"./dataList.ui\";\nexport { DataListWidget } from \"./dataList.widget\";\n","import React, { FC, ReactNode } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { Box, cn, Grid, ListView, Text } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { LastTradesState } from \"./lastTrades.script\";\n\nexport const LastTrades: FC<\n  LastTradesState & {\n    classNames?: {\n      root?: string;\n      list?: string;\n      listHeader?: string;\n      listItem?: {\n        left?: string;\n        mid?: string;\n        right?: string;\n      };\n    };\n    style?: React.CSSProperties;\n  }\n> = (props) => {\n  return (\n    <Box\n      className={cn(\n        \"oui-lastTrades\",\n        \"oui-grid oui-grid-rows=[auto,1fr] oui-h-full oui-w-full\",\n        props.classNames?.root,\n      )}\n      style={props.style}\n    >\n      <Box className=\"oui-pr-1\">\n        <Header\n          base={props.base}\n          quote={props.quote}\n          className={props.classNames?.listHeader}\n        />\n      </Box>\n      <List\n        data={props.data}\n        isLoading={props.isLoading}\n        baseDp={props.baseDp}\n        quoteDp={props.quoteDp}\n        classNames={props.classNames?.listItem}\n        className={props.classNames?.list}\n      />\n    </Box>\n  );\n};\n\nconst Row = (props: {\n  key?: React.Key | null;\n  classNames?: {\n    root?: string;\n    left?: string;\n    mid?: string;\n    right?: string;\n  };\n  left: ReactNode | string;\n  mid: ReactNode | string;\n  right: ReactNode | string;\n}) => {\n  const { left, mid, right, classNames } = props;\n  return (\n    // <Flex\n    //   key={key}\n    //   height={20}\n    //   gap={2}\n    //   width={\"100%\"}\n    //   className={cn(\"oui-text-xs oui-tabular-nums\", classNames?.root)}\n    // >\n    //   <Box className={cn(\"oui-flex-1\", classNames?.left)}>{left}</Box>\n    //   <Box className={cn(\"oui-flex-1\", classNames?.mid)}>{mid}</Box>\n    //   <Box className={cn(\"oui-flex-1 oui-text-right\", classNames?.right)}>\n    //     {right}\n    //   </Box>\n    // </Flex>\n\n    <Grid\n      cols={3}\n      gapX={2}\n      width=\"100%\"\n      className={cn(\"oui-text-xs oui-tabular-nums\", classNames?.root)}\n    >\n      <div className={cn(\"oui-flex-1\", classNames?.left)}>{left}</div>\n      <div className={cn(\"oui-flex-1\", classNames?.mid)}>{mid}</div>\n      <div className={cn(\"oui-flex-1 oui-text-right\", classNames?.right)}>\n        {right}\n      </div>\n    </Grid>\n  );\n};\n\nconst Header = (props: { base: string; quote: string; className?: string }) => {\n  const { t } = useTranslation();\n  return (\n    <Row\n      left={t(\"common.time\")}\n      mid={`${t(\"common.price\")}(${props.quote})`}\n      right={`${t(\"common.qty\")}(${props.base})`}\n      classNames={{\n        root: cn(\n          \"oui-text-base-contrast-54 oui-h-[32px] oui-sticky\",\n          props.className,\n        ),\n      }}\n    />\n  );\n};\n\nconst List = (props: {\n  data?: any[];\n  isLoading?: boolean;\n  baseDp: number;\n  quoteDp: number;\n  classNames?: {\n    left?: string;\n    mid?: string;\n    right?: string;\n  };\n  className?: string;\n}) => {\n  return (\n    <ListView\n      dataSource={props.data}\n      className={cn(\n        \"oui-last-trades-list\",\n        \"oui-w-full oui-h-full\",\n        props.className,\n        \"oui-overflow-auto\",\n      )}\n      contentClassName=\"!oui-space-y-0 oui-pr-[-4px]\"\n      renderItem={(item, index) => {\n        return (\n          <Row\n            key={index}\n            left={\n              <Text.formatted rule={\"date\"} formatString=\"HH:mm:ss\">\n                {item?.ts}\n              </Text.formatted>\n            }\n            mid={commifyOptional(item?.price, { fix: props.quoteDp })}\n            right={commifyOptional(item?.size, { fix: props.baseDp })}\n            classNames={{\n              left: cn(\"oui-text-base-contrast-80\", props.classNames?.left),\n              right: cn(\n                item.side === OrderSide.BUY\n                  ? \"oui-text-trade-profit\"\n                  : \"oui-text-trade-loss\",\n                props.classNames?.mid,\n              ),\n              mid: cn(\n                item.side === OrderSide.BUY\n                  ? \"oui-text-trade-profit\"\n                  : \"oui-text-trade-loss\",\n                props.classNames?.right,\n              ),\n            }}\n          />\n        );\n      }}\n    />\n  );\n};\n","import { useMarketTradeStream, useSymbolsInfo } from \"@orderly.network/hooks\";\n\nexport const useLastTradesScript = (symbol: string) => {\n  const { data, isLoading } = useMarketTradeStream(symbol);\n  //   const { quote, quote_dp, base, base_dp } = useContext(SymbolContext);\n  const config = useSymbolsInfo()?.[symbol];\n  const base = config?.(\"base\");\n  const quote = config?.(\"quote\");\n  const baseDp = config?.(\"base_dp\");\n  const quoteDp = config?.(\"quote_dp\");\n//   console.log(\"base, quote\", base, quote, \"baseDp, quoteDp\", baseDp, quoteDp);\n\n  return {\n    base,\n    quote,\n    data,\n    isLoading,\n    baseDp,\n    quoteDp,\n  };\n};\n\nexport type LastTradesState = ReturnType<typeof useLastTradesScript>;\n","import React from \"react\";\nimport { useLastTradesScript } from \"./lastTrades.script\";\nimport { LastTrades } from \"./lastTrades.ui\";\n\nexport const LastTradesWidget: React.FC<{\n  symbol: string;\n  classNames?: {\n    root?: string;\n    list?: string;\n    listHeader?: string;\n    listItem?: { left?: string; mid?: string; right?: string };\n  };\n  style?: React.CSSProperties;\n}> = (props) => {\n  const state = useLastTradesScript(props.symbol);\n  return (\n    <LastTrades {...state} classNames={props.classNames} style={props.style} />\n  );\n};\n","export { LastTrades } from \"./lastTrades.ui\";\nexport { LastTradesWidget } from \"./lastTrades.widget\";\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Button } from \"@orderly.network/ui\";\nimport { FaucetState } from \"./faucet.script\";\n\nexport function FaucetUi(props: FaucetState) {\n  const { t } = useTranslation();\n\n  if (!props.showFaucet) {\n    return null;\n  }\n\n  return (\n    <Button\n      variant=\"outlined\"\n      fullWidth\n      size=\"md\"\n      onClick={props.getFaucet}\n      loading={props.loading}\n      className=\"oui-faucet-btn oui-rounded oui-border-primary-light oui-text-primary-light\"\n      data-testid=\"oui-testid-assetView-getFaucet-button\"\n    >\n      {t(\"trading.faucet.getTestUSDC\")}\n    </Button>\n  );\n}\n","import { useMemo, useState } from \"react\";\nimport {\n  useAccount,\n  useConfig,\n  useMutation,\n  useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { AccountStatusEnum, ChainNamespace } from \"@orderly.network/types\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport function useFaucetScript() {\n  const { t } = useTranslation();\n  const { connectedChain, namespace } = useWalletConnector();\n  const { state, account } = useAccount();\n  const config = useConfig();\n  const operatorUrl = config.get<string>(\"operatorUrl\");\n\n  const [getTestUSDC, { isMutating }] = useMutation(\n    `${operatorUrl}/v1/faucet/usdc`\n  );\n  const [loading, setLoading] = useState<boolean>(false);\n\n  const showFaucet = useMemo(() => {\n    if (!connectedChain || !connectedChain.id) {\n      return false;\n    }\n    return (\n      (state.status === AccountStatusEnum.EnableTrading ||\n        state.status === AccountStatusEnum.EnableTradingWithoutConnected) &&\n      isTestnet(parseInt(connectedChain.id as string))\n    );\n  }, [state, connectedChain]);\n\n  const getFaucet = () => {\n    if (loading) {\n      return;\n    }\n    setLoading(true);\n    const message = t(\"trading.faucet.getTestUSDC.success\", {\n      quantity: namespace === ChainNamespace.solana ? \"100\" : \"1,000\",\n    });\n\n    return getTestUSDC({\n      chain_id: account.walletAdapter?.chainId.toString(),\n      user_address: state.address,\n      broker_id: config.get(\"brokerId\"),\n    }).then(\n      (res) => {\n        setLoading(false);\n        if (res.success) {\n          return modal.alert({\n            title: t(\"trading.faucet.getTestUSDC\"),\n            message,\n            onOk: () => {\n              return new Promise((resolve) => resolve(true));\n            },\n          });\n        }\n        res.message && toast.error(res.message);\n      },\n      (error: Error) => {\n        toast.error(error.message);\n      }\n    );\n  };\n  return { getFaucet, showFaucet, loading };\n}\n\nexport type FaucetState = ReturnType<typeof useFaucetScript>;\n","import { FaucetUi } from \"./faucet.ui\";\nimport { useFaucetScript } from \"./faucet.script\";\n\nexport function FaucetWidget() {\n  const state = useFaucetScript();\n  return (\n    <FaucetUi {...state}/>\n  )\n}","import { FC, useMemo, useState, useCallback, ReactNode } from \"react\";\nimport { useAccount, useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n  Flex,\n  Text,\n  Box,\n  Button,\n  ArrowDownShortIcon,\n  EyeIcon,\n  EyeCloseIcon,\n  ChevronDownIcon,\n  Tooltip,\n  Divider,\n  gradientTextVariants,\n  cn,\n} from \"@orderly.network/ui\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\nimport { LTVRiskTooltipWidget } from \"@orderly.network/ui-order-entry\";\nimport { AssetViewState } from \"./assetView.script\";\nimport { FaucetWidget } from \"./faucet/faucet.widget\";\n\ninterface StatusInfo {\n  title: string;\n  description: string;\n  titleColor?: any;\n  titleClsName?: string;\n}\n\ninterface TooltipContentProps {\n  description: ReactNode;\n  formula: ReactNode;\n}\n\ninterface TotalValueProps {\n  totalValue?: number;\n  visible?: boolean;\n  onToggleVisibility?: () => void;\n}\n\ninterface AssetDetailProps {\n  label: string;\n  description?: ReactNode;\n  formula?: ReactNode;\n  visible: boolean;\n  value?: number | string;\n  unit?: string;\n  rule?: \"percentages\";\n  isConnected?: boolean;\n  showPercentage?: boolean;\n  placeholder?: string;\n}\n\ninterface AssetValueListProps {\n  visible?: boolean;\n  freeCollateral?: number | null;\n  marginRatioVal?: number;\n  renderMMR?: string | number;\n  maintenanceMargin?: number;\n  currentLeverage?: number;\n  isConnected: boolean;\n  currentLtv?: string | number;\n}\n\nconst calculateTextColor = (val: number): string => {\n  if (val >= 0 && val < 50) {\n    return \"oui-text-success\";\n  } else if (val >= 50 && val < 80) {\n    return \"oui-text-warning\";\n  } else if (val >= 80) {\n    return \"oui-text-danger\";\n  } else {\n    return \"\";\n  }\n};\n\nconst useCurrentStatusText = (): StatusInfo => {\n  const { state } = useAccount();\n  const { wrongNetwork, disabledConnect } = useAppContext();\n  const { t } = useTranslation();\n\n  return useMemo(() => {\n    const statusText = {\n      wrongNetwork: {\n        title: t(\"connector.wrongNetwork\"),\n        description: t(\"connector.wrongNetwork.tooltip\"),\n        titleColor: \"warning\",\n      },\n      connectWallet: {\n        title: t(\"connector.connectWallet\"),\n        description: t(\"connector.trade.connectWallet.tooltip\"),\n        titleClsName:\n          \"oui-text-transparent oui-bg-clip-text oui-gradient-brand\",\n      },\n      createAccount: {\n        title: t(\"connector.createAccount\"),\n        description: t(\"connector.trade.createAccount.tooltip\"),\n        titleColor: \"primary\",\n      },\n      enableTrading: {\n        title: t(\"connector.enableTrading\"),\n        description: t(\"connector.trade.enableTrading.tooltip\"),\n        titleColor: \"primary\",\n      },\n      empty: {\n        title: \"\",\n        description: \"\",\n      },\n    };\n\n    if (disabledConnect) {\n      return statusText.connectWallet;\n    }\n\n    if (wrongNetwork) {\n      return statusText.wrongNetwork;\n    }\n\n    // EnableTradingWithoutConnected is enabled trading status, so we don't need to show anything\n    if (state.status === AccountStatusEnum.EnableTradingWithoutConnected) {\n      return statusText.empty;\n    }\n\n    if (state.status <= AccountStatusEnum.NotConnected) {\n      return statusText.connectWallet;\n    }\n\n    if (state.status <= AccountStatusEnum.NotSignedIn) {\n      return statusText.createAccount;\n    }\n\n    if (state.status < AccountStatusEnum.EnableTrading) {\n      return statusText.enableTrading;\n    }\n\n    return statusText.empty;\n  }, [t, state.status, wrongNetwork, disabledConnect]);\n};\n\nexport const TooltipContent: FC<TooltipContentProps> = (props) => {\n  const { description, formula } = props;\n  return (\n    <div className=\"oui-min-w-[204px] oui-max-w-[240px] oui-text-2xs oui-leading-normal oui-text-base-contrast-80\">\n      {typeof description !== \"undefined\" && description !== null && (\n        <span>{description}</span>\n      )}\n      <Divider color=\"oui-border-line-10\" my={2} />\n      {typeof formula !== \"undefined\" && formula !== null && (\n        <span>{formula}</span>\n      )}\n    </div>\n  );\n};\n\nconst TotalValue: FC<TotalValueProps> = (props) => {\n  const { t } = useTranslation();\n  const { totalValue, visible = true, onToggleVisibility } = props;\n  return (\n    <Flex\n      direction=\"column\"\n      gap={1}\n      className=\"oui-text-2xs\"\n      itemAlign=\"center\"\n    >\n      <Text.numeral\n        visible={visible}\n        weight=\"bold\"\n        size=\"2xl\"\n        className={gradientTextVariants({ color: \"brand\" })}\n        as=\"div\"\n        padding={false}\n        dp={2}\n      >\n        {totalValue ?? \"--\"}\n      </Text.numeral>\n      <Flex gap={1} itemAlign=\"center\">\n        <Text size=\"2xs\" color=\"neutral\" weight=\"semibold\">\n          {`${t(\"trading.asset.myAssets\")} (USDC)`}\n        </Text>\n        <button\n          className=\"oui-assetView-toggle-visibility-btn\"\n          onClick={onToggleVisibility}\n        >\n          {visible ? (\n            <EyeIcon size={18} className=\"oui-text-base-contrast-54\" />\n          ) : (\n            <EyeCloseIcon size={18} className=\"oui-text-base-contrast-54\" />\n          )}\n        </button>\n      </Flex>\n    </Flex>\n  );\n};\n\nconst AssetDetail: FC<AssetDetailProps> = (props) => {\n  const {\n    label,\n    description,\n    formula,\n    visible,\n    value,\n    unit,\n    rule,\n    placeholder,\n  } = props;\n  return (\n    <Flex justify=\"between\">\n      <Tooltip\n        className={\"\"}\n        content={<TooltipContent description={description} formula={formula} />}\n      >\n        <Text\n          size=\"2xs\"\n          color=\"neutral\"\n          weight=\"semibold\"\n          className=\"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\"\n        >\n          {label}\n        </Text>\n      </Tooltip>\n      <Text.numeral\n        visible={visible}\n        size=\"2xs\"\n        unit={unit}\n        unitClassName=\"oui-text-base-contrast-36 oui-ml-0.5\"\n        as=\"div\"\n        rule={rule}\n        padding={false}\n        dp={2}\n        // suffix={value && unit}\n        placeholder={placeholder}\n      >\n        {value || \"--\"}\n      </Text.numeral>\n    </Flex>\n  );\n};\n\nconst LTVDetail: FC<Pick<AssetDetailProps, \"value\" | \"visible\">> = (props) => {\n  const { visible, value } = props;\n  const { t } = useTranslation();\n  return (\n    <Flex justify=\"between\">\n      <Tooltip\n        className={cn(\"oui-bg-base-6 oui-p-2\")}\n        content={<LTVRiskTooltipWidget />}\n      >\n        <Text\n          size=\"2xs\"\n          color=\"neutral\"\n          weight=\"semibold\"\n          className=\"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12\"\n        >\n          {t(\"transfer.LTV\")}\n        </Text>\n      </Tooltip>\n      <Text\n        size=\"2xs\"\n        className={cn(\n          \"select-none\",\n          visible && calculateTextColor(Number(value)),\n        )}\n      >\n        {visible ? `${value}%` : \"*****\"}\n      </Text>\n    </Flex>\n  );\n};\n\nconst AssetValueList: FC<AssetValueListProps> = (props) => {\n  const {\n    visible = true,\n    freeCollateral,\n    marginRatioVal,\n    renderMMR,\n    maintenanceMargin,\n    currentLeverage,\n    isConnected,\n    currentLtv,\n  } = props;\n\n  const [optionsOpen, setOptionsOpen] = useLocalStorage(\n    \"orderly_entry_asset_list_open\",\n    false,\n  );\n  const [open, setOpen] = useState<boolean>(optionsOpen);\n\n  const { t } = useTranslation();\n\n  const toggleOpen = useCallback(() => {\n    setOpen((prevOpen) => !prevOpen);\n    setTimeout(() => {\n      setOptionsOpen(!open);\n    }, 0);\n  }, []);\n\n  const showLTV =\n    typeof currentLtv === \"number\" &&\n    !Number.isNaN(currentLtv) &&\n    currentLtv > 0;\n\n  return (\n    <Box className=\"oui-group\">\n      <Flex\n        justify=\"center\"\n        gap={1}\n        itemAlign=\"center\"\n        className=\"oui-cursor-pointer\"\n        onClick={toggleOpen}\n      >\n        <Divider className=\"oui-flex-1\" />\n        <ChevronDownIcon\n          size={12}\n          color=\"white\"\n          className={cn(\"oui-transition-transform\", open && \"oui-rotate-180\")}\n        />\n        <Divider className=\"oui-flex-1\" />\n      </Flex>\n      <Box\n        style={{ transform: \"translateZ(0)\" }}\n        className={cn(\n          \"oui-select-none oui-space-y-1.5 oui-overflow-hidden\",\n          \"oui-transition-[max-height] oui-duration-150\",\n          \"group-hover:oui-will-change-[max-height]\",\n          open\n            ? showLTV\n              ? \"oui-max-h-[144px]\"\n              : \"oui-max-h-[119px]\"\n            : \"oui-max-h-0\",\n        )}\n      >\n        <AssetDetail\n          label={t(\"trading.asset.freeCollateral\")}\n          description={t(\"trading.asset.freeCollateral.tooltip\")}\n          formula={t(\"trading.asset.freeCollateral.formula\")}\n          visible={visible}\n          // TODO: change AssetDetail value\n          value={freeCollateral! === 0 ? (\"0\" as any) : freeCollateral}\n          unit=\"USDC\"\n        />\n        <AssetDetail\n          label={t(\"trading.asset.marginRatio\")}\n          description={t(\"trading.asset.marginRatio.tooltip\")}\n          formula={t(\"trading.asset.marginRatio.formula\")}\n          visible={visible}\n          value={marginRatioVal}\n          isConnected={isConnected}\n          rule=\"percentages\"\n          showPercentage={true}\n          placeholder=\"--%\"\n        />\n        <AssetDetail\n          label={t(\"trading.asset.maintenanceMarginRatio\")}\n          description={t(\"trading.asset.maintenanceMarginRatio.tooltip\")}\n          formula={t(\"trading.asset.maintenanceMarginRatio.formula\")}\n          visible={visible}\n          value={renderMMR}\n          rule=\"percentages\"\n          showPercentage={true}\n          placeholder=\"--%\"\n        />\n        <AssetDetail\n          label={t(\"trading.asset.maintenanceMargin\")}\n          description={t(\"trading.asset.maintenanceMargin.tooltip\")}\n          formula={t(\"trading.asset.maintenanceMargin.formula\")}\n          visible={visible}\n          value={maintenanceMargin}\n          unit=\"USDC\"\n        />\n        <AssetDetail\n          label={t(\"trading.asset.currentLeverage\")}\n          description={t(\"trading.asset.currentLeverage.tooltip\")}\n          formula={t(\"trading.asset.currentLeverage.formula\")}\n          visible={visible}\n          value={currentLeverage}\n          unit=\"x\"\n        />\n        {showLTV && <LTVDetail visible={visible} value={currentLtv} />}\n      </Box>\n    </Box>\n  );\n};\n\nexport const AssetView: FC<\n  AssetViewState & { isFirstTimeDeposit?: boolean }\n> = ({\n  networkId,\n  isFirstTimeDeposit,\n  totalValue,\n  onDeposit,\n  onWithdraw,\n  onTransfer,\n  toggleVisible,\n  visible,\n  freeCollateral,\n  marginRatioVal,\n  renderMMR,\n  maintenanceMargin,\n  currentLeverage,\n  isConnected,\n  isMainAccount,\n  hasSubAccount,\n  currentLtv,\n}) => {\n  const { title, description, titleColor, titleClsName } =\n    useCurrentStatusText();\n\n  const { t } = useTranslation();\n\n  const transferButton = hasSubAccount && (\n    <Button\n      className=\"oui-assetView-transfer-btn\"\n      fullWidth\n      color=\"secondary\"\n      size=\"md\"\n      onClick={onTransfer}\n      data-testid=\"oui-testid-assetView-transfer-button\"\n    >\n      <Text>{t(\"common.transfer\")}</Text>\n    </Button>\n  );\n\n  const depositButton = isMainAccount && (\n    <Button\n      className=\"oui-assetView-deposit-btn\"\n      data-testid=\"oui-testid-assetView-deposit-button\"\n      fullWidth\n      size=\"md\"\n      onClick={onDeposit}\n    >\n      {!hasSubAccount && (\n        <ArrowDownShortIcon opacity={1} className=\"oui-text-primary-contrast\" />\n      )}\n      <Text>{t(\"common.deposit\")}</Text>\n    </Button>\n  );\n\n  const withdrawButton = isMainAccount && (\n    <Button\n      className=\"oui-assetView-withdraw-btn\"\n      fullWidth\n      color=\"secondary\"\n      size=\"md\"\n      onClick={onWithdraw}\n      data-testid=\"oui-testid-assetView-withdraw-button\"\n    >\n      {!hasSubAccount && (\n        <ArrowDownShortIcon\n          color=\"white\"\n          opacity={1}\n          className=\"oui-rotate-180\"\n        />\n      )}\n      <Text>{t(\"common.withdraw\")}</Text>\n    </Button>\n  );\n\n  return (\n    <Box className=\"oui-assetView oui-relative\">\n      {title && description && (\n        <Flex direction=\"column\" gap={1} className=\"oui-mb-[32px]\">\n          <Text\n            size=\"lg\"\n            weight=\"bold\"\n            color={titleColor || \"inherit\"}\n            className={titleClsName}\n          >\n            {title}\n          </Text>\n          <Text\n            size=\"2xs\"\n            color=\"neutral\"\n            weight=\"semibold\"\n            className=\"oui-text-center\"\n          >\n            {description}\n          </Text>\n        </Flex>\n      )}\n      <AuthGuard\n        networkId={networkId}\n        buttonProps={{ size: \"md\", fullWidth: true }}\n      >\n        {isFirstTimeDeposit && isMainAccount ? (\n          <>\n            <Box>\n              <Flex direction=\"column\" gap={1} className=\"oui-mb-[32px]\">\n                <Text.gradient size=\"lg\" weight=\"bold\" color=\"brand\">\n                  {t(\"trading.asset.startTrading\")}\n                </Text.gradient>\n                <Text size=\"2xs\" color=\"neutral\" weight=\"semibold\">\n                  {t(\"trading.asset.startTrading.description\")}\n                </Text>\n              </Flex>\n            </Box>\n            <Button\n              className=\"oui-assetView-deposit-btn\"\n              data-testid=\"oui-testid-assetView-deposit-button\"\n              fullWidth\n              size=\"md\"\n              onClick={onDeposit}\n            >\n              <ArrowDownShortIcon\n                opacity={1}\n                className=\"oui-text-primary-contrast\"\n              />\n              <Text>{t(\"common.deposit\")}</Text>\n            </Button>\n\n            <Box className=\"oui-mt-3\">\n              <FaucetWidget />\n            </Box>\n          </>\n        ) : (\n          <Box className=\"oui-space-y-4\">\n            <TotalValue\n              totalValue={totalValue}\n              visible={visible}\n              onToggleVisibility={toggleVisible}\n            />\n            <AssetValueList\n              visible={visible}\n              freeCollateral={freeCollateral}\n              marginRatioVal={marginRatioVal}\n              renderMMR={renderMMR}\n              maintenanceMargin={maintenanceMargin}\n              currentLeverage={currentLeverage}\n              isConnected={isConnected}\n              currentLtv={currentLtv}\n            />\n            <Flex\n              gap={isMainAccount ? (hasSubAccount ? 2 : 3) : 0}\n              itemAlign=\"center\"\n            >\n              {isMainAccount ? (\n                <>\n                  {depositButton}\n                  {transferButton}\n                  {withdrawButton}\n                </>\n              ) : (\n                transferButton\n              )}\n            </Flex>\n            {isMainAccount && <FaucetWidget />}\n          </Box>\n        )}\n      </AuthGuard>\n      <div\n        className={cn(\n          \"oui-absolute oui-inset-0 oui-rotate-180\",\n          \"oui-pointer-events-none oui-rounded-2xl oui-blur-[200px]\",\n        )}\n        style={{\n          background:\n            \"conic-gradient(from -40.91deg at 40.63% 50.41%, rgba(var(--oui-color-base-foreground)/0) -48.92deg, rgba(var(--oui-color-base-foreground)/0) 125.18deg, rgb(var(--oui-color-primary)) 193.41deg, rgb(var(--oui-color-warning)) 216.02deg, rgb(var(--oui-color-link)) 236.07deg, rgb(var(--oui-color-primary-light)) 259.95deg, rgba(var(--oui-color-base-foreground)/0) 311.08deg, rgba(var(--oui-color-base-foreground)/0) 485.18deg)\",\n        }}\n      />\n    </Box>\n  );\n};\n","import { useCallback, useMemo } from \"react\";\nimport {\n  useAccountInstance,\n  useEventEmitter,\n  useLocalStorage,\n  useAccount,\n  useConfig,\n  useCollateral,\n  useMarginRatio,\n  usePositionStream,\n  useComputedLTV,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum, NetworkId } from \"@orderly.network/types\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport {\n  DepositAndWithdrawWithDialogId,\n  TransferDialogId,\n} from \"@orderly.network/ui-transfer\";\n\nexport const useAssetViewScript = () => {\n  const { t } = useTranslation();\n  const account = useAccountInstance();\n  const ee = useEventEmitter();\n\n  const { totalValue } = useCollateral({\n    dp: 2,\n  });\n\n  const networkId = useConfig(\"networkId\") as NetworkId;\n  const { state, isMainAccount } = useAccount();\n  const { freeCollateral } = useCollateral({\n    dp: 2,\n  });\n  const { marginRatio, mmr, maintenanceMargin, currentLeverage } =\n    useMarginRatio();\n  const isConnected = state.status >= AccountStatusEnum.Connected;\n  const [{ aggregated }, positionsInfo] = usePositionStream();\n  const marginRatioVal = useMemo(() => {\n    return Math.min(\n      10,\n      aggregated.notional === 0\n        ? positionsInfo[\"margin_ratio\"](10)!\n        : marginRatio,\n    );\n  }, [marginRatio, aggregated]);\n\n  // const renderMMR = useMemo(() => {\n  //   if (!mmr) {\n  //     return \"\";\n  //   }\n  //   const bigMMR = new Decimal(mmr);\n  //   return bigMMR.mul(100).todp(2, 0).toFixed(2);\n  // }, [mmr]);\n\n  const openDepositAndWithdraw = useCallback(\n    (viewName: \"deposit\" | \"withdraw\") => {\n      // desktop always show dialog\n      return modal.show(DepositAndWithdrawWithDialogId, {\n        activeTab: viewName,\n      });\n    },\n    [],\n  );\n\n  const onDeposit = useCallback(async () => {\n    return openDepositAndWithdraw(\"deposit\");\n  }, []);\n\n  const onWithdraw = useCallback(async () => {\n    return openDepositAndWithdraw(\"withdraw\");\n  }, []);\n\n  const onTransfer = useCallback(async () => {\n    return modal.show(TransferDialogId);\n  }, []);\n\n  const onSettle = useCallback(async () => {\n    return account\n      .settle()\n      .catch((e) => {\n        if (e.code === -1104) {\n          toast.error(t(\"settle.settlement.error\"));\n          return Promise.reject(e);\n        }\n        if (\n          e.message.indexOf(\n            \"Signing off chain messages with Ledger is not yet supported\",\n          ) !== -1\n        ) {\n          ee.emit(\"wallet:sign-message-with-ledger-error\", {\n            message: e.message,\n            userAddress: account.address,\n          });\n        }\n      })\n      .then((res) => {\n        toast.success(t(\"settle.settlement.requested\"));\n        return Promise.resolve(res);\n      });\n  }, [account, t]);\n\n  const [visible, setVisible] = useLocalStorage<boolean>(\n    \"orderly_assets_visible\",\n    true,\n  );\n\n  const toggleVisible = useCallback(() => {\n    // @ts-ignore\n    setVisible((visible: boolean) => {\n      return !visible;\n    });\n  }, [visible]);\n\n  const currentLtv = useComputedLTV();\n  const _freeCollateral = useDataTap(freeCollateral) ?? undefined;\n  const _marginRatioVal = useDataTap(marginRatioVal) ?? undefined;\n  const _mmr = useDataTap(mmr) ?? undefined;\n  const _maintenanceMargin = useDataTap(maintenanceMargin) ?? undefined;\n  const _currentLeverage = useDataTap(currentLeverage) ?? undefined;\n  const _totalValue = useDataTap(totalValue) ?? undefined;\n\n  return {\n    onDeposit,\n    onWithdraw,\n    onTransfer,\n    onSettle,\n    visible,\n    toggleVisible,\n    networkId,\n    totalValue: _totalValue,\n    status: state.status,\n    freeCollateral: _freeCollateral,\n    marginRatioVal: _marginRatioVal,\n    renderMMR: _mmr,\n    maintenanceMargin: _maintenanceMargin,\n    currentLeverage: _currentLeverage,\n    isConnected,\n    isMainAccount,\n    hasSubAccount: !!state.subAccounts?.length,\n    currentLtv,\n  };\n};\n\nexport type AssetViewState = ReturnType<typeof useAssetViewScript>;\n","import React from \"react\";\nimport { useAssetViewScript } from \"./assetView.script\";\nimport { AssetView } from \"./assetView.ui\";\n\ntype AssetViewWidgetProps = {\n  isFirstTimeDeposit?: boolean;\n};\n\nexport const AssetViewWidget: React.FC<AssetViewWidgetProps> = (props) => {\n  const state = useAssetViewScript();\n  return <AssetView {...state} isFirstTimeDeposit={props.isFirstTimeDeposit} />;\n};\n","export { AssetView } from \"./assetView.ui\";\nexport { AssetViewWidget } from \"./assetView.widget\";\n","import React, {\n  createContext,\n  FC,\n  PropsWithChildren,\n  useContext,\n  useState,\n} from \"react\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { QtyMode, TotalMode } from \"./types\";\n\nexport interface OrderBookContextValue {\n  cellHeight: number;\n  mode: QtyMode;\n  depth?: string;\n  onModeChange?: (mode: QtyMode) => void;\n  onItemClick?: (item: number[]) => void;\n  showTotal: boolean;\n  totalMode: TotalMode;\n  pendingOrders: ReadonlyArray<number> | number[];\n  onTotalModeChange?: (mode: TotalMode) => void;\n  symbolInfo: BasicSymbolInfo;\n  showBuySellRatio: boolean;\n  onShowBuySellRatioChange?: (show: boolean) => void;\n}\n\nexport const OrderBookContext = createContext({\n  cellHeight: 22,\n} as OrderBookContextValue);\n\nexport const useOrderBookContext = () => useContext(OrderBookContext);\n\nexport const ORDERBOOK_COIN_TYPE_KEY = \"orderbook_coin_type\";\n\nexport const ORDERBOOK_MOBILE_COIN_TYPE_KEY = \"orderbook_mobile_coin_unit\";\n\ninterface OrderBookProviderProps {\n  cellHeight: number;\n  depth?: string;\n  showTotal: boolean;\n  pendingOrders: ReadonlyArray<number> | number[];\n  onItemClick?: (item: number[]) => void;\n  symbolInfo: BasicSymbolInfo;\n  showBuySellRatio?: boolean;\n  onShowBuySellRatioChange?: (show: boolean) => void;\n}\n\nexport const OrderBookProvider: FC<\n  PropsWithChildren<OrderBookProviderProps>\n> = (props) => {\n  const [mode, setMode] = useState<QtyMode>(\"quantity\");\n  const [totalMode, setTotalMode] = useState<QtyMode>(\"quantity\");\n  const memoizedValue = React.useMemo<OrderBookContextValue>(() => {\n    return {\n      cellHeight: props.cellHeight,\n      onItemClick: props.onItemClick,\n      mode,\n      totalMode: totalMode || \"quantity\",\n      depth: props.depth,\n      onModeChange: setMode,\n      onTotalModeChange: setTotalMode,\n      showTotal: props.showTotal || false,\n      pendingOrders: props.pendingOrders,\n      symbolInfo: props.symbolInfo,\n      showBuySellRatio: props.showBuySellRatio ?? true,\n      onShowBuySellRatioChange: props.onShowBuySellRatioChange,\n    };\n  }, [\n    mode,\n    props.cellHeight,\n    props.depth,\n    props.onItemClick,\n    props.pendingOrders,\n    props.showTotal,\n    props.symbolInfo,\n    props.showBuySellRatio,\n    props.onShowBuySellRatioChange,\n    totalMode,\n  ]);\n  return (\n    <OrderBookContext.Provider value={memoizedValue}>\n      {props.children}\n    </OrderBookContext.Provider>\n  );\n};\n","export type QtyMode = \"quantity\" | \"amount\";\nexport type TotalMode = \"quantity\" | \"amount\";\n\nexport enum OrderBookCellType {\n  BID = \"bid\",\n  ASK = \"ask\",\n}\n","import { cn } from \"@orderly.network/ui\";\nimport { FC, useMemo } from \"react\";\n\nexport enum CellBarDirection {\n  LEFT_TO_RIGHT,\n  RIGHT_TO_LEFT,\n}\n\ninterface CellBarProps {\n  width: number;\n  className?: string;\n  direction?: CellBarDirection\n}\n\nexport const CellBar: FC<CellBarProps> = (props) => {\n  const { direction = CellBarDirection.RIGHT_TO_LEFT } = props;\n  const transform = useMemo(() => {\n    const x = Math.max(props.width, 0);\n    if (direction === CellBarDirection.LEFT_TO_RIGHT) {\n      return { transform: `translateX(${x}%)` };\n    }\n    return { transform: `translateX(-${x}%)` };\n    \n  }, [props.width]);\n\n  return (\n    <div\n      className={cn(\n        \"oui-absolute oui-right-[-100%] oui-top-0 oui-h-full oui-w-full oui-transition-transform oui-pointer-events-none\",\n        direction === CellBarDirection.LEFT_TO_RIGHT && \"oui-left-[-100%]\",\n        props.className\n      )}\n      style={transform}\n    />\n  );\n};\n","import { FC, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { cn, Divider, parseNumber, Text } from \"@orderly.network/ui\";\nimport { getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { CellBar, CellBarDirection } from \"../../base/orderBook/cellBar\";\nimport {\n  ORDERBOOK_COIN_TYPE_KEY,\n  useOrderBookContext,\n} from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\n\nexport interface DesktopOrderBookCellProps {\n  background: string;\n  maxQty: number;\n  price: number;\n  quantity: number;\n  // size: number;\n  count: number;\n  accumulated: number;\n  accumulatedAmount: number;\n  type: OrderBookCellType;\n  symbolInfo: BasicSymbolInfo;\n  base: string;\n  quote: string;\n  isHover: boolean;\n  currentHover: boolean;\n  onMouseEnter: () => void;\n  onMouseLeave: () => void;\n}\n\nexport const DesktopOrderBookCell: FC<DesktopOrderBookCellProps> = (props) => {\n  const { cellHeight, showTotal, onItemClick, depth, pendingOrders } =\n    useOrderBookContext();\n  const {\n    symbolInfo,\n    currentHover,\n    accumulated,\n    accumulatedAmount,\n    count,\n    price,\n    quantity,\n    base,\n    quote,\n  } = props;\n\n  const { base_dp, quote_dp } = symbolInfo;\n\n  const [coinType] = useLocalStorage<string>(ORDERBOOK_COIN_TYPE_KEY, base);\n\n  const width = Number.isNaN(price) ? 0 : (accumulated / count) * 100;\n\n  const dp = useMemo(() => {\n    return getPrecisionByNumber(depth || `${quote_dp}`);\n  }, [depth, quote_dp]);\n\n  const totalAmount = Number.isNaN(accumulated)\n    ? \"-\"\n    : accumulatedAmount?.toString();\n\n  const isPendingOrder = useMemo(() => {\n    const priceStr = parseNumber(price, { dp: dp, padding: true });\n    return pendingOrders.some(\n      (item) => priceStr === parseNumber(item, { dp: dp, padding: true }),\n    );\n  }, [pendingOrders, price, dp]);\n\n  return (\n    <div\n      className=\"oui-relative oui-flex oui-cursor-pointer oui-flex-row oui-justify-between oui-pl-3 oui-text-xs oui-tabular-nums oui-text-base-contrast-80\"\n      style={{ height: `${cellHeight}px` }}\n      onClick={() => {\n        if (Number.isNaN(price) || Number.isNaN(quantity)) {\n          return;\n        }\n        onItemClick?.([price, quantity]);\n      }}\n      onMouseEnter={props.onMouseEnter}\n      onMouseLeave={props.onMouseLeave}\n    >\n      <div\n        className={cn(\n          \"oui-mr-2 oui-flex oui-basis-7/12 oui-flex-row oui-items-center\",\n          showTotal && \"oui-basis-5/12\",\n        )}\n      >\n        <div\n          className={cn(\n            \"oui-flex-1 oui-text-left\",\n            props.type === OrderBookCellType.ASK\n              ? \"oui-text-trade-loss\"\n              : \"oui-text-trade-profit\",\n          )}\n        >\n          <Text.numeral dp={dp}>{price}</Text.numeral>\n        </div>\n        <div className=\"oui-flex-1 oui-text-right oui-text-base-contrast-80\">\n          <Text.numeral dp={base_dp}>{quantity}</Text.numeral>\n        </div>\n      </div>\n      <div\n        className={cn(\n          \"oui-fex-row oui-relative oui-flex oui-basis-5/12 oui-items-center oui-justify-end oui-overflow-hidden\",\n          showTotal && \"oui-basis-7/12\",\n        )}\n      >\n        {showTotal ? (\n          <>\n            <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n              <Text.numeral dp={base_dp} className=\"oui-z-10\">\n                {accumulated}\n              </Text.numeral>\n            </div>\n            <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n              <Text.numeral dp={0} className=\"oui-z-10\">\n                {totalAmount}\n              </Text.numeral>\n            </div>\n          </>\n        ) : (\n          <div className={cn(\"oui-flex-1 oui-pr-3 oui-text-right\")}>\n            {coinType === base && (\n              <Text.numeral dp={base_dp} className=\"oui-z-10\">\n                {accumulated}\n              </Text.numeral>\n            )}\n            {coinType === quote && (\n              <Text.numeral dp={0} className=\"oui-z-10\">\n                {totalAmount}\n              </Text.numeral>\n            )}\n          </div>\n        )}\n        <CellBar\n          width={width}\n          direction={CellBarDirection.LEFT_TO_RIGHT}\n          className={\n            props.type === OrderBookCellType.ASK\n              ? \"oui-bg-trade-loss/10\"\n              : \"oui-bg-trade-profit/10\"\n          }\n        />\n      </div>\n\n      {isPendingOrder && (\n        <div\n          className={cn(\n            \"oui-pointer-events-none oui-absolute oui-left-[4px] oui-size-[4px] oui-rounded-full\",\n            props.type === OrderBookCellType.ASK && \"oui-bg-trade-loss\",\n            props.type === OrderBookCellType.BID && \"oui-bg-trade-profit\",\n          )}\n          style={{ top: `${cellHeight / 2 - 2}px` }}\n        />\n      )}\n\n      {props.isHover && (\n        <div className=\"oui-absolute oui-inset-0 oui-bg-base-contrast-12\" />\n      )}\n      {currentHover && (\n        <div\n          className={cn(\n            \"oui-absolute oui-inset-x-0\",\n            props.type === OrderBookCellType.ASK && \"oui-top-0\",\n            props.type === OrderBookCellType.BID && \"oui-bottom-0\",\n          )}\n        >\n          <Divider\n            lineStyle=\"dashed\"\n            className={cn(\n              \"oui-w-full\",\n              props.type === OrderBookCellType.BID && \"oui-border-trade-profit\",\n              props.type === OrderBookCellType.ASK && \"oui-border-trade-loss\",\n            )}\n          />\n        </div>\n      )}\n    </div>\n  );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  TooltipContent,\n  TooltipTrigger,\n  Text,\n  TooltipRoot,\n  TooltipArrow,\n  cn,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopOrderBookCell } from \"./cell.desktop\";\n\ninterface DesktopListBoxProps {\n  type: OrderBookCellType;\n  data: number[][];\n  countQty: number;\n}\n\nconst calcHintInfo = (item: number[] | null) => {\n  if (!item) {\n    return { sumQty: 0, sumQtyAmount: 0, avgPrice: 0 };\n  }\n  const [, , qty, amount] = item;\n  const sumQty = !Number.isNaN(qty) ? qty : 0;\n  const sumQtyAmount = !Number.isNaN(amount) ? amount : 0;\n  return {\n    sumQty: sumQty,\n    sumQtyAmount: sumQtyAmount,\n    avgPrice:\n      sumQtyAmount === 0 || sumQty === 0\n        ? 0\n        : new Decimal(sumQtyAmount).div(sumQty).toNumber(),\n  };\n};\n\nexport const DesktopListBox: React.FC<DesktopListBoxProps> = (props) => {\n  const { data, type, countQty } = props;\n  const { symbolInfo, depth } = useOrderBookContext();\n\n  const findMaxItem = useCallback(() => {\n    if (!data?.length) {\n      return null;\n    }\n    if (type === OrderBookCellType.ASK) {\n      const index = data.findIndex((item) => !Number.isNaN(item[0]));\n      if (index !== -1) {\n        return data[index];\n      }\n      return null;\n    } else {\n      const len = data.length;\n      for (let index = len - 1; index >= 0; index--) {\n        const item = data[index];\n        if (!Number.isNaN(item[0])) {\n          return item;\n        }\n      }\n      return null;\n    }\n  }, [data, type]);\n\n  const priceDp = useMemo(() => {\n    if (depth?.toString().includes(\".\")) {\n      return depth.toString().split(\".\")[1].length;\n    }\n    return 0;\n  }, [depth]);\n\n  const maxQty = useMemo(() => {\n    return data.reduce((a, b) => Math.max(a, b[1]), 0);\n  }, [data]);\n\n  const [hoverIndex, setHoverIndex] = useState<number>(-1);\n\n  return (\n    <div className=\"oui-order-book-list oui-orderBook-list oui-flex oui-flex-col oui-gap-px\">\n      {data.map((item, index) => {\n        return (\n          <Tip\n            key={index}\n            index={index}\n            item={item}\n            countQty={countQty}\n            setHoverIndex={setHoverIndex}\n            hoverIndex={hoverIndex}\n            type={type}\n            maxQty={maxQty}\n            priceDp={priceDp}\n            symbolInfo={symbolInfo}\n            findMaxItem={findMaxItem}\n          />\n        );\n      })}\n    </div>\n  );\n};\n\nconst Tip: React.FC<{\n  index: number;\n  item: any;\n  countQty: number;\n  setHoverIndex: any;\n  type: OrderBookCellType;\n  maxQty: number;\n  hoverIndex: number;\n  priceDp: number;\n  // base: any;\n  // quote: any;\n  // baseDp: number;\n  // quoteDp: number;\n  findMaxItem: () => number[] | null;\n  symbolInfo: BasicSymbolInfo;\n}> = (props) => {\n  const {\n    index,\n    item,\n    setHoverIndex,\n    type,\n    maxQty,\n    hoverIndex,\n    priceDp,\n    countQty,\n    symbolInfo,\n    findMaxItem,\n  } = props;\n\n  const { base, quote, base_dp: baseDp, quote_dp: quoteDp } = symbolInfo;\n  const { t } = useTranslation();\n\n  const isHover =\n    hoverIndex !== -1\n      ? type === OrderBookCellType.ASK\n        ? index >= hoverIndex\n        : index <= hoverIndex\n      : false;\n\n  const [open, setOpen] = useState(false);\n\n  const hintInfo = useMemo(() => {\n    const info = calcHintInfo(item);\n    return info.avgPrice === 0 ? calcHintInfo(findMaxItem()) : info;\n  }, [item, findMaxItem]);\n\n  return (\n    <TooltipRoot open={open} onOpenChange={setOpen}>\n      <TooltipTrigger>\n        <DesktopOrderBookCell\n          background={\"\"}\n          price={item[0]}\n          quantity={item[1]}\n          accumulated={item[2]}\n          count={countQty}\n          type={type}\n          accumulatedAmount={item[3]}\n          maxQty={maxQty}\n          isHover={isHover}\n          currentHover={hoverIndex === index}\n          symbolInfo={symbolInfo}\n          base={base}\n          quote={quote}\n          onMouseEnter={() => {\n            setHoverIndex(index);\n            setOpen(true);\n          }}\n          onMouseLeave={() => {\n            setHoverIndex(-1);\n            setOpen(false);\n          }}\n        />\n      </TooltipTrigger>\n      <TooltipContent\n        className={cn(\n          \"oui-rounded-base oui-flex oui-w-full oui-max-w-[400px] oui-flex-col oui-gap-2 oui-bg-base-6 oui-p-3 oui-text-2xs oui-shadow-md\",\n          // type === OrderBookCellType.ASK ? `oui-mb-${30}` : \"oui-mt-0\"\n        )}\n        align={type === OrderBookCellType.ASK ? \"end\" : \"start\"}\n        alignOffset={-25.4}\n        side=\"left\"\n        sideOffset={2}\n        onPointerEnter={(e) => e.preventDefault()}\n      >\n        <Row\n          title={`${t(\"common.avgPrice\")}≈`}\n          content={hintInfo.avgPrice}\n          // contentDp={priceDp}\n          contentDp={quoteDp}\n        />\n        <Row\n          title={`${t(\"trading.orderBook.sum\")} (${base})`}\n          content={hintInfo.sumQty}\n          contentDp={baseDp}\n        />\n        <Row\n          title={`${t(\"trading.orderBook.sum\")} (${quote})`}\n          content={hintInfo.sumQtyAmount}\n          contentDp={quoteDp}\n        />\n        <TooltipArrow\n          className=\"oui-fill-base-6\"\n          style={{\n            transform:\n              type === OrderBookCellType.ASK\n                ? \"translateX(80%)\"\n                : \"translateX(-80%)\",\n          }}\n        />\n      </TooltipContent>\n    </TooltipRoot>\n  );\n};\n\nconst Row: React.FC<{ title: string; content: number; contentDp: number }> = (\n  props,\n) => {\n  const { title, content, contentDp } = props;\n  return (\n    <div className=\"oui-flex oui-flex-row oui-justify-between oui-gap-4\">\n      <div className=\"oui-select-none oui-text-base-contrast-36\">{title}</div>\n      <div className=\"oui-text-end\">\n        <Text.numeral dp={contentDp}>{content}</Text.numeral>\n      </div>\n    </div>\n  );\n};\n","import { FC, useMemo } from \"react\";\nimport { injectable } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopListBox } from \"./listBox.desktop\";\n\n/**\n * Desktop asks list props. `symbolInfo` and `depth` are threaded through\n * {@link InjectableDesktopAsks} so Orderly plugins replacing `OrderBook.Desktop.Asks`\n * can render without relying only on context. The default `DesktopAsks` uses `data`\n * and reads symbol/depth from `OrderBookProvider` / `OrderBookContext`.\n */\nexport interface Props {\n  data: number[][];\n  /** For plugin replacements; unused by the default asks row list (context carries symbol). */\n  symbolInfo: BasicSymbolInfo;\n  /** For plugin replacements; active depth key; unused by the default list (context carries depth). */\n  depth: string | undefined;\n}\n\nexport const DesktopAsks: FC<Props> = (props) => {\n  const { data } = props;\n  const countQty = useMemo(() => {\n    let max = Number.NaN;\n    const len = data.length;\n    let index = 0;\n\n    while (Number.isNaN(max) && index < len) {\n      max = data[index][2];\n      index++;\n    }\n\n    return max;\n  }, [data]);\n\n  return (\n    <DesktopListBox\n      type={OrderBookCellType.ASK}\n      data={data}\n      countQty={countQty}\n    />\n  );\n};\n\nexport const InjectableDesktopAsks = injectable<Props>(\n  DesktopAsks,\n  \"OrderBook.Desktop.Asks\",\n);\n","import { FC, useMemo } from \"react\";\nimport { injectable } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { DesktopListBox } from \"./listBox.desktop\";\n\n/**\n * Desktop bids list props. `symbolInfo` and `depth` are threaded through\n * {@link InjectableDesktopBids} so Orderly plugins replacing `OrderBook.Desktop.Bids`\n * can render without relying only on context. The default `DesktopBids` uses `data`\n * and reads symbol/depth from `OrderBookProvider` / `OrderBookContext`.\n */\nexport interface Props {\n  data: number[][];\n  /** For plugin replacements; unused by the default bids row list (context carries symbol). */\n  symbolInfo: BasicSymbolInfo;\n  /** For plugin replacements; active depth key; unused by the default list (context carries depth). */\n  depth: string | undefined;\n}\n\nexport const DesktopBids: FC<Props> = (props) => {\n  const { data } = props;\n  const countQty = useMemo(() => {\n    let max = Number.NaN;\n    // let len = data.length;\n    let index = data.length - 1;\n\n    while (Number.isNaN(max) && index > 0) {\n      max = data[index][2];\n      index--;\n    }\n\n    return max;\n    // return data.length > 0 ? data[data.length - 1][2] : 0;\n  }, [data]);\n  return (\n    <DesktopListBox\n      type={OrderBookCellType.BID}\n      data={data}\n      countQty={countQty}\n    />\n  );\n};\n\nexport const InjectableDesktopBids = injectable<Props>(\n  DesktopBids,\n  \"OrderBook.Desktop.Bids\",\n);\n","import { FC, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  Checkbox,\n  Flex,\n  PopoverContent,\n  PopoverRoot,\n  PopoverTrigger,\n} from \"@orderly.network/ui\";\n\nexport interface BuySellRatioSettingsProps {\n  showBuySellRatio: boolean;\n  setShowBuySellRatio?: (show: boolean) => void;\n}\n\nexport const BuySellRatioSettings: FC<BuySellRatioSettingsProps> = ({\n  showBuySellRatio,\n  setShowBuySellRatio,\n}) => {\n  const { t } = useTranslation();\n  const [settingsOpen, setSettingsOpen] = useState(false);\n\n  return (\n    <PopoverRoot open={settingsOpen} onOpenChange={setSettingsOpen}>\n      <PopoverTrigger asChild>\n        <button\n          className=\"oui-cursor-pointer oui-text-base-contrast-54 hover:oui-text-base-contrast oui-transition-colors\"\n          aria-label={t(\"trading.orderBook.settings\")}\n        >\n          <MoreIcon />\n        </button>\n      </PopoverTrigger>\n      <PopoverContent align=\"end\" sideOffset={8} className=\"oui-w-[200px] \">\n        <Flex itemAlign=\"center\" gap={2}>\n          <Checkbox\n            id=\"show-buy-sell-ratio\"\n            checked={showBuySellRatio}\n            onCheckedChange={(checked) => {\n              setShowBuySellRatio?.(checked === true);\n              setSettingsOpen(false);\n            }}\n          />\n          <label\n            htmlFor=\"show-buy-sell-ratio\"\n            className=\"oui-cursor-pointer oui-text-xs oui-text-base-contrast-54\"\n          >\n            {t(\"trading.orderBook.showBuySellRatio\")}\n          </label>\n        </Flex>\n      </PopoverContent>\n    </PopoverRoot>\n  );\n};\n\nconst MoreIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n  <svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    viewBox=\"0 0 16 16\"\n    fill=\"currentColor\"\n    {...props}\n  >\n    <path d=\"M8.00521 6.66797C8.74161 6.66797 9.33854 7.26464 9.33854 8.0013C9.33854 8.73797 8.74161 9.33464 8.00521 9.33464C7.26881 9.33464 6.67188 8.73797 6.67188 8.0013C6.67188 7.26464 7.26881 6.66797 8.00521 6.66797Z\" />\n    <path d=\"M3.33333 6.66797C4.06973 6.66797 4.66667 7.26464 4.66667 8.0013C4.66667 8.73797 4.06973 9.33464 3.33333 9.33464C2.59693 9.33464 2 8.73797 2 8.0013C2 7.26464 2.59693 6.66797 3.33333 6.66797Z\" />\n    <path d=\"M12.6666 6.66797C13.403 6.66797 14 7.26464 14 8.0013C14 8.73797 13.403 9.33464 12.6666 9.33464C11.9302 9.33464 11.3333 8.73797 11.3333 8.0013C11.3333 7.26464 11.9302 6.66797 12.6666 6.66797Z\" />\n  </svg>\n);\n","import { Box, Select } from \"@orderly.network/ui\";\nimport { FC, useMemo } from \"react\";\n\ninterface DesktopDepthSelectProps {\n  depths: string[];\n  value?: string;\n  onChange?: (depth: number) => void;\n}\n\nexport const DesktopDepthSelect: FC<DesktopDepthSelectProps> = (props) => {\n  const options = useMemo(() => {\n    return props.depths.map((d) => ({\n      value: d,\n      label: `${d}`,\n    }));\n  }, [props.depths]);\n\n  return (\n    <Box pl={3} width={97} className=\"oui-py-[10px]\">\n      <Select.options\n        options={options}\n        size={\"xs\"}\n        value={props.value}\n        onValueChange={(value: any) => {\n          props.onChange?.(value);\n        }}\n      />\n    </Box>\n  );\n};\n","import React, { FC, ReactNode, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  Box,\n  CaretDownIcon,\n  CaretUpIcon,\n  cn,\n  Flex,\n  Popover,\n} from \"@orderly.network/ui\";\nimport { optimizeSymbolDisplay } from \"@orderly.network/utils\";\nimport {\n  ORDERBOOK_COIN_TYPE_KEY,\n  useOrderBookContext,\n} from \"../../base/orderBook/orderContext\";\n\ninterface DesktopHeaderProps {\n  quote: string;\n  base: string;\n}\n\nconst Option: React.FC<{\n  item: string;\n  base: string;\n  onClick: React.MouseEventHandler<HTMLElement>;\n}> = (props) => {\n  const { item, base, onClick } = props;\n  const { t } = useTranslation();\n  const [coinType, setCoinType] = useLocalStorage(\n    ORDERBOOK_COIN_TYPE_KEY,\n    base,\n  );\n\n  const optimizedItem = useMemo(() => {\n    return optimizeSymbolDisplay(item);\n  }, [item]);\n\n  return (\n    <Flex\n      justify=\"between\"\n      itemAlign=\"center\"\n      className={cn(\n        \"oui-w-full oui-px-2 oui-py-[3px]\",\n        \"oui-cursor-pointer\",\n        \"oui-text-xs\",\n        \"oui-text-base-contrast-54\",\n        \"hover:oui-bg-base-6\",\n        \"oui-rounded-[3px]\",\n        \"oui-transition-all\",\n        coinType === item && \"oui-bg-base-5\",\n      )}\n      onClick={(e) => {\n        setCoinType(item);\n        onClick(e);\n      }}\n    >\n      <div className=\"oui-overflow-hidden oui-text-ellipsis \">{`${t(\"common.total\")}(${optimizedItem})`}</div>\n      <div\n        className={cn(\n          \"oui-transition-all\",\n          \"oui-w-1\",\n          \"oui-h-1\",\n          \"oui-rounded-full\",\n          \"oui-bg-gradient-to-r\",\n          coinType === item &&\n            \"oui-from-[rgb(var(--oui-gradient-brand-start))] oui-to-[rgb(var(--oui-gradient-brand-end))]\",\n        )}\n      />\n    </Flex>\n  );\n};\n\nexport const DesktopHeader: FC<DesktopHeaderProps> = (props) => {\n  const { base, quote = \"USDC\" } = props;\n  const { showTotal } = useOrderBookContext();\n  const { t } = useTranslation();\n  const [popoverOpen, setOpen] = React.useState<boolean>(false);\n  const [coinType] = useLocalStorage(ORDERBOOK_COIN_TYPE_KEY, base);\n  const TriggerIcon = popoverOpen ? CaretUpIcon : CaretDownIcon;\n  const optimizedBase = useMemo(() => {\n    return optimizeSymbolDisplay(base);\n  }, [base]);\n  const optimizedCoinType = useMemo(() => {\n    return optimizeSymbolDisplay(coinType);\n  }, [coinType]);\n  return (\n    <Flex pl={3} justify={\"between\"} className=\"oui-py-[6px]\">\n      <Flex\n        gap={1}\n        className={cn(\"oui-basis-7/12\", showTotal && \"oui-basis-1/2\")}\n      >\n        <Box width={\"100%\"}>\n          <Title\n            id=\"oui-order-book-header-price\"\n            className=\"oui-orderBook-header-price oui-text-base-contrast-36\"\n          >\n            {`${t(\"common.price\")}(${quote})`}\n          </Title>\n        </Box>\n        <Box width={\"100%\"}>\n          <Title\n            justifyEnd\n            id=\"oui-order-book-header-qty\"\n            className=\"oui-orderBook-header-qty oui-text-base-contrast-36\"\n          >\n            {`${t(\"common.qty\")}(${optimizedBase})`}\n          </Title>\n        </Box>\n      </Flex>\n      <Flex\n        gap={1}\n        pr={3}\n        className={cn(\"oui-basis-5/12\", showTotal && \"oui-basis-1/2\")}\n      >\n        {showTotal ? (\n          <>\n            <Box className=\"oui-text-base-contrast-36\" width={\"100%\"}>\n              <Title\n                id=\"oui-order-book-header-total-quote\"\n                className=\"oui-orderBook-header-total-quote\"\n                justifyEnd\n              >\n                {`${t(\"common.total\")}(${optimizedBase})`}\n              </Title>\n            </Box>\n            <Box className=\"oui-text-base-contrast-36\" width={\"100%\"}>\n              <Title\n                id=\"oui-order-book-header-total-base\"\n                className=\"oui-orderBook-header-total-base\"\n                justifyEnd\n              >\n                {`${t(\"common.total\")}(${quote})`}\n              </Title>\n            </Box>\n          </>\n        ) : (\n          <Box width={\"100%\"}>\n            <Popover\n              open={popoverOpen}\n              onOpenChange={setOpen}\n              contentProps={{ className: cn(\"oui-w-28 oui-p-1\") }}\n              content={\n                <Flex\n                  direction=\"column\"\n                  itemAlign=\"start\"\n                  className={cn(\"oui-w-full oui-gap-0.5\")}\n                >\n                  {[base, quote].map((item) => {\n                    return (\n                      <Option\n                        key={`type-${item}`}\n                        item={item}\n                        base={base}\n                        onClick={() => setOpen(false)}\n                      />\n                    );\n                  })}\n                </Flex>\n              }\n            >\n              <Flex\n                justify=\"end\"\n                itemAlign=\"center\"\n                className=\"oui-cursor-pointer oui-select-none oui-text-base-contrast-36 oui-transition-all hover:oui-text-base-contrast\"\n              >\n                <Title\n                  id=\"oui-order-book-header-total-base\"\n                  className=\"oui-orderBook-header-total-base\"\n                  justifyEnd\n                >\n                  {`${t(\"common.total\")}(${optimizedCoinType})`}\n                </Title>\n                <TriggerIcon\n                  color=\"inherit\"\n                  className=\"oui-size-4 oui-text-3xs\"\n                />\n              </Flex>\n            </Popover>\n          </Box>\n        )}\n      </Flex>\n    </Flex>\n  );\n};\n\nconst Title: FC<{\n  justifyEnd?: boolean;\n  id?: string;\n  children: ReactNode;\n  className?: string;\n}> = (props) => {\n  const { children, className, justifyEnd = false } = props;\n  return (\n    <Flex\n      id={props.id}\n      className={cn(\n        className,\n        \"oui-items-end oui-text-xs\",\n        justifyEnd && \"oui-justify-end\",\n      )}\n    >\n      {children}\n    </Flex>\n  );\n};\n","import { FC, useState } from \"react\";\nimport {\n  Tooltip,\n  cn,\n  Flex,\n  Text,\n  SimpleDialog,\n  useScreen,\n} from \"@orderly.network/ui\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\n/**\n * default style is desktop effect\n */\nexport const MarkPriceView: FC<{\n  markPrice: number;\n  quote_dp: number;\n  className?: string;\n  iconSize?: number;\n}> = (props) => {\n  const { isMobile } = useScreen();\n\n  return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst DesktopLayout: FC<{\n  markPrice: number;\n  quote_dp: number;\n  className?: string;\n  iconSize?: number;\n}> = (props) => {\n  const { quote_dp, className, iconSize = 18 } = props;\n  const { t } = useTranslation();\n  return (\n    <Tooltip\n      content={t(\"trading.orderBook.markPrice.tooltip\")}\n      className=\"oui-max-w-[270px]\"\n    >\n      <Flex\n        gap={1}\n        className={cn(\"oui-cursor-pointer oui-text-2xs\", className)}\n      >\n        <FlagIcon size={iconSize} />\n        <Text.numeral\n          dp={quote_dp}\n          color=\"warning\"\n          className=\"oui-underline oui-text-base oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-warning-darken\"\n        >\n          {props.markPrice}\n        </Text.numeral>\n      </Flex>\n    </Tooltip>\n  );\n};\n\nconst MobileLayout: FC<{\n  markPrice: number;\n  quote_dp: number;\n  className?: string;\n  iconSize?: number;\n}> = (props) => {\n  const { quote_dp, className, iconSize = 18 } = props;\n  const [open, setOpen] = useState(false);\n  const { t } = useTranslation();\n  return (\n    <>\n      <Flex\n        gap={1}\n        className={cn(\"oui-cursor-pointer oui-text-2xs\", className)}\n        onClick={() => {\n          setOpen(true);\n        }}\n      >\n        <FlagIcon size={iconSize} />\n        <Text.numeral\n          dp={quote_dp}\n          color=\"warning\"\n          className=\"oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-warning-darken\"\n        >\n          {props.markPrice}\n        </Text.numeral>\n      </Flex>\n      <SimpleDialog\n        size=\"xs\"\n        open={open}\n        onOpenChange={setOpen}\n        title={t(\"common.tips\")}\n        actions={{\n          primary: {\n            label: t(\"common.ok\"),\n            onClick: () => setOpen(false),\n          },\n        }}\n      >\n        <Text>{t(\"trading.orderBook.markPrice.tooltip\")}</Text>\n      </SimpleDialog>\n    </>\n  );\n};\n\nconst FlagIcon = (props: { size: number }) => {\n  return (\n    <svg\n      width={props.size}\n      height={props.size}\n      viewBox=\"0 0 18 18\"\n      fill=\"currenColor\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      className=\"oui-fill-warning-darken\"\n    >\n      <path\n        fillRule=\"evenodd\"\n        clipRule=\"evenodd\"\n        d=\"M3.75 1.5a.75.75 0 0 1 .75.75h6a.75.75 0 0 1 .75.75v1.5h3a.75.75 0 0 1 .75.75V12a.75.75 0 0 1-.75.75H7.5a.75.75 0 0 1-.75-.75v-1.5H4.5v5.25a.75.75 0 0 1-1.5 0V2.25a.75.75 0 0 1 .75-.75M4.5 9h5.25V3.75H4.5zm6.75-3v3.75a.75.75 0 0 1-.75.75H8.25v.75h5.25V6z\"\n        // fill=\"#FF7D00\"\n      />\n    </svg>\n  );\n};\n","import { FC, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  ArrowDownShortIcon,\n  ArrowUpShortIcon,\n  Box,\n  cn,\n  Flex,\n  Text,\n  Tooltip,\n  SimpleDialog,\n  useScreen,\n} from \"@orderly.network/ui\";\n\nconst UNDERLINE_CLASS =\n  \"oui-cursor-pointer oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-base-contrast oui-inline-flex\";\n\n/**\n * default style is desktop effect\n */\nexport const MiddlePriceView: FC<{\n  markPrice: number;\n  lastPrice: number[];\n  quote_dp: number;\n  className?: string;\n  iconSize?: number;\n}> = (props) => {\n  const { isMobile } = useScreen();\n\n  return isMobile ? <MobileLayout {...props} /> : <DesktopLayout {...props} />;\n};\n\nconst DesktopLayout: FC<{\n  markPrice: number;\n  lastPrice: number[];\n  quote_dp: number;\n  className?: string;\n  iconSize?: number;\n}> = (props) => {\n  const { lastPrice, quote_dp, className, iconSize = 18 } = props;\n  const { t } = useTranslation();\n\n  const [prevLastPrice, middlePrice] = lastPrice;\n  const down = middlePrice < prevLastPrice;\n  const up = middlePrice > prevLastPrice;\n\n  return (\n    <Tooltip\n      content={t(\"trading.orderBook.middlePrice.tooltip\")}\n      className=\"oui-max-w-[240px]\"\n    >\n      <span className={UNDERLINE_CLASS}>\n        <Flex\n          gap={1}\n          className={cn(\n            up ? \"oui-text-trade-profit\" : down ? \"oui-text-trade-loss\" : \"\",\n            className,\n          )}\n        >\n          <Text.numeral dp={quote_dp} intensity={98}>\n            {middlePrice}\n          </Text.numeral>\n          <Box width={19}>\n            {down && (\n              <ArrowDownShortIcon size={iconSize} color=\"danger\" opacity={1} />\n            )}\n            {up && (\n              <ArrowUpShortIcon size={iconSize} color=\"success\" opacity={1} />\n            )}\n          </Box>\n        </Flex>\n      </span>\n    </Tooltip>\n  );\n};\n\nconst MobileLayout: FC<{\n  markPrice: number;\n  lastPrice: number[];\n  quote_dp: number;\n  className?: string;\n  iconSize?: number;\n}> = (props) => {\n  const { lastPrice, quote_dp, className, iconSize = 18 } = props;\n  const [open, setOpen] = useState(false);\n  const { t } = useTranslation();\n\n  const [prevLastPrice, middlePrice] = lastPrice;\n  const down = middlePrice < prevLastPrice;\n  const up = middlePrice > prevLastPrice;\n\n  const handleTriggerClick = () => setOpen(true);\n  const handleKeyDown = (e: React.KeyboardEvent) => {\n    if (e.key === \"Enter\" || e.key === \" \") {\n      e.preventDefault();\n      setOpen(true);\n    }\n  };\n\n  return (\n    <>\n      <span\n        role=\"button\"\n        tabIndex={0}\n        className={UNDERLINE_CLASS}\n        onClick={handleTriggerClick}\n        onKeyDown={handleKeyDown}\n        aria-label={t(\"trading.orderBook.middlePrice.tooltip\")}\n      >\n        <Flex\n          gap={1}\n          className={cn(\n            up ? \"oui-text-trade-profit\" : down ? \"oui-text-trade-loss\" : \"\",\n            className,\n          )}\n        >\n          <Text.numeral dp={quote_dp} intensity={98}>\n            {middlePrice}\n          </Text.numeral>\n          <Box width={19}>\n            {down && (\n              <ArrowDownShortIcon size={iconSize} color=\"danger\" opacity={1} />\n            )}\n            {up && (\n              <ArrowUpShortIcon size={iconSize} color=\"success\" opacity={1} />\n            )}\n          </Box>\n        </Flex>\n      </span>\n      <SimpleDialog\n        size=\"xs\"\n        open={open}\n        onOpenChange={setOpen}\n        title={t(\"common.tips\")}\n        actions={{\n          primary: {\n            label: t(\"common.ok\"),\n            onClick: () => setOpen(false),\n          },\n        }}\n      >\n        <Text>{t(\"trading.orderBook.middlePrice.tooltip\")}</Text>\n      </SimpleDialog>\n    </>\n  );\n};\n","import { FC, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Text, Tooltip } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { MarkPriceView } from \"../../base/orderBook/markPrice\";\nimport { MiddlePriceView } from \"../../base/orderBook/midPriceView\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\n\ninterface DesktopMarkPriceProps {\n  markPrice: number;\n  lastPrice: number[];\n  asks: number[][];\n  bids: number[][];\n  symbolInfo: BasicSymbolInfo;\n}\n\nexport const DesktopMarkPrice: FC<DesktopMarkPriceProps> = (props) => {\n  const { markPrice = 0, lastPrice, asks, bids, symbolInfo } = props;\n  const { showTotal } = useOrderBookContext();\n\n  return (\n    <div className=\"oui-flex oui-flex-row oui-pl-3 oui-tabular-nums oui-justify-between oui-text-base-contrast-80 oui-text-xs oui-relative oui-cursor-pointer oui-py-[6px]\">\n      <div\n        className={cn(\n          \"oui-basis-7/12 oui-flex oui-flex-row oui-items-center oui-mr-2 oui-justify-between\",\n          showTotal && \"oui-basis-5/12\",\n        )}\n      >\n        <MiddlePriceView\n          markPrice={markPrice}\n          lastPrice={lastPrice}\n          quote_dp={symbolInfo.quote_dp}\n          className=\"oui-text-base\"\n        />\n        <MarkPriceView markPrice={markPrice} quote_dp={symbolInfo.quote_dp} />\n      </div>\n      <div\n        className={cn(\n          \"oui-basis-5/12 oui-flex oui-items-center oui-fex-row oui-overflow-hidden oui-relative oui-justify-end\",\n          showTotal && \"oui-basis-7/12\",\n          \"oui-pr-3\",\n        )}\n      >\n        <Spread asks={asks} bids={bids} />\n      </div>\n    </div>\n  );\n};\n\nconst Spread: FC<{\n  asks: number[][];\n  bids: number[][];\n}> = (props) => {\n  const { asks, bids } = props;\n\n  const { t } = useTranslation();\n\n  const spread = useMemo(() => {\n    if (bids.length === 0 && asks.length === 0) {\n      return 0;\n    }\n    const bidRaw = bids[0]?.[0];\n    const bid1 =\n      bidRaw === undefined || Number.isNaN(bidRaw)\n        ? new Decimal(0)\n        : new Decimal(bidRaw);\n\n    const asksReversed = [...asks].reverse();\n    const index = asksReversed.findIndex((item) => !Number.isNaN(item[0]));\n    let ask1 = new Decimal(0);\n    if (index !== -1) {\n      const askRaw = asksReversed[index][0];\n      ask1 = Number.isNaN(askRaw) ? new Decimal(0) : new Decimal(askRaw);\n    }\n\n    const mid = ask1.add(bid1).div(2);\n    if (mid.isZero()) {\n      return 0;\n    }\n    const dValue = ask1.sub(bid1).div(mid);\n    return dValue\n      .mul(1_000_000)\n      .add(0.1)\n      .toDecimalPlaces(0, Decimal.ROUND_CEIL)\n      .div(10_000)\n      .toNumber();\n  }, [asks, bids]);\n\n  return (\n    <div>\n      <Tooltip\n        content={t(\"trading.orderBook.spreadRatio.tooltip\")}\n        className=\"oui-max-w-[240px]\"\n      >\n        <Text\n          size=\"2xs\"\n          intensity={36}\n          className={\n            \"oui-cursor-pointer oui-underline oui-decoration-dashed oui-decoration-1 oui-underline-offset-4 oui-decoration-base-contrast-36\"\n          }\n        >\n          {`${spread}%`}\n        </Text>\n      </Tooltip>\n    </div>\n  );\n};\n","import { FC, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport { cn, Flex, Grid, Spinner, Text, VectorIcon } from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { BuySellRatioBar, BuySellRatio } from \"../../base/orderBook\";\nimport {\n  ORDERBOOK_COIN_TYPE_KEY,\n  OrderBookProvider,\n} from \"../../base/orderBook/orderContext\";\nimport { InjectableDesktopAsks } from \"./asks.desktop\";\nimport { InjectableDesktopBids } from \"./bids.desktop\";\nimport { BuySellRatioSettings } from \"./buySellRatio\";\nimport { DesktopDepthSelect } from \"./depthSelect.desktop\";\nimport { DesktopHeader } from \"./header.desktop\";\nimport { DesktopMarkPrice } from \"./markPrice.desktop\";\n\nexport interface DesktopOrderBookProps {\n  asks: any[];\n  bids: any[];\n  markPrice: number;\n  lastPrice: number[];\n  onItemClick?: (item: number[]) => void;\n  depths: string[];\n  activeDepth?: string;\n  onDepthChange?: (depth: number) => void;\n  //\n  autoSize?: boolean;\n  level?: number;\n  base: string;\n  quote: string;\n\n  isLoading?: boolean;\n\n  cellHeight?: number;\n\n  className?: string;\n  pendingOrders?: number[];\n  symbolInfo: BasicSymbolInfo;\n  showBuySellRatio?: boolean;\n  setShowBuySellRatio?: (show: boolean) => void;\n  buySellRatio?: BuySellRatio | null;\n}\n\nexport const DesktopOrderBook: FC<DesktopOrderBookProps> = (props) => {\n  const {\n    lastPrice,\n    markPrice,\n    quote,\n    base,\n    isLoading,\n    onDepthChange,\n    showBuySellRatio = true,\n    setShowBuySellRatio,\n    buySellRatio,\n  } = props;\n\n  const { t } = useTranslation();\n  const divRef = useRef<HTMLDivElement>(null);\n\n  const [showTotal, setShowTotal] = useState(false);\n\n  const [coinType, setCoinType] = useLocalStorage(\n    ORDERBOOK_COIN_TYPE_KEY,\n    base,\n  );\n\n  useEffect(() => {\n    if (coinType !== quote && base) {\n      setCoinType(base);\n    }\n  }, [base, quote]);\n\n  useEffect(() => {\n    const resizeObserver = new ResizeObserver((entries) => {\n      for (const entry of entries) {\n        const { inlineSize: width } = entry.borderBoxSize[0];\n        setShowTotal(width >= 360);\n      }\n    });\n\n    const targetDiv = divRef.current;\n\n    if (targetDiv) {\n      resizeObserver.observe(targetDiv);\n    }\n\n    return () => {\n      if (targetDiv) {\n        resizeObserver.unobserve(targetDiv);\n      }\n    };\n  }, []);\n\n  return (\n    <OrderBookProvider\n      cellHeight={props.cellHeight ?? 20}\n      onItemClick={props.onItemClick}\n      depth={props.activeDepth}\n      showTotal={showTotal}\n      pendingOrders={props.pendingOrders || EMPTY_LIST}\n      symbolInfo={props.symbolInfo}\n      showBuySellRatio={showBuySellRatio}\n      onShowBuySellRatioChange={setShowBuySellRatio}\n    >\n      <Grid\n        cols={1}\n        rows={showBuySellRatio ? 6 : 5}\n        id=\"oui-orderbook-desktop\"\n        ref={divRef}\n        className={cn(\n          \"oui-orderBook\",\n          \"oui-relative oui-size-full\",\n          showBuySellRatio\n            ? \"oui-grid-rows-[auto,auto,1fr,auto,1fr,auto]\"\n            : \"oui-grid-rows-[auto,auto,1fr,auto,1fr]\",\n        )}\n      >\n        <Flex justify=\"between\" itemAlign=\"center\" className=\"oui-pr-3\">\n          <DesktopDepthSelect\n            depths={props.depths}\n            value={props.activeDepth}\n            onChange={onDepthChange}\n          />\n          <BuySellRatioSettings\n            showBuySellRatio={showBuySellRatio}\n            setShowBuySellRatio={setShowBuySellRatio}\n          />\n        </Flex>\n        <DesktopHeader quote={quote} base={base} />\n        <InjectableDesktopAsks\n          data={[...props.asks]}\n          symbolInfo={props.symbolInfo}\n          depth={props.activeDepth}\n        />\n        <DesktopMarkPrice\n          lastPrice={lastPrice}\n          markPrice={markPrice}\n          // ======================================================================\n          // ==         🔥🔥🔥🔥🔥🔥🔥 DO NOT MODIFY THIS 🔥🔥🔥🔥🔥🔥🔥              ==\n          // ======================================================================\n          // Use shallow copy here to avoid mutating the original props array when sorting or modifying inside the component.\n          // Note: This only clones the array itself, not the element objects.\n          asks={[...props.asks]}\n          bids={[...props.bids]}\n          symbolInfo={props.symbolInfo}\n        />\n        <InjectableDesktopBids\n          data={[...props.bids]}\n          symbolInfo={props.symbolInfo}\n          depth={props.activeDepth}\n        />\n        {showBuySellRatio && (\n          <BuySellRatioBar\n            ratio={buySellRatio || null}\n            className=\"oui-text-2xs oui-px-3 oui-h-[38px]\"\n          />\n        )}\n        {isLoading && (\n          <div className=\"oui-bg-bg-8/70 oui-absolute oui-inset-0 oui-z-10 oui-flex oui-items-center oui-justify-center\">\n            <Spinner />\n          </div>\n        )}\n      </Grid>\n    </OrderBookProvider>\n  );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { FundingRateState } from \"./fundingRate.script\";\n\nexport const FundingRate: FC<FundingRateState> = (props) => {\n  const { data, onClick } = props;\n  const predFundingRate = data.est_funding_rate;\n  const countDown = data.countDown;\n  const { t } = useTranslation();\n  return (\n    <Flex direction={\"column\"} itemAlign={\"start\"} pb={2}>\n      <Text\n        size=\"2xs\"\n        intensity={36}\n        className=\"oui-cursor-pointer oui-underline oui-decoration-line-16 oui-decoration-dashed oui-underline-offset-4\"\n        onClick={onClick}\n      >\n        {t(\"trading.fundingRate.predFundingRate\")}\n      </Text>\n      {predFundingRate === null ? (\n        \"--\"\n      ) : (\n        <div className=\"orderly-flex orderly-gap-1 oui-text-2xs oui-text-base-contrast-36\">\n          {/* <span className=\"orderly-text-warning-darken\">{`${predFundingRate}%`}</span> */}\n          <Text.numeral suffix=\"%\" dp={4} intensity={80}>\n            {predFundingRate ?? \"--\"}\n          </Text.numeral>\n          <span>{\" in\"}</span>\n          <span>{\" \" + countDown}</span>\n        </div>\n      )}\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\nconst TIMEFRAME_CONFIG = [\n  { key: \"1H\", hours: 1 },\n  { key: \"4H\", hours: 4 },\n  { key: \"1D\", hours: 24 },\n  { key: \"7D\", hours: 168 },\n  { key: \"30D\", hours: 720 },\n  { key: \"1Y\", hours: 8760 },\n] as const;\n\ninterface FundingRateOptions {\n  symbol: string;\n}\n\nexport const useFundingRateModalScript = (options: FundingRateOptions) => {\n  const { data, isLoading } = useFundingDetails(options.symbol);\n  const {\n    last_funding_rate,\n    est_funding_rate,\n    next_funding_time,\n    last_funding_rate_timestamp,\n  } = useFundingRateBySymbol(options.symbol) ?? {};\n\n  const [{ aggregated, rows }] = usePositionStream(options.symbol);\n\n  const { notional } = aggregated ?? {};\n\n  const fundingPeriod = useMemo(() => {\n    if (!data || isLoading) {\n      return \"-\";\n    }\n    return `${data.funding_period}h`;\n  }, [data, isLoading]);\n\n  const capFunding = useMemo(() => {\n    if (!data || isLoading) {\n      return \"-\";\n    }\n    return `${new Decimal(data.cap_funding).mul(100).toNumber()}%`;\n  }, [data, isLoading]);\n\n  const floorFunding = useMemo(() => {\n    if (!data || isLoading) {\n      return \"-\";\n    }\n    return `${new Decimal(data.floor_funding).mul(100).toNumber()}%`;\n  }, [data, isLoading]);\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 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 || !data?.funding_period) {\n      return undefined;\n    }\n    const rate = new Decimal(last_funding_rate).mul(100).toNumber();\n    const annualized = calculateAnnualizedRate(rate, data.funding_period);\n    return annualized ? `${annualized}%` : undefined;\n  }, [last_funding_rate, data?.funding_period]);\n\n  const settlementIntervalHours = useMemo(() => {\n    if (!next_funding_time || !last_funding_rate_timestamp) return 8;\n    const diff = next_funding_time - last_funding_rate_timestamp;\n    return diff / 3_600_000;\n  }, [next_funding_time, last_funding_rate_timestamp]);\n\n  const estFundingRateByTimeframe = useMemo(() => {\n    if (\n      est_funding_rate === undefined ||\n      est_funding_rate === null ||\n      settlementIntervalHours <= 0\n    ) {\n      return [];\n    }\n    return TIMEFRAME_CONFIG.map(({ key, hours }) => {\n      const rate = new Decimal(est_funding_rate)\n        .mul(hours)\n        .div(settlementIntervalHours)\n        .mul(100);\n      const str = rate.toFixed(5);\n      const trimmed = str.replace(/\\.?0+$/, \"\") || \"0\";\n      return { timeframe: key, value: `${trimmed}%` };\n    });\n  }, [est_funding_rate, settlementIntervalHours]);\n\n  return {\n    fundingPeriod,\n    capFunding,\n    floorFunding,\n    lastFundingRate,\n    estFundingFee,\n    lastFundingRateAnnualized,\n    estFundingRateByTimeframe,\n  };\n};\n\nexport type FundingRateModalState = ReturnType<\n  typeof useFundingRateModalScript\n>;\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Text, Divider } from \"@orderly.network/ui\";\nimport type { FundingRateModalState } from \"./fundingRateModal.script\";\n\nexport const FundingRateModal: React.FC<FundingRateModalState> = (props) => {\n  const { t } = useTranslation();\n  const {\n    fundingPeriod,\n    capFunding,\n    floorFunding,\n    lastFundingRate,\n    estFundingFee,\n    lastFundingRateAnnualized,\n    estFundingRateByTimeframe,\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  return (\n    <Flex width={\"100%\"} itemAlign={\"center\"} direction=\"column\" gap={1}>\n      <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n        <Text intensity={54}>\n          {t(\"trading.fundingRate.predFundingRate.interval\")}\n        </Text>\n        <Text intensity={80}>{fundingPeriod}</Text>\n      </Flex>\n      <Flex justify=\"between\" itemAlign={\"center\"} width={\"100%\"}>\n        <Text intensity={54}>\n          {t(\"trading.fundingRate.predFundingRate.cap\")} /\n          {t(\"trading.fundingRate.predFundingRate.floor\")}\n        </Text>\n        <Text intensity={80}>\n          {capFunding} / {floorFunding}\n        </Text>\n      </Flex>\n      {renderRow(\n        t(\"trading.fundingRate.lastFundingRate\"),\n        lastFundingRate,\n        lastFundingRateAnnualized,\n      )}\n      {estFundingRateByTimeframe.map(({ timeframe, value }) =>\n        renderRow(\n          t(\"trading.fundingRate.estFundingRateWithTimeframe\", {\n            timeframe: timeframe as string,\n          }),\n          value,\n        ),\n      )}\n      {renderRow(t(\"trading.fundingRate.estimatedFundingFee\"), estFundingFee)}\n      <Divider my={4} className=\"oui-w-full\" intensity={8} />\n      {t(\"markets.symbolInfoBar.predFundingRate.tooltip\")}\n    </Flex>\n  );\n};\n","import React from \"react\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { registerSimpleDialog, registerSimpleSheet } from \"@orderly.network/ui\";\nimport { useFundingRateModalScript } from \"./fundingRateModal.script\";\nimport { FundingRateModal } from \"./fundingRateModal.ui\";\n\nexport const FundingRateModalWidget: React.FC<{ symbol: string }> = (props) => {\n  const state = useFundingRateModalScript(props);\n  return <FundingRateModal {...state} />;\n};\n\nexport const FundingRateDialogId = \"FundingRateDialogId\";\nexport const FundingRateSheetId = \"FundingRateSheetId\";\n\nregisterSimpleDialog(FundingRateDialogId, FundingRateModalWidget, {\n  size: \"md\",\n  classNames: { content: \"oui-border oui-border-line-6\" },\n  title: () => i18n.t(\"funding.fundingRate\"),\n});\n\nregisterSimpleSheet(FundingRateSheetId, FundingRateModalWidget, {\n  classNames: { content: \"oui-text-sm\" },\n  title: () => i18n.t(\"funding.fundingRate\"),\n});\n","import { useCallback } from \"react\";\nimport { useFundingRate } from \"@orderly.network/hooks\";\nimport { modal } from \"@orderly.network/ui\";\nimport { FundingRateSheetId } from \"../fundingRateModal/fundingRateModal.widget\";\n\nexport const useFundingRateScript = (symbol: string) => {\n  const data = useFundingRate(symbol);\n  const onClick = useCallback<React.MouseEventHandler<HTMLElement>>(() => {\n    modal.show(FundingRateSheetId, { symbol });\n  }, [symbol]);\n  return {\n    data,\n    onClick,\n  };\n};\n\nexport type FundingRateState = ReturnType<typeof useFundingRateScript>;\n","import React from \"react\";\nimport { useFundingRateScript } from \"./fundingRate.script\";\nimport { FundingRate } from \"./fundingRate.ui\";\n\nexport const FundingRateWidget: React.FC<{ symbol: string }> = (props) => {\n  const state = useFundingRateScript(props.symbol);\n  return <FundingRate {...state} />;\n};\n","export { FundingRate } from \"./fundingRate.ui\";\nexport { FundingRateWidget } from \"./fundingRate.widget\";\nexport { useFundingRateScript } from \"./fundingRate.script\";\n","import { FC, useContext, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { Box, cn, Flex, Text } from \"@orderly.network/ui\";\nimport { getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { CellBar } from \"../../base/orderBook/cellBar\";\nimport {\n  ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n  OrderBookContext,\n} from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType, QtyMode } from \"../../base/orderBook/types\";\n\nexport interface OrderBookCellProps {\n  background: string;\n  price: number;\n  quantity: number;\n  accumulatedAmount: number;\n  // size: number;\n  count: number;\n  accumulated: number;\n  type: OrderBookCellType;\n  mode: QtyMode;\n}\n\nexport const OrderBookCell: FC<OrderBookCellProps> = (props) => {\n  const { accumulated, count, quantity, price, type, accumulatedAmount } =\n    props;\n\n  const width = (accumulated / count) * 100;\n\n  const { cellHeight, onItemClick, depth, symbolInfo } =\n    useContext(OrderBookContext);\n\n  const { base_dp, quote_dp, base, quote } = symbolInfo;\n\n  const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n    ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n    \"qty\",\n  );\n\n  const totalAmount = Number.isNaN(accumulated)\n    ? \"-\"\n    : accumulatedAmount?.toString();\n\n  const dp = useMemo(() => {\n    return getPrecisionByNumber(depth || `${quote_dp}`);\n  }, [depth, quote_dp]);\n\n  const renderCell = () => {\n    switch (coinUnit) {\n      case \"base\":\n        return (\n          <Text.numeral className=\"oui-text-base-contrast-80\" dp={base_dp}>\n            {accumulated}\n          </Text.numeral>\n        );\n      case \"quote\":\n        return (\n          <Text.numeral className=\"oui-text-base-contrast-80\" dp={0}>\n            {totalAmount}\n          </Text.numeral>\n        );\n      default:\n        return (\n          <Text.numeral className=\"oui-text-base-contrast-80\" dp={base_dp}>\n            {Number.isNaN(quantity) ? \"-\" : quantity}\n          </Text.numeral>\n        );\n    }\n  };\n\n  return (\n    <Box\n      className={cn(\n        \"oui-relative oui-w-full oui-cursor-pointer oui-overflow-hidden oui-text-2xs oui-tabular-nums\",\n      )}\n      style={{ height: `${cellHeight}px` }}\n      onClick={() => {\n        if (Number.isNaN(price) || Number.isNaN(quantity)) {\n          return;\n        }\n        onItemClick?.([price, quantity]);\n      }}\n    >\n      <Flex itemAlign=\"center\" justify={\"between\"}>\n        <Text.numeral\n          color={type === OrderBookCellType.BID ? \"buy\" : \"sell\"}\n          dp={dp}\n        >\n          {price}\n        </Text.numeral>\n        {renderCell()}\n      </Flex>\n      {Number.isNaN(width) ? null : (\n        <CellBar\n          width={width}\n          className={cn(\n            type === OrderBookCellType.ASK\n              ? \"oui-bg-trade-loss/20\"\n              : \"oui-bg-trade-profit/20\",\n          )}\n        />\n      )}\n    </Box>\n  );\n};\n","import { FC } from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { OrderBookCell } from \"./cell\";\n\ninterface OrderBookListProps {\n  type: OrderBookCellType;\n  data: number[][];\n  countQty: number;\n}\n\nexport const ListBox: FC<OrderBookListProps> = (props) => {\n  const { data } = props;\n  const { mode } = useOrderBookContext();\n  return (\n    <Box className=\"oui-orderBook-list oui-order-book-list oui-flex oui-w-full oui-flex-col oui-gap-px\">\n      {data.map((item, index) => {\n        return (\n          <OrderBookCell\n            key={`item-${index}`}\n            background={\"\"}\n            price={item[0]}\n            quantity={item[1]}\n            accumulated={item[2]}\n            accumulatedAmount={item[3]}\n            count={props.countQty}\n            type={props.type}\n            mode={mode}\n          />\n        );\n      })}\n    </Box>\n  );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { ListBox } from \"./listBox\";\n\nexport interface Props {\n  data: number[][];\n}\nexport const Asks: FC<Props> = (props) => {\n  const { data } = props;\n  const countQty = useMemo(() => {\n    const len = data.length;\n    let max = Number.NaN;\n\n    let index = 0;\n\n    while (Number.isNaN(max) && index < len) {\n      max = data[index][2];\n      index++;\n    }\n\n    return max;\n  }, [data]);\n  return (\n    <ListBox type={OrderBookCellType.ASK} data={data} countQty={countQty} />\n  );\n};\n","import { FC, useMemo } from \"react\";\nimport { OrderBookCellType } from \"../../base/orderBook/types\";\nimport { ListBox } from \"./listBox\";\n\nexport interface Props {\n  data: any[];\n}\n\nexport const Bids: FC<Props> = (props) => {\n  const { data } = props;\n  const countQty = useMemo(() => {\n    let max = Number.NaN;\n    // let len = data.length;\n    let index = data.length - 1;\n\n    while (Number.isNaN(max) && index > 0) {\n      max = data[index][2];\n      index--;\n    }\n\n    return max;\n    // return data.length > 0 ? data[data.length - 1][2] : 0;\n  }, [data]);\n\n  return (\n    <ListBox type={OrderBookCellType.BID} data={data} countQty={countQty} />\n  );\n};\n","import { FC, useMemo } from \"react\";\nimport { Box, Picker } from \"@orderly.network/ui\";\n\ninterface DepthSelectProps {\n  depth: ReadonlyArray<string> | string[];\n  value?: string;\n  onChange?: (depth: number) => void;\n}\n\nexport const DepthSelect: FC<DepthSelectProps> = (props) => {\n  const options = useMemo(() => {\n    return props.depth.map((d) => ({\n      value: d,\n      label: `${d}`,\n    }));\n  }, [props.depth]);\n  return (\n    <Box\n      id=\"oui-order-book-depth\"\n      className=\"oui-orderBook-depth oui-w-full oui-pt-2\"\n    >\n      {/* <Select size={\"small\"} value={\"0.001\"} /> */}\n      <Picker\n        options={options}\n        fullWidth\n        size={\"sm\"}\n        value={props.value}\n        className=\"oui-text-2xs oui-text-base-contrast-54\"\n        onValueChange={(value) => {\n          //\n          props.onChange?.(value);\n        }}\n      />\n    </Box>\n  );\n};\n","import React, { FC, useMemo } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  CaretDownIcon,\n  CaretUpIcon,\n  Flex,\n  Picker,\n  Text,\n} from \"@orderly.network/ui\";\nimport { SelectOption } from \"@orderly.network/ui/src/select/withOptions\";\nimport { ORDERBOOK_MOBILE_COIN_TYPE_KEY } from \"../../base/orderBook/orderContext\";\n\ninterface Props {\n  quote: string;\n  base: string;\n}\n\nexport const Header: FC<Props> = (props) => {\n  const { t } = useTranslation();\n\n  const { base, quote } = props;\n\n  const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n    ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n    \"qty\",\n  );\n\n  const options = useMemo<SelectOption[]>(() => {\n    return [\n      {\n        value: \"qty\",\n        label: `${t(\"common.quantity\")}(${base})`,\n        data: [t(\"common.quantity\"), base],\n      },\n      {\n        value: \"base\",\n        label: `${t(\"common.total\")}(${base})`,\n        data: [t(\"common.total\"), base],\n      },\n      {\n        value: \"quote\",\n        label: `${t(\"common.total\")}(${quote})`,\n        data: [t(\"common.total\"), quote],\n      },\n    ];\n  }, [t, base, quote]);\n\n  return (\n    <Flex\n      justify={\"between\"}\n      width={\"100%\"}\n      className=\"oui-py-[5px] oui-text-2xs oui-text-base-contrast-36\"\n    >\n      <Flex\n        direction={\"column\"}\n        itemAlign={\"start\"}\n        id=\"oui-order-book-header-price\"\n        className=\"oui-orderBook-header-price\"\n      >\n        <Text>{t(\"common.price\")}</Text>\n        <Text>{`(${quote})`}</Text>\n      </Flex>\n      <Picker\n        size=\"sm\"\n        value={coinUnit}\n        onValueChange={setCoinUnit}\n        options={options}\n        valueRenderer={(_, { open, data }) => {\n          return (\n            <Flex justify=\"between\" itemAlign=\"center\" gap={1}>\n              {Array.isArray(data) && (\n                <Flex direction={\"column\"} itemAlign={\"end\"}>\n                  {data[0] && <Text>{data[0]}</Text>}\n                  {data[1] && <Text>({data[1]})</Text>}\n                </Flex>\n              )}\n              {open ? (\n                <CaretUpIcon size={14} color=\"inherit\" />\n              ) : (\n                <CaretDownIcon size={14} color=\"inherit\" />\n              )}\n            </Flex>\n          );\n        }}\n      />\n    </Flex>\n  );\n};\n","import { FC } from \"react\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { MarkPriceView } from \"../../base/orderBook/markPrice\";\nimport { MiddlePriceView } from \"../../base/orderBook/midPriceView\";\nimport { useOrderBookContext } from \"../../base/orderBook/orderContext\";\n\ninterface MarkPriceProps {\n  markPrice: number;\n  lastPrice: number[];\n}\n\nexport const MarkPrice: FC<MarkPriceProps> = (props) => {\n  const { symbolInfo } = useOrderBookContext();\n  const { quote_dp } = symbolInfo;\n\n  return (\n    <Flex\n      id=\"oui-order-book-mark-price\"\n      className=\"oui-orderBook-markPrice oui-py-[6px]\"\n      width={\"100%\"}\n      justify={\"between\"}\n    >\n      <MiddlePriceView\n        markPrice={props.markPrice}\n        lastPrice={props.lastPrice}\n        quote_dp={quote_dp}\n        className=\"oui-text-sm\"\n        iconSize={14}\n      />\n      <MarkPriceView\n        markPrice={props.markPrice}\n        quote_dp={quote_dp}\n        className=\"oui-text-2xs\"\n        iconSize={12}\n      />\n    </Flex>\n  );\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport {\n  Checkbox,\n  cn,\n  Flex,\n  Sheet,\n  SheetContent,\n  SheetTrigger,\n  Spinner,\n  Text,\n  VectorIcon,\n} from \"@orderly.network/ui\";\nimport { BasicSymbolInfo } from \"../../../types/types\";\nimport { BuySellRatioBar, BuySellRatio } from \"../../base/orderBook\";\nimport {\n  ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n  OrderBookProvider,\n} from \"../../base/orderBook/orderContext\";\nimport { BuySellRatioSettings } from \"../../desktop/orderBook/buySellRatio\";\nimport { FundingRateWidget } from \"../fundingRate\";\nimport { Asks } from \"./asks\";\nimport { Bids } from \"./bids\";\nimport { DepthSelect } from \"./depthSelect\";\nimport { Header } from \"./header\";\nimport { MarkPrice } from \"./markPrice\";\n\nexport interface OrderBookProps {\n  asks: any[];\n  bids: any[];\n  markPrice: number;\n  lastPrice: number[];\n  onItemClick?: (item: number[]) => void;\n  depths?: string[];\n  activeDepth?: string;\n  onDepthChange?: (depth: number) => void;\n  //\n  autoSize?: boolean;\n  level?: number;\n  base: string;\n  quote: string;\n\n  isLoading?: boolean;\n\n  cellHeight?: number;\n\n  className?: string;\n  /** Same key as order book stream / funding APIs (e.g. may include broker suffix). */\n  symbol: string;\n  symbolInfo: BasicSymbolInfo;\n  showBuySellRatio?: boolean;\n  setShowBuySellRatio?: (show: boolean) => void;\n  buySellRatio?: BuySellRatio | null;\n}\n\nexport const OrderBook: FC<OrderBookProps> = (props) => {\n  const {\n    lastPrice,\n    markPrice,\n    quote,\n    base,\n    isLoading,\n    onDepthChange,\n    showBuySellRatio = true,\n    setShowBuySellRatio,\n    buySellRatio,\n  } = props;\n\n  const { t } = useTranslation();\n  const [settingsOpen, setSettingsOpen] = useState(false);\n\n  const [coinUnit, setCoinUnit] = useLocalStorage<\"qty\" | \"base\" | \"quote\">(\n    ORDERBOOK_MOBILE_COIN_TYPE_KEY,\n    \"qty\",\n  );\n\n  return (\n    <OrderBookProvider\n      cellHeight={props.cellHeight ?? 20}\n      onItemClick={props.onItemClick}\n      depth={props.activeDepth}\n      pendingOrders={EMPTY_LIST}\n      showTotal={false}\n      symbolInfo={props.symbolInfo}\n      showBuySellRatio={showBuySellRatio}\n      onShowBuySellRatioChange={setShowBuySellRatio}\n    >\n      <Flex\n        direction={\"column\"}\n        p={2}\n        id=\"oui-orderbook-mobile\"\n        className={cn(\n          \"oui-orderBook oui-relative oui-size-full\",\n          props.className,\n        )}\n        justify={\"start\"}\n        itemAlign={\"start\"}\n      >\n        <Flex justify=\"between\" itemAlign=\"center\" className=\"oui-w-full\">\n          <FundingRateWidget symbol={props.symbol} />\n          <BuySellRatioSettings\n            showBuySellRatio={showBuySellRatio}\n            setShowBuySellRatio={setShowBuySellRatio}\n          />\n        </Flex>\n        <Header quote={quote} base={base} />\n        <Asks data={props.asks} />\n        <MarkPrice lastPrice={lastPrice} markPrice={markPrice} />\n        <Bids data={props.bids} />\n        <DepthSelect\n          depth={props.depths || EMPTY_LIST}\n          value={props.activeDepth}\n          onChange={onDepthChange}\n        />\n        {showBuySellRatio && (\n          <BuySellRatioBar\n            ratio={buySellRatio || null}\n            className=\"oui-px-0 oui-text-[8px] oui-h-6 oui-mt-2\"\n          />\n        )}\n        {isLoading && (\n          <div className=\"oui-bg-base-800/70 oui-absolute oui-inset-0 oui-z-10 oui-flex oui-h-full oui-min-h-[420px] oui-items-center oui-justify-center\">\n            <Spinner />\n          </div>\n        )}\n      </Flex>\n    </OrderBookProvider>\n  );\n};\n","import React from \"react\";\nimport { Box } from \"@orderly.network/ui\";\nimport { DesktopOrderBook } from \"../../desktop/orderBook/index.desktop\";\nimport { OrderBook as MWebOrderBook } from \"../../mobile/orderBook\";\nimport type { OrderBookState } from \"./orderBook.script\";\n\nexport const OrderBook: React.FC<OrderBookState & { className?: string }> = (\n  props,\n) => {\n  return (\n    <Box\n      className=\"oui-orderBook oui-font-semibold\"\n      width={\"100%\"}\n      height={\"100%\"}\n    >\n      {props.isMobile ? (\n        <MWebOrderBook\n          level={props.level}\n          asks={props.asks!}\n          bids={props.bids!}\n          markPrice={props.markPrice!}\n          lastPrice={props.lastPrice!}\n          depths={props.depths}\n          activeDepth={props.selDepth}\n          symbol={props.symbol}\n          base={props.base}\n          quote={props.quote}\n          isLoading={props.isLoading}\n          onItemClick={props.onItemClick}\n          cellHeight={props.cellHeight}\n          onDepthChange={props.onDepthChange}\n          className={props.className}\n          symbolInfo={props.symbolInfo}\n          showBuySellRatio={props.showBuySellRatio}\n          setShowBuySellRatio={props.setShowBuySellRatio}\n          buySellRatio={props.buySellRatio}\n        />\n      ) : (\n        <DesktopOrderBook\n          level={props.level}\n          asks={props.asks!}\n          bids={props.bids!}\n          markPrice={props.markPrice!}\n          lastPrice={props.lastPrice!}\n          depths={props.depths}\n          activeDepth={props.selDepth}\n          base={props.base}\n          quote={props.quote}\n          isLoading={props.isLoading}\n          onItemClick={props.onItemClick}\n          cellHeight={props.cellHeight}\n          onDepthChange={props.onDepthChange}\n          className={props.className}\n          pendingOrders={props.pendingOrders}\n          symbolInfo={props.symbolInfo}\n          showBuySellRatio={props.showBuySellRatio}\n          setShowBuySellRatio={props.setShowBuySellRatio}\n          buySellRatio={props.buySellRatio}\n        />\n      )}\n    </Box>\n  );\n};\n","import type { API } from \"@orderly.network/types\";\nimport type { BasicSymbolInfo } from \"../types/types\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport const getBasicSymbolInfo = (\n  symbolInfo: (\n    key?: keyof API.SymbolExt,\n    defaultValue?: ValueOf<API.SymbolExt>,\n  ) => any,\n): BasicSymbolInfo => {\n  return {\n    base_dp: symbolInfo(\"base_dp\"),\n    quote_dp: symbolInfo(\"quote_dp\"),\n    base_tick: symbolInfo(\"base_tick\"),\n    base: symbolInfo(\"base\"),\n    quote: symbolInfo(\"quote\"),\n  };\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport {\n  useLocalStorage,\n  useOrderbookStream,\n  useOrderStream,\n  useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { Decimal, removeTrailingZeros } from \"@orderly.network/utils\";\nimport { getBasicSymbolInfo } from \"../../../utils/utils\";\n\nconst CELL_MAX = 30;\n\nconst DEFAULT_CELL_HEIGHT = 20;\n\nconst SPACE = 104;\nconst BUY_SELL_RATIO_BAR_HEIGHT_MOBILE = 28; // padding 10px*2 + content height ~14px\nconst BUY_SELL_RATIO_BAR_HEIGHT_DESKTOP = 38; // padding 10px*2 + content height ~14px\n\nexport const ORDERBOOK_SHOW_BUY_SELL_RATIO_KEY =\n  \"orderbook_show_buy_sell_ratio\";\n\nexport interface BuySellRatio {\n  buyPercentage: number;\n  sellPercentage: number;\n  buyAmount: number;\n  sellAmount: number;\n}\n\nexport const useOrderBookScript = (props: {\n  symbol: string;\n  height?: number;\n}) => {\n  const { symbol, height } = props;\n  const symbolInfo = useSymbolsInfo()[symbol];\n\n  const [cellHeight, setCellHeight] = useState(DEFAULT_CELL_HEIGHT);\n\n  const [level, setLevel] = useState(10);\n  const { base, quote, quote_dp } = getBasicSymbolInfo(symbolInfo);\n  // const counter = useRef(0);\n\n  const [data, { onDepthChange, isLoading, onItemClick, depth, allDepths }] =\n    useOrderbookStream(symbol, undefined, { level });\n\n  // useEffect(() => {\n  //   counter.current = 0;\n  // }, [symbol]);\n\n  const pendingOrders = usePendingOrderStream(symbol);\n\n  const { isMobile } = useScreen();\n\n  const [showBuySellRatio, setShowBuySellRatio] = useLocalStorage(\n    ORDERBOOK_SHOW_BUY_SELL_RATIO_KEY,\n    true,\n  );\n\n  useEffect(() => {\n    if (height) {\n      // Calculate available space considering BuySellRatioBar height\n      const availableSpace =\n        SPACE +\n        (showBuySellRatio\n          ? isMobile\n            ? BUY_SELL_RATIO_BAR_HEIGHT_MOBILE\n            : BUY_SELL_RATIO_BAR_HEIGHT_DESKTOP\n          : 0);\n\n      //   setCellHeight(height.content / level);\n      const level = Math.floor(\n        (height - availableSpace) / ((DEFAULT_CELL_HEIGHT + 1) * 2),\n      );\n\n      const cellsHeight = (DEFAULT_CELL_HEIGHT + 1) * 2 * level;\n\n      const restSpace = height - availableSpace - cellsHeight;\n\n      if (restSpace > 10) {\n        setCellHeight(DEFAULT_CELL_HEIGHT + restSpace / level / 2);\n      } else {\n        setCellHeight(DEFAULT_CELL_HEIGHT);\n      }\n\n      setLevel(level);\n    }\n  }, [height, showBuySellRatio]);\n\n  const selDepth = useMemo(() => {\n    if (typeof depth === \"undefined\" || typeof quote_dp === \"undefined\") {\n      return undefined;\n    }\n    // // FIXME: hardcode for now, need to optimize it\n    // counter.current++;\n    // if (counter.current === 1 && DEFAULT_DEPTH[symbol]) {\n    //   return DEFAULT_DEPTH[symbol];\n    // }\n\n    return removeTrailingZeros(depth);\n  }, [depth, quote_dp, symbol]);\n\n  const depths = useMemo(() => {\n    return allDepths?.map((e) => removeTrailingZeros(e)) || [];\n  }, [allDepths, quote_dp]);\n\n  const buySellRatio = useMemo<BuySellRatio | null>(() => {\n    if (!data?.asks || !data?.bids || level === undefined) {\n      return null;\n    }\n\n    // Helper function to check if a value is a valid number\n    const isValidNumber = (value: any): value is number => {\n      return (\n        typeof value === \"number\" &&\n        !Number.isNaN(value) &&\n        Number.isFinite(value) &&\n        value >= 0\n      );\n    };\n\n    // Get visible orders within the level range\n    const visibleAsks = data.asks.slice(0, level);\n    const visibleBids = data.bids.slice(-level);\n    // get asks first and bids last, get amount ratio\n    if (visibleAsks.length > 0 && visibleBids.length > 0) {\n      // Find the first ask that meets the condition (in forward order)\n      const firstAsk = visibleAsks.find(\n        (ask) =>\n          Array.isArray(ask) &&\n          ask.length === 4 &&\n          ask[3] !== undefined &&\n          ask[3] !== null &&\n          isValidNumber(ask[3]),\n      );\n      // Find the first bid that meets the condition (in reverse order)\n      const lastBid = [...visibleBids]\n        .reverse()\n        .find(\n          (bid) =>\n            Array.isArray(bid) &&\n            bid.length === 4 &&\n            bid[3] !== undefined &&\n            bid[3] !== null &&\n            isValidNumber(bid[3]),\n        );\n      if (firstAsk && lastBid) {\n        // sell amount is the sum of all visible asks\n        const askAmount = new Decimal(firstAsk[3]);\n        // buy amount is the sum of all visible bids\n        const bidAmount = new Decimal(lastBid[3]);\n        const totalAmount = askAmount.add(bidAmount);\n        const buyPercentage = bidAmount.div(totalAmount).mul(100).toNumber();\n        const sellPercentage = 100 - buyPercentage;\n        return {\n          buyPercentage: buyPercentage,\n          sellPercentage: sellPercentage,\n          buyAmount: askAmount.toNumber(),\n          sellAmount: bidAmount.toNumber(),\n        };\n      }\n    }\n    return null;\n  }, [data?.asks, data?.bids, level]);\n\n  return {\n    level,\n    asks: data?.asks,\n    bids: data?.bids,\n    markPrice: data?.markPrice,\n    lastPrice: data?.middlePrice,\n    depths,\n    selDepth,\n    /** Canonical API / route symbol (do not reconstruct from base+quote). */\n    symbol,\n    base,\n    quote,\n    isLoading,\n    onItemClick,\n    cellHeight,\n    onDepthChange,\n    pendingOrders,\n    symbolInfo: getBasicSymbolInfo(symbolInfo),\n    isMobile,\n    showBuySellRatio,\n    setShowBuySellRatio,\n    buySellRatio,\n  };\n};\n\nexport const usePendingOrderStream = (symbol: string): number[] => {\n  const [data] = useOrderStream({\n    status: OrderStatus.INCOMPLETE,\n    symbol: symbol,\n  });\n\n  const pendingOrders = useMemo(() => {\n    const info = data\n      ?.filter((item) => item.symbol === symbol)\n      .reduce((a, b) => {\n        // TODO: check if this is the correct price, when the data is from WS, it crashes\n        const price = b.price || b.trigger_price || 0;\n        return [...a, price];\n      }, []);\n\n    return info;\n  }, [data, symbol]);\n\n  return pendingOrders;\n};\n\nexport type OrderBookState = ReturnType<typeof useOrderBookScript>;\n","import React from \"react\";\nimport { useOrderBookScript } from \"./orderBook.script\";\nimport { OrderBook } from \"./orderBook.ui\";\n\ninterface OrderBookWidgetProps {\n  className?: string;\n  symbol: string;\n  height?: number;\n}\n\nexport const OrderBookWidget: React.FC<OrderBookWidgetProps> = (props) => {\n  const { className, symbol, height } = props;\n  const state = useOrderBookScript({ symbol, height });\n  return <OrderBook {...state} className={className} />;\n};\n","import React, { FC, useMemo } from \"react\";\nimport { cn, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { BuySellRatio } from \"./orderBook.script\";\n\nexport interface BuySellRatioBarProps {\n  ratio: BuySellRatio | null;\n  className?: string;\n}\n\nexport const BuySellRatioBar: FC<BuySellRatioBarProps> = (props) => {\n  const { ratio, className } = props;\n\n  const { buyPercentage, sellPercentage } = useMemo(() => {\n    if (!ratio) {\n      return { buyPercentage: 50, sellPercentage: 50 };\n    }\n\n    // Validate that percentages are valid numbers\n    const isValidNumber = (value: number) => {\n      return (\n        typeof value === \"number\" &&\n        !Number.isNaN(value) &&\n        Number.isFinite(value) &&\n        value >= 0 &&\n        value <= 100\n      );\n    };\n\n    const buyPct = isValidNumber(ratio.buyPercentage)\n      ? ratio.buyPercentage\n      : 50;\n\n    // Round to 1 decimal place\n    const buyPctRounded = new Decimal(buyPct)\n      .toDecimalPlaces(1, Decimal.ROUND_HALF_UP)\n      .toNumber();\n\n    // Ensure percentages add up to 100% to avoid display issues\n    const sellPctRounded = new Decimal(100)\n      .sub(buyPctRounded)\n      .toDecimalPlaces(1, Decimal.ROUND_HALF_UP)\n      .toNumber();\n\n    return {\n      buyPercentage: buyPctRounded,\n      sellPercentage: sellPctRounded,\n    };\n  }, [ratio]);\n\n  return (\n    <Flex className={cn(\"oui-w-full\", className)} gap={1}>\n      <Flex itemAlign=\"center\" gap={1}>\n        <Text intensity={80}>B</Text>\n        <Text color=\"success\">{buyPercentage.toFixed(1)}%</Text>\n      </Flex>\n      <div\n        style={{\n          flex: 1,\n          height: \"4px\",\n          position: \"relative\",\n          borderRadius: \"2px\",\n          overflow: \"hidden\",\n        }}\n        className=\"oui-bg-line-4\"\n      >\n        <div\n          className=\"oui-bg-trade-profit oui-mr-[2px] oui-rounded-sm\"\n          style={{\n            position: \"absolute\",\n            left: 0,\n            top: 0,\n            width: `${buyPercentage}%`,\n            height: \"100%\",\n          }}\n        />\n        <div\n          className=\"oui-bg-trade-loss oui-ml-[2px] oui-rounded-sm\"\n          style={{\n            position: \"absolute\",\n            left: `${buyPercentage}%`,\n            top: 0,\n            width: `${sellPercentage}%`,\n            height: \"100%\",\n          }}\n        />\n      </div>\n      <Flex itemAlign=\"center\" gap={1}>\n        <Text color=\"danger\">{sellPercentage.toFixed(1)}%</Text>\n        <Text intensity={80}>S</Text>\n      </Flex>\n    </Flex>\n  );\n};\n","export { OrderBook } from \"./orderBook.ui\";\nexport { OrderBookWidget } from \"./orderBook.widget\";\nexport { useOrderBookScript } from \"./orderBook.script\";\nexport { BuySellRatioBar } from \"./buySellRatioBar\";\nexport type { BuySellRatio } from \"./orderBook.script\";\nexport { useOrderBookContext, OrderBookProvider } from \"./orderContext\";\n","import React, { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n  Flex,\n  Text,\n  Box,\n  Tooltip,\n  modal,\n  gradientTextVariants,\n  cn,\n  EditIcon,\n} from \"@orderly.network/ui\";\nimport { LeverageWidgetWithDialogId } from \"@orderly.network/ui-leverage\";\nimport { TooltipContent } from \"../assetView/assetView.ui\";\nimport { RiskRateState } from \"./riskRate.script\";\n\nexport const RiskRate: FC<RiskRateState> = (props) => {\n  const { riskRate, riskRateColor, currentLeverage, maxLeverage } = props;\n  const { isHigh, isMedium, isLow } = riskRateColor;\n  const { wrongNetwork } = useAppContext();\n  const { t } = useTranslation();\n\n  const textColor = wrongNetwork\n    ? \"\"\n    : isHigh\n      ? \"oui-text-danger\"\n      : isMedium\n        ? \"oui-text-warning-darken\"\n        : isLow\n          ? gradientTextVariants({ color: \"brand\" })\n          : \"\";\n\n  const boxClsName = wrongNetwork\n    ? \"oui-bg-gradient-to-r oui-opacity-20 oui-from-[rgb(var(--oui-gradient-brand-start))] oui-via-[rgb(var(--oui-color-warning-darken))] oui-to-[rgb(var(--oui-color-danger-darken))] oui-h-1.5 oui-rounded-full\"\n    : isHigh\n      ? \"oui-bg-gradient-to-tr oui-from-[rgb(var(--oui-gradient-danger-end))] oui-to-[rgb(var(--oui-gradient-danger-start))] oui-h-1.5 oui-rounded-full\"\n      : isMedium\n        ? \"oui-bg-gradient-to-tr oui-from-[rgb(var(--oui-gradient-warning-end))] oui-to-[rgb(var(--oui-gradient-warning-start))] oui-h-1.5 oui-rounded-full\"\n        : isLow\n          ? \"oui-bg-gradient-to-tr oui-from-[rgb(var(--oui-gradient-brand-end))] oui-to-[rgb(var(--oui-gradient-brand-start))] oui-h-1.5 oui-rounded-full\"\n          : \"oui-bg-gradient-to-r oui-opacity-20 oui-from-[rgb(var(--oui-gradient-brand-start))] oui-via-[rgb(var(--oui-color-warning-darken))] oui-to-[rgb(var(--oui-color-danger-darken))] oui-h-1.5 oui-rounded-full\";\n\n  return (\n    <Box className=\"oui-riskRate oui-space-y-2\" data-risk={\"\"}>\n      <Flex\n        itemAlign=\"center\"\n        justify=\"start\"\n        className=\"oui-w-full oui-bg-base-6 oui-rounded-full oui-h-2 oui-px-[1px]\"\n      >\n        <Box\n          className={boxClsName}\n          style={\n            riskRate && riskRate !== \"--\"\n              ? { width: riskRate }\n              : { width: \"100%\" }\n          }\n        />\n      </Flex>\n\n      <Flex direction=\"row\" justify=\"between\">\n        <Tooltip\n          content={\n            <TooltipContent\n              description={t(\"trading.riskRate.tooltip\")}\n              formula={t(\"trading.riskRate.formula\")}\n            />\n          }\n        >\n          <Text\n            size=\"2xs\"\n            color=\"neutral\"\n            weight=\"semibold\"\n            className={cn(\n              \"oui-cursor-pointer\",\n              \"oui-border-b oui-border-dashed oui-border-b-white/10\",\n            )}\n          >\n            {t(\"trading.riskRate\")}\n          </Text>\n        </Tooltip>\n        <Text\n          size=\"xs\"\n          color=\"neutral\"\n          weight=\"semibold\"\n          className={cn(textColor)}\n        >\n          {riskRate ?? \"--\"}\n        </Text>\n      </Flex>\n    </Box>\n  );\n};\n","import { useMemo } from \"react\";\nimport {\n  useAccount,\n  useLeverage,\n  useMarginRatio,\n} from \"@orderly.network/hooks\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nconst getRiskRateColor = (riskRate: null | number) => {\n  if (riskRate === null) {\n    return { isHigh: false, isMedium: false, isLow: false, isDefault: true };\n  }\n\n  const isLow = riskRate < 40;\n  const isMedium = riskRate >= 40 && riskRate < 80;\n  const isHigh = riskRate >= 80;\n  const isDefault = !isLow && !isMedium && !isHigh;\n\n  return { isHigh, isMedium, isLow, isDefault };\n};\n\nexport const useRiskRateScript = () => {\n  const { state } = useAccount();\n\n  const isConnected =\n    state.status >= AccountStatusEnum.EnableTrading ||\n    state.status === AccountStatusEnum.EnableTradingWithoutConnected;\n  const { marginRatio, currentLeverage, mmr } = useMarginRatio();\n\n  const { curLeverage } = useLeverage();\n\n  const riskRate = useMemo(() => {\n    if (!isConnected || marginRatio === null || mmr === null) {\n      return \"--\";\n    }\n\n    if (marginRatio === 0 || mmr === 0) {\n      return \"0%\";\n    }\n\n    const calculatedRiskRate = new Decimal(mmr)\n      .div(marginRatio)\n      .mul(100)\n      .todp(2, Decimal.ROUND_UP);\n\n    // Remove trailing zeroes and add percentage sign\n    return `${calculatedRiskRate.toString().replace(/\\.?0+$/, \"\")}%`;\n  }, [isConnected, marginRatio, mmr]);\n\n  const riskRateNumber = riskRate === \"--\" ? null : parseFloat(riskRate);\n\n  const riskRateColor = useMemo(() => {\n    return getRiskRateColor(riskRateNumber);\n  }, [riskRateNumber]);\n\n  const _curLeverage = useDataTap(currentLeverage);\n  const _maxLeverage = useDataTap(curLeverage);\n  const _riskRate = useDataTap(riskRate);\n\n  return {\n    riskRate: _riskRate,\n    riskRateColor,\n    isConnected,\n    currentLeverage: _curLeverage,\n    maxLeverage: _maxLeverage,\n  };\n};\n\nexport type RiskRateState = ReturnType<typeof useRiskRateScript>;\n","import React from \"react\";\nimport { useRiskRateScript } from \"./riskRate.script\";\nimport { RiskRate } from \"./riskRate.ui\";\n\nexport const RiskRateWidget: React.FC = () => {\n  const state = useRiskRateScript();\n  return <RiskRate {...state} />;\n};\n","export { RiskRate } from \"./riskRate.ui\";\nexport { RiskRateWidget } from \"./riskRate.widget\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, Flex, Grid, TabPanel, Tabs, Text } from \"@orderly.network/ui\";\nimport type { OrderBookAndTradesState } from \"./orderBookAndTrades.script\";\n\nconst LazyLastTradesWidget = React.lazy(() =>\n  import(\"../../base/lastTrades\").then((mod) => {\n    return {\n      default: mod.LastTradesWidget,\n    };\n  }),\n);\n\nconst LazyOrderBookWidget = React.lazy(() =>\n  import(\"../../base/orderBook\").then((mod) => {\n    return {\n      default: mod.OrderBookWidget,\n    };\n  }),\n);\n\nconst TwoColLayout: React.FC<OrderBookAndTradesState> = (props) => {\n  const { t } = useTranslation();\n  return (\n    <Grid\n      cols={2}\n      width={\"100%\"}\n      gap={3}\n      className=\"oui-auto-rows-fr\"\n      style={{\n        height: props.containerSize?.height,\n      }}\n    >\n      <Flex\n        direction={\"column\"}\n        itemAlign={\"start\"}\n        // pl={3}\n        pt={3}\n        pb={3}\n        r=\"2xl\"\n        className=\"oui-bg-base-9\"\n      >\n        <Title\n          title={t(\"trading.orderBook\")}\n          className=\"oui-pl-3 oui-text-sm\"\n        />\n        <React.Suspense fallback={null}>\n          <LazyOrderBookWidget\n            symbol={props.symbol}\n            height={\n              props.containerSize\n                ? props.containerSize.height - 29 - 24\n                : undefined\n            }\n          />\n        </React.Suspense>\n      </Flex>\n      <Flex\n        direction={\"column\"}\n        itemAlign={\"start\"}\n        py={3}\n        r=\"2xl\"\n        className=\"oui-bg-base-9 oui-h-full\"\n      >\n        <Title\n          title={t(\"trading.lastTrades\")}\n          className=\"oui-text-sm oui-px-3\"\n        />\n        <React.Suspense fallback={null}>\n          <LazyLastTradesWidget\n            symbol={props.symbol}\n            style={{\n              height:\n                props.containerSize && props.containerSize.height - 29 - 24,\n            }}\n            classNames={{ listHeader: \"oui-px-3\", list: \"oui-px-3\" }}\n          />\n        </React.Suspense>\n      </Flex>\n    </Grid>\n  );\n};\n\nconst TabLayout: React.FC<OrderBookAndTradesState> = (props) => {\n  const { t } = useTranslation();\n\n  return (\n    <Box\n      // pl={3}\n      pt={3}\n      pb={3}\n      pr={0}\n      r=\"2xl\"\n      className=\"oui-bg-base-9\"\n      style={{ maxHeight: props.containerSize?.height }}\n    >\n      <Tabs\n        value={props.tab}\n        variant=\"contained\"\n        onValueChange={(tab) => {\n          props.setTab(tab as any);\n        }}\n        classNames={{\n          tabsList: \"oui-pl-3\",\n          // tabsContent: props.tab === \"lastTrades\" ? 'oui-pl-3' : ''\n        }}\n        size=\"lg\"\n      >\n        <TabPanel value=\"orderBook\" title={t(\"trading.orderBook\")}>\n          <React.Suspense fallback={null}>\n            <LazyOrderBookWidget\n              symbol={props.symbol}\n              height={\n                props.containerSize\n                  ? props.containerSize.height - 29 - 18\n                  : undefined\n              }\n            />\n          </React.Suspense>\n        </TabPanel>\n        <TabPanel value=\"lastTrades\" title={t(\"trading.lastTrades\")}>\n          <React.Suspense fallback={null}>\n            <LazyLastTradesWidget\n              symbol={props.symbol}\n              style={{\n                height:\n                  props.containerSize && props.containerSize.height - 29 - 18,\n              }}\n              classNames={{\n                root: \"oui-pt-[6px]\",\n                listHeader: \"oui-px-3\",\n                list: \"oui-px-3\",\n              }}\n            />\n          </React.Suspense>\n        </TabPanel>\n      </Tabs>\n    </Box>\n  );\n};\n\nconst Title: React.FC<{ title: string; className?: string }> = (props) => {\n  return (\n    <Text\n      size=\"base\"\n      intensity={80}\n      className={cn(\"oui-pb-[5px]\", props.className)}\n    >\n      {props.title}\n    </Text>\n  );\n};\n\nexport const OrderBookAndTrades: React.FC<OrderBookAndTradesState> = (\n  props,\n) => {\n  const { containerRef, containerSize } = props;\n  return (\n    <div\n      ref={containerRef}\n      className=\"oui-trading-orderBookAndTrades oui-h-full\"\n    >\n      {(containerSize?.width ?? 0) >= 572 ? (\n        <TwoColLayout {...props} />\n      ) : (\n        <TabLayout {...props} />\n      )}\n    </div>\n  );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nexport const useOrderBookAndTradesScript = (symbol: string) => {\n  const [containerSize, setContainerSize] = useState<\n    | {\n        width: number;\n        height: number;\n      }\n    | undefined\n  >(undefined);\n\n  const [tab, setTab] = useState<\"orderBook\" | \"lastTrades\">(\"orderBook\");\n\n  const containerRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    const resizeObserver = new ResizeObserver((entries) => {\n      for (const entry of entries) {\n        const { width, height } = entry.contentRect;\n        setContainerSize({\n          width,\n          height,\n        });\n      }\n    });\n\n    const targetDiv = containerRef.current;\n\n    if (targetDiv) {\n      resizeObserver.observe(targetDiv);\n    }\n\n    return () => {\n      if (targetDiv) {\n        resizeObserver.unobserve(targetDiv);\n      }\n    };\n  }, []);\n\n  return {\n    symbol,\n    containerSize,\n    containerRef: containerRef,\n    tab,\n    setTab,\n  };\n};\n\nexport type OrderBookAndTradesState = ReturnType<\n  typeof useOrderBookAndTradesScript\n>;\n","import React from \"react\";\nimport { useOrderBookAndTradesScript } from \"./orderBookAndTrades.script\";\nimport { OrderBookAndTrades } from \"./orderBookAndTrades.ui\";\n\nexport const OrderBookAndTradesWidget: React.FC<{ symbol: string }> = (\n  props,\n) => {\n  const state = useOrderBookAndTradesScript(props.symbol);\n  return <OrderBookAndTrades {...state} />;\n};\n","export { OrderBookAndTrades } from \"./orderBookAndTrades.ui\";\nexport { OrderBookAndTradesWidget } from \"./orderBookAndTrades.widget\";\nexport { useOrderBookAndTradesScript } from \"./orderBookAndTrades.script\";\n","import React, { FC, SVGProps } from \"react\";\n\nexport const KlineDragIcon: 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    <g id=\"Arrows-expand\">\n      <path\n        id=\"Vector\"\n        d=\"M5.9989 1.00708C5.8709 1.00708 5.7369 1.05008 5.6394 1.14758L3.7959 3.00708L4.4989 3.71008L5.4989 2.72607V4.50708C5.4989 4.78308 5.7229 5.00708 5.9989 5.00708C6.2749 5.00708 6.4989 4.78308 6.4989 4.50708V2.72607L7.4989 3.71008L8.2019 3.00708L6.3584 1.14758C6.2604 1.05008 6.1269 1.00708 5.9989 1.00708ZM5.9989 7.00707C5.7229 7.00707 5.4989 7.23107 5.4989 7.50707V9.28808L4.4989 8.30407L3.7959 9.00707L5.6394 10.8666C5.8349 11.0616 6.1629 11.0616 6.3584 10.8666L8.2019 9.00707L7.4989 8.30407L6.4989 9.28808V7.50707C6.4989 7.23107 6.2749 7.00707 5.9989 7.00707Z\"\n      />\n    </g>\n  </svg>\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 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","import { FC, PropsWithChildren, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  Box,\n  CloseIcon,\n  cn,\n  Divider,\n  DropdownMenuContent,\n  DropdownMenuPortal,\n  DropdownMenuRoot,\n  DropdownMenuTrigger,\n  Flex,\n  Text,\n} from \"@orderly.network/ui\";\nimport type { MarketLayoutPosition } from \"../../../pages/trading/trading.script\";\n\nexport type LayoutPosition = \"left\" | \"right\";\n\nexport type SwitchLayoutProps = {\n  layout?: LayoutPosition;\n  onLayout?: (layout: LayoutPosition) => void;\n  marketLayout?: MarketLayoutPosition;\n  onMarketLayout?: (layout: MarketLayoutPosition) => void;\n};\n\nexport const SwitchLayout: FC<SwitchLayoutProps> = (props) => {\n  const { t } = useTranslation();\n  return (\n    <SwitchLayoutDropDown {...props}>\n      <Flex\n        px={3}\n        className={cn(\n          \"oui-switchLayout\",\n          \"oui-rounded-md\",\n          \"oui-h-[28px]\",\n          \"oui-cursor-pointer oui-transition-all\",\n          \"oui-bg-base-6 hover:oui-bg-base-4\",\n          \"oui-text-base-contrast-54 hover:oui-text-base-contrast-80\",\n        )}\n        gapX={1}\n        ml={3}\n        justify=\"center\"\n        itemAlign=\"center\"\n      >\n        <LayoutIcon />\n        <Text size=\"2xs\" weight=\"semibold\">\n          {t(\"trading.layout\")}\n        </Text>\n      </Flex>\n    </SwitchLayoutDropDown>\n  );\n};\n\nexport const SwitchLayoutDropDown: FC<PropsWithChildren<SwitchLayoutProps>> = (\n  props,\n) => {\n  const [open, setOpen] = useState(false);\n  const [hoveredMarket, setHoveredMarket] =\n    useState<MarketLayoutPosition | null>(null);\n  const { t } = useTranslation();\n  const renderItem = (position: LayoutPosition) => {\n    return (\n      <Flex\n        direction=\"column\"\n        gapY={2}\n        onClick={() => {\n          props.onLayout?.(position);\n          setOpen(false);\n        }}\n        className=\"oui-group\"\n      >\n        <Flex\n          justify={position === \"right\" ? \"end\" : \"start\"}\n          className={cn(\n            \"oui-w-[148px] oui-h-[100px]\",\n            \"oui-bg-base-10 oui-rounded-[10px]\",\n            \"oui-border-[4px] oui-border-base-5 group-hover:oui-border-primary-light\",\n            props.layout === position && \"!oui-border-primary-light\",\n          )}\n        >\n          <Box p={1}>\n            <OrderEntryIcon />\n          </Box>\n        </Flex>\n        <Text\n          size=\"2xs\"\n          intensity={54}\n          className={cn(\n            \"oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80\",\n            props.layout === position && \"oui-text-base-contrast-80\",\n          )}\n        >\n          {String(\n            position === \"right\"\n              ? t(\"trading.layout.advanced.right\")\n              : t(\"trading.layout.advanced.left\"),\n          )}\n        </Text>\n      </Flex>\n    );\n  };\n\n  const renderMarketItem = (position: MarketLayoutPosition) => {\n    const getIcon = (isHovered: boolean) => {\n      const isSelected = props.marketLayout === position;\n      switch (position) {\n        case \"left\":\n          return (\n            <MarketLeftIcon isSelected={isSelected} isHovered={isHovered} />\n          );\n        case \"top\":\n          return (\n            <MarketTopIcon isSelected={isSelected} isHovered={isHovered} />\n          );\n        case \"bottom\":\n          return (\n            <MarketBottomIcon isSelected={isSelected} isHovered={isHovered} />\n          );\n        case \"hide\":\n          return (\n            <MarketHideIcon isSelected={isSelected} isHovered={isHovered} />\n          );\n        default:\n          return (\n            <MarketLeftIcon isSelected={isSelected} isHovered={isHovered} />\n          );\n      }\n    };\n\n    const getLabel = () => {\n      switch (position) {\n        case \"left\":\n          return t(\"trading.layout.markets.left\");\n        case \"top\":\n          return t(\"trading.layout.markets.top\");\n        case \"bottom\":\n          return t(\"trading.layout.markets.bottom\");\n        case \"hide\":\n          return t(\"trading.layout.markets.hide\");\n        default:\n          return t(\"trading.layout.markets.left\");\n      }\n    };\n\n    return (\n      <Flex\n        direction=\"column\"\n        gapY={2}\n        onClick={() => {\n          props.onMarketLayout?.(position);\n          setOpen(false);\n        }}\n        onMouseEnter={() => setHoveredMarket(position)}\n        onMouseLeave={() => setHoveredMarket(null)}\n        className=\"oui-group\"\n      >\n        <Flex justify=\"center\" className=\"oui-w-[148px] oui-h-[100px]\">\n          {getIcon(hoveredMarket === position)}\n        </Flex>\n        <Text\n          size=\"2xs\"\n          intensity={54}\n          className={cn(\n            \"oui-text-base-contrast-54 group-hover:oui-text-base-contrast-80\",\n            props.marketLayout === position && \"oui-text-base-contrast-80\",\n          )}\n        >\n          {String(getLabel())}\n        </Text>\n      </Flex>\n    );\n  };\n\n  const content = (\n    <>\n      <Flex\n        itemAlign=\"center\"\n        justify=\"between\"\n        mt={3}\n        className=\"oui-mb-[10px] oui-min-w-[500px]\"\n      >\n        <Text size=\"base\" intensity={98}>\n          {t(\"trading.layout\")}\n        </Text>\n        <CloseIcon\n          size={16}\n          className=\"oui-text-base-contrast-80 oui-cursor-pointer\"\n          opacity={0.98}\n          onClick={() => {\n            setOpen(false);\n          }}\n        />\n      </Flex>\n      <Divider />\n      <Flex direction=\"column\" gapY={2} mt={5} itemAlign=\"start\">\n        <Text size=\"xs\" intensity={98}>\n          {String(t(\"trading.layout.advanced\"))}\n        </Text>\n        <Flex gapX={6}>\n          {renderItem(\"left\")}\n          {renderItem(\"right\")}\n        </Flex>\n      </Flex>\n      <Flex direction=\"column\" gapY={2} mt={5} itemAlign=\"start\">\n        <Text size=\"xs\" intensity={98}>\n          {String(t(\"trading.layout.markets\"))}\n        </Text>\n        <Flex gapX={6}>\n          {renderMarketItem(\"left\")}\n          {renderMarketItem(\"top\")}\n          {renderMarketItem(\"bottom\")}\n          {renderMarketItem(\"hide\")}\n        </Flex>\n      </Flex>\n    </>\n  );\n\n  return (\n    <DropdownMenuRoot open={open} onOpenChange={setOpen}>\n      <DropdownMenuTrigger asChild>{props.children}</DropdownMenuTrigger>\n      <DropdownMenuPortal>\n        <DropdownMenuContent\n          onCloseAutoFocus={(e) => e.preventDefault()}\n          onClick={(e) => e.stopPropagation()}\n          align=\"end\"\n          className={cn(\"oui-bg-base-8 oui-p-5 oui-pt-0 oui-font-semibold\")}\n        >\n          {content}\n        </DropdownMenuContent>\n      </DropdownMenuPortal>\n    </DropdownMenuRoot>\n  );\n};\n\nexport const LayoutIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n  <svg\n    width=\"17\"\n    height=\"16\"\n    viewBox=\"0 0 17 16\"\n    fill=\"currentColor\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    {...props}\n  >\n    <path d=\"M3.832 1.994c-.736 0-1.333.597-1.333 1.333v9.334c0 .737.597 1.333 1.333 1.333H6.5c.737 0 1.333-.596 1.333-1.333V3.327c0-.736-.596-1.333-1.333-1.333zm6.667 0c-.737 0-1.333.597-1.333 1.333v2.667c0 .737.596 1.333 1.333 1.333h2.667c.736 0 1.333-.596 1.333-1.333V3.327c0-.736-.597-1.333-1.333-1.333zm.437 6.679a2.7 2.7 0 0 0-1.033.607.284.284 0 0 0-.061.339c.222.411-.01.851-.512.876a.29.29 0 0 0-.26.217c-.05.207-.07.38-.07.608 0 .19.02.407.06.599a.28.28 0 0 0 .252.217c.506.044.756.429.53.92a.28.28 0 0 0 .06.321c.296.273.635.466 1.034.59a.285.285 0 0 0 .312-.104c.31-.427.757-.428 1.05 0a.28.28 0 0 0 .313.113 2.8 2.8 0 0 0 1.042-.599.28.28 0 0 0 .06-.33c-.23-.466.035-.894.513-.902a.28.28 0 0 0 .269-.209c.048-.199.06-.372.06-.616q0-.316-.069-.616a.276.276 0 0 0-.27-.217c-.469-.001-.732-.463-.502-.868a.27.27 0 0 0-.053-.339 2.8 2.8 0 0 0-1.059-.607.274.274 0 0 0-.312.112c-.268.417-.77.425-1.033.009a.284.284 0 0 0-.321-.121m.842 1.536a1.111 1.111 0 1 1 0 2.222 1.111 1.111 0 0 1 0-2.222\" />\n  </svg>\n);\n\nexport const OrderEntryIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n  <svg\n    width=\"36\"\n    height=\"84\"\n    viewBox=\"0 0 36 84\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <rect width=\"36\" height=\"17\" rx=\"2\" fill=\"rgb(var(--oui-color-base-7))\" />\n    <rect\n      y=\"19\"\n      width=\"36\"\n      height=\"54\"\n      rx=\"2\"\n      fill=\"rgb(var(--oui-color-base-7))\"\n    />\n    <rect\n      y=\"75\"\n      width=\"36\"\n      height=\"9\"\n      rx=\"2\"\n      fill=\"rgb(var(--oui-color-base-7))\"\n    />\n    <rect\n      x=\"3\"\n      y=\"79\"\n      width=\"30\"\n      height=\"1\"\n      rx=\"0.5\"\n      fill=\"url(#paint0_linear_17647_26849)\"\n    />\n    <rect\n      x=\"3\"\n      y=\"22\"\n      width=\"14\"\n      height=\"6\"\n      rx=\"2\"\n      fill=\"rgb(var(--oui-color-success-darken))\"\n    />\n    <rect\n      x=\"19\"\n      y=\"22\"\n      width=\"14\"\n      height=\"6\"\n      rx=\"2\"\n      fill=\"rgb(var(--oui-color-danger-darken))\"\n    />\n    <rect\n      x=\"3\"\n      y=\"11\"\n      width=\"14\"\n      height=\"3\"\n      rx=\"1.5\"\n      fill=\"rgb(var(--oui-color-base-4))\"\n    />\n    <rect\n      x=\"19\"\n      y=\"11\"\n      width=\"14\"\n      height=\"3\"\n      rx=\"1.5\"\n      fill=\"rgb(var(--oui-color-primary-darken))\"\n    />\n    <rect\n      x=\"3\"\n      y=\"62\"\n      width=\"30\"\n      height=\"8\"\n      rx=\"2\"\n      fill=\"rgb(var(--oui-color-success-darken))\"\n    />\n    <defs>\n      <linearGradient\n        id=\"paint0_linear_17647_26849\"\n        x1=\"33\"\n        y1=\"79.5\"\n        x2=\"3\"\n        y2=\"79.5\"\n        gradientUnits=\"userSpaceOnUse\"\n      >\n        <stop stopColor=\"rgb(var(--oui-color-primary-light))\" />\n        <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-brand-start))\" />\n      </linearGradient>\n    </defs>\n  </svg>\n);\n\nexport const MarketLeftIcon: FC<\n  SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n  const getStrokeColor = () => {\n    if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n  };\n\n  return (\n    <svg\n      width=\"148\"\n      height=\"100\"\n      viewBox=\"0 0 148 100\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"144\"\n        height=\"96\"\n        rx=\"10\"\n        fill=\"rgb(var(--oui-color-base-10))\"\n        stroke={getStrokeColor()}\n        strokeWidth=\"4\"\n      />\n      <rect\n        x=\"8\"\n        y=\"8\"\n        width=\"24\"\n        height=\"84\"\n        rx=\"2\"\n        fill=\"rgb(var(--oui-color-base-7))\"\n      />\n      <rect\n        x=\"16\"\n        y=\"10\"\n        width=\"4\"\n        height=\"2\"\n        rx=\"1\"\n        fill=\"rgb(var(--oui-color-base-4))\"\n      />\n      <rect\n        x=\"21\"\n        y=\"10\"\n        width=\"4\"\n        height=\"2\"\n        rx=\"1\"\n        fill=\"rgb(var(--oui-color-base-4))\"\n      />\n      <rect\n        x=\"26\"\n        y=\"10\"\n        width=\"4\"\n        height=\"2\"\n        rx=\"1\"\n        fill=\"rgb(var(--oui-color-base-4))\"\n      />\n      <rect\n        x=\"10\"\n        y=\"10\"\n        width=\"5\"\n        height=\"2\"\n        rx=\"1\"\n        fill=\"rgb(var(--oui-color-primary-darken))\"\n      />\n      <rect\n        x=\"10\"\n        y=\"14\"\n        width=\"20\"\n        height=\"76\"\n        rx=\"2\"\n        fill=\"rgb(var(--oui-color-base-5))\"\n      />\n    </svg>\n  );\n};\n\nexport const MarketTopIcon: FC<\n  SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n  const getStrokeColor = () => {\n    if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n  };\n\n  return (\n    <svg\n      width=\"148\"\n      height=\"100\"\n      viewBox=\"0 0 148 100\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"144\"\n        height=\"96\"\n        rx=\"10\"\n        fill=\"rgb(var(--oui-color-base-10))\"\n        stroke={getStrokeColor()}\n        strokeWidth=\"4\"\n      />\n      <rect\n        x=\"8\"\n        y=\"8\"\n        width=\"132\"\n        height=\"8\"\n        rx=\"2\"\n        fill=\"rgb(var(--oui-color-base-7))\"\n      />\n      <g clipPath=\"url(#clip0_31319_74729)\">\n        <rect\n          x=\"10\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-primary-darken))\"\n        />\n        <rect\n          x=\"28\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"46\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"64\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"82\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"100\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"118\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"136\"\n          y=\"10\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"clip0_31319_74729\">\n          <rect\n            width=\"130\"\n            height=\"4\"\n            fill=\"rgb(var(--oui-color-base-foreground))\"\n            transform=\"translate(10 10)\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  );\n};\n\nexport const MarketBottomIcon: FC<\n  SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n  const getStrokeColor = () => {\n    if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n  };\n\n  return (\n    <svg\n      width=\"148\"\n      height=\"100\"\n      viewBox=\"0 0 148 100\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"144\"\n        height=\"96\"\n        rx=\"10\"\n        fill=\"rgb(var(--oui-color-base-10))\"\n        stroke={getStrokeColor()}\n        strokeWidth=\"4\"\n      />\n      <rect\n        x=\"8\"\n        y=\"84\"\n        width=\"132\"\n        height=\"8\"\n        rx=\"2\"\n        fill=\"rgb(var(--oui-color-base-7))\"\n      />\n      <g clipPath=\"url(#clip0_31319_74743)\">\n        <rect\n          x=\"10\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-primary-darken))\"\n        />\n        <rect\n          x=\"28\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"46\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"64\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"82\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"100\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"118\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n        <rect\n          x=\"136\"\n          y=\"86\"\n          width=\"16\"\n          height=\"4\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-4))\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"clip0_31319_74743\">\n          <rect\n            width=\"130\"\n            height=\"4\"\n            fill=\"rgb(var(--oui-color-base-foreground))\"\n            transform=\"translate(10 86)\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  );\n};\n\nexport const MarketHideIcon: FC<\n  SVGProps<SVGSVGElement> & { isSelected?: boolean; isHovered?: boolean }\n> = ({ isSelected, isHovered, ...props }) => {\n  const getStrokeColor = () => {\n    if (isSelected) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    if (isHovered) return \"rgb(var(--oui-color-primary-light))\"; // primary-light color\n    return \"rgb(var(--oui-color-base-5))\"; // base-5 color\n  };\n\n  return (\n    <svg\n      width=\"148\"\n      height=\"100\"\n      viewBox=\"0 0 148 100\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"144\"\n        height=\"96\"\n        rx=\"10\"\n        fill=\"rgb(var(--oui-color-base-10))\"\n        stroke={getStrokeColor()}\n        strokeWidth=\"4\"\n      />\n      <g clipPath=\"url(#clip0_31319_74757)\">\n        <rect\n          x=\"8\"\n          y=\"8\"\n          width=\"132\"\n          height=\"84\"\n          rx=\"2\"\n          fill=\"rgb(var(--oui-color-base-7))\"\n        />\n        <rect\n          x=\"66.8789\"\n          y=\"-76\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 66.8789 -76)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"73.9492\"\n          y=\"-68.929\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 73.9492 -68.929)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"81.0195\"\n          y=\"-61.8579\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 81.0195 -61.8579)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"88.0938\"\n          y=\"-54.7867\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 88.0938 -54.7867)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"95.1641\"\n          y=\"-47.7157\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 95.1641 -47.7157)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"102.234\"\n          y=\"-40.6447\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 102.234 -40.6447)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"109.305\"\n          y=\"-33.5736\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 109.305 -33.5736)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"116.375\"\n          y=\"-26.5026\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 116.375 -26.5026)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"123.449\"\n          y=\"-19.4315\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 123.449 -19.4315)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"130.52\"\n          y=\"-12.3604\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 130.52 -12.3604)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"137.59\"\n          y=\"-5.28931\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 137.59 -5.28931)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"144.66\"\n          y=\"1.78174\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 144.66 1.78174)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"151.73\"\n          y=\"8.85278\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 151.73 8.85278)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"158.805\"\n          y=\"15.9238\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 158.805 15.9238)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"165.875\"\n          y=\"22.995\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 165.875 22.995)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"172.945\"\n          y=\"30.066\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 172.945 30.066)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"180.016\"\n          y=\"37.1371\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 180.016 37.1371)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"187.086\"\n          y=\"44.2081\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 187.086 44.2081)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"194.156\"\n          y=\"51.2792\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 194.156 51.2792)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n        <rect\n          x=\"201.23\"\n          y=\"58.3503\"\n          width=\"4\"\n          height=\"188\"\n          rx=\"2\"\n          transform=\"rotate(45 201.23 58.3503)\"\n          fill=\"rgb(var(--oui-color-base-6))\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"clip0_31319_74757\">\n          <rect\n            width=\"132\"\n            height=\"84\"\n            fill=\"rgb(var(--oui-color-base-foreground))\"\n            transform=\"translate(8 8)\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  );\n};\n","import { useState } from \"react\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum TopTabType {\n  chart = \"chart\",\n  trades = \"trades\",\n  data = \"data\",\n}\n\nexport const useTopTabScript = () => {\n  const [tab, setTab] = useState<TopTabType>(TopTabType.chart);\n  const { symbol } = useTradingPageContext();\n  const [visible, setVisible] = useState(true);\n\n  const toggleContentVisible = () => {\n    setVisible((e) => !e);\n  };\n\n  return {\n    tab,\n    setTab,\n    symbol,\n    toggleContentVisible,\n    setVisible,\n    visible,\n  };\n};\n\nexport type TopTabState = ReturnType<typeof useTopTabScript>;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { TradingviewWidgetProps } from \"./tradingview.widget\";\n\nconst MaxHeight = 354;\nconst MinHeight = 234;\nconst Key = \"TRADINGVIEW_MOBILE_HEIGHT\";\n\nexport function useTradingviewScript(props: TradingviewWidgetProps) {\n  const [height, setHeight] = useLocalStorage(Key, MaxHeight);\n  const [dragging, setDragging] = useState(false);\n  const dragRef = useRef<HTMLDivElement>(null);\n  const boxRef = useRef<HTMLDivElement>(null);\n  const [offsetY, setOffsetY] = useState(0);\n  const topRef = useRef<number>(0);\n\n  const handleTouchStart = useCallback((e: TouchEvent) => {\n    if (!boxRef.current) {\n      return;\n    }\n    setDragging(true);\n    const event = e.touches[0];\n    const rect = boxRef.current.getBoundingClientRect();\n    e.stopPropagation();\n    e.preventDefault();\n\n    const offsetY = event.clientY - rect.bottom;\n    topRef.current = rect.top;\n    setOffsetY(offsetY);\n  }, []);\n\n  const handleTouchMove = useCallback(\n    (e: TouchEvent) => {\n      if (!boxRef.current) {\n        return;\n      }\n      if (dragging) {\n        e.stopPropagation();\n        e.preventDefault();\n\n        const event = e.touches[0];\n\n        const newHeight = event.clientY - topRef.current - offsetY;\n        setHeight(\n          Math.min(Math.max(Math.round(newHeight), MinHeight), MaxHeight),\n        );\n        return false;\n      }\n    },\n    [dragging, offsetY],\n  );\n\n  const handleTouchEnd = useCallback(() => {\n    setDragging(false);\n  }, []);\n\n  useEffect(() => {\n    const drag = dragRef.current;\n    if (!drag) {\n      return;\n    }\n\n    drag.addEventListener(\"touchstart\", handleTouchStart);\n\n    return () => {\n      drag.removeEventListener(\"touchstart\", handleTouchStart);\n    };\n  }, [handleTouchStart]);\n\n  useEffect(() => {\n    document.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n    document.addEventListener(\"touchend\", handleTouchEnd);\n\n    return () => {\n      document.removeEventListener(\"touchmove\", handleTouchMove);\n      document.removeEventListener(\"touchend\", handleTouchEnd);\n    };\n  }, [dragging, handleTouchMove, handleTouchEnd]);\n  return {\n    ...props,\n\n    height,\n    dragging,\n    dragRef,\n    boxRef,\n  };\n}\n\nexport type TradingviewState = ReturnType<typeof useTradingviewScript>;\n","import React from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { TradingviewWidget } from \"@orderly.network/ui-tradingview\";\nimport { KlineDragIcon } from \"../../base/icons\";\nimport type { TradingviewState } from \"./tradingview.script\";\n\nexport const TradingviewUI: React.FC<TradingviewState> = (props) => {\n  return (\n    <div\n      className=\"oui-trading-tradingview oui-pb-1 oui-flex oui-flex-col oui-gap-1\"\n      style={{ height: props.height }}\n      ref={props.boxRef}\n    >\n      <div className=\"oui-w-full oui-h-full\">\n        <TradingviewWidget\n          symbol={props.symbol}\n          libraryPath={props.tradingViewConfig?.library_path}\n          mode={3}\n          scriptSRC={props.tradingViewConfig?.scriptSRC}\n          customCssUrl={props.tradingViewConfig?.customCssUrl}\n          {...props.tradingViewConfig}\n        />\n      </div>\n      <div className=\"oui-relative oui-w-full\">\n        <div\n          ref={props.dragRef}\n          className={cn(\n            \"oui-h-[1px] oui-absolute oui-left-0 oui-right-0 oui-bottom-0 oui-top-0 oui-z-10 oui-mt-[7px] oui-bg-base-contrast-12\",\n            props.dragging && \"oui-bg-primary \",\n          )}\n        >\n          <KlineDragIcon\n            className={cn(\n              \"oui-w-3 oui-h-3 oui-absolute oui-left-1/2 -oui-top-[5px] -oui-translate-y-[0.5px] oui-text-base-contrast-12\",\n              props.dragging && \" oui-text-primary\",\n            )}\n          />\n        </div>\n      </div>\n    </div>\n  );\n};\n","import React from \"react\";\nimport { TradingViewConfigInterface } from \"../../../types/types\";\nimport { useTradingviewScript } from \"./tradingview.script\";\nimport { TradingviewUI } from \"./tradingview.ui\";\n\nexport interface TradingviewWidgetProps {\n  symbol: string;\n  tradingViewConfig: TradingViewConfigInterface;\n}\n\nexport const TradingviewWidget: React.FC<TradingviewWidgetProps> = (props) => {\n  const state = useTradingviewScript(props);\n  return <TradingviewUI {...state} />;\n};\n","import React from \"react\";\nimport { LastTradesWidget } from \"../../base/lastTrades\";\n\nexport const MWebLastTrades: React.FC<{ symbol: string }> = (props) => {\n  return (\n    <LastTradesWidget\n      symbol={props.symbol}\n      classNames={{\n        root: \"oui-px-3 \",\n        list: \"oui-min-h-[141px] oui-max-h-[202px] oui-w-full\",\n        listHeader: \"oui-text-xs oui-text-base-contrast-36\",\n        listItem: {\n          left: \"oui-text-xs\",\n          mid: \"oui-text-xs\",\n          right: \"oui-text-xs\",\n        },\n      }}\n    />\n  );\n};\n","import { FC } from \"react\";\nimport { Flex, Text } from \"@orderly.network/ui\";\nimport { TradeDataState } from \"./tradeData.script\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const TradeData: FC<TradeDataState> = (props) => {\n  const { t } = useTranslation();\n\n  return (\n    <Flex direction={\"column\"} gap={2}>\n      <Row\n        title={t(\"common.markPrice\")}\n        value={props.ticker?.mark_price}\n        dp={props.symbolInfo.quote_dp}\n      />\n      <Row\n        title={t(\"common.indexPrice\")}\n        value={props.ticker?.index_price}\n        dp={props.symbolInfo.quote_dp}\n      />\n      <Row\n        title={t(\"markets.column.24hVolume\")}\n        value={props.vol_24h}\n        dp={props.symbolInfo.quote_dp}\n        rule=\"human\"\n        showUSDC\n      />\n      <Row\n        title={t(\"trading.column.24High\")}\n        value={props.ticker?.[\"24h_high\"]}\n        dp={props.symbolInfo.quote_dp}\n      />\n      <Row\n        title={t(\"trading.column.24Low\")}\n        value={props.ticker?.[\"24h_low\"]}\n        dp={props.symbolInfo.quote_dp}\n      />\n      <Row\n        title={t(\"markets.openInterest\")}\n        value={props.openInterest}\n        dp={props.symbolInfo.quote_dp}\n        rule=\"human\"\n        showUSDC\n      />\n    </Flex>\n  );\n};\n\nconst Row = (props: {\n  title: string;\n  value: any;\n  dp?: number;\n  rule?: \"percentages\" | \"price\" | \"human\";\n  showUSDC?: boolean;\n}) => {\n  const { title, value, showUSDC, dp, rule = \"price\" } = props;\n  return (\n    <Flex justify={\"between\"} width={\"100%\"} className=\"oui-text-xs\">\n      <Text intensity={36}>{title}</Text>\n      <Flex gap={1}>\n        <Text.numeral rule={rule} dp={dp} intensity={80}>\n          {value}\n        </Text.numeral>\n        {showUSDC && <Text intensity={36}>USDC</Text>}\n      </Flex>\n    </Flex>\n  );\n};\n","import { useMemo } from \"react\";\nimport { useTickerStream } from \"@orderly.network/hooks\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport const useTradeDataScript = (props: { symbol: string }) => {\n  const { symbol } = props;\n  const ticker = useTickerStream(symbol);\n  const { symbolInfo } = useTradingPageContext();\n  const vol_24h = useMemo(() => {\n    const close = ticker?.[\"24h_close\"];\n    const volume = ticker?.[\"24h_volume\"];\n    if (close && volume && !isNaN(close) && !isNaN(volume)) {\n      return new Decimal(close)\n        .mul(volume)\n        .toFixed(symbolInfo.quote_dp, Decimal.ROUND_DOWN);\n    }\n    return undefined;\n  }, [ticker]);\n\n  const openInterest = useMemo(() => {\n    const markPrice = ticker?.[\"mark_price\"];\n    const openInterest = ticker?.[\"open_interest\"];\n    if (markPrice && openInterest && !isNaN(markPrice)) {\n      return new Decimal(markPrice)\n        .mul(Number(openInterest))\n        .toFixed(symbolInfo.quote_dp, Decimal.ROUND_DOWN);\n    }\n    return undefined;\n  }, [ticker]);\n  return {\n    ticker,\n    symbolInfo,\n    vol_24h,\n    openInterest,\n  };\n};\n\nexport type TradeDataState = ReturnType<typeof useTradeDataScript>;\n","import React from \"react\";\nimport { useTradeDataScript } from \"./tradeData.script\";\nimport { TradeData } from \"./tradeData.ui\";\n\nexport const TradeDataWidget: React.FC<{ symbol: string }> = (props) => {\n  const state = useTradeDataScript(props);\n  return <TradeData {...state} />;\n};\n","export { TradeData } from \"./tradeData.ui\";\nexport { TradeDataWidget } from \"./tradeData.widget\";\nexport { useTradeDataScript } from \"./tradeData.script\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, cn, TabPanel, Tabs } from \"@orderly.network/ui\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\nimport { TopTabState, TopTabType } from \"./topTab.script\";\n\nconst LazyTradingviewWidget = React.lazy(() =>\n  import(\"../tradingview/tradingview.widget\").then((mod) => {\n    return { default: mod.TradingviewWidget };\n  }),\n);\n\nconst LazyMWebLastTrades = React.lazy(() =>\n  import(\"../lastTrades/lastTrades.widget\").then((mod) => {\n    return { default: mod.MWebLastTrades };\n  }),\n);\n\nconst LazyTradeDataWidget = React.lazy(() =>\n  import(\"../tradeData\").then((mod) => {\n    return { default: mod.TradeDataWidget };\n  }),\n);\n\nexport const TopTab: React.FC<TopTabState & { className?: string }> = (\n  props,\n) => {\n  const { t } = useTranslation();\n  const { tradingViewConfig } = useTradingPageContext();\n\n  return (\n    <Tabs\n      variant=\"contained\"\n      value={props.tab}\n      contentVisible={props.visible}\n      onValueChange={(e) => {\n        props.setTab(e as TopTabType);\n        props.setVisible(true);\n      }}\n      className={cn(\"oui-trading-topTab\", props.className)}\n      classNames={{\n        tabsList: \"oui-p-2\",\n        tabsContent: \"oui-min-h-[176px] oui-max-h-[396px]\",\n      }}\n      style={{\n        marginBottom: props.tab === TopTabType.chart ? \"8px\" : 0,\n      }}\n      trailing={\n        <button className=\"oui-px-5\" onClick={props.toggleContentVisible}>\n          <ChevronIcon\n            className={props.visible ? \"oui-rotate-0\" : \"oui-rotate-180\"}\n          />\n        </button>\n      }\n    >\n      <TabPanel title={t(\"trading.tabs.chart\")} value={TopTabType.chart}>\n        <React.Suspense fallback={null}>\n          <LazyTradingviewWidget\n            symbol={props.symbol}\n            tradingViewConfig={tradingViewConfig}\n          />\n        </React.Suspense>\n      </TabPanel>\n      <TabPanel title={t(\"trading.tabs.trades\")} value={TopTabType.trades}>\n        <React.Suspense fallback={null}>\n          <LazyMWebLastTrades symbol={props.symbol} />\n        </React.Suspense>\n      </TabPanel>\n      <TabPanel title={t(\"trading.tabs.data\")} value={TopTabType.data}>\n        <Box px={3}>\n          <React.Suspense fallback={null}>\n            <LazyTradeDataWidget symbol={props.symbol} />\n          </React.Suspense>\n        </Box>\n      </TabPanel>\n    </Tabs>\n  );\n};\n\nconst ChevronIcon: React.FC<{ className?: string }> = (props) => {\n  return (\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      className={cn(\n        \"oui-fill-base-contrast-54 hover:oui-fill-base-contrast-80\",\n        props.className,\n      )}\n    >\n      <path\n        d=\"M5.721 4.585 2.726 6.578a.51.51 0 0 0-.14.7.51.51 0 0 0 .702.14l2.714-1.806 2.715 1.806c.23.153.549.089.702-.14a.51.51 0 0 0-.14-.7L6.283 4.585a.51.51 0 0 0-.562 0\"\n        // fill=\"url(#a)\"\n      />\n      <defs>\n        {/* <linearGradient\n          id=\"a\"\n          x1=\"9.502\"\n          y1=\"6.001\"\n          x2=\"2.502\"\n          y2=\"6.001\"\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};\n","import React from \"react\";\nimport { useTopTabScript } from \"./topTab.script\";\nimport { TopTab } from \"./topTab.ui\";\n\nexport const TopTabWidget: React.FC<{ className?: string }> = (props) => {\n  const state = useTopTabScript();\n  return <TopTab className={props.className} {...state} />;\n};\n","export { TopTab } from \"./topTab.ui\";\nexport { TopTabWidget } from \"./topTab.widget\";\nexport { useTopTabScript } from \"./topTab.script\";\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\nimport { OrderEntryWidget } from \"@orderly.network/ui-order-entry\";\nimport type { OrderBookAndEntryState } from \"./orderBookAndEntry.script\";\n\nconst LazyOrderBookWidget = React.lazy(() =>\n  import(\"../../base/orderBook\").then((mod) => {\n    return { default: mod.OrderBookWidget };\n  }),\n);\n\nexport const OrderBookAndEntry: React.FC<\n  OrderBookAndEntryState & { className?: string }\n> = (props) => {\n  const [height, setHeight] = useState(0);\n  const divRef = useRef(null);\n\n  useEffect(() => {\n    const div = divRef.current;\n    if (!div) {\n      return;\n    }\n    const resizeObserver = new ResizeObserver((entries) => {\n      for (const entry of entries) {\n        setHeight(entry.contentRect.height);\n      }\n    });\n    resizeObserver.observe(div);\n    return () => {\n      resizeObserver.unobserve(div);\n    };\n  }, []);\n\n  const orderBookColumn = (\n    <div\n      className=\"oui-rounded-xl oui-bg-base-9\"\n      style={{ height: `${height + 16}px` }}\n    >\n      <React.Suspense fallback={null}>\n        <LazyOrderBookWidget\n          symbol={props.symbol}\n          height={height ? height - 44 : undefined}\n        />\n      </React.Suspense>\n    </div>\n  );\n  const orderEntryColumn = (\n    <div className=\"oui-rounded-xl oui-bg-base-9 oui-p-2\">\n      <OrderEntryWidget symbol={props.symbol} containerRef={divRef} />\n    </div>\n  );\n\n  return (\n    <div\n      className={cn(\n        \"oui-trading-orderBookAndEntry oui-mx-1 oui-grid oui-gap-1\",\n        props.layout === \"right\"\n          ? \"oui-grid-cols-[4fr,6fr]\"\n          : \"oui-grid-cols-[6fr,4fr]\",\n        props.className,\n      )}\n    >\n      {props.layout === \"right\" ? (\n        <>\n          {orderBookColumn}\n          {orderEntryColumn}\n        </>\n      ) : (\n        <>\n          {orderEntryColumn}\n          {orderBookColumn}\n        </>\n      )}\n    </div>\n  );\n};\n","import { useLocalStorage } from \"@orderly.network/hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nconst ORDERLY_MWEB_ORDER_ENTRY_SIDE_MARKETS_LAYOUT =\n  \"orderly_mweb_order_entry_side_markets_layout\";\n\nexport type OrderBookAndEntryLayout = \"left\" | \"right\";\n\nexport const useOrderBookAndEntryScript = () => {\n  const { symbol } = useTradingPageContext();\n  const [layout] = useLocalStorage<OrderBookAndEntryLayout>(\n    ORDERLY_MWEB_ORDER_ENTRY_SIDE_MARKETS_LAYOUT,\n    \"right\",\n  );\n  return {\n    symbol,\n    layout,\n  };\n};\n\nexport type OrderBookAndEntryState = ReturnType<\n  typeof useOrderBookAndEntryScript\n>;\n","import React from \"react\";\nimport { useOrderBookAndEntryScript } from \"./orderBookAndEntry.script\";\nimport { OrderBookAndEntry } from \"./orderBookAndEntry.ui\";\n\nexport const OrderBookAndEntryWidget: React.FC<{ className?: string }> = (\n  props,\n) => {\n  const state = useOrderBookAndEntryScript();\n  return <OrderBookAndEntry className={props.className} {...state} />;\n};\n","export { OrderBookAndEntry } from \"./orderBookAndEntry.ui\";\nexport { OrderBookAndEntryWidget } from \"./orderBookAndEntry.widget\";\nexport { useOrderBookAndEntryScript } from \"./orderBookAndEntry.script\";\n","import { useState } from \"react\";\nimport { useOrderStream } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal, Text } from \"@orderly.network/ui\";\nimport { TabType } from \"@orderly.network/ui-orders\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport {\n  usePendingOrderCount,\n  usePositionsCount,\n  useTradingLocalStorage,\n} from \"../../../hooks\";\nimport { useTradingPageContext } from \"../../../provider/tradingPageContext\";\n\nexport enum DataListTabType {\n  position = \"Position\",\n  pending = \"Pending\",\n  tp_sl = \"TP/SL\",\n  history = \"History\",\n  liquidation = \"Liquidation\",\n  assets = \"Assets\",\n}\n\nexport enum DataListTabSubType {\n  positionHistory = \"Position history\",\n  orderHistory = \"Order history\",\n}\n\nexport const useDataListScript = (props: {\n  symbol: string;\n  className?: string;\n  sharePnLConfig?: SharePnLConfig;\n}) => {\n  const { symbol, sharePnLConfig } = props;\n  const [tab, setTab] = useState<DataListTabType>(DataListTabType.position);\n  const [subTab, setSubTab] = useState<DataListTabSubType>(\n    DataListTabSubType.positionHistory,\n  );\n  const { t } = useTranslation();\n\n  const { onSymbolChange } = useTradingPageContext();\n  const localStorage = useTradingLocalStorage();\n\n  const [_, { cancelAllPendingOrders, cancelAllTPSLOrders }] = useOrderStream(\n    {},\n  );\n  const { positionCount } = usePositionsCount(symbol);\n  const { pendingOrderCount, tpSlOrderCount } = usePendingOrderCount(symbol);\n\n  const onCloseAll = (type: TabType) => {\n    const { title, content } = getDialogInfo(\n      type,\n      t,\n      localStorage.showAllSymbol ? undefined : symbol,\n    );\n    modal.confirm({\n      title: title,\n      content: <Text size=\"2xs\">{content}</Text>,\n\n      onOk: async () => {\n        try {\n          // await cancelAll(null, { source_type: \"ALL\" });\n          if (tab === DataListTabType.tp_sl) {\n            await cancelAllTPSLOrders(\n              localStorage.showAllSymbol ? undefined : symbol,\n            );\n          } else {\n            await cancelAllPendingOrders(\n              localStorage.showAllSymbol ? undefined : symbol,\n            );\n          }\n          return Promise.resolve(true);\n        } catch (error) {\n          // @ts-ignore\n          if (error?.message !== undefined) {\n            // @ts-ignore\n            toast.error(error.message);\n          }\n          return Promise.resolve(false);\n        } finally {\n          Promise.resolve();\n        }\n      },\n    });\n  };\n\n  return {\n    tab,\n    setTab,\n    subTab,\n    setSubTab,\n    sharePnLConfig,\n    symbol,\n    positionCount,\n    pendingOrderCount,\n    tpSlOrderCount,\n    ...localStorage,\n    onCloseAll,\n    onSymbolChange,\n  };\n};\n\nexport type DataListState = ReturnType<typeof useDataListScript>;\n\ntype TranslationFn = (...args: any[]) => string;\n\nconst getDialogInfo = (type: TabType, t: TranslationFn, symbol?: string) => {\n  // symbol like this: PERP_BTC_USDC, but i want to show BTC, pls help me to format the symbol\n  const formattedSymbol = symbol ? formatSymbol(symbol, \"base\") : symbol;\n  switch (type) {\n    case TabType.pending:\n      if (symbol !== undefined) {\n        return {\n          title: t(\"orders.pending.cancelAll.forSymbol\", {\n            symbol: formattedSymbol,\n          }),\n          content: t(\"orders.pending.cancelAll.forSymbol.description\", {\n            symbol: formattedSymbol,\n          }),\n        };\n      }\n      return {\n        title: t(\"orders.pending.cancelAll\"),\n        content: t(\"orders.pending.cancelAll.description\"),\n      };\n    case TabType.tp_sl:\n      if (symbol !== undefined) {\n        return {\n          title: t(\"orders.tpsl.cancelAll.forSymbol\", {\n            symbol: formattedSymbol,\n          }),\n          content: t(\"orders.tpsl.cancelAll.forSymbol.description\", {\n            symbol: formattedSymbol,\n          }),\n        };\n      }\n      return {\n        title: t(\"orders.tpsl.cancelAll\"),\n        content: t(\"orders.tpsl.cancelAll.description\"),\n      };\n    default:\n      return {\n        title: \"\",\n        content: \"\",\n      };\n  }\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AssetsModule } from \"@orderly.network/portfolio\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport {\n  Button,\n  Checkbox,\n  cn,\n  Divider,\n  Flex,\n  TabPanel,\n  Tabs,\n  Text,\n} from \"@orderly.network/ui\";\nimport type { TabPanelProps } from \"@orderly.network/ui\";\nimport { MobileOrderListWidget, TabType } from \"@orderly.network/ui-orders\";\nimport {\n  MobileLiquidationWidget,\n  MobilePositionHistoryWidget,\n  MobilePositionsWidget,\n} from \"@orderly.network/ui-positions\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport {\n  type DataListState,\n  DataListTabSubType,\n  DataListTabType,\n} from \"./dataList.script\";\n\nconst LazyPositionHeaderWidget = React.lazy(() =>\n  import(\"../../base/positionHeader\").then((mod) => {\n    return { default: mod.PositionHeaderWidget };\n  }),\n);\n\nconst SymbolControlHeader: React.FC<\n  DataListState & { type: TabType; ordersStatus?: OrderStatus }\n> = (props) => {\n  const { pendingOrderCount, tpSlOrderCount, type, symbol } = props;\n  const { t } = useTranslation();\n  const cancelAllDisabled = useMemo(() => {\n    if (type === TabType.pending) {\n      return pendingOrderCount === 0;\n    }\n    if (type === TabType.tp_sl) {\n      return tpSlOrderCount === 0;\n    }\n    return false;\n  }, [pendingOrderCount, tpSlOrderCount, type]);\n  const formattedSymbol = props.showAllSymbol\n    ? undefined\n    : symbol\n      ? formatSymbol(symbol, \"base\")\n      : symbol;\n  return (\n    <Flex\n      px={2}\n      py={2}\n      width={\"100%\"}\n      justify={\"between\"}\n      gap={2}\n      className=\"oui-rounded-b-xl oui-bg-base-9\"\n    >\n      <Flex className=\"oui-cursor-pointer oui-gap-[2px]\">\n        <Checkbox\n          color=\"white\"\n          checked={!props.showAllSymbol}\n          onCheckedChange={(checked: boolean) => {\n            props.setShowAllSymbol(!checked);\n          }}\n        />\n        <Text\n          size=\"2xs\"\n          intensity={54}\n          onClick={() => {\n            props.setShowAllSymbol(!props.showAllSymbol);\n          }}\n        >\n          {t(\"trading.hideOtherSymbols\")}\n        </Text>\n      </Flex>\n      <Button\n        variant=\"outlined\"\n        size=\"xs\"\n        color=\"secondary\"\n        onClick={() => props.onCloseAll(props.type)}\n        disabled={cancelAllDisabled}\n      >\n        {!props.showAllSymbol\n          ? t(\"orders.cancelAll.ofSymbol\", { symbol: formattedSymbol })\n          : t(\"orders.cancelAll\")}\n      </Button>\n    </Flex>\n  );\n};\n\nconst OrdersView: React.FC<\n  DataListState & { type: TabType; ordersStatus?: OrderStatus }\n> = (props) => {\n  return (\n    <Flex direction={\"column\"} pb={2} width={\"100%\"}>\n      <Divider className=\"oui-w-full\" />\n      {props.type !== TabType.orderHistory && (\n        <SymbolControlHeader {...props} />\n      )}\n      <MobileOrderListWidget\n        symbol={props.showAllSymbol ? undefined : props.symbol}\n        onSymbolChange={props.onSymbolChange}\n        type={props.type}\n        ordersStatus={props.ordersStatus}\n        classNames={{\n          root: \"oui-w-full oui-hide-scrollbar oui-overflow-y-hidden\",\n          content: \"!oui-space-y-1\",\n          cell: \"oui-py-2 oui-bg-base-9 oui-p-2 oui-rounded-xl\",\n        }}\n        sharePnLConfig={props.sharePnLConfig}\n        showFilter={props.type === TabType.orderHistory}\n        filterConfig={{ range: { from: undefined, to: undefined } }}\n      />\n    </Flex>\n  );\n};\n\nconst PositionsView: React.FC<DataListState> = (props) => {\n  return (\n    <Flex direction={\"column\"} gap={2}>\n      <React.Suspense fallback={null}>\n        <LazyPositionHeaderWidget\n          pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n          setPnlNotionalDecimalPrecision={props.setPnlNotionalDecimalPrecision}\n          symbol={props.showAllSymbol ? undefined : props.symbol}\n          unPnlPriceBasis={props.unPnlPriceBasis}\n          setUnPnlPriceBasic={props.setUnPnlPriceBasic}\n        />\n      </React.Suspense>\n      <React.Suspense fallback={null}>\n        <MobilePositionsWidget\n          symbol={props.showAllSymbol ? undefined : props.symbol}\n          onSymbolChange={props.onSymbolChange}\n          sharePnLConfig={props.sharePnLConfig}\n          pnlNotionalDecimalPrecision={props.pnlNotionalDecimalPrecision}\n        />\n      </React.Suspense>\n    </Flex>\n  );\n};\n\nconst HistoryTab: React.FC<DataListState> = (props) => {\n  const { t } = useTranslation();\n  return (\n    <div className=\"oui-min-h-[300px]\">\n      <Tabs\n        value={props.subTab}\n        onValueChange={(e: any) => props.setSubTab(e)}\n        size=\"md\"\n        classNames={{ tabsList: \"oui-bg-base-9 oui-rounded-t-xl oui-p-2\" }}\n      >\n        <TabPanel\n          title={t(\"positions.positionHistory\")}\n          value={DataListTabSubType.positionHistory}\n        >\n          <MobilePositionHistoryWidget\n            symbol={props.showAllSymbol ? undefined : props.symbol}\n            onSymbolChange={props.onSymbolChange}\n            classNames={{ cell: \"oui-p-2 oui-bg-base-9 oui-rounded-xl\" }}\n            sharePnLConfig={props.sharePnLConfig}\n          />\n        </TabPanel>\n        <TabPanel\n          title={t(\"orders.orderHistory\")}\n          value={DataListTabSubType.orderHistory}\n        >\n          <OrdersView type={TabType.orderHistory} {...props} />\n        </TabPanel>\n      </Tabs>\n    </div>\n  );\n};\n\nexport const DataList: React.FC<DataListState & { className?: string }> = (\n  props,\n) => {\n  const { t } = useTranslation();\n  const {\n    positionCount = 0,\n    pendingOrderCount = 0,\n    tpSlOrderCount = 0,\n    showAllSymbol,\n    symbol,\n    tab,\n    setTab,\n    className,\n  } = props;\n\n  const tabPanelItems: (TabPanelProps & { content?: React.ReactNode })[] = [\n    {\n      title: `${t(\"common.positions\")} ${positionCount > 0 ? `(${positionCount})` : \"\"}`,\n      value: DataListTabType.position,\n      content: <PositionsView {...props} />,\n    },\n    {\n      title: `${t(\"orders.status.pending\")} ${pendingOrderCount > 0 ? `(${pendingOrderCount})` : \"\"}`,\n      value: DataListTabType.pending,\n      content: (\n        <OrdersView\n          type={TabType.pending}\n          ordersStatus={OrderStatus.INCOMPLETE}\n          {...props}\n        />\n      ),\n    },\n    {\n      title: `${t(\"common.tpsl\")} ${tpSlOrderCount > 0 ? `(${tpSlOrderCount})` : \"\"}`,\n      value: DataListTabType.tp_sl,\n      content: (\n        <OrdersView\n          type={TabType.tp_sl}\n          ordersStatus={OrderStatus.INCOMPLETE}\n          {...props}\n        />\n      ),\n    },\n    {\n      title: t(\"trading.history\"),\n      value: DataListTabType.history,\n      content: <HistoryTab {...props} />,\n    },\n    {\n      title: t(\"positions.liquidation\"),\n      value: DataListTabType.liquidation,\n      content: (\n        <MobileLiquidationWidget\n          enableLoadMore\n          symbol={showAllSymbol ? undefined : symbol}\n          classNames={{ cell: \"oui-p-2 oui-bg-base-9 oui-rounded-xl\" }}\n        />\n      ),\n    },\n    {\n      title: t(\"common.assets\"),\n      value: DataListTabType.assets,\n      content: <AssetsModule.AssetsWidget />,\n    },\n  ];\n\n  return (\n    <Tabs\n      value={tab}\n      defaultValue={DataListTabType.position}\n      onValueChange={(e) => setTab(e as DataListTabType)}\n      size=\"lg\"\n      className={cn(\"oui-trading-dataList-tabs\", className)}\n      classNames={{\n        tabsList:\n          \"oui-bg-base-9 oui-rounded-t-xl oui-p-2 oui-overflow-x-scroll oui-hide-scrollbar\",\n      }}\n    >\n      {tabPanelItems.map((item) => {\n        const { content, ...rest } = item;\n        return (\n          <TabPanel {...rest} key={`item-${rest.value}`}>\n            {content}\n          </TabPanel>\n        );\n      })}\n    </Tabs>\n  );\n};\n","import React from \"react\";\nimport type { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { useDataListScript } from \"./dataList.script\";\nimport { DataList } from \"./dataList.ui\";\n\nexport const DataListWidget: React.FC<{\n  symbol: string;\n  className?: string;\n  sharePnLConfig?: SharePnLConfig;\n}> = (props) => {\n  const state = useDataListScript(props);\n  return <DataList {...state} className={props.className} />;\n};\n","export { DataList } from \"./dataList.ui\";\nexport { DataListWidget } from \"./dataList.widget\";\nexport { useDataListScript } from \"./dataList.script\";\n","/**\n * Side-effect: augment InterceptorTargetPropsMap for typed interceptor props.\n */\nimport \"./types/interceptorTargets\";\n\nexport type {\n  ShareOptions,\n  TradingPageProps,\n  ReferralProps,\n  TradingRewardsProps,\n} from \"./types/types\";\n\nexport type { Props as OrderBookDesktopAsksProps } from \"./components/desktop/orderBook/asks.desktop\";\nexport type { Props as OrderBookDesktopBidsProps } from \"./components/desktop/orderBook/bids.desktop\";\nexport type { AccountState } from \"./components/mobile/bottomNavBar/account/account.script\";\nexport type { DesktopLayoutProps } from \"./pages/trading/trading.ui.desktop\";\n\nexport * from \"./components/desktop/dataList\";\nexport * from \"./components/base/lastTrades\";\nexport * from \"./components/desktop/assetView\";\nexport * from \"./components/base/orderBook\";\nexport * from \"./components/desktop/riskRate\";\nexport * from \"./components/desktop/orderBookAndTrades\";\nexport * from \"./components/desktop/layout/splitLayout/splitLayout\";\nexport * from \"./components/mobile/bottomNavBar\";\nexport * from \"./components/mobile/portfolioSheet\";\nexport * from \"./components/mobile/fundingRate\";\nexport * from \"./components/mobile/fundingRateModal\";\nexport * from \"./pages/trading\";\nexport * from \"./provider/tradingPageContext\";\nexport * from \"./provider/tradingPageProvider\";\nexport * from \"./hooks\";\n","import React, { HTMLAttributes, useMemo } from \"react\";\nimport { SplitProps } from \"@uiw/react-split\";\nimport { cn } from \"@orderly.network/ui\";\n\nexport type SplitLineBarProps = Pick<SplitProps, \"mode\"> &\n  HTMLAttributes<HTMLDivElement>;\n\nexport const SplitLineBar: React.FC<SplitLineBarProps> = (props) => {\n  const { onMouseDown, mode = \"horizontal\", ...rest } = props;\n\n  const disable = useMemo(\n    () => props.className?.split(\" \").includes(\"disable\"),\n    [props.className],\n  );\n\n  const filterCls = useMemo(\n    () => props.className?.split(\" \").filter((cls) => cls !== \"disable\"),\n    [props.className],\n  );\n\n  return (\n    <div\n      {...rest}\n      className={cn(\n        filterCls,\n        \"!oui-transition-none\",\n        \"!oui-shadow-none !oui-bg-transparent\",\n        \"hover:!oui-bg-primary-light hover:!oui-shadow-[0px_0px_4px_0px] hover:!oui-shadow-primary-light/80\",\n        \"active:!oui-bg-primary-light active:!oui-shadow-[0px_0px_4px_0px] active:!oui-shadow-primary-light/80\",\n        \"focus:!oui-bg-primary-light focus:!oui-shadow-[0px_0px_4px_0px] focus:!oui-shadow-primary-light/80\",\n        mode === \"horizontal\"\n          ? \"!oui-w-[2px] !oui-min-w-[2px] !oui-mx-[3px]\"\n          : \"!oui-h-[2px] !oui-min-h-[2px] !oui-my-[3px]\",\n        disable && \"oui-pointer-events-none\",\n      )}\n    >\n      <div\n        onMouseDown={onMouseDown}\n        className={cn(\n          \"!oui-transition-none\",\n          mode === \"horizontal\" ? \"after:!oui-w-[2px]\" : \"after:!oui-h-[2px]\",\n          \"after:!oui-bg-transparent after:!oui-shadow-transparent\",\n        )}\n      />\n    </div>\n  );\n};\n","import React, { PropsWithChildren, forwardRef } from \"react\";\nimport Split, { SplitProps } from \"@uiw/react-split\";\nimport { SplitLineBar } from \"./splitLineBar\";\n\ntype SplitLayoutProps = PropsWithChildren<SplitProps> & {\n  onSizeChange?: (size: string) => void;\n};\n\nexport const SplitLayout = forwardRef<Split, SplitLayoutProps>((props, ref) => {\n  const { onSizeChange, ...rest } = props;\n  return (\n    <Split\n      ref={ref}\n      {...rest}\n      lineBar\n      renderBar={(barProps) => <SplitLineBar {...barProps} mode={props.mode} />}\n      onDragEnd={(_, width) => onSizeChange?.(`${width}`)}\n    />\n  );\n});\n","import { AccountState as AccountStateType } from \"@orderly.network/core\";\nimport { useAccount } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { useTradingPageContext } from \"../../../../provider/tradingPageContext\";\nimport { AccountSheetWidget } from \"../../accountSheet\";\n\nexport const useAccountScript = () => {\n  const { t } = useTranslation();\n  const { referral, tradingRewards, bottomSheetLeading } =\n    useTradingPageContext();\n  const { account, state } = useAccount();\n\n  const onShowAccountSheet = () => {\n    modal.sheet({\n      title: t(\"common.account\"),\n      leading: bottomSheetLeading,\n      content: <AccountSheetWidget {...referral} {...tradingRewards} />,\n    });\n  };\n\n  return {\n    onShowAccountSheet,\n    address: account.address,\n    state: state as AccountStateType,\n  };\n};\n\nexport type AccountState = ReturnType<typeof useAccountScript>;\n","export const HeadIcon = () => {\n  return (\n    <svg\n      width=\"24\"\n      height=\"24\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      className=\"oui-rounded-full\"\n    >\n      <g clipPath=\"url(#a)\">\n        <path\n          d=\"m31.002 14.493-8.326-22.51L.166.31l8.327 22.51z\"\n          fill=\"rgb(var(--oui-color-base-5))\"\n        />\n        <path\n          d=\"m4.456-8.716-18.03 15.84 15.84 18.03 18.03-15.84z\"\n          fill=\"rgb(var(--oui-color-primary))\"\n        />\n        <path\n          d=\"m17.548 38.67 22.825-7.416-7.416-22.825-22.826 7.416z\"\n          fill=\"rgb(var(--oui-color-warning))\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"a\">\n          <rect\n            width=\"24\"\n            height=\"24\"\n            rx=\"12\"\n            fill=\"rgb(var(--oui-color-base-foreground))\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  );\n};\n\nexport const CopyIcon = () => {\n  return (\n    <svg\n      width=\"20\"\n      height=\"20\"\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M5.832 2.492A3.333 3.333 0 0 0 2.5 5.826v5a3.333 3.333 0 0 0 3.333 3.333 3.333 3.333 0 0 0 3.334 3.333h5a3.333 3.333 0 0 0 3.333-3.333v-5a3.333 3.333 0 0 0-3.333-3.333 3.333 3.333 0 0 0-3.334-3.334zm8.334 5c.92 0 1.666.746 1.666 1.667v5c0 .92-.746 1.666-1.666 1.666h-5c-.92 0-1.667-.745-1.667-1.666h3.333a3.333 3.333 0 0 0 3.334-3.334z\"\n        fill=\"rgb(var(--oui-color-primary))\"\n      />\n    </svg>\n  );\n};\n\nexport const USDCIcon = (props: { size?: number }) => {\n  const { size = 20 } = props;\n  return (\n    <svg\n      width={size}\n      height={size}\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <g clipPath=\"url(#a)\">\n        <path\n          d=\"M10 20c5.542 0 10-4.458 10-10S15.542 0 10 0 0 4.458 0 10s4.458 10 10 10\"\n          fill=\"rgb(var(--oui-color-primary))\"\n        />\n        <path\n          d=\"M13 11.473c0-1.452-.94-1.95-2.82-2.158-1.344-.166-1.613-.498-1.613-1.078s.448-.955 1.343-.955c.806 0 1.254.25 1.478.872.045.124.18.207.313.207h.717c.179 0 .313-.125.313-.29v-.042c-.179-.913-.985-1.618-2.015-1.701v-.996c0-.166-.134-.29-.358-.332h-.671c-.18 0-.314.124-.359.332v.954c-1.343.166-2.194.996-2.194 2.034 0 1.369.896 1.908 2.776 2.116 1.254.207 1.657.456 1.657 1.12s-.627 1.12-1.477 1.12c-1.165 0-1.568-.456-1.702-1.078a.32.32 0 0 0-.313-.25h-.762c-.179 0-.313.125-.313.291v.042c.179 1.037.895 1.784 2.373 1.991v.996c0 .166.134.29.358.332h.672c.18 0 .313-.124.358-.332v-.996C12.105 13.465 13 12.593 13 11.473\"\n          fill=\"rgb(var(--oui-color-base-foreground))\"\n          fillOpacity=\".98\"\n        />\n        <path\n          d=\"M7.74 16.57c-3.458-1.215-5.23-4.986-3.945-8.324.665-1.821 2.127-3.208 3.944-3.859.178-.086.266-.216.266-.433v-.607c0-.174-.088-.304-.266-.347-.044 0-.133 0-.177.043-4.21 1.3-6.516 5.68-5.186 9.798.798 2.428 2.704 4.292 5.186 5.072.177.087.355 0 .399-.173.044-.043.044-.087.044-.173v-.608c0-.13-.133-.303-.266-.39m4.698-13.527c-.178-.086-.355 0-.4.174-.043.043-.043.086-.043.173v.607c0 .174.133.347.266.434 3.457 1.213 5.23 4.985 3.944 8.323-.664 1.821-2.127 3.209-3.944 3.859-.178.086-.266.216-.266.433v.607c0 .174.088.304.266.347.044 0 .133 0 .177-.043 4.21-1.3 6.515-5.68 5.186-9.798-.798-2.471-2.748-4.335-5.186-5.116\"\n          fill=\"rgb(var(--oui-color-base-foreground))\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"a\">\n          <path\n            fill=\"rgb(var(--oui-color-base-foreground))\"\n            d=\"M0 0h20v20H0z\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  );\n};\n\nexport const OrderlyIcon = (props: { size?: number }) => {\n  const { size = 20 } = props;\n  return (\n    <svg\n      width=\"20\"\n      height=\"20\"\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <g clipPath=\"url(#clip0_6403_64483)\">\n        <path\n          d=\"M10.0245 19.9493C15.5198 19.9493 19.9747 15.4944 19.9747 9.99908C19.9747 4.50371 15.5198 0.0488281 10.0245 0.0488281C4.5291 0.0488281 0.0742188 4.50371 0.0742188 9.99908C0.0742188 15.4944 4.5291 19.9493 10.0245 19.9493Z\"\n          fill=\"url(#paint0_linear_6403_64483)\"\n        />\n        <path\n          fillRule=\"evenodd\"\n          clipRule=\"evenodd\"\n          d=\"M14.1553 4.89304C14.2199 4.94541 14.1821 5.04758 14.0989 5.04758H5.95035C5.86716 5.04758 5.82936 4.94541 5.894 4.89304C7.0223 3.97912 8.45953 3.43164 10.0246 3.43164C11.5898 3.43164 13.0269 3.97912 14.1553 4.89304Z\"\n          fill=\"rgb(var(--oui-color-base-foreground))\"\n        />\n        <path\n          fillRule=\"evenodd\"\n          clipRule=\"evenodd\"\n          d=\"M7.47013 11.7869C7.42315 11.7199 7.34748 11.6777 7.26565 11.6777H3.82985C3.75113 11.6777 3.69375 11.7525 3.71563 11.8281C4.5078 14.565 7.0326 16.566 10.0247 16.566C13.017 16.566 15.5417 14.565 16.3339 11.8281C16.3558 11.7525 16.2984 11.6777 16.2197 11.6777H12.7839C12.702 11.6777 12.6264 11.7199 12.5795 11.7869C12.0155 12.5911 11.0815 13.1167 10.0248 13.1167C8.96803 13.1167 8.03406 12.5911 7.47013 11.7869Z\"\n          fill=\"rgb(var(--oui-color-base-foreground))\"\n        />\n        <path\n          fillRule=\"evenodd\"\n          clipRule=\"evenodd\"\n          d=\"M12.3347 7.90519C12.3822 7.95756 12.449 7.9891 12.5196 7.9891H16.1137C16.1952 7.9891 16.253 7.90983 16.2261 7.83301C15.9724 7.10689 15.5948 6.43893 15.1187 5.85447C15.074 5.79961 15.0067 5.76855 14.9358 5.76855H5.11323C5.04247 5.76855 4.97512 5.79961 4.93044 5.85447C4.45429 6.43893 4.0767 7.10689 3.82306 7.83301C3.79622 7.90983 3.85398 7.9891 3.93536 7.9891H7.52952C7.60022 7.9891 7.66694 7.95756 7.71445 7.90519C8.28491 7.2763 9.10861 6.88136 10.0246 6.88136C10.9405 6.88136 11.7643 7.2763 12.3347 7.90519Z\"\n          fill=\"rgb(var(--oui-color-base-foreground))\"\n        />\n        <path\n          fillRule=\"evenodd\"\n          clipRule=\"evenodd\"\n          d=\"M13.1164 10.9586C13.0553 10.9586 13.0118 10.899 13.0284 10.8401C13.1033 10.5722 13.1433 10.2898 13.1433 9.9981C13.1433 9.58758 13.064 9.19556 12.9199 8.83657C12.8954 8.77581 12.9392 8.70801 13.0046 8.70801H16.392C16.4349 8.70801 16.472 8.73831 16.4799 8.78052C16.5538 9.17511 16.5925 9.58216 16.5925 9.9982C16.5925 10.2978 16.5724 10.5926 16.5337 10.8815C16.5277 10.9258 16.4897 10.9586 16.4451 10.9586H13.1164ZM7.02223 10.8401C7.03868 10.899 6.99532 10.9586 6.93421 10.9586H3.60551C3.56084 10.9586 3.52285 10.9258 3.5169 10.8815C3.47807 10.5926 3.45801 10.2978 3.45801 9.9982C3.45801 9.58216 3.4967 9.17511 3.57069 8.78052C3.57859 8.73831 3.61563 8.70801 3.65856 8.70801H7.04593C7.11141 8.70801 7.15516 8.77581 7.13076 8.83657C6.98657 9.19556 6.90722 9.58758 6.90722 9.9981C6.90722 10.2898 6.94728 10.5722 7.02223 10.8401Z\"\n          fill=\"rgb(var(--oui-color-base-foreground))\"\n        />\n      </g>\n      <defs>\n        <linearGradient\n          id=\"paint0_linear_6403_64483\"\n          x1=\"10.0245\"\n          y1=\"0.0488561\"\n          x2=\"10.0245\"\n          y2=\"19.9493\"\n          gradientUnits=\"userSpaceOnUse\"\n        >\n          <stop stopColor=\"rgb(var(--oui-gradient-secondary-start))\" />\n          <stop offset=\"1\" stopColor=\"rgb(var(--oui-gradient-secondary-end))\" />\n        </linearGradient>\n        <clipPath id=\"clip0_6403_64483\">\n          <rect\n            width=\"20\"\n            height=\"20\"\n            fill=\"rgb(var(--oui-color-base-foreground))\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  ArrowRightShortIcon,\n  Button,\n  cn,\n  Flex,\n  Text,\n} from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { AccountSheetState } from \"./accountSheet.script\";\nimport { CopyIcon, HeadIcon, OrderlyIcon, USDCIcon } from \"./icons\";\n\nexport const AccountSheet: FC<AccountSheetState> = (props) => {\n  const { t } = useTranslation();\n\n  return (\n    <Flex className=\"oui-accountSheet\" direction={\"column\"} gap={4}>\n      <AccountInfo {...props} />\n      <ReferralInfo {...props} />\n      <TradingRewardsInfo {...props} />\n      <Flex gap={3} width={\"100%\"} justify={\"center\"}>\n        {props.showGetTestUSDC && (\n          <Button\n            variant=\"outlined\"\n            // color=\"primary\"\n            size=\"md\"\n            onClick={props.onGetTestUSDC}\n            fullWidth\n            loading={props.gettingTestUSDC}\n            className=\"oui-accountSheet-getTestUSDC-btn oui-border-primary-light oui-text-primary-light\"\n          >\n            {t(\"trading.faucet.getTestUSDC\")}\n          </Button>\n        )}\n        <Button\n          variant=\"outlined\"\n          color=\"danger\"\n          size=\"md\"\n          onClick={props.onDisconnect}\n          className={props.showGetTestUSDC ? \"oui-w-full\" : \"oui-w-[50%]\"}\n        >\n          {t(\"connector.disconnect\")}\n        </Button>\n      </Flex>\n    </Flex>\n  );\n};\nexport const AccountInfo: FC<AccountSheetState> = (props) => {\n  return (\n    <Flex width={\"100%\"} justify={\"between\"}>\n      <Flex gap={3}>\n        <HeadIcon />\n        <Flex\n          direction={\"column\"}\n          justify={\"start\"}\n          itemAlign={\"start\"}\n          className=\"oui-gap-[2px]\"\n        >\n          <Text.formatted rule={\"address\"}>{props.address}</Text.formatted>\n          <Text.formatted\n            size=\"2xs\"\n            intensity={80}\n            // @ts-ignore\n            prefix={\n              <div className=\"oui-h-1 oui-w-1 oui-rounded-full oui-bg-success oui-pr-1\" />\n            }\n          >\n            {props.chainName}\n          </Text.formatted>\n        </Flex>\n      </Flex>\n      <button\n        className=\"oui-cursor-pointer\"\n        onClick={() => {\n          props.onCopyAddress();\n        }}\n      >\n        <CopyIcon />\n      </button>\n    </Flex>\n  );\n};\n\nexport const ReferralInfo: FC<AccountSheetState> = (props) => {\n  const { t } = useTranslation();\n  return (\n    <Flex\n      direction={\"column\"}\n      gap={3}\n      r=\"lg\"\n      p={3}\n      className=\"oui-bg-base-6\"\n      width={\"100%\"}\n    >\n      <button\n        onClick={props.onClickReferral}\n        className=\"oui-cursor-pointer oui-w-full\"\n      >\n        <Flex justify={\"between\"} width={\"100%\"}>\n          <Text size=\"2xs\">{t(\"affiliate.referral\")}</Text>\n          <ArrowRightShortIcon color=\"white\" opacity={0.98} size={16} />\n        </Flex>\n      </button>\n      {props.isAffiliate && (\n        <Flex\n          gradient=\"primary\"\n          p={4}\n          r=\"lg\"\n          width={\"100%\"}\n          angle={180}\n          justify={\"between\"}\n        >\n          <Flex direction={\"column\"} itemAlign={\"start\"}>\n            <Text size=\"xs\">{t(\"common.affiliate\")}</Text>\n            <Text size=\"2xs\" intensity={54}>\n              ({t(\"affiliate.commission.30d\")})\n            </Text>\n          </Flex>\n          <Flex className=\"oui-gap-[6px]\">\n            <USDCIcon />\n            <Text.numeral\n              dp={2}\n              padding={false}\n              rm={Decimal.ROUND_DOWN}\n              rule=\"price\"\n            >\n              {props.affiliateCommission30D ?? \"--\"}\n            </Text.numeral>\n          </Flex>\n        </Flex>\n      )}\n      {props.isTrader && (\n        <Flex\n          gradient=\"success\"\n          p={4}\n          r=\"lg\"\n          width={\"100%\"}\n          angle={180}\n          justify={\"between\"}\n        >\n          <Flex direction={\"column\"} itemAlign={\"start\"}>\n            <Text size=\"xs\">{t(\"affiliate.trader\")}</Text>\n            <Text size=\"2xs\" intensity={54}>\n              ({t(\"affiliate.commission.30d\")})\n            </Text>\n          </Flex>\n          <Flex className=\"oui-gap-[6px]\">\n            <USDCIcon />\n            <Text.numeral\n              dp={2}\n              padding={false}\n              rm={Decimal.ROUND_DOWN}\n              rule=\"price\"\n            >\n              {props.traderCommission30D ?? \"--\"}\n            </Text.numeral>\n          </Flex>\n        </Flex>\n      )}\n    </Flex>\n  );\n};\n\nexport const TradingRewardsInfo: FC<AccountSheetState> = (props) => {\n  const { t } = useTranslation();\n\n  return (\n    <Flex\n      direction={\"column\"}\n      gap={3}\n      r=\"lg\"\n      p={3}\n      className=\"oui-bg-base-6\"\n      width={\"100%\"}\n    >\n      <button\n        onClick={props.onClickTradingRewards}\n        className=\"oui-cursor-pointer oui-w-full\"\n      >\n        <Flex justify={\"between\"} width={\"100%\"}>\n          <Flex gap={1} className=\"oui-text-base-contrast oui-text-2xs\">\n            <Text>{t(\"common.tradingRewards\")}</Text>\n            <Text intensity={54}>\n              (\n              <Text>{`${(\n                t(\"tradingRewards.epoch\") as string\n              )?.toLowerCase()} `}</Text>\n              <Text intensity={98}>{props.curEpochId}</Text> )\n            </Text>\n          </Flex>\n          <ArrowRightShortIcon color=\"white\" opacity={0.98} size={16} />\n        </Flex>\n      </button>\n      <Flex\n        p={4}\n        r=\"lg\"\n        width={\"100%\"}\n        angle={180}\n        justify={\"between\"}\n        className=\"oui-bg-gradient-to-t oui-from-[rgb(var(--oui-gradient-secondary-end))] oui-to-[rgb(var(--oui-gradient-secondary-start))]\"\n      >\n        <Text size=\"2xs\" intensity={80}>\n          {t(\"tradingRewards.myEstRewards\")}\n        </Text>\n\n        <Flex className=\"oui-gap-[6px]\">\n          <OrderlyIcon />\n          <Text.numeral\n            dp={2}\n            padding={false}\n            rm={Decimal.ROUND_DOWN}\n            rule=\"price\"\n          >\n            {props.estRewards}\n          </Text.numeral>\n        </Flex>\n      </Flex>\n    </Flex>\n  );\n};\n","import { useMemo } from \"react\";\nimport {\n  TWType,\n  useAccount,\n  useChains,\n  useConfig,\n  useCurEpochEstimate,\n  useEpochInfo,\n  useLocalStorage,\n  useMutation,\n  useReferralInfo,\n  useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum, ChainNamespace } from \"@orderly.network/types\";\nimport { modal, toast, useModal } from \"@orderly.network/ui\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { ReferralProps, TradingRewardsProps } from \"../../../types/types\";\n\nexport const useAccountSheetScript = (\n  props: ReferralProps & TradingRewardsProps,\n) => {\n  const { t } = useTranslation();\n  const [linkDeviceStorage] = useLocalStorage(\"orderly_link_device\", {});\n  const { account, state } = useAccount();\n  const accountId = account.accountId;\n  const address = account.address;\n  const { hide } = useModal();\n\n  const config = useConfig();\n\n  const { connectedChain, disconnect, namespace } = useWalletConnector();\n\n  const chainId =\n    account.chainId || connectedChain?.id || linkDeviceStorage?.chainId;\n\n  const showGetTestUSDC = useMemo(() => {\n    if (chainId) {\n      return (\n        (state.status === AccountStatusEnum.EnableTrading ||\n          state.status === AccountStatusEnum.EnableTradingWithoutConnected) &&\n        // @ts-ignore\n        isTestnet(parseInt(chainId))\n      );\n    }\n\n    return false;\n  }, [state.status, chainId]);\n\n  const chainName = useGetChains(chainId);\n\n  const operatorUrl = config.get<string>(\"operatorUrl\");\n\n  const onCopyAddress = () => {\n    navigator.clipboard.writeText(address ?? \"\");\n    toast.success(t(\"common.copy.copied\"));\n  };\n\n  const {\n    affiliateCommission30D,\n    traderCommission30D,\n    isAffiliate,\n    isTrader,\n    onClickReferral,\n  } = useReferral(props.onClickReferral);\n\n  const { curEpochId, estRewards, onClickTradingRewards } = useTradingRewards(\n    props.onClickTradingRewards,\n  );\n\n  const onDisconnect = async () => {\n    // The cache must be cleared first, otherwise it will be possible entered link device mode\n    localStorage.removeItem(\"orderly_link_device\");\n    await disconnect({\n      label: state.connectWallet?.name,\n    });\n    await account.disconnect();\n    hide();\n  };\n\n  const [getTestUSDC, { isMutating: gettingTestUSDC }] = useMutation(\n    `${operatorUrl}/v1/faucet/usdc`,\n  );\n\n  const onGetTestUSDC = () => {\n    if (\n      state.status < AccountStatusEnum.EnableTrading &&\n      state.status !== AccountStatusEnum.EnableTradingWithoutConnected\n    ) {\n      // return modal.show(WalletConnectSheet, {\n      //   status: state.status,\n      // });\n      return;\n    }\n\n    const message = t(\"trading.faucet.getTestUSDC.success\", {\n      quantity: namespace === ChainNamespace.solana ? \"100\" : \"1,000\",\n    });\n\n    return getTestUSDC({\n      chain_id: chainId?.toString(),\n      user_address: state.address,\n      broker_id: config.get(\"brokerId\"),\n    }).then(\n      (res: any) => {\n        if (res.success) {\n          return modal.alert({\n            title: t(\"trading.faucet.getTestUSDC\"),\n            message,\n            onOk: () => {\n              return Promise.resolve(true);\n            },\n          });\n        }\n        res.message && toast.error(res.message);\n        // return Promise.reject(res);\n      },\n      (error: Error) => {\n        toast.error(error.message);\n      },\n    );\n  };\n  return {\n    accountId,\n    address,\n    chainId,\n    chainName,\n    onCopyAddress,\n\n    affiliateCommission30D,\n    onClickReferral,\n    isAffiliate,\n    isTrader,\n    traderCommission30D,\n\n    curEpochId,\n    onClickTradingRewards,\n    estRewards,\n\n    onDisconnect,\n    showGetTestUSDC,\n    onGetTestUSDC,\n    gettingTestUSDC,\n  };\n};\n\nconst useReferral = (_onClickReferral?: () => void) => {\n  const { data, isLoading, isAffiliate, isTrader } = useReferralInfo();\n\n  const affiliateCommission30D = useMemo(() => {\n    if (isAffiliate) {\n      return data?.referrer_info?.[\"30d_referrer_rebate\"];\n    }\n    return undefined;\n  }, [data, isAffiliate]);\n\n  const traderCommission30D = useMemo(() => {\n    if (isTrader) {\n      return data?.referee_info?.[\"30d_referee_rebate\"];\n    }\n    return undefined;\n  }, [data, isTrader]);\n\n  const onClickReferral = () => {\n    _onClickReferral?.();\n  };\n\n  return {\n    onClickReferral,\n    affiliateCommission30D,\n    traderCommission30D,\n    isAffiliate,\n    isTrader,\n\n    // WARNING: test data\n    // affiliateCommission30D: 1234.43,\n    // traderCommission30D:44343.33,\n    // isAffiliate: true,\n    // isTrader: true,\n  };\n};\n\nconst useTradingRewards = (_onClick?: () => void) => {\n  const [curEpochEstimate] = useCurEpochEstimate(TWType.normal);\n  const [list, curEpoch] = useEpochInfo(TWType.normal);\n  const curEpochId = useMemo(() => {\n    return curEpoch.curEpochInfo?.epoch_id ?? \"--\";\n  }, [curEpoch]);\n\n  const estRewards = useMemo(() => {\n    if (typeof curEpochEstimate?.est_r_wallet === \"undefined\") {\n      return \"--\";\n    }\n    return curEpochEstimate?.est_r_wallet;\n  }, [curEpochEstimate]);\n\n  const onClickTradingRewards = () => {\n    _onClick?.();\n  };\n\n  return {\n    curEpochId,\n    estRewards,\n    onClickTradingRewards,\n  };\n};\n\nfunction useGetChains(chainId: number) {\n  const [mainChains, { findByChainId }] = useChains(\"mainnet\", {\n    pick: \"network_infos\",\n    filter: (chain: any) =>\n      chain.network_infos?.bridge_enable || chain.network_infos?.bridgeless,\n  });\n\n  const chainName = useMemo(() => {\n    // @ts-ignore\n    const chain = findByChainId(parseInt(chainId), \"network_infos\");\n\n    if (!chain) {\n      return \"Unknown\";\n    }\n    // // @ts-ignore\n    // if (isTestnet(chain.chain_id)) {\n    //   return \"Testnet\";\n    // }\n    // @ts-ignore\n    return chain.name;\n  }, [chainId, findByChainId]);\n\n  return chainName;\n}\n\nexport type AccountSheetState = ReturnType<typeof useAccountSheetScript>;\n","import { ReferralProps, TradingRewardsProps } from \"../../../types/types\";\nimport { useAccountSheetScript } from \"./accountSheet.script\";\nimport { AccountSheet } from \"./accountSheet.ui\";\n\nexport const AccountSheetWidget = (\n  props: ReferralProps & TradingRewardsProps\n) => {\n  const state = useAccountSheetScript(props);\n  return <AccountSheet {...state} />;\n};\n","import { FC } from \"react\";\nimport { Button, formatAddress } from \"@orderly.network/ui\";\nimport { AccountState } from \"./account.script\";\nimport { AuthGuard } from \"@orderly.network/ui-connector\";\n\nexport const Account: FC<AccountState> = (props) => {\n  return (\n    <AuthGuard\n      buttonProps={{\n        size: \"sm\",\n      }}\n    >\n      <Button\n        variant=\"gradient\"\n        size={\"sm\"}\n        className=\"oui-max-w-[83px]\"\n        onClick={(e) => {\n          props.onShowAccountSheet();\n        }}\n      >\n        {formatAddress(props.address!, [4, 4])}\n      </Button>\n    </AuthGuard>\n  );\n};\n","import { injectable } from \"@orderly.network/ui\";\nimport { useAccountScript } from \"./account.script\";\nimport { Account } from \"./account.ui\";\n\n/** Default mobile account menu - can be intercepted by plugins via Account.MobileAccountMenu path */\nconst InjectableAccount = injectable(Account, \"Account.MobileAccountMenu\");\n\nexport const AccountWidget = () => {\n  const state = useAccountScript();\n  return <Account {...state} />;\n};\n\n/**\n * Extension entry for mobile account menu. Uses injectable pattern so plugins can\n * register interceptors for `Account.MobileAccountMenu` via OrderlyPluginProvider.\n */\nexport const MobileAccountMenuExtension = () => {\n  const state = useAccountScript();\n  return <InjectableAccount {...state} />;\n};\n","import { FC } from \"react\";\nimport { BalanceState } from \"./balance.script\";\n\nexport const Balance: FC<BalanceState> = () => {\n  return null;\n};\n","export const useBalanceScript = () => {\n  return {};\n};\n\nexport type BalanceState = ReturnType<typeof useBalanceScript>;\n","import { useBalanceScript } from \"./balance.script\";\nimport { Balance } from \"./balance.ui\";\n\nexport const BalanceWidget = () => {\n  const state = useBalanceScript();\n  return <Balance {...state} />;\n};\n","import { FC } from \"react\";\nimport { Box, ChainIcon, modal, toast } from \"@orderly.network/ui\";\nimport { ChainState } from \"./chain.script\";\nimport { ChainSelectorSheetId } from \"@orderly.network/ui-chain-selector\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const Chain: FC<ChainState> = (props) => {\n  const { t } = useTranslation();\n\n  return (\n    <button\n      onClick={(e) => {\n        modal\n          .show<{\n            wrongNetwork: boolean;\n          }>(ChainSelectorSheetId, {\n            // networkId: props.networkId,\n            bridgeLessOnly: false,\n            isWrongNetwork: props.wrongNetwork,\n          })\n          .then(\n            (r: any) => {\n              if (r?.chainId) {\n                props.setCurrentChainId(r?.chainId);\n              }\n              toast.success(t(\"connector.networkSwitched\"));\n            },\n            (error) => console.log(\"[switchChain error]\", error)\n          );\n      }}\n    >\n      <Box className=\"oui-relative oui-rounded-t-[6px] oui-rounded-bl-[6px] oui-rounded-br-[3px] oui-bg-base-5 oui-px-2 oui-h-7 oui-flex oui-items-center\">\n        <ChainIcon chainId={props.currentChainId!} size=\"2xs\" />\n        <div className=\"oui-absolute oui-right-0 oui-bottom-0\">\n          <svg\n            width=\"9\"\n            height=\"9\"\n            viewBox=\"0 0 9 9\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <path d=\"M9 6V0L0 9h6a3 3 0 0 0 3-3\" fill=\"url(#a)\" />\n            <defs>\n              <linearGradient\n                id=\"a\"\n                x1=\"9\"\n                y1=\"4.5\"\n                x2=\"0\"\n                y2=\"4.5\"\n                gradientUnits=\"userSpaceOnUse\"\n              >\n                <stop stopColor=\"rgb(var(--oui-gradient-brand-end))\" />\n                <stop\n                  offset=\"1\"\n                  stopColor=\"rgb(var(--oui-gradient-brand-start))\"\n                />\n              </linearGradient>\n            </defs>\n          </svg>\n        </div>\n      </Box>\n    </button>\n  );\n};\n","import { useConfig } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useChainScript = () => {\n  const config = useConfig();\n  const { wrongNetwork, currentChainId, setCurrentChainId } = useAppContext();\n\n  const networkId = config.get(\"networkId\");\n\n  return {\n    currentChainId,\n    setCurrentChainId,\n    networkId,\n    wrongNetwork,\n  };\n};\n\nexport type ChainState = ReturnType<typeof useChainScript>;\n","import React from \"react\";\nimport { useChainScript } from \"./chain.script\";\nimport { Chain } from \"./chain.ui\";\n\nexport const ChainWidget: React.FC = () => {\n  const state = useChainScript();\n  return <Chain {...state} />;\n};\n","import { FC, SVGProps, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { Flex, SimpleDialog, Text } from \"@orderly.network/ui\";\nimport { ScanQRCodeWidget } from \"@orderly.network/ui-scaffold\";\nimport { MobileAccountMenuExtension } from \"./account/account.widget\";\nimport { BalanceWidget } from \"./balance\";\nimport { BottomNavBarState } from \"./bottomNavBar.script\";\nimport { ChainWidget } from \"./chain\";\n\nexport const BottomNavBar: FC<BottomNavBarState> = (props) => {\n  const renderContent = () => {\n    if (props.wrongNetwork) {\n      return null;\n    }\n\n    if (\n      !props.disabledConnect &&\n      props.status === AccountStatusEnum.EnableTradingWithoutConnected\n    ) {\n      return <LinkDevice onDisconnect={props.onDisconnect} />;\n    }\n\n    return <ChainWidget />;\n  };\n\n  const showScanQRCode =\n    !props.disabledConnect &&\n    props.status !== AccountStatusEnum.EnableTradingWithoutConnected &&\n    props.status < AccountStatusEnum.EnableTrading;\n\n  return (\n    <div className=\"oui-bottomNavBar oui-bg-base-9 oui-border-t oui-border-line-4\">\n      <Flex\n        height={64}\n        gap={1}\n        justify={\"end\"}\n        itemAlign={\"center\"}\n        className=\"oui-px-[14px]\"\n        // style={{\n        //   height: \"calc(64px + env(safe-area-inset-bottom))\"\n        // }}\n      >\n        <BalanceWidget />\n        <Flex gap={2}>\n          {showScanQRCode && <ScanQRCodeWidget />}\n          {renderContent()}\n          <MobileAccountMenuExtension />\n        </Flex>\n      </Flex>\n      <div className=\"oui-h-[env(safe-area-inset-bottom)]\" />\n    </div>\n  );\n};\n\ntype LinkDeviceProps = {\n  onDisconnect: () => void;\n};\n\nconst LinkDevice: FC<LinkDeviceProps> = (props) => {\n  const [open, setOpen] = useState(false);\n  const { t } = useTranslation();\n\n  const showDialog = () => {\n    setOpen(true);\n  };\n\n  const hideDialog = () => {\n    setOpen(false);\n  };\n\n  return (\n    <>\n      <SimpleDialog\n        open={open}\n        onOpenChange={setOpen}\n        title={t(\"common.tips\")}\n        size=\"xs\"\n        actions={{\n          secondary: {\n            label: t(\"common.cancel\"),\n            onClick: hideDialog,\n            size: \"md\",\n            fullWidth: true,\n          },\n          primary: {\n            label: t(\"connector.disconnect\"),\n            onClick: async () => {\n              await props.onDisconnect();\n              hideDialog();\n            },\n            size: \"md\",\n            variant: \"outlined\",\n            color: \"danger\",\n          },\n        }}\n      >\n        <Text intensity={54} size=\"sm\">\n          {t(\"linkDevice.scanQRCode.connected.description\")}\n        </Text>\n      </SimpleDialog>\n      <Flex\n        className=\"oui-text-base-contrast oui-px-[6px]\"\n        intensity={500}\n        height={28}\n        r=\"md\"\n        onClick={showDialog}\n      >\n        <DesktopIcon />\n        <Dot />\n        <LinkIcon />\n        <Dot />\n        <MobileIcon />\n      </Flex>\n    </>\n  );\n};\n\nconst Dot = () => {\n  return (\n    <Flex className=\"oui-gap-x-[1px] oui-px-[1px]\">\n      <DotIcon />\n      <DotIcon />\n      <DotIcon />\n    </Flex>\n  );\n};\n\nconst DesktopIcon: 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=\"M4.5 2.93a2.25 2.25 0 0 0-2.25 2.25v5.25a.75.75 0 0 0-.75.75v1.5c0 1.272.93 2.25 2.25 2.25h10.5c1.318 0 2.25-.978 2.25-2.25v-1.5a.75.75 0 0 0-.75-.75V5.18a2.25 2.25 0 0 0-2.25-2.25zm0 1.5h9a.75.75 0 0 1 .75.75v5.25H3.75V5.18a.75.75 0 0 1 .75-.75M3 11.93h12v.75c0 .46-.277.75-.75.75H3.75c-.474 0-.75-.29-.75-.75z\" />\n  </svg>\n);\n\nconst MobileIcon: 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=\"M13.498 3.715a2.25 2.25 0 0 0-2.25-2.25h-4.5a2.25 2.25 0 0 0-2.25 2.25v10.5a2.25 2.25 0 0 0 2.25 2.25h4.5a2.25 2.25 0 0 0 2.25-2.25zm-1.5 0v9.75h-6v-9.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 .75.75m-2.25 11.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0\" />\n  </svg>\n);\n\nconst LinkIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n  <svg\n    width=\"12\"\n    height=\"12\"\n    viewBox=\"0 0 12 12\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <path\n      fillRule=\"evenodd\"\n      clipRule=\"evenodd\"\n      d=\"M1.007 6a5 5 0 1 1 10 0 5 5 0 0 1-10 0m7.486-2.344A.6.6 0 0 1 8.91 3.5c.15 0 .305.048.418.156a.55.55 0 0 1 0 .798L5.254 8.337a.62.62 0 0 1-.837 0L2.67 6.673a.55.55 0 0 1 0-.798.62.62 0 0 1 .837 0l1.329 1.266z\"\n      fill=\"url(#a)\"\n    />\n    <defs>\n      <linearGradient\n        id=\"a\"\n        x1=\"11.007\"\n        y1=\"5.999\"\n        x2=\"1.007\"\n        y2=\"5.999\"\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\nconst DotIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n  <svg\n    width=\"2\"\n    height=\"2\"\n    viewBox=\"0 0 2 2\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <path\n      d=\"M.667.334a.667.667 0 1 1 0 1.333.667.667 0 0 1 0-1.333\"\n      fill=\"url(#a)\"\n    />\n    <defs>\n      <linearGradient\n        id=\"a\"\n        x1=\"1.333\"\n        y1=\"1.001\"\n        x2=\"0\"\n        y2=\"1.001\"\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","import { useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useBottomNavBarScript = () => {\n  const { wrongNetwork, disabledConnect } = useAppContext();\n  const { account, state } = useAccount();\n\n  /** link device, acally wallet not connect */\n  const onDisconnect = async () => {\n    localStorage.removeItem(\"orderly_link_device\");\n    await account.disconnect();\n  };\n\n  return {\n    wrongNetwork,\n    disabledConnect,\n    status: state.status,\n    onDisconnect,\n  };\n};\n\nexport type BottomNavBarState = ReturnType<typeof useBottomNavBarScript>;\n","import React from \"react\";\nimport { useBottomNavBarScript } from \"./bottomNavBar.script\";\nimport { BottomNavBar } from \"./bottomNavBar.ui\";\n\nexport const BottomNavBarWidget: React.FC = () => {\n  const state = useBottomNavBarScript();\n  return <BottomNavBar {...state} />;\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport {\n  useAccount,\n  useCollateral,\n  useDebouncedCallback,\n  useEventEmitter,\n  useLeverage,\n  useMarginRatio,\n  usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal, SliderMarks, toast } from \"@orderly.network/ui\";\nimport {\n  DepositAndWithdrawWithSheetId,\n  TransferSheetId,\n} from \"@orderly.network/ui-transfer\";\nimport { useTradingLocalStorage } from \"../../../hooks\";\n\nexport const usePortfolioSheetScript = () => {\n  const { state, account, isMainAccount } = useAccount();\n  const assets = useAssets();\n  const marginRatio = useMarginRatioAndLeverage();\n  const ee = useEventEmitter();\n  const { t } = useTranslation();\n  const subAccounts = state.subAccounts ?? [];\n\n  const [showSliderTip, setShowSliderTip] = useState(false);\n\n  const onSettlePnL = useCallback(async () => {\n    return account\n      .settle()\n      .catch((e) => {\n        if (e.code == -1104) {\n          toast.error(t(\"settle.settlement.error\"));\n          return Promise.reject(e);\n        }\n        if (\n          e.message.indexOf(\n            \"Signing off chain messages with Ledger is not yet supported\",\n          ) !== -1\n        ) {\n          ee.emit(\"wallet:sign-message-with-ledger-error\", {\n            message: e.message,\n            userAddress: account.address,\n          });\n          return Promise.reject(e);\n        }\n\n        if (e?.code === \"ACTION_REJECTED\") {\n          toast.error(t(\"connector.userRejected\"));\n          return Promise.reject(e);\n        }\n      })\n      .then((res) => {\n        toast.success(t(\"settle.settlement.requested\"));\n        return Promise.resolve(res);\n      });\n  }, [account, t]);\n\n  const onDeposit = useCallback(() => {\n    modal.show(DepositAndWithdrawWithSheetId, {\n      activeTab: \"deposit\",\n    });\n  }, []);\n\n  const onWithdraw = useCallback(() => {\n    modal.show(DepositAndWithdrawWithSheetId, {\n      activeTab: \"withdraw\",\n    });\n  }, []);\n\n  const onTransfer = useCallback(() => {\n    modal.show(TransferSheetId);\n  }, []);\n\n  return {\n    ...assets,\n    ...marginRatio,\n    onSettlePnL,\n    onDeposit,\n    onWithdraw,\n    showSliderTip,\n    setShowSliderTip,\n    isMainAccount,\n    onTransfer,\n    hasSubAccount: subAccounts?.length > 0,\n  };\n};\n\nconst useAssets = () => {\n  const { hideAssets, setHideAssets } = useTradingLocalStorage();\n  const toggleHideAssets = () => {\n    setHideAssets(!hideAssets);\n  };\n  const { totalCollateral, freeCollateral, totalValue, availableBalance } =\n    useCollateral({\n      dp: 2,\n    });\n  return {\n    hideAssets,\n    toggleHideAssets,\n    totalCollateral,\n    freeCollateral,\n    totalValue,\n    availableBalance,\n  };\n};\n\nconst useMarginRatioAndLeverage = () => {\n  const { t } = useTranslation();\n  const [{ aggregated, totalUnrealizedROI }, positionsInfo] =\n    usePositionStream();\n  const { marginRatio, currentLeverage, mmr } = useMarginRatio();\n\n  const marginRatioVal = useMemo(() => {\n    return Math.min(\n      10,\n      aggregated.notional === 0\n        ? positionsInfo[\"margin_ratio\"](10)!\n        : marginRatio,\n    );\n  }, [marginRatio, aggregated]);\n\n  const { update, curLeverage, maxLeverage, leverageLevers } = useLeverage();\n\n  const marks = useMemo<SliderMarks>(() => {\n    return leverageLevers?.map((e) => ({\n      label: `${e}x`,\n      value: e,\n    }));\n  }, [leverageLevers]);\n\n  const [leverage, setLeverage] = useState<number>(curLeverage ?? 0);\n\n  const step = 100 / ((marks?.length || 0) - 1);\n\n  // const leverageValue = useMemo(() => {\n  //   const index = leverageLevers.findIndex((item: any) => item === leverage);\n\n  //   return index * step;\n  // }, [leverageLevers, leverage, step]);\n\n  const onLeverageChange = (leverage: number) => {\n    // maxLeverage / 100 * leverage;\n    setLeverage(leverage);\n    // updateLeverage(leverage);\n  };\n\n  const onSave = async (leverage: number) => {\n    try {\n      update({ leverage }).then(\n        () => {\n          toast.success(t(\"leverage.updated\"));\n        },\n        (err: Error) => {\n          toast.error(err.message);\n        },\n      );\n    } catch {\n      //\n    }\n  };\n\n  const onValueCommit = useCallback((value: number | number[]) => {\n    onSave(Array.isArray(value) ? value[0] : value);\n  }, []);\n\n  const debouncedCommit = useDebouncedCallback(onValueCommit, 500);\n\n  const onInputChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n    (e) => {\n      const parsed = Number.parseInt(e.target.value, 10);\n      const raw = Number.isNaN(parsed) ? 0 : parsed;\n      const clamped = Math.min(Math.max(raw, 1), maxLeverage);\n      setLeverage(clamped);\n      debouncedCommit(clamped);\n    },\n    [debouncedCommit, maxLeverage],\n  );\n\n  const onLeverageIncrease: React.MouseEventHandler<SVGSVGElement> = () => {\n    setLeverage((prev) => {\n      onSave(prev + 1);\n      return prev + 1;\n    });\n  };\n\n  const onLeverageReduce: React.MouseEventHandler<SVGSVGElement> = () => {\n    setLeverage((prev) => {\n      onSave(prev - 1);\n      return prev - 1;\n    });\n  };\n\n  return {\n    aggregated,\n    totalUnrealizedROI,\n    positionsInfo,\n    marginRatio,\n    marginRatioVal,\n    mmr,\n    currentLeverage,\n    step,\n    marks,\n    onLeverageChange,\n    onLeverageIncrease,\n    onLeverageReduce,\n    onInputChange,\n    isReduceDisabled: leverage <= 1,\n    isIncreaseDisabled: leverage >= maxLeverage,\n    onValueCommit,\n    value: leverage,\n    maxLeverage,\n    onSaveLeverage: onSave,\n  };\n};\n\nexport function getMarginRatioColor(marginRatio: number, mmr: number | null) {\n  if (mmr === null) {\n    return { isRed: false, isYellow: false, isGreen: true };\n  }\n  const imr = mmr * 2;\n\n  const high = marginRatio <= imr;\n  const mid = marginRatio > imr && marginRatio < 1;\n  const low = marginRatio >= 1;\n  return { high, mid, low };\n}\n\nexport type PortfolioSheetState = ReturnType<typeof usePortfolioSheetScript>;\n","import { FC } from \"react\";\nimport { cn } from \"@orderly.network/ui\";\n\ninterface RiskIndicatorProps {\n  size?: number;\n  className?: string;\n}\n\nexport const RiskIndicator: FC<RiskIndicatorProps> = (props) => {\n  const { size = 20, className } = props;\n\n  return (\n    <div\n      className=\"oui-flex oui-justify-center oui-items-end\"\n      style={{\n        background: \"url(/images/riskLevelBg.png)\",\n        backgroundSize: \"contain\",\n        backgroundRepeat: \"no-repeat\",\n        backgroundPosition: \"center bottom\",\n        width: `${size}px`,\n        height: `14px`,\n      }}\n    >\n      <div\n        className={cn(\n          \"oui-relative oui-w-[2px] oui-h-[2px] oui-rounded-full oui-bg-base-contrast after:oui-block after:oui-content-[''] after:oui-absolute after:oui-right-0 after:oui-w-[10px] after:oui-h-[2px] after:oui-bg-base-contrast-50\",\n          className,\n          // {\n          //   \"oui-rotate-0\": value > 1,\n          //   \"oui-rotate-90\": value >= 0.05 && value <= 1,\n          //   \"oui-rotate-180\": value < 0.05,\n          // }\n        )}\n      ></div>\n    </div>\n  );\n};\n","import { FC, useCallback, useId } from \"react\";\nimport React from \"react\";\nimport { Trans, useTranslation } from \"@orderly.network/i18n\";\nimport {\n  ArrowDownShortIcon,\n  ArrowLeftRightIcon,\n  ArrowUpShortIcon,\n  Button,\n  cn,\n  Divider,\n  EyeCloseIcon,\n  EyeIcon,\n  Flex,\n  Grid,\n  Input,\n  inputFormatter,\n  InputFormatter,\n  modal,\n  PlusIcon,\n  ReduceIcon,\n  RefreshIcon,\n  Statistic,\n  Text,\n} from \"@orderly.network/ui\";\nimport { LeverageProps, LeverageSlider } from \"@orderly.network/ui-leverage\";\nimport { USDCIcon } from \"../accountSheet/icons\";\nimport {\n  getMarginRatioColor,\n  PortfolioSheetState,\n} from \"./portfolioSheet.script\";\nimport { RiskIndicator } from \"./riskIndicator\";\n\nexport const PortfolioSheet: FC<PortfolioSheetState> = (props) => {\n  return (\n    <Flex\n      className=\"oui-portfolioSheet\"\n      direction={\"column\"}\n      gap={4}\n      width={\"100%\"}\n    >\n      <Asset {...props} />\n      <Divider className=\"oui-w-full\" />\n      <MarginRatio {...props} />\n      {/* <Leverage {...props} /> */}\n      {/* <Divider className=\"oui-w-full\" /> */}\n      {/* <AvailableBalance {...props} /> */}\n      <Buttons {...props} />\n    </Flex>\n  );\n};\n\nconst Asset: FC<PortfolioSheetState> = (props) => {\n  const { t } = useTranslation();\n\n  const onUnsettleClick = useCallback(() => {\n    return modal.confirm({\n      title: t(\"settle.settlePnl\"),\n      // maxWidth: \"xs\",\n      content: (\n        <Text intensity={54} size=\"xs\">\n          {/* @ts-ignore */}\n          <Trans i18nKey=\"settle.settlePnl.description\" />\n        </Text>\n      ),\n      onCancel: () => {\n        return Promise.reject();\n      },\n      onOk: () => {\n        if (typeof props.onSettlePnL !== \"function\") {\n          return Promise.resolve();\n        }\n        return props.onSettlePnL().catch((e) => {});\n      },\n    });\n  }, [t]);\n\n  const clsName =\n    props.totalUnrealizedROI > 0\n      ? \"oui-text-success-darken\"\n      : \"oui-text-danger-darken\";\n\n  return (\n    <Flex direction={\"column\"} gap={3} width={\"100%\"}>\n      <Flex direction={\"column\"} itemAlign={\"start\"} width={\"100%\"}>\n        <Text.formatted\n          size=\"2xs\"\n          intensity={36}\n          suffix={\n            props.hideAssets ? (\n              <EyeIcon\n                opacity={1}\n                size={16}\n                className=\"oui-text-primary-light\"\n              />\n            ) : (\n              <EyeCloseIcon\n                opacity={1}\n                size={16}\n                className=\"oui-text-primary-light\"\n              />\n            )\n          }\n          onClick={() => {\n            props.toggleHideAssets();\n          }}\n          className=\"oui-cursor-pointer\"\n        >\n          {`${t(\"common.totalValue\")} (USDC)`}\n        </Text.formatted>\n        <Text.numeral\n          size=\"base\"\n          // coloring\n          dp={2}\n          padding={false}\n          visible={!props.hideAssets}\n        >\n          {props.totalValue ?? \"--\"}\n        </Text.numeral>\n      </Flex>\n      <Grid cols={2} rows={1} width={\"100%\"}>\n        <Statistic\n          label={`${t(\"common.unrealizedPnl\")} (USDC)`}\n          classNames={{\n            label: \"oui-text-2xs oui-text-base-contrast-36\",\n          }}\n        >\n          <Flex gap={1}>\n            <Text.pnl\n              size=\"xs\"\n              coloring\n              dp={2}\n              padding={false}\n              visible={!props.hideAssets}\n            >\n              {props.aggregated.total_unreal_pnl}\n            </Text.pnl>\n            {!props.hideAssets && (\n              <Text.roi\n                size=\"xs\"\n                dp={2}\n                padding={false}\n                rule=\"percentages\"\n                prefix={\"(\"}\n                suffix={\")\"}\n                className={clsName}\n              >\n                {props.totalUnrealizedROI}\n              </Text.roi>\n            )}\n          </Flex>\n        </Statistic>\n        <Statistic\n          label={`${t(\"trading.asset.unsettledPnl\")} (USDC)`}\n          classNames={{\n            label: \"oui-text-2xs oui-text-base-contrast-36\",\n          }}\n        >\n          <Flex justify={\"between\"} width={\"100%\"}>\n            <Text.pnl\n              size=\"xs\"\n              coloring\n              dp={2}\n              padding={false}\n              visible={!props.hideAssets}\n            >\n              {props.aggregated.total_unsettled_pnl}\n            </Text.pnl>\n            <button\n              className=\"oui-flex oui-gap-1 oui-items-center\"\n              onClick={onUnsettleClick}\n            >\n              <RefreshIcon\n                opacity={1}\n                size={12}\n                className=\"oui-text-primary-light\"\n              />\n              <Text size=\"2xs\" color=\"primary\">\n                {t(\"settle.settlePnl\")}\n              </Text>\n            </button>\n          </Flex>\n        </Statistic>\n      </Grid>\n    </Flex>\n  );\n};\nconst MarginRatio: FC<PortfolioSheetState> = (props) => {\n  const { t } = useTranslation();\n\n  const { high, mid, low } = getMarginRatioColor(\n    props.marginRatioVal,\n    props.mmr,\n  );\n\n  return (\n    <Grid cols={2} rows={1} width={\"100%\"}>\n      <Statistic\n        label={t(\"trading.asset.marginRatio\")}\n        classNames={{\n          label: \"oui-text-2xs oui-text-base-contrast-36\",\n        }}\n      >\n        <Flex gap={2}>\n          <Text.numeral\n            size=\"xs\"\n            rule=\"percentages\"\n            color=\"primary\"\n            dp={2}\n            padding={false}\n            visible={!props.hideAssets}\n          >\n            {props.marginRatioVal}\n          </Text.numeral>\n          {!props.hideAssets && (\n            <RiskIndicator\n              className={\n                low\n                  ? \"oui-rotate-0\"\n                  : mid\n                    ? \"oui-rotate-90\"\n                    : high\n                      ? \"oui-rotate-180\"\n                      : \"\"\n              }\n            />\n          )}\n        </Flex>\n      </Statistic>\n      <Statistic\n        label={`${t(\"trading.asset.free&TotalCollateral\")} (USDC)`}\n        classNames={{\n          label: \"oui-text-2xs oui-text-base-contrast-36\",\n        }}\n      >\n        <Flex justify={\"start\"} width={\"100%\"} gap={1}>\n          <Text.collateral\n            size=\"xs\"\n            dp={2}\n            padding={false}\n            visible={!props.hideAssets}\n          >\n            {props.freeCollateral}\n          </Text.collateral>\n          <Text size=\"xs\">/</Text>\n          <Text.collateral\n            size=\"xs\"\n            dp={2}\n            padding={false}\n            visible={!props.hideAssets}\n          >\n            {props.totalCollateral}\n          </Text.collateral>\n        </Flex>\n      </Statistic>\n    </Grid>\n  );\n};\n\nconst IconButton: React.FC<{\n  Icon: React.ComponentType<any>;\n  onClick: React.MouseEventHandler<SVGSVGElement>;\n  disabled: boolean;\n}> = (props) => {\n  const { Icon, onClick, disabled } = props;\n  return (\n    <Icon\n      onClick={disabled ? undefined : onClick}\n      className={cn(\n        \"oui-text-base-contrast oui-m-2 oui-transition-all\",\n        disabled\n          ? \"oui-cursor-not-allowed oui-opacity-20\"\n          : \"oui-cursor-pointer oui-opacity-100\",\n      )}\n    />\n  );\n};\n\nconst LeverageInput: React.FC<PortfolioSheetState> = (props) => {\n  const formatters = React.useMemo<InputFormatter[]>(\n    () => [\n      inputFormatter.numberFormatter,\n      inputFormatter.currencyFormatter,\n      inputFormatter.decimalPointFormatter,\n    ],\n    [],\n  );\n  const id = useId();\n  return (\n    <label\n      htmlFor={id}\n      className={cn(\n        \"oui-w-full\",\n        \"oui-rounded\",\n        \"oui-bg-base-6\",\n        \"oui-flex\",\n        \"oui-items-center\",\n        \"oui-justify-between\",\n        \"oui-outline\",\n        \"oui-outline-offset-0\",\n        \"oui-outline-1\",\n        \"oui-outline-transparent\",\n        \"focus-within:oui-outline-primary-light\",\n        \"oui-input-root\",\n      )}\n    >\n      <IconButton\n        Icon={ReduceIcon}\n        onClick={props.onLeverageReduce}\n        disabled={props.isReduceDisabled}\n      />\n      <Flex itemAlign=\"center\" justify=\"center\">\n        <Input\n          // {...props}\n          value={props.value}\n          id={id}\n          autoComplete=\"off\"\n          classNames={{\n            input: cn(\"oui-text-center\"),\n            root: cn(\n              \"oui-text-center\",\n              \"oui-w-6\",\n              \"oui-px-0\",\n              \"oui-outline\",\n              \"oui-outline-offset-0\",\n              \"oui-outline-1\",\n              \"oui-outline-transparent\",\n              \"focus-within:oui-outline-primary-none\",\n            ),\n          }}\n          formatters={formatters}\n          onChange={props.onInputChange}\n        />\n        <div className=\"oui-select-none\">x</div>\n      </Flex>\n      <IconButton\n        Icon={PlusIcon}\n        onClick={props.onLeverageIncrease}\n        disabled={props.isIncreaseDisabled}\n      />\n    </label>\n  );\n};\n\nexport const LeverageSelector: React.FC<PortfolioSheetState> = (props) => {\n  const { value, onLeverageChange, onValueCommit } = props;\n  return (\n    <Flex itemAlign=\"center\" justify=\"between\" width={\"100%\"} mt={2}>\n      {[1, 5, 10, 20, 50].map((option) => (\n        <Flex\n          key={option}\n          itemAlign=\"center\"\n          justify=\"center\"\n          className={cn(\n            `oui-transition-all oui-cursor-pointer oui-box-border oui-bg-clip-padding oui-px-3 oui-py-2.5 oui-rounded-md oui-border oui-border-solid`,\n            value === option\n              ? \"oui-border-primary oui-bg-base-6\"\n              : \"oui-border-line-12\",\n          )}\n          onClick={() => {\n            onLeverageChange(option);\n            onValueCommit(option);\n          }}\n        >\n          <Flex\n            itemAlign=\"center\"\n            justify=\"center\"\n            className={cn(`oui-h-3 oui-w-9 oui-select-none`)}\n          >\n            {option}x\n          </Flex>\n        </Flex>\n      ))}\n    </Flex>\n  );\n};\n\nconst Buttons: FC<PortfolioSheetState> = (props) => {\n  const { t } = useTranslation();\n\n  if (props.isMainAccount) {\n    return (\n      <Grid\n        cols={props.hasSubAccount ? 3 : 2}\n        rows={1}\n        gap={3}\n        className=\"oui-grid-row-[1fr,1fr]\"\n        width={\"100%\"}\n        pt={2}\n        pb={4}\n      >\n        <Button\n          icon={<ArrowDownShortIcon color=\"white\" opacity={0.8} />}\n          size=\"md\"\n          fullWidth\n          onClick={props.onDeposit}\n        >\n          {t(\"common.deposit\")}\n        </Button>\n        {props.hasSubAccount && (\n          <Button\n            icon={<ArrowLeftRightIcon color=\"white\" opacity={0.8} />}\n            color=\"gray\"\n            size=\"md\"\n            onClick={props.onTransfer}\n            data-testid=\"oui-testid-assetView-transfer-button\"\n          >\n            <Text>{t(\"common.transfer\")}</Text>\n          </Button>\n        )}\n        <Button\n          icon={<ArrowUpShortIcon color=\"white\" opacity={0.8} />}\n          size=\"md\"\n          fullWidth\n          className=\"oui-bg-base-2 hover:oui-bg-base-2/50\"\n          onClick={props.onWithdraw}\n        >\n          {t(\"common.withdraw\")}\n        </Button>\n      </Grid>\n    );\n  }\n\n  return (\n    <Button\n      fullWidth\n      color=\"secondary\"\n      size=\"md\"\n      onClick={props.onTransfer}\n      data-testid=\"oui-testid-assetView-transfer-button\"\n    >\n      <Text>{t(\"common.transfer\")}</Text>\n    </Button>\n  );\n};\n","import { usePortfolioSheetScript } from \"./portfolioSheet.script\";\nimport { PortfolioSheet } from \"./portfolioSheet.ui\";\n\nexport const PortfolioSheetWidget = () => {\n  const state = usePortfolioSheetScript();\n  return <PortfolioSheet {...state} />;\n};\n","export {\n  useFundingRateModalScript,\n  type FundingRateModalState,\n} from \"./fundingRateModal.script\";\nexport { FundingRateModal } from \"./fundingRateModal.ui\";\nexport {\n  FundingRateModalWidget,\n  FundingRateDialogId,\n  FundingRateSheetId,\n} from \"./fundingRateModal.widget\";\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport {\n  DndContext,\n  closestCenter,\n  KeyboardSensor,\n  PointerSensor,\n  useSensor,\n  useSensors,\n  DragOverlay,\n  DragStartEvent,\n  DragEndEvent,\n  Modifier,\n  type ClientRect,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport {\n  arrayMove,\n  SortableContext,\n  sortableKeyboardCoordinates,\n  verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS, Transform } from \"@dnd-kit/utilities\";\nimport {\n  useBadgeBySymbol,\n  useGetRwaSymbolOpenStatus,\n  useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  SideMarketsWidget,\n  SymbolInfoBarFullWidget,\n  HorizontalMarketsWidget,\n} from \"@orderly.network/markets\";\nimport {\n  OrderEntrySortKeys,\n  TradingviewFullscreenKey,\n} from \"@orderly.network/types\";\nimport {\n  Box,\n  Button,\n  ChevronLeftIcon,\n  ChevronRightIcon,\n  cn,\n  Flex,\n  Text,\n} from \"@orderly.network/ui\";\nimport { OrderEntryWidget } from \"@orderly.network/ui-order-entry\";\nimport { TradingviewWidget } from \"@orderly.network/ui-tradingview\";\nimport { DepositStatusWidget } from \"@orderly.network/ui-transfer\";\nimport { CollapseIcon, ExpandIcon } from \"../../components/base/icons\";\nimport { SortablePanel } from \"../../components/desktop/layout/sortablePanel\";\nimport { SplitLayout } from \"../../components/desktop/layout/splitLayout\";\nimport { showRwaOutsideMarketHoursNotify } from \"../../components/desktop/notify/rwaNotification\";\nimport { useShowRwaCountdown } from \"../../hooks/useShowRwaCountdown\";\nimport {\n  dataListInitialHeight,\n  getOffsetSizeNum,\n  TradingState,\n} from \"./trading.script\";\nimport {\n  scrollBarWidth,\n  topBarHeight,\n  bottomBarHeight,\n  space,\n  orderEntryMinWidth,\n  orderEntryMaxWidth,\n  orderbookMinWidth,\n  orderbookMaxWidth,\n  orderbookMinHeight,\n  orderbookMaxHeight,\n  tradindviewMinHeight,\n  tradingViewMinWidth,\n  dataListMaxHeight,\n} from \"./trading.script\";\n\nconst LazyRiskRateWidget = React.lazy(() =>\n  import(\"../../components/desktop/riskRate\").then((mod) => {\n    return {\n      default: mod.RiskRateWidget,\n    };\n  }),\n);\n\nconst LazyAssetViewWidget = React.lazy(() =>\n  import(\"../../components/desktop/assetView\").then((mod) => {\n    return {\n      default: mod.AssetViewWidget,\n    };\n  }),\n);\n\nconst LazyDataListWidget = React.lazy(() =>\n  import(\"../../components/desktop/dataList\").then((mod) => {\n    return {\n      default: mod.DataListWidget,\n    };\n  }),\n);\n\nconst LazySwitchLayout = React.lazy(() =>\n  import(\"../../components/desktop/layout/switchLayout\").then((mod) => {\n    return {\n      default: mod.SwitchLayout,\n    };\n  }),\n);\n\nconst LazyOrderBookAndTradesWidget = React.lazy(() =>\n  import(\"../../components/desktop/orderBookAndTrades\").then((mod) => {\n    return {\n      default: mod.OrderBookAndTradesWidget,\n    };\n  }),\n);\n\nexport type DesktopLayoutProps = TradingState & {\n  className?: string;\n};\n\nconst scaleModifier: Modifier = ({\n  transform,\n  draggingNodeRect,\n}: {\n  transform: Transform;\n  draggingNodeRect: ClientRect | null;\n}) => {\n  if (draggingNodeRect) {\n    return {\n      ...transform,\n      scaleX: 2.05,\n      scaleY: 2.05,\n    };\n  }\n  return transform;\n};\n\nexport const DesktopLayout: React.FC<DesktopLayoutProps> = (props) => {\n  const {\n    resizeable,\n    panelSize,\n    onPanelSizeChange,\n    layout,\n    onLayout,\n    marketLayout,\n    onMarketLayout,\n    orderBookSplitSize,\n    setOrderbookSplitSize,\n    dataListSplitSize,\n    setDataListSplitSize,\n    mainSplitSize,\n    setMainSplitSize,\n    dataListSplitHeightSM,\n    setDataListSplitHeightSM,\n    orderBookSplitHeightSM,\n    setOrderbookSplitHeightSM,\n    max2XL,\n    max4XL,\n    animating,\n    setAnimating,\n    updatePositions,\n    showPositionIcon,\n    horizontalDraggable,\n    marketsWidth,\n    tradindviewMaxHeight,\n    dataListMinHeight,\n  } = props;\n\n  const { showCountdown, closeCountdown } = useShowRwaCountdown(props.symbol);\n  const { brokerName } = useBadgeBySymbol(props.symbol);\n  const { t } = useTranslation();\n\n  const symbolInfoBarHeight = useMemo(() => {\n    let height = 56;\n    if (brokerName) {\n      height += 46;\n      height += 8;\n    }\n    if (showCountdown) {\n      height += 48;\n    }\n    return height;\n  }, [showCountdown, brokerName]);\n\n  const { isRwa, open } = useGetRwaSymbolOpenStatus(props.symbol);\n\n  useEffect(() => {\n    if (isRwa && !open) {\n      showRwaOutsideMarketHoursNotify();\n    }\n  }, [isRwa, open, props.symbol]);\n\n  const [tradingViewFullScreen] = useLocalStorage(\n    TradingviewFullscreenKey,\n    false,\n  );\n\n  const [sortableItems, setSortableItems] = useLocalStorage<string[]>(\n    OrderEntrySortKeys,\n    [\"margin\", \"assets\", \"orderEntry\"],\n  );\n\n  const dropAnimationConfig = useMemo(() => {\n    return {\n      keyframes({\n        transform,\n      }: {\n        transform: {\n          initial: Transform;\n          final: Transform;\n        };\n      }) {\n        return [\n          {\n            transform: CSS.Transform.toString({\n              ...transform.initial,\n              scaleX: 1.05,\n              scaleY: 1.05,\n            }),\n          },\n          {\n            transform: CSS.Transform.toString({\n              ...transform.final,\n              scaleX: 1,\n              scaleY: 1,\n              // scaleX: 0.85,\n              // scaleY: 0.85,\n            }),\n          },\n        ];\n      },\n      sideEffects: ({\n        active,\n        dragOverlay,\n      }: {\n        active: { node: HTMLElement };\n        dragOverlay: { node: HTMLElement };\n      }) => {\n        // console.log(active.node);\n        active.node.style.opacity = \"0\";\n        const innerElement = dragOverlay.node.querySelector(\".inner-content\");\n        if (innerElement) {\n          // innerElement.animate(\n          //   [{ transform: \"scale(1.05)\" }, { transform: \"scale(1)\" }],\n          //   {\n          //     duration: 200,\n          //     easing: \"ease-out\",\n          //   },\n          // );\n          innerElement.classList.add(\"oui-animate-shake\");\n        }\n        return () => {\n          active.node.style.opacity = \"\";\n        };\n      },\n    };\n  }, []);\n\n  // Configure sensors for drag and drop interactions\n  const sensors = useSensors(\n    useSensor(PointerSensor, {\n      activationConstraint: {\n        distance: 5,\n      },\n    }),\n    useSensor(KeyboardSensor, {\n      coordinateGetter: sortableKeyboardCoordinates,\n    }),\n  );\n\n  // State for drag overlay management\n  const [activeId, setActiveId] = useState<string | null>(null);\n\n  /**\n   * Handle drag start event for sortable panels\n   * Sets the active dragging item for overlay rendering\n   */\n  function handleDragStart(event: DragStartEvent) {\n    setActiveId(event.active.id as string);\n  }\n\n  /**\n   * Handle drag end event for sortable panels\n   * Updates the order of sortable items and corresponding positions\n   */\n  function handleDragEnd(event: DragEndEvent) {\n    const { active, over } = event;\n\n    if (active.id !== over?.id && over) {\n      const oldIndex = sortableItems.indexOf(active.id as string);\n      const newIndex = sortableItems.indexOf(over.id as string);\n\n      if (oldIndex !== -1 && newIndex !== -1) {\n        // Update sortableItems order\n        const newItems = arrayMove(sortableItems, oldIndex, newIndex);\n        setSortableItems(newItems as string[]);\n\n        // Also update positions to keep them in sync\n        // updatePositions(oldIndex, newIndex);\n      }\n    }\n\n    // Reset active id after drag ends\n    setActiveId(null);\n  }\n\n  const minScreenHeight = useMemo(() => {\n    return tradingViewFullScreen\n      ? 0\n      : symbolInfoBarHeight +\n          orderbookMaxHeight +\n          dataListInitialHeight +\n          space * 4;\n  }, [tradingViewFullScreen]);\n\n  const minScreenHeightSM =\n    topBarHeight +\n    bottomBarHeight +\n    symbolInfoBarHeight +\n    tradindviewMinHeight +\n    orderbookMinHeight +\n    dataListMinHeight +\n    space * 4;\n\n  const horizontalMarketsView = (\n    <HorizontalMarketsWidget\n      symbol={props.symbol}\n      onSymbolChange={props.onSymbolChange}\n      maxItems={-1} // show all markets\n      dropdownPos={marketLayout === \"bottom\" ? \"top\" : \"bottom\"}\n    />\n  );\n\n  const containerPaddingX = useMemo(() => (max2XL ? 12 : 8), [max2XL]);\n\n  const stickyHorizontalMarketsView = (\n    <Box\n      className={cn(\n        \"oui-trading-markets-container\",\n        \"oui-bg-base-10\",\n        // -8 is for reducing the container's padding\n        \"oui-sticky oui-z-30 oui-mb-[-8px] oui-py-2\",\n        // Split line disabled for > 2xl screens\n        !max2XL && \"oui-mt-[-8px]\",\n      )}\n      style={{\n        bottom: 0,\n        minWidth:\n          (max2XL ? 1024 : 1440) - scrollBarWidth - containerPaddingX * 2,\n      }}\n    >\n      {horizontalMarketsView}\n    </Box>\n  );\n\n  const marketsWidget = (\n    <SideMarketsWidget\n      symbol={props.symbol}\n      onSymbolChange={props.onSymbolChange}\n      panelSize={panelSize}\n    />\n  );\n\n  const toggleButtoncls = 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  const marketsHeader = (\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={toggleButtoncls} />\n        </div>\n      )}\n      {(panelSize === \"middle\" || panelSize === \"small\") && (\n        <div\n          onClick={resizeable ? () => onPanelSizeChange?.(\"large\") : undefined}\n        >\n          <ExpandIcon className={toggleButtoncls} />\n        </div>\n      )}\n    </Flex>\n  );\n\n  const marketsView = (\n    <Box\n      intensity={900}\n      pt={3}\n      r=\"2xl\"\n      height=\"100%\"\n      width={marketsWidth}\n      style={{ minWidth: marketsWidth }}\n      className=\"oui-trading-markets-container oui-min-h-0 oui-min-w-0 oui-max-w-full oui-transition-all oui-duration-150\"\n      onTransitionEnd={() => setAnimating(false)}\n    >\n      <Flex\n        id=\"oui-side-markets\"\n        className=\"oui-relative oui-min-h-0 oui-min-w-0 oui-font-semibold\"\n        direction=\"column\"\n        gapY={5}\n        height=\"100%\"\n        width=\"100%\"\n      >\n        {marketsHeader}\n\n        {/* List: flex-1 min-h-0 under header+gap; overflow-hidden + rounded-b-2xl clips table to card bottom (outer Box r=\"2xl\"). */}\n        {!animating && marketLayout === \"left\" && (\n          <Box\n            width=\"100%\"\n            className=\"oui-min-h-0 oui-min-w-0 oui-max-w-full oui-flex-1 oui-overflow-hidden oui-rounded-b-2xl\"\n          >\n            {marketsWidget}\n          </Box>\n        )}\n      </Flex>\n    </Box>\n  );\n\n  const symbolInfoBarView = (\n    <Box\n      className=\"oui-trading-symbolInfoBar-container\"\n      width=\"100%\"\n      style={{\n        minHeight: symbolInfoBarHeight,\n        height: symbolInfoBarHeight,\n      }}\n    >\n      <SymbolInfoBarFullWidget\n        symbol={props.symbol}\n        onSymbolChange={props.onSymbolChange}\n        closeCountdown={closeCountdown}\n        showCountdown={showCountdown}\n        trailing={\n          <React.Suspense fallback={null}>\n            <LazySwitchLayout\n              layout={layout}\n              onLayout={onLayout}\n              marketLayout={marketLayout}\n              onMarketLayout={onMarketLayout}\n            />\n          </React.Suspense>\n        }\n      />\n    </Box>\n  );\n\n  const { library_path, ...restTradingViewConfig } = props.tradingViewConfig;\n\n  const tradingviewWidget = (\n    <TradingviewWidget\n      classNames={{\n        root: cn(\n          tradingViewFullScreen\n            ? \"!oui-absolute oui-inset-0 oui-z-40 oui-bg-base-10\"\n            : \"oui-z-1\",\n        ),\n        content: cn(\n          tradingViewFullScreen\n            ? \"oui-inset-3 oui-overflow-hidden oui-rounded-[16px] oui-bg-base-9\"\n            : \"\",\n        ),\n      }}\n      symbol={props.symbol}\n      {...restTradingViewConfig}\n      libraryPath={library_path}\n    />\n  );\n\n  const tradingView = (\n    <Box\n      width=\"100%\"\n      height=\"100%\"\n      intensity={900}\n      r=\"2xl\"\n      style={{ flex: 1, minWidth: tradingViewMinWidth }}\n      className=\"oui-trading-tradingview-container oui-overflow-hidden\"\n    >\n      {tradingviewWidget}\n    </Box>\n  );\n\n  const orderbookWidget = (\n    <React.Suspense fallback={null}>\n      <LazyOrderBookAndTradesWidget symbol={props.symbol} />\n    </React.Suspense>\n  );\n\n  const orderbookView = (\n    <Box\n      r=\"2xl\"\n      height=\"100%\"\n      style={{\n        minWidth: orderbookMinWidth,\n        maxWidth: horizontalDraggable ? orderbookMaxWidth : orderbookMinWidth,\n        width: orderBookSplitSize,\n      }}\n      className=\"oui-trading-orderBook-container oui-overflow-hidden\"\n    >\n      {orderbookWidget}\n    </Box>\n  );\n\n  const dataListWidget = (\n    <React.Suspense fallback={null}>\n      <LazyDataListWidget\n        current={undefined}\n        symbol={props.symbol}\n        sharePnLConfig={props.sharePnLConfig}\n      />\n    </React.Suspense>\n  );\n\n  const dataListView = (\n    <Box\n      intensity={900}\n      r=\"2xl\"\n      p={2}\n      style={{\n        height: dataListSplitSize,\n        // height: `calc(100% - ${symbolInfoBarHeight}px - ${orderbookMaxHeight}px - ${space}px)`,\n        minHeight: dataListInitialHeight,\n        // minHeight: `max(${dataListMinHeight}px, calc(100vh - ${symbolInfoBarHeight}px - ${orderbookMaxHeight}px - ${space}px))`,\n      }}\n      className=\"oui-trading-dataList-container oui-overflow-hidden\"\n    >\n      {dataListWidget}\n    </Box>\n  );\n\n  const orderInteractionWidgets = useMemo(() => {\n    return {\n      margin: {\n        className: \"oui-trading-riskRate-container\",\n        element: (\n          <React.Suspense fallback={null}>\n            <LazyRiskRateWidget />\n          </React.Suspense>\n        ),\n      },\n      assets: {\n        className:\n          \"oui-trading-assetsView-container oui-border oui-border-line-12\",\n        element: (\n          <>\n            <React.Suspense fallback={null}>\n              <LazyAssetViewWidget\n                isFirstTimeDeposit={props.isFirstTimeDeposit}\n              />\n            </React.Suspense>\n            <DepositStatusWidget\n              className=\"oui-mt-3 oui-gap-y-2\"\n              onClick={props.navigateToPortfolio}\n            />\n          </>\n        ),\n      },\n      orderEntry: {\n        className: \"oui-trading-orderEntry-container\",\n        element: (\n          <OrderEntryWidget\n            symbol={props.symbol}\n            disableFeatures={\n              props.disableFeatures as unknown as (\n                | \"slippageSetting\"\n                | \"feesInfo\"\n              )[]\n            }\n          />\n        ),\n      },\n    };\n  }, [\n    props.isFirstTimeDeposit,\n    props.disableFeatures,\n    props.navigateToPortfolio,\n    props.symbol,\n  ]);\n\n  const orderEntryView = (\n    <Flex\n      className=\"oui-trading-orderEntry-container\"\n      gapY={2}\n      direction=\"column\"\n      height=\"100%\"\n      style={{\n        minWidth: orderEntryMinWidth,\n        maxWidth: horizontalDraggable ? orderEntryMaxWidth : orderEntryMinWidth,\n        width: mainSplitSize,\n      }}\n    >\n      {sortableItems.map((key: string) => {\n        return (\n          <SortablePanel\n            key={key}\n            id={key}\n            showIndicator={showPositionIcon}\n            className={\n              orderInteractionWidgets[\n                key as keyof typeof orderInteractionWidgets\n              ].className\n            }\n          >\n            {\n              orderInteractionWidgets[\n                key as keyof typeof orderInteractionWidgets\n              ].element\n            }\n          </SortablePanel>\n        );\n      })}\n    </Flex>\n  );\n\n  const renderTradingView = () => {\n    if (max4XL && layout === \"right\") {\n      return (\n        <Flex\n          gap={2}\n          itemAlign=\"stretch\"\n          className=\"oui-min-h-0 oui-flex-1 oui-overflow-hidden\"\n          style={{ minWidth: marketsWidth + tradingViewMinWidth + space }}\n        >\n          {marketLayout === \"left\" && marketsView}\n          {tradingView}\n        </Flex>\n      );\n    }\n\n    return tradingView;\n  };\n\n  const tradingViewAndOrderbookView = (\n    <SplitLayout\n      style={{\n        // the style width is not set, and a child node style needs to be set to flex: 1 to adapt\n        flex: 1,\n        minHeight: orderbookMinHeight,\n        // maxHeight: orderbookMaxHeight,\n      }}\n      onSizeChange={setOrderbookSplitSize}\n      disable={!horizontalDraggable}\n    >\n      {renderTradingView()}\n      {orderbookView}\n    </SplitLayout>\n  );\n\n  const renderTradingViewAndOrderbookView = () => {\n    if (max4XL && layout === \"left\") {\n      return (\n        <Flex\n          gapX={2}\n          itemAlign=\"stretch\"\n          className=\"oui-min-h-0\"\n          style={{ minHeight: orderbookMinHeight }}\n          height=\"100%\"\n        >\n          {tradingViewAndOrderbookView}\n          {marketLayout === \"left\" && marketsView}\n        </Flex>\n      );\n    }\n    return tradingViewAndOrderbookView;\n  };\n\n  const mainView = (\n    <Flex\n      direction=\"column\"\n      className=\"oui-flex-1 oui-overflow-hidden\"\n      gap={2}\n      style={{\n        minWidth: max4XL\n          ? marketsWidth + tradingViewMinWidth + orderbookMinWidth + space * 2\n          : tradingViewMinWidth + orderbookMinWidth + space,\n      }}\n    >\n      {symbolInfoBarView}\n      <SplitLayout\n        style={{\n          // height: orderbookMaxHeight + dataListInitialHeight + space,\n          maxHeight: `calc(100% - ${symbolInfoBarHeight}px - ${space}px)`,\n        }}\n        className=\"oui-w-full\"\n        mode=\"vertical\"\n        onSizeChange={setDataListSplitSize}\n      >\n        {renderTradingViewAndOrderbookView()}\n        {dataListView}\n      </SplitLayout>\n    </Flex>\n  );\n\n  const onSizeChange = (width: string) =>\n    layout === \"left\"\n      ? setMainSplitSize(getOffsetSizeNum(width))\n      : setMainSplitSize(width);\n\n  if (max2XL) {\n    return (\n      <DndContext\n        sensors={sensors}\n        collisionDetection={closestCenter}\n        onDragStart={handleDragStart}\n        onDragEnd={handleDragEnd}\n        modifiers={[restrictToVerticalAxis]}\n      >\n        <SortableContext\n          items={sortableItems}\n          strategy={verticalListSortingStrategy}\n        >\n          <Box height=\"100%\">\n            {marketLayout === \"top\" && (\n              <Box\n                className={cn(\n                  \"oui-trading-markets-container oui-mt-2 oui-max-h-8 oui-px-3\",\n                  props.className,\n                )}\n              >\n                {horizontalMarketsView}\n              </Box>\n            )}\n\n            <SplitLayout\n              ref={props.max2XLSplitRef}\n              style={{\n                minHeight: minScreenHeightSM,\n                minWidth: 1024 - scrollBarWidth,\n                // height: props.extraHeight ? props.extraHeight : undefined,\n              }}\n              className={cn(\n                \"oui-flex oui-flex-1\",\n                \"oui-size-full oui-min-w-[1018px]\",\n                \"oui-px-3 oui-py-2\",\n                props.className,\n              )}\n              onSizeChange={setDataListSplitHeightSM}\n              onDragging={props.onDataListSplitHeightDragging}\n              mode=\"vertical\"\n            >\n              <Flex\n                gapX={2}\n                itemAlign=\"stretch\"\n                className={cn(\n                  \"oui-flex-1\",\n                  layout === \"left\" && \"oui-flex-row-reverse\",\n                )}\n                style={{\n                  minHeight: Math.max(\n                    symbolInfoBarHeight +\n                      tradindviewMinHeight +\n                      orderbookMinHeight +\n                      space * 2,\n                    props.orderEntryHeight,\n                  ),\n                  maxHeight:\n                    symbolInfoBarHeight +\n                    tradindviewMaxHeight +\n                    orderbookMaxHeight +\n                    space * 2,\n                }}\n              >\n                <Flex\n                  height=\"100%\"\n                  className=\"oui-w-[calc(100%_-_280px_-_12px)] oui-flex-1\"\n                  direction=\"column\"\n                  gapY={2}\n                >\n                  {symbolInfoBarView}\n                  <Flex\n                    width=\"100%\"\n                    height=\"100%\"\n                    gapX={2}\n                    itemAlign=\"stretch\"\n                    style={{\n                      minHeight:\n                        tradindviewMinHeight + orderbookMinHeight + space,\n                      maxHeight:\n                        tradindviewMaxHeight + orderbookMaxHeight + space,\n                    }}\n                    className={cn(\n                      \"oui-flex-1\",\n                      layout === \"left\" && \"oui-flex-row-reverse\",\n                    )}\n                  >\n                    {marketLayout === \"left\" && (\n                      <Box\n                        intensity={900}\n                        pt={3}\n                        r=\"2xl\"\n                        width={marketsWidth}\n                        className=\"oui-overflow-hidden\"\n                        style={{\n                          minHeight:\n                            tradindviewMinHeight + orderbookMinHeight + space,\n                          maxHeight:\n                            tradindviewMaxHeight + orderbookMaxHeight + space,\n                        }}\n                      >\n                        {marketsWidget}\n                      </Box>\n                    )}\n                    <SplitLayout\n                      ref={props.tradingviewAndOrderbookSplitRef}\n                      mode=\"vertical\"\n                      style={{ width: `calc(100% - ${marketsWidth}px)` }}\n                      className=\"oui-flex-1\"\n                      onSizeChange={setOrderbookSplitHeightSM}\n                      onDragging={props.onTradingviewAndOrderbookDragging}\n                    >\n                      <Box\n                        width=\"100%\"\n                        intensity={900}\n                        r=\"2xl\"\n                        style={{\n                          minHeight: tradindviewMinHeight,\n                          maxHeight: tradindviewMaxHeight,\n                          height: 1200,\n                        }}\n                      >\n                        {tradingviewWidget}\n                      </Box>\n\n                      <Box\n                        r=\"2xl\"\n                        height=\"100%\"\n                        width=\"100%\"\n                        style={{\n                          minHeight: orderbookMinHeight,\n                          maxHeight: orderbookMaxHeight,\n                          height: orderBookSplitHeightSM,\n                        }}\n                        className=\"oui-flex-1\"\n                      >\n                        {orderbookWidget}\n                      </Box>\n                    </SplitLayout>\n                  </Flex>\n                </Flex>\n                <Flex\n                  ref={props.orderEntryViewRef}\n                  id=\"orderEntryView\"\n                  gapY={3}\n                  direction=\"column\"\n                  className=\"oui-relative\"\n                  style={{\n                    width: orderEntryMinWidth,\n                    // force order entry render actual content height\n                    height: \"max-content\",\n                    // height:\n                    //   props.extraHeight && props.extraHeight > 100\n                    //     ? undefined\n                    // : \"max-content\",\n                  }}\n                >\n                  <Flex\n                    gapY={2}\n                    direction=\"column\"\n                    height=\"100%\"\n                    style={{\n                      minWidth: orderEntryMinWidth,\n                      maxWidth: horizontalDraggable\n                        ? orderEntryMaxWidth\n                        : orderEntryMinWidth,\n                      width: mainSplitSize,\n                    }}\n                  >\n                    {sortableItems.map((key: string) => {\n                      return (\n                        <SortablePanel\n                          key={key}\n                          id={key}\n                          showIndicator={showPositionIcon}\n                          className={\n                            orderInteractionWidgets[\n                              key as keyof typeof orderInteractionWidgets\n                            ].className\n                          }\n                        >\n                          {\n                            orderInteractionWidgets[\n                              key as keyof typeof orderInteractionWidgets\n                            ].element\n                          }\n                        </SortablePanel>\n                      );\n                    })}\n                  </Flex>\n                  <Box height={props.extraHeight} />\n                </Flex>\n              </Flex>\n\n              <Box\n                intensity={900}\n                r=\"2xl\"\n                p={2}\n                style={{\n                  height: dataListSplitHeightSM,\n                  minHeight: Math.max(dataListMinHeight, props.dataListHeight),\n                  maxHeight: dataListMaxHeight,\n                }}\n                className=\"oui-overflow-hidden\"\n              >\n                {dataListWidget}\n              </Box>\n\n              {marketLayout === \"bottom\" && stickyHorizontalMarketsView}\n            </SplitLayout>\n          </Box>\n        </SortableContext>\n        <DragOverlay dropAnimation={dropAnimationConfig}>\n          {activeId ? (\n            <SortablePanel\n              id={activeId}\n              showIndicator={showPositionIcon}\n              dragOverlay\n              className={`${\n                orderInteractionWidgets[\n                  activeId as keyof typeof orderInteractionWidgets\n                ].className\n              } oui-shadow-lg oui-shadow-base-9`}\n            >\n              {\n                orderInteractionWidgets[\n                  activeId as keyof typeof orderInteractionWidgets\n                ].element\n              }\n            </SortablePanel>\n          ) : null}\n        </DragOverlay>\n      </DndContext>\n    );\n  }\n\n  return (\n    <DndContext\n      sensors={sensors}\n      collisionDetection={closestCenter}\n      onDragStart={handleDragStart}\n      onDragEnd={handleDragEnd}\n      modifiers={[restrictToVerticalAxis]}\n    >\n      <SortableContext\n        items={sortableItems}\n        strategy={verticalListSortingStrategy}\n      >\n        <Flex\n          style={{\n            minHeight: minScreenHeight,\n            minWidth: 1440 - scrollBarWidth,\n          }}\n          className={cn(\n            props.className,\n            \"oui-justify-start\",\n            tradingViewFullScreen &&\n              \"oui-relative oui-h-[calc(100vh-80px)] oui-w-screen oui-overflow-hidden !oui-p-0\",\n          )}\n          width=\"100%\"\n          p={2}\n          gap={2}\n          itemAlign=\"stretch\"\n          direction=\"column\"\n        >\n          {/* Horizontal Markets View on top for !=2xl screens */}\n          {marketLayout === \"top\" && horizontalMarketsView}\n\n          {/* Main Content Group */}\n          <Flex\n            itemAlign=\"stretch\"\n            className={cn(\n              \"oui-min-h-0 oui-flex-1 oui-overflow-hidden\",\n              layout === \"left\" && \"oui-flex-row-reverse\",\n            )}\n            gap={2}\n          >\n            {!max4XL && marketLayout === \"left\" && marketsView}\n            <SplitLayout\n              className={cn(\"oui-flex oui-flex-1 oui-overflow-hidden\")}\n              onSizeChange={onSizeChange}\n              disable={!horizontalDraggable}\n            >\n              {layout === \"left\" && orderEntryView}\n              {mainView}\n              {layout === \"right\" && orderEntryView}\n            </SplitLayout>\n          </Flex>\n\n          {marketLayout === \"bottom\" && stickyHorizontalMarketsView}\n        </Flex>\n      </SortableContext>\n      <DragOverlay\n        dropAnimation={dropAnimationConfig}\n\n        // style={{\n        //   transform: \"scale(1.05)\",\n        // }}\n        // transition=\"transform 200ms ease\"\n        // className=\"oui-animate-pop\"\n      >\n        {activeId ? (\n          <SortablePanel\n            id={activeId}\n            showIndicator={showPositionIcon}\n            dragOverlay\n            className={`${\n              orderInteractionWidgets[\n                activeId as keyof typeof orderInteractionWidgets\n              ].className\n            } oui-shadow-lg oui-shadow-base-9`}\n          >\n            {\n              orderInteractionWidgets[\n                activeId as keyof typeof orderInteractionWidgets\n              ].element\n            }\n          </SortablePanel>\n        ) : null}\n      </DragOverlay>\n    </DndContext>\n  );\n};\n","import React, { type FC, PropsWithChildren, SVGProps } from \"react\";\nimport { useRef, useEffect } from \"react\";\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Box, cn } from \"@orderly.network/ui\";\n\ntype SortablePanelProps = {\n  id: string;\n  className?: string;\n  showIndicator: boolean;\n  dragOverlay?: boolean;\n};\n\nexport const SortablePanel: FC<PropsWithChildren<SortablePanelProps>> = (\n  props,\n) => {\n  const { showIndicator, dragOverlay } = props;\n  const nodeRef = useRef<HTMLDivElement>(null);\n  const [dimensions, setDimensions] = React.useState<{\n    width: number;\n    height: number;\n  } | null>(null);\n\n  // useSortable hook with custom configuration to prevent dimension changes\n  const sortableResult = useSortable({\n    id: props.id,\n  });\n\n  const {\n    setNodeRef,\n    attributes,\n    listeners,\n    transform,\n    transition,\n    isDragging,\n    setActivatorNodeRef,\n  } = sortableResult;\n\n  // Store original dimensions when dragging starts\n  useEffect(() => {\n    if (isDragging && nodeRef.current && !dimensions) {\n      const rect = nodeRef.current.getBoundingClientRect();\n      // Store dimensions for placeholder\n      setDimensions({\n        width: rect.width,\n        height: rect.height,\n      });\n    } else if (!isDragging && dimensions) {\n      // Reset dimensions when dragging ends\n      setDimensions(null);\n    }\n  }, [isDragging, dimensions]);\n\n  // Combine refs to use both sortable ref and our dimension ref\n  const combinedRef = (node: HTMLDivElement | null) => {\n    setNodeRef(node);\n    // Use a callback ref to properly set the node reference\n    (nodeRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n  };\n\n  const style = {\n    transform: CSS.Transform.toString(transform),\n    transition,\n    // Ensure the item maintains its box model during drag\n    // boxSizing: \"border-box\" as const,\n  };\n\n  // When dragging, render a placeholder with fixed dimensions\n  if (isDragging && dimensions && !dragOverlay) {\n    return (\n      <Box\n        intensity={900}\n        r=\"2xl\"\n        p={3}\n        className={cn(\"oui-relative\")}\n        // ref={combinedRef}\n        style={{\n          ...style,\n          width: dimensions.width,\n          height: dimensions.height,\n          minWidth: dimensions.width,\n          minHeight: dimensions.height,\n          maxWidth: dimensions.width,\n          maxHeight: dimensions.height,\n          // Placeholder styling with subtle visual feedback\n          border: \"1px solid rgb(var(--oui-color-primary))\",\n          backgroundImage: `repeating-linear-gradient(135deg, rgb(var(--oui-color-base-6)) 0px, rgb(var(--oui-color-base-6)) 4px, transparent 4px, transparent 8px)`,\n        }}\n      ></Box>\n    );\n  }\n\n  return (\n    <Box\n      intensity={900}\n      r=\"2xl\"\n      p={3}\n      width=\"100%\"\n      className={cn(\n        \"oui-relative\",\n        props.className,\n        // dragOverlay && \"oui-scale-105\",\n      )}\n      ref={combinedRef}\n      style={style}\n    >\n      <div\n        className={cn(\n          \"inner-content oui-transition-transform\",\n          dragOverlay && \"oui-scale-95\",\n        )}\n      >\n        {props.children}\n      </div>\n      {showIndicator && (\n        <button\n          {...attributes}\n          {...listeners}\n          className=\"oui-absolute oui-right-0 oui-top-4 oui-cursor-move oui-py-1\"\n          style={{ touchAction: \"none\" }}\n          ref={setActivatorNodeRef}\n        >\n          <IndicatorIcon\n            className={cn(\n              \"oui-text-base-contrast-20 hover:oui-text-base-contrast-80\",\n            )}\n          />\n        </button>\n      )}\n    </Box>\n  );\n};\n\nconst IndicatorIcon: FC<SVGProps<SVGSVGElement>> = (props) => (\n  <svg\n    width=\"10\"\n    height=\"16\"\n    viewBox=\"0 0 10 16\"\n    fill=\"currentColor\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    {...props}\n  >\n    <rect x=\"2\" y=\"2\" width=\"6\" height=\"2\" rx=\"1\" />\n    <rect x=\"2\" y=\"7\" width=\"6\" height=\"2\" rx=\"1\" />\n    <rect x=\"2\" y=\"12\" width=\"6\" height=\"2\" rx=\"1\" />\n  </svg>\n);\n","import { useEffect } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  toast,\n  Flex,\n  CloseIcon,\n  ExclamationFillIcon,\n  Text,\n  useScreen,\n} from \"@orderly.network/ui\";\n\nconst toastId = \"rwaOutsideMarketHoursNotify\";\n\nconst RwaOutsideMarketHoursNotify = () => {\n  const { t } = useTranslation();\n\n  const closeNotify = () => {\n    toast.remove(toastId);\n  };\n\n  const { isMobile } = useScreen();\n  useEffect(() => {\n    if (isMobile) {\n      setTimeout(() => {\n        toast.dismiss(toastId);\n      }, 3000);\n    }\n  }, [isMobile]);\n\n  return (\n    <Flex r=\"lg\" className=\"oui-bg-base-6 oui-relative oui-max-w-[348px]\">\n      <Flex\n        direction=\"column\"\n        justify=\"center\"\n        itemAlign=\"center\"\n        className=\"oui-bg-warning-darken oui-px-[5px] oui-h-full oui-rounded-tl-[10px] oui-rounded-bl-[10px]\"\n      >\n        <ExclamationFillIcon\n          opacity={1}\n          className=\"oui-text-base-6\"\n          size={18}\n        />\n      </Flex>\n      <Flex p={4} mr={1}>\n        <Text size=\"sm\" intensity={80} weight=\"semibold\">\n          {t(\"trading.rwa.outsideMarketHours.notify\")}\n        </Text>\n      </Flex>\n\n      <button\n        className=\"oui-w-6 oui-h-6 oui-right-0 oui-top-0 oui-absolute oui-bg-base-8 oui-rounded-tr-[10px] oui-rounded-bl-[10px] oui-inline-flex oui-justify-center oui-items-center oui-gap-2.5 oui-cursor-pointer\"\n        onClick={closeNotify}\n      >\n        <CloseIcon opacity={1} className=\"oui-text-base-contrast\" size={16} />\n      </button>\n    </Flex>\n  );\n};\n\nconst showRwaOutsideMarketHoursNotify = () => {\n  toast.custom(<RwaOutsideMarketHoursNotify />, {\n    id: toastId,\n    duration: 3000,\n  });\n};\n\nRwaOutsideMarketHoursNotify.displayName = \"RwaOutsideMarketHoursNotify\";\nexport { RwaOutsideMarketHoursNotify, showRwaOutsideMarketHoursNotify };\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useGetRwaSymbolCloseTimeInterval } from \"@orderly.network/hooks\";\n\nexport const useShowRwaCountdown = (symbol: string) => {\n  const [showCountdown, setShowCountdown] = useState<boolean | undefined>(\n    undefined,\n  );\n\n  const [manulClose, setManulClose] = useState<boolean>(false);\n\n  const { isRwa, open, closeTimeInterval } =\n    useGetRwaSymbolCloseTimeInterval(symbol);\n  useEffect(() => {\n    if (manulClose) {\n      return;\n    }\n    setShowCountdown(isRwa && open && !!closeTimeInterval);\n  }, [isRwa, open, closeTimeInterval, manulClose]);\n\n  useEffect(() => {\n    return () => {\n      setShowCountdown(undefined);\n      setManulClose(false);\n    };\n  }, [symbol]);\n\n  const closeCountdown = () => {\n    setShowCountdown(false);\n    setManulClose(true);\n  };\n\n  return useMemo(() => {\n    return {\n      showCountdown,\n      closeCountdown,\n    };\n  }, [showCountdown, closeCountdown]);\n};\n","import { useMemo } from \"react\";\n\nexport const useSplitPersistent = (\n  key: string,\n  defaulValue?: string,\n  dep?: any,\n): [string | undefined, (size: string) => void] => {\n  const size = useMemo(() => {\n    const size = localStorage.getItem(key);\n\n    if (size) {\n      return `${size}%`;\n    }\n    return defaulValue;\n  }, [key, defaulValue, dep]);\n\n  const setSize = (size: string) => {\n    localStorage.setItem(key, size);\n  };\n\n  return [size, setSize];\n};\n","import { RefObject, useEffect, useMemo, useRef, useState } from \"react\";\nimport Split from \"@uiw/react-split\";\nimport {\n  useAccount,\n  useCollateral,\n  useLocalStorage,\n  useMediaQuery,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useAppContext, useDataTap } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { modal } from \"@orderly.network/ui\";\nimport type { LayoutPosition } from \"../../components/desktop/layout/switchLayout\";\nimport { useSplitPersistent } from \"../../components/desktop/layout/useSplitPersistent\";\nimport { PortfolioSheetWidget } from \"../../components/mobile/portfolioSheet\";\nimport { useTradingLocalStorage } from \"../../hooks/\";\nimport { useTradingPageContext } from \"../../provider/tradingPageContext\";\nimport { TradingPageState } from \"../../types/types\";\nimport { useFirstTimeDeposit } from \"./hooks/useFirstTimeDeposit\";\n\nexport type TradingState = ReturnType<typeof useTradingScript>;\n\nexport const scrollBarWidth = 6;\nexport const topBarHeight = 48;\nexport const bottomBarHeight = 29;\nexport const space = 8;\nexport const symbolInfoBarHeight = 54;\n\nexport const orderEntryMinWidth = 280;\nexport const orderEntryMaxWidth = 360;\n\nexport const orderbookMinWidth = 280;\nexport const orderbookMaxWidth = 732;\n\nexport const orderbookMinHeight = 464;\nexport const orderbookMaxHeight = 728;\n\nexport const tradindviewMinHeight = 320;\n\nexport const tradingViewMinWidth = 540;\n\nexport const dataListMaxHeight = 800;\nexport const dataListInitialHeight = 350;\n\nconst ORDERLY_ORDER_ENTRY_SIDE_MARKETS_LAYOUT =\n  \"orderly_order_entry_side_markets_layout\";\n\nconst ORDERLY_SIDE_MARKETS_MODE_KEY = \"orderly_side_markets_mode\";\n\nconst ORDERLY_HORIZONTAL_MARKETS_LAYOUT = \"orderly_horizontal_markets_layout\";\n\nexport type MarketLayoutPosition = \"left\" | \"top\" | \"bottom\" | \"hide\";\n\nexport const useTradingScript = () => {\n  const [openMarketsSheet, setOpenMarketsSheet] = useState(false);\n  const props = useTradingPageContext();\n  const { state } = useAccount();\n  const { t } = useTranslation();\n  const { wrongNetwork, disabledConnect, restrictedInfo, onRouteChange } =\n    useAppContext();\n  const { hideAssets, setHideAssets } = useTradingLocalStorage();\n\n  const isFirstTimeDeposit = useFirstTimeDeposit();\n\n  const { totalValue } = useCollateral();\n\n  const total = useDataTap(totalValue);\n\n  /** max-width: 1279px */\n  const max2XL = useMediaQuery(\"(max-width: 1279px)\");\n\n  /** min-width: 1440px */\n  const min3XL = useMediaQuery(\"(min-width: 1440px)\");\n\n  /** max-width: 1680px */\n  const max4XL = useMediaQuery(\"(max-width: 1680px)\");\n\n  // Order entry and side market list position, default Order entry in right\n  const [layout, setLayout] = useLocalStorage<LayoutPosition>(\n    ORDERLY_ORDER_ENTRY_SIDE_MARKETS_LAYOUT,\n    \"right\",\n  );\n\n  // Horizontal markets layout position, default left\n  const [marketLayout, setMarketLayout] = useLocalStorage<MarketLayoutPosition>(\n    ORDERLY_HORIZONTAL_MARKETS_LAYOUT,\n    \"left\",\n  );\n\n  const canTrade = useMemo<boolean>(() => {\n    return (\n      !wrongNetwork &&\n      !disabledConnect &&\n      (state.status >= AccountStatusEnum.EnableTrading ||\n        state.status === AccountStatusEnum.EnableTradingWithoutConnected)\n    );\n  }, [state.status, wrongNetwork, disabledConnect]);\n\n  const onShowPortfolioSheet = () => {\n    if (canTrade) {\n      modal.sheet({\n        title: t(\"trading.asset&Margin\"),\n        leading: props.bottomSheetLeading,\n        content: <PortfolioSheetWidget />,\n      });\n    }\n  };\n\n  const horizontalDraggable = useMemo(() => min3XL, [min3XL]);\n\n  const positionsState = useOrderEntryPositions({\n    canTrade,\n    isFirstTimeDeposit,\n  });\n\n  const marketsCollapseState = useMarketsCollapse({ resizeable: min3XL });\n\n  const observerState = useObserverOrderEntry({ max2XL });\n\n  const marketsWidth = useMemo(() => {\n    switch (marketsCollapseState.panelSize) {\n      case \"small\":\n        return 0;\n      case \"middle\":\n        return 70;\n      case \"large\":\n        return 360;\n      default:\n        return 0;\n    }\n  }, [marketsCollapseState.panelSize]);\n\n  const tradindviewMaxHeight = max2XL ? 1200 : 600;\n\n  const dataListMinHeight = canTrade ? 379 : 277;\n\n  const splitSizeState = useSplitSize({ dep: layout });\n\n  const tradingViewHeightState = useExtraHeight({\n    orderEntryViewRef: observerState.orderEntryViewRef,\n    tradindviewMaxHeight,\n    dataListMinHeight,\n  });\n\n  const navigateToPortfolio =\n    typeof onRouteChange === \"function\"\n      ? () => onRouteChange({ href: \"/portfolio\", name: t(\"common.portfolio\") })\n      : undefined;\n\n  const map = {\n    layout,\n    onLayout: setLayout,\n    marketLayout,\n    onMarketLayout: setMarketLayout,\n    max2XL,\n    min3XL,\n    max4XL,\n    canTrade,\n    openMarketsSheet,\n    onOpenMarketsSheetChange: setOpenMarketsSheet,\n    horizontalDraggable,\n    ...marketsCollapseState,\n    ...positionsState,\n    ...splitSizeState,\n    ...observerState,\n    restrictedInfo,\n    ...tradingViewHeightState,\n    marketsWidth,\n    tradindviewMaxHeight,\n    dataListMinHeight,\n    total,\n    hideAssets,\n    setHideAssets,\n    onShowPortfolioSheet,\n    navigateToPortfolio,\n    isFirstTimeDeposit,\n    symbolInfoBarHeight,\n  };\n\n  return { ...props, ...map } as TradingPageState & typeof map;\n};\n\nconst useMarketsCollapse = (options: { resizeable: boolean }) => {\n  const { resizeable } = options;\n  const [animating, setAnimating] = useState(false);\n\n  const [panelSize, setPanelSize] = useLocalStorage<\n    \"small\" | \"middle\" | \"large\"\n  >(ORDERLY_SIDE_MARKETS_MODE_KEY, \"large\");\n\n  const onPanelSizeChange = (collapsed: \"small\" | \"middle\" | \"large\") => {\n    setPanelSize(collapsed);\n    setAnimating(true);\n  };\n\n  const memoizedPanelSize = useMemo<\"small\" | \"middle\" | \"large\">(() => {\n    // Force only two states\n    const normalized = panelSize === \"large\" ? \"large\" : \"middle\";\n    // under 1440px markets force collapsed\n    return resizeable ? normalized : \"middle\";\n  }, [resizeable, panelSize]);\n\n  return {\n    resizeable: resizeable,\n    panelSize: memoizedPanelSize,\n    onPanelSizeChange: onPanelSizeChange,\n    animating: animating,\n    setAnimating: setAnimating,\n  } as const;\n};\n\nconst useOrderEntryPositions = (options: {\n  canTrade: boolean;\n  isFirstTimeDeposit: boolean;\n}) => {\n  const { canTrade, isFirstTimeDeposit } = options;\n\n  const [positions, setPositions] = useLocalStorage(\n    \"orderly_assets_orderEntry_margin_positions\",\n    [0, 1, 2],\n  );\n\n  const updatePositions = (currentIdx: number, targetIdx: number) => {\n    const pos = [...positions];\n    // [0,1,2] => [1,2,0]\n    if (currentIdx === 0 && targetIdx === pos.length - 1) {\n      pos[targetIdx] = positions[currentIdx];\n      for (let i = 0; i < pos.length - 1; i++) {\n        pos[i] = positions[i + 1];\n      }\n\n      // [0,1,2] => [2,0,1]\n    } else if (currentIdx === pos.length - 1 && targetIdx === 0) {\n      pos[targetIdx] = positions[currentIdx];\n      for (let i = 1; i < pos.length; i++) {\n        pos[i] = positions[i - 1];\n      }\n    } else {\n      // [0,1,2] => [1,0,2], [0,1,2] => [0,2,1]\n      [pos[currentIdx], pos[targetIdx]] = [pos[targetIdx], pos[currentIdx]];\n    }\n    setPositions(pos);\n  };\n\n  const showPositionIcon = useMemo(\n    () => canTrade && !isFirstTimeDeposit,\n    [canTrade, isFirstTimeDeposit],\n  );\n\n  const pos = useMemo(() => {\n    return showPositionIcon ? (positions as number[]) : [0, 1, 2];\n  }, [showPositionIcon, positions]);\n\n  return {\n    positions: pos,\n    showPositionIcon,\n    updatePositions,\n  };\n};\n\nconst useSplitSize = (options: { dep: any }) => {\n  const { dep } = options;\n  const [mainSplitSize, setMainSplitSize] = useSplitPersistent(\n    \"orderly_main_split_size\",\n    `${orderEntryMinWidth}px`,\n    dep,\n  );\n  const [dataListSplitSize, setDataListSplitSize] = useSplitPersistent(\n    \"orderly_datalist_split_size\",\n    `${dataListInitialHeight}px`,\n    // undefined,\n  );\n  const [orderBookSplitSize, setOrderbookSplitSize] = useSplitPersistent(\n    \"orderly_orderbook_split_size\",\n    \"280px\",\n    dep,\n  );\n\n  const [dataListSplitHeightSM, setDataListSplitHeightSM] = useSplitPersistent(\n    \"orderly_datalist_split_height_sm\",\n    \"350px\",\n  );\n\n  const [orderBookSplitHeightSM, setOrderbookSplitHeightSM] =\n    useSplitPersistent(\"orderly_orderbook_split_height_sm\", \"280px\");\n\n  return {\n    orderBookSplitSize,\n    setOrderbookSplitSize,\n    dataListSplitSize,\n    setDataListSplitSize,\n    mainSplitSize,\n    setMainSplitSize,\n    dataListSplitHeightSM,\n    setDataListSplitHeightSM,\n    orderBookSplitHeightSM,\n    setOrderbookSplitHeightSM,\n  };\n};\n\nconst useObserverOrderEntry = (options: { max2XL: boolean }) => {\n  const { max2XL } = options;\n  const [orderEntryHeight, setOrderEntryHeight] = useState(0);\n  const orderEntryViewRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    const element = orderEntryViewRef.current;\n\n    if (!element || !max2XL) {\n      return;\n    }\n\n    const resizeObserver = new ResizeObserver((entries) => {\n      for (const entry of entries) {\n        const height = entry.contentRect.height;\n        if (height) {\n          setOrderEntryHeight(height);\n        }\n      }\n    });\n\n    resizeObserver.observe(element);\n\n    return () => {\n      resizeObserver.unobserve(element);\n    };\n  }, [orderEntryViewRef, max2XL]);\n\n  return {\n    orderEntryViewRef,\n    orderEntryHeight,\n  };\n};\n\nexport function getOffsetSizeNum(size: string | null) {\n  if (size) {\n    return `${100 - Math.min(Number(size), 100)}`;\n  }\n  return \"\";\n}\n\nfunction useExtraHeight(options: {\n  orderEntryViewRef: RefObject<HTMLDivElement>;\n  tradindviewMaxHeight: number;\n  dataListMinHeight: number;\n}) {\n  const { tradindviewMaxHeight, dataListMinHeight } = options;\n  const tradingviewAndOrderbookSplitRef = useRef<Split>(null);\n  const max2XLSplitRef = useRef<Split>(null);\n\n  const [extraHeight, setExtraHeight] = useLocalStorage(\n    \"orderly_order_entry_extra_height\",\n    0,\n  );\n\n  const space = 10 + 12;\n\n  const [dataListHeight, setDataListHeight] = useLocalStorage(\n    \"orderly_trading_data_list_height\",\n    dataListMinHeight,\n  );\n\n  const onTradingviewAndOrderbookDragging = (\n    preSize: number,\n    nextSize: number,\n  ) => {\n    const boxHeight = tradingviewAndOrderbookSplitRef?.current?.boxHeight;\n    if (!boxHeight) {\n      return;\n    }\n\n    const splitTradingviewHeight = (boxHeight * preSize) / 100;\n    const splitOrderbookHeight = (boxHeight * nextSize) / 100;\n\n    const tradingviewHeight = Math.min(\n      Math.max(splitTradingviewHeight, tradindviewMinHeight),\n      tradindviewMaxHeight,\n    );\n\n    const orderbookHeight = Math.min(\n      Math.max(splitOrderbookHeight, orderbookMinHeight),\n      orderbookMaxHeight,\n    );\n\n    const orderEntryHeight =\n      options.orderEntryViewRef.current?.clientHeight || 0;\n\n    // console.log(\"tradingviewHeight\", splitTradingviewHeight, tradingviewHeight);\n    // console.log(\"orderbookHeight\", splitOrderbookHeight, orderbookHeight);\n\n    if (splitOrderbookHeight >= orderbookHeight) {\n      const offset = splitOrderbookHeight - orderbookHeight;\n      // console.log(\"offset ---\", offset);\n      setExtraHeight(Math.max(0, extraHeight - offset));\n    } else if (\n      tradingviewHeight + orderbookHeight <\n      tradindviewMaxHeight + orderbookMaxHeight\n    ) {\n      const height =\n        tradingviewHeight + orderbookHeight + space + symbolInfoBarHeight;\n\n      const offset = Math.max(0, height - orderEntryHeight);\n      // console.log(\"offset ++++\", height, offset);\n      setExtraHeight(extraHeight + offset);\n    }\n  };\n\n  const onDataListSplitHeightDragging = (preSize: number, nextSize: number) => {\n    const boxHeight = max2XLSplitRef?.current?.boxHeight;\n    if (!boxHeight) {\n      return;\n    }\n\n    // const splitTradingAndOrderbookHeight = (boxHeight * preSize) / 100;\n    const splitDataListHeight = (boxHeight * nextSize) / 100;\n\n    if (\n      splitDataListHeight >= dataListMinHeight &&\n      splitDataListHeight <= dataListMaxHeight\n    ) {\n      setDataListHeight(splitDataListHeight);\n      const offset = splitDataListHeight - dataListHeight;\n      if (offset > 0) {\n        setExtraHeight(Math.max(0, extraHeight - offset));\n      }\n    }\n  };\n\n  return {\n    max2XLSplitRef,\n    tradingviewAndOrderbookSplitRef,\n    onTradingviewAndOrderbookDragging,\n    onDataListSplitHeightDragging,\n    extraHeight,\n    dataListHeight,\n  };\n}\n","import { useMemo } from \"react\";\nimport {\n  useAccount,\n  useAssetsHistory,\n  useCollateral,\n} from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport {\n  AccountStatusEnum,\n  AssetHistorySideEnum,\n  AssetHistoryStatusEnum,\n} from \"@orderly.network/types\";\n\nexport const useFirstTimeDeposit = () => {\n  const { state } = useAccount();\n  const { wrongNetwork, disabledConnect } = useAppContext();\n  const { totalValue } = useCollateral({\n    dp: 2,\n  });\n\n  const unavailable =\n    wrongNetwork ||\n    disabledConnect ||\n    (state.status < AccountStatusEnum.EnableTrading &&\n      state.status !== AccountStatusEnum.EnableTradingWithoutConnected);\n\n  const { startTime, endTime } = useMemo(() => {\n    const d = new Date();\n    // must set last second of today, when wallet ws changed, it will get latest data from api\n    const today = new Date(\n      d.getFullYear(),\n      d.getMonth(),\n      d.getDate(),\n      23,\n      59,\n      59,\n    );\n\n    const endTime = today.getTime();\n    // 90 days ago timestamp\n    const startTime = endTime - 90 * 24 * 60 * 60 * 1000;\n\n    return {\n      startTime,\n      endTime,\n    };\n  }, []);\n\n  const [_, { meta }] = useAssetsHistory(\n    {\n      startTime,\n      endTime,\n      page: 1,\n      pageSize: 5,\n      side: AssetHistorySideEnum.DEPOSIT,\n      status: AssetHistoryStatusEnum.COMPLETED,\n    },\n    {\n      shouldUpdateOnWalletChanged: (data) =>\n        data.side === AssetHistorySideEnum.DEPOSIT &&\n        data.transStatus === AssetHistoryStatusEnum.COMPLETED,\n    },\n  );\n\n  return !unavailable && totalValue === 0 && meta?.total === 0;\n};\n","import { injectable } from \"@orderly.network/ui\";\nimport { DesktopLayout } from \"./trading.ui.desktop\";\n\nexport const InjectableDesktopLayout = injectable(\n  DesktopLayout,\n  \"Trading.Layout.Desktop\",\n);\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { Box, Flex } from \"@orderly.network/ui\";\n\nexport const Countdown = ({\n  timeInterval,\n}: {\n  timeInterval: number | undefined;\n}) => {\n  const { t } = useTranslation();\n\n  if (!timeInterval) {\n    return null;\n  }\n\n  // if timeInterval is greater than 30 minutes, return null\n  if (timeInterval >= 1800) {\n    return null;\n  }\n\n  const [days, hours, minutes, seconds] = breakDownSeconds(timeInterval);\n\n  const daysStr = days.toString().padStart(2, \"0\");\n  const hoursStr = hours.toString().padStart(2, \"0\");\n  const minutesStr = minutes.toString().padStart(2, \"0\");\n  const secondsStr = seconds.toString().padStart(2, \"0\");\n\n  const renderStr = () => {\n    if (days > 0) {\n      return {\n        s1: daysStr,\n        s2: hoursStr,\n        c1: t(\"common.dayShort\"),\n        c2: t(\"common.hourShort\"),\n      };\n    }\n\n    if (hours > 0) {\n      return {\n        s1: hoursStr,\n        s2: minutesStr,\n        c1: t(\"common.hourShort\"),\n        c2: t(\"common.minuteShort\"),\n      };\n    }\n\n    return {\n      s1: minutesStr,\n      s2: secondsStr,\n      c1: t(\"common.minuteShort\"),\n      c2: t(\"common.secondShort\"),\n    };\n  };\n\n  const { s1, s2, c1, c2 } = renderStr();\n\n  return (\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        {s1}\n      </Box>\n      {c1}\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        {s2}\n      </Box>\n      {c2}\n    </Flex>\n  );\n};\n\nfunction breakDownSeconds(total: number): [number, number, number, number] {\n  const SEC_PER_DAY = 86_400;\n  const SEC_PER_HOUR = 3_600;\n  const SEC_PER_MIN = 60;\n\n  const days = Math.floor(total / SEC_PER_DAY);\n  const remAfterDays = total % SEC_PER_DAY;\n\n  const hours = Math.floor(remAfterDays / SEC_PER_HOUR);\n  const remAfterHours = remAfterDays % SEC_PER_HOUR;\n\n  const mins = Math.floor(remAfterHours / SEC_PER_MIN);\n  const secs = remAfterHours % SEC_PER_MIN;\n\n  return [days, hours, mins, secs];\n}\n","import React, { useEffect, useMemo } from \"react\";\nimport { useBadgeBySymbol, useGetRwaSymbolInfo } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n  MarketsSheetWidget,\n  SymbolInfoBarRiskNotice,\n  SymbolInfoBarWidget,\n} from \"@orderly.network/markets\";\nimport {\n  Box,\n  SimpleSheet,\n  EyeCloseIcon,\n  EyeIcon,\n  Flex,\n  Text,\n  NewsFillIcon,\n} from \"@orderly.network/ui\";\nimport { Countdown } from \"../../components/base/countdown\";\nimport { showRwaOutsideMarketHoursNotify } from \"../../components/desktop/notify/rwaNotification\";\nimport type { TradingState } from \"./trading.script\";\n\nconst LazyTopTabWidget = React.lazy(() =>\n  import(\"../../components/mobile/topTab\").then((mod) => {\n    return { default: mod.TopTabWidget };\n  }),\n);\n\nconst LazyOrderBookAndEntryWidget = React.lazy(() =>\n  import(\"../../components/mobile/orderBookAndEntry\").then((mod) => {\n    return { default: mod.OrderBookAndEntryWidget };\n  }),\n);\n\nconst LazyDataListWidget = React.lazy(() =>\n  import(\"../../components/mobile/dataList\").then((mod) => {\n    return { default: mod.DataListWidget };\n  }),\n);\n\nconst MaybeEqual: React.FC = () => {\n  return (\n    <svg\n      width=\"8\"\n      height=\"8\"\n      viewBox=\"0 0 8 8\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      className=\"oui-fill-base-contrast-54\"\n    >\n      <path d=\"M6.456 3.48a3.5 3.5 0 0 0 .431-.567 9 9 0 0 0 .361-.654l-.648-.66-.107.185q-.071.12-.142.244a3 3 0 0 1-.27.396 1.4 1.4 0 0 1-.318.29.67.67 0 0 1-.38.114q-.307 0-.666-.194t-.742-.42q-.383-.227-.777-.42a1.7 1.7 0 0 0-.771-.194q-.401.001-.72.154a2.1 2.1 0 0 0-.57.404 2.6 2.6 0 0 0-.43.574 5 5 0 0 0-.307.646l.649.66q.165-.437.464-.833.298-.395.742-.396.347 0 .7.194.354.193.721.42.37.227.763.42.396.195.826.195.374.001.665-.155.29-.151.526-.404m.352 2.941a3.5 3.5 0 0 0 .431-.566q.196-.315.361-.654l-.648-.66-.107.184-.142.244a3 3 0 0 1-.27.396 1.4 1.4 0 0 1-.318.29.67.67 0 0 1-.38.115q-.307 0-.666-.195-.36-.193-.742-.42-.383-.226-.778-.42a1.7 1.7 0 0 0-.77-.194q-.401.001-.72.154a2.1 2.1 0 0 0-.57.405 2.6 2.6 0 0 0-.43.574 5 5 0 0 0-.307.646l.649.66q.165-.437.464-.833.297-.395.742-.396.347 0 .7.194.354.193.721.42.369.226.763.42.396.194.826.194.374.001.665-.154.29-.152.526-.404\" />\n    </svg>\n  );\n};\n\nexport const MobileLayout: React.FC<TradingState> = (props) => {\n  const { t } = useTranslation();\n\n  const { isRwa, open, closeTimeInterval } = useGetRwaSymbolInfo(props.symbol);\n  const { brokerId, brokerName, brokerNameRaw, displayName } = useBadgeBySymbol(\n    props.symbol,\n  );\n  const isCommunityListed = Boolean(brokerId ?? brokerName);\n  const baseFromSymbol = props.symbol?.split(\"_\")[1] ?? props.symbol ?? \"\";\n  const symbolWithBroker =\n    brokerName != null\n      ? `${baseFromSymbol}-${brokerNameRaw}`\n      : (displayName ?? props.symbol ?? \"\");\n\n  useEffect(() => {\n    if (isRwa && !open) {\n      showRwaOutsideMarketHoursNotify();\n    }\n  }, [isRwa, open, props.symbol]);\n\n  const rwaStatusBar = useMemo(() => {\n    if (!isRwa) {\n      return null;\n    }\n\n    if (closeTimeInterval === undefined) {\n      return null;\n    }\n\n    const thresholdTime = 30 * 60;\n\n    if ((closeTimeInterval ?? 0) > thresholdTime) {\n      return null;\n    }\n\n    return (\n      <Flex\n        gap={1}\n        p={2}\n        justify=\"start\"\n        itemAlign=\"center\"\n        r=\"lg\"\n        mt={2}\n        className=\"oui-bg-success/15 oui-text-xs oui-text-base-contrast-54\"\n      >\n        <NewsFillIcon color=\"success\" size={16} className=\"oui-flex-shrink-0\" />\n        <Flex className=\"oui-flex-1 oui-text-success\">\n          <Text>\n            {open\n              ? t(\"trading.rwa.mWeb.outsideMarketHours.desc\")\n              : t(\"trading.rwa.mWeb.insideMarketHours.desc\")}\n          </Text>\n        </Flex>\n        <Countdown timeInterval={closeTimeInterval} />\n      </Flex>\n    );\n  }, [isRwa, open, closeTimeInterval]);\n\n  const symbolInfoBar = (\n    <SymbolInfoBarWidget\n      symbol={props.symbol}\n      onSymbol={() => props.onOpenMarketsSheetChange(true)}\n      trailing={\n        <Flex\n          direction={\"column\"}\n          itemAlign={\"end\"}\n          className=\"oui-cursor-pointer oui-text-[11px]\"\n          onClick={props.onShowPortfolioSheet}\n        >\n          <Flex>\n            <Text intensity={54}>{t(\"common.totalValue\")}</Text>\n            <button\n              onClick={(e) => {\n                e.stopPropagation();\n                e.preventDefault();\n                props.setHideAssets(!props.hideAssets);\n              }}\n              className=\"oui-px-1\"\n            >\n              {props.hideAssets ? (\n                <EyeIcon\n                  color=\"primary\"\n                  opacity={1}\n                  size={16}\n                  className=\"oui-text-primary-light\"\n                />\n              ) : (\n                <EyeCloseIcon\n                  color=\"primary\"\n                  opacity={1}\n                  size={16}\n                  className=\"oui-text-primary-light\"\n                />\n              )}\n            </button>\n            <MaybeEqual />\n          </Flex>\n          <Text.numeral\n            suffix={<Text intensity={20}>&nbsp;USDC</Text>}\n            dp={2}\n            visible={!props.hideAssets}\n          >\n            {props.canTrade ? (props.total ?? \"--\") : \"--\"}\n          </Text.numeral>\n        </Flex>\n      }\n    />\n  );\n\n  const topBar = (\n    <Box>\n      <Flex mx={1}>\n        <SymbolInfoBarRiskNotice\n          visible={isCommunityListed}\n          symbolWithBroker={symbolWithBroker}\n          brokerName={brokerNameRaw ?? brokerName ?? \"\"}\n          autoHeight\n          className=\"oui-my-1\"\n        />\n      </Flex>\n      {symbolInfoBar}\n      <SimpleSheet\n        open={props.openMarketsSheet}\n        onOpenChange={props.onOpenMarketsSheetChange}\n        classNames={{\n          body: \"oui-h-full oui-pb-0 \",\n          content: \"!oui-w-[372px] !oui-max-w-[372px] !oui-p-0\",\n        }}\n        contentProps={{ side: \"left\", closeable: false }}\n      >\n        <MarketsSheetWidget\n          symbol={props.symbol}\n          onSymbolChange={(symbol) => {\n            props.onOpenMarketsSheetChange(false);\n            props.onSymbolChange?.(symbol);\n          }}\n        />\n      </SimpleSheet>\n      {rwaStatusBar}\n    </Box>\n  );\n\n  return (\n    <div className=\"oui-relative oui-grid oui-gap-1 oui-bg-base-10\">\n      <main className=\"oui-hide-scrollbar oui-space-y-1 oui-overflow-y-auto\">\n        {topBar}\n\n        <React.Suspense fallback={null}>\n          <LazyTopTabWidget className=\"oui-mx-1 oui-rounded-xl oui-bg-base-9\" />\n        </React.Suspense>\n        <React.Suspense fallback={null}>\n          <LazyOrderBookAndEntryWidget />\n        </React.Suspense>\n        <React.Suspense fallback={null}>\n          <LazyDataListWidget\n            symbol={props.symbol}\n            className=\"oui-mx-1 oui-rounded-xl\"\n            sharePnLConfig={props.sharePnLConfig}\n          />\n        </React.Suspense>\n      </main>\n    </div>\n  );\n};\n","import { FC, useEffect } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { toast, useScreen } from \"@orderly.network/ui\";\nimport { InjectableDesktopLayout } from \"./trading.injectable\";\nimport type { TradingState } from \"./trading.script\";\nimport { MobileLayout } from \"./trading.ui.mobile\";\n\nexport const Trading: FC<TradingState> = (props) => {\n  const { isMobile } = useScreen();\n  const { t } = useTranslation();\n  // const symbolsInfo = useSymbolsInfo();\n  // const symbol = props.symbol;\n\n  // // listen to symbol trading status\n  // // if the symbol is delisting, show a toast\n  // useEffect(() => {\n  //   if (!symbol || !symbolsInfo[symbol]) return;\n  //   const status = symbolsInfo[symbol](\"status\");\n  //   if (status === \"DELISTING\") {\n  //     const displaySymbol =\n  //       symbolsInfo[symbol](\"displayName\") ??\n  //       symbolsInfo[symbol](\"name\") ??\n  //       symbol;\n  //     toast(t(\"trading.symbolDelisting\", { symbol: displaySymbol }), {\n  //       id: `symbol-delisting-${symbol}`,\n  //     });\n  //   }\n  // }, [symbol, symbolsInfo, t]);\n\n  if (isMobile) {\n    return <MobileLayout {...props} />;\n  }\n\n  return (\n    <InjectableDesktopLayout\n      className=\"oui-h-[calc(100vh_-_48px_-_29px)] oui-bg-base-10\"\n      {...props}\n    />\n  );\n};\n","import React from \"react\";\nimport { useTradingScript } from \"./trading.script\";\nimport { Trading } from \"./trading.ui\";\n\nexport const TradingWidget: React.FC = () => {\n  const state = useTradingScript();\n  return <Trading {...state} />;\n};\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { TradingPageState, TradingPageProps } from \"../types/types\";\nimport { getBasicSymbolInfo } from \"../utils/utils\";\nimport { TradingPageContext } from \"./tradingPageContext\";\n\nexport const TradingPageProvider: FC<PropsWithChildren<TradingPageProps>> = (\n  props,\n) => {\n  const { symbol, children } = props;\n  const symbolInfo = useSymbolsInfo()[symbol];\n\n  const memoizedValue = useMemo<TradingPageState>(() => {\n    const basicSymbol = getBasicSymbolInfo(symbolInfo);\n    return {\n      ...props,\n      symbolInfo: {\n        ...basicSymbol,\n        symbol: symbol,\n      },\n    };\n  }, [props, symbol, symbolInfo]);\n  return (\n    <TradingPageContext.Provider value={memoizedValue}>\n      {children}\n    </TradingPageContext.Provider>\n  );\n};\n","import React from \"react\";\nimport { TradingPageProvider } from \"../../provider/tradingPageProvider\";\nimport { TradingPageProps } from \"../../types/types\";\nimport { TradingWidget } from \"./trading.widget\";\n\nexport const TradingPage: React.FC<TradingPageProps> = (props) => {\n  return (\n    <TradingPageProvider\n      symbol={props.symbol}\n      tradingViewConfig={props.tradingViewConfig}\n      onSymbolChange={props.onSymbolChange}\n      disableFeatures={props.disableFeatures}\n      overrideFeatures={props.overrideFeatures}\n      referral={props.referral}\n      tradingRewards={props.tradingRewards}\n      bottomSheetLeading={props.bottomSheetLeading}\n      sharePnLConfig={props.sharePnLConfig}\n    >\n      <TradingWidget />\n    </TradingPageProvider>\n  );\n};\n"]}