@orderly.network/ui-orders 2.8.10 → 2.8.11-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +20 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -12
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/orders.script.ts","../src/utils/util.ts","../src/components/provider/symbolContext.tsx","../src/components/provider/symbolProvider.tsx","../src/components/shareButton/shareButton.ui.tsx","../src/components/shareButton/shareButton.script.tsx","../src/components/shareButton/shareButton.widget.tsx","../src/components/shareButton/index.ts","../src/components/orderList/desktop/avgPrice.tsx","../src/components/orderList/desktop/bracketOrderPrice.tsx","../src/components/orderList/orderListContext.tsx","../src/components/orderList/desktop/cancelBtn.tsx","../src/type.ts","../src/components/orderList/desktop/editOrder/confirmContent.tsx","../src/components/orderList/desktop/hooks/usePopoverState.ts","../src/components/orderList/desktop/hooks/useValidateField.ts","../src/components/orderList/desktop/components/editableCellInput.tsx","../src/components/orderList/desktop/components/previewCell.tsx","../src/components/orderList/desktop/components/activedPriceCell.tsx","../src/components/orderList/desktop/components/priceCell.tsx","../src/components/orderList/tpslOrderRowContext.tsx","../src/components/orderList/desktop/editOrder/innerInput.tsx","../src/components/orderList/desktop/components/quantityCell.tsx","../src/components/orderList/desktop/components/trailingCallbackCell.tsx","../src/components/orderList/desktop/components/triggerPriceCell.tsx","../src/components/orderList/desktop/renew.tsx","../src/components/orderList/desktop/tpslEdit.tsx","../src/components/orderList/desktop/tpslPrice.tsx","../src/components/orderList/desktop/tpslTriggerPrice.tsx","../src/components/orderList/desktop/useColumn.tsx","../src/components/orderList/mobile/items.tsx","../src/components/orderList/mobile/bracketOrderPrice/bracketOrderPrice.ui.tsx","../src/components/orderList/mobile/bracketOrderPrice/bracketOrderPrice.script.tsx","../src/components/orderList/mobile/bracketOrderPrice/bracketOrderPrice.widget.tsx","../src/components/orderList/mobile/bracketOrderPrice/index.ts","../src/components/orderList/mobile/cancelBtn/cancelBtn.ui.tsx","../src/components/orderList/mobile/cancelBtn/cancelBtn.script.tsx","../src/components/orderList/mobile/cancelBtn/cancelBtn.widget.tsx","../src/components/orderList/mobile/cancelBtn/index.ts","../src/components/orderList/mobile/editBtn/editBtn.ui.tsx","../src/components/orderList/mobile/editSheet/components/editSheetContext.ts","../src/components/orderList/mobile/editSheet/components/activitedPriceInput.tsx","../src/components/orderList/mobile/editSheet/components/editDialogContent.tsx","../src/components/orderList/mobile/editSheet/components/editSheetHeader.tsx","../src/components/orderList/mobile/editSheet/components/priceInput.tsx","../src/components/orderList/mobile/editSheet/components/quantityInput.tsx","../src/components/orderList/mobile/editSheet/components/quantitySlider.tsx","../src/components/orderList/mobile/editSheet/components/trailingCallbackInput.tsx","../src/components/orderList/mobile/editSheet/components/triggerPriceInput.tsx","../src/components/orderList/mobile/editSheet/editSheet.ui.tsx","../src/components/orderList/mobile/editSheet/hooks/useEditOrderEntry.ts","../src/components/orderList/mobile/editSheet/hooks/useEditOrderMaxQty.ts","../src/components/orderList/mobile/editSheet/editSheet.script.tsx","../src/components/orderList/mobile/editSheet/editSheet.widget.tsx","../src/components/orderList/mobile/editSheet/index.ts","../src/components/orderList/mobile/editBtn/editBtn.script.tsx","../src/components/orderList/mobile/editBtn/editBtn.widget.tsx","../src/components/orderList/mobile/editBtn/index.ts","../src/components/orderList/mobile/orderCell.ui.tsx","../src/components/orderList/mobile/orderCell.script.tsx","../src/components/orderList/mobile/orderCell.widget.tsx","../src/components/orderList/mobile/index.ts","../src/components/orderList/orderListProvider.tsx","../src/components/orderList/orderList.ui.tsx","../src/components/orderList/useFormatOrderHistory.ts","../src/components/orderList/orderList.script.tsx","../src/components/orderList/orderList.widget.tsx","../src/components/orderList/index.ts","../src/components/orders.ui.tsx","../src/components/orders.widget.tsx","../src/index.ts"],"names":["status","quantity","jsx","useMemo","useSymbolsInfo","Decimal","utils","useTranslation","Text","modal","createContext","useContext","toast","memo","ThrottledButton","jsxs","useRef","useState","useEffect","order","errors","useCallback","cn","Flex","OrderType","inputFormatter","Popover","AlgoOrderType","position","CheckIcon","Input","Tooltip","OrderSide","AlgoOrderRootType","Button","commifyOptional","Fragment","PreviewCell","price","sliderValue","useMutation","data","findTPSLFromOrder","i18n","OrderStatus","estTotal","useTpslPriceChecker","Badge","CloseToLiqPriceIcon","getTrailingStopPrice","AvgPrice","side","EditIcon","BracketOrderPrice","Price","init_bracketOrderPrice","init_cancelBtn","Slider","useOrderEntryFormErrorMsg","Divider","SimpleDialog","useOrderEntity","useMaxQty","useModal","useMemoizedFn","Grid","useImperativeHandle","format","useLocalStorage","formatSymbol","dateRange","React","forwardRef","TabType"],"mappings":"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","sourcesContent":["import { ForwardedRef, useImperativeHandle, useRef } from \"react\";\nimport { TabType } from \"./orders.widget\";\nimport { OrderListInstance } from \"./orderList/orderList.script\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\n\ntype UseOrdersScriptOptions = {\n current?: TabType;\n pnlNotionalDecimalPrecision?: number;\n ref: ForwardedRef<OrderListInstance>;\n sharePnLConfig?: SharePnLConfig\n};\n\nexport const useOrdersScript = (props: UseOrdersScriptOptions) => {\n const { current, pnlNotionalDecimalPrecision, sharePnLConfig } = props;\n\n const orderListRef = useRef<OrderListInstance>(null);\n\n useImperativeHandle(props.ref, () => ({\n download: () => {\n orderListRef.current?.download?.();\n },\n }));\n\n return {\n current,\n pnlNotionalDecimalPrecision,\n orderListRef,\n sharePnLConfig,\n };\n};\n\nexport type OrdersBuilderState = ReturnType<typeof useOrdersScript>;\n","import { utils } from \"@orderly.network/hooks\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport {\n AlgoOrderRootType,\n AlgoOrderType,\n API,\n OrderStatus,\n OrderType,\n} from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const upperCaseFirstLetter = (str: string) => {\n if (str === undefined) return str;\n if (str.length === 0) return str;\n if (str.length === 1) return str.charAt(0).toUpperCase();\n return str.charAt(0).toUpperCase() + str.toLowerCase().slice(1);\n};\n\n/**\n * order_type: LIMIT、MARKET、CLOSE_POSITION\n * algo_type: STOP、TPSL、positional_TPSL、BRACKET\n */\nexport function parseBadgesFor(record: any): undefined | string[] {\n const orderType = record.type;\n const algoType = record.algo_type;\n if (typeof orderType !== \"undefined\") {\n const list: string[] = [];\n\n if (!!record.parent_algo_type) {\n if (algoType === AlgoOrderType.STOP_LOSS) {\n const types =\n orderType === OrderType.CLOSE_POSITION\n ? [i18n.t(\"common.position\"), i18n.t(\"tpsl.sl\")]\n : [i18n.t(\"tpsl.sl\")];\n list.push(...types);\n }\n\n if (algoType === AlgoOrderType.TAKE_PROFIT) {\n const types =\n orderType === OrderType.CLOSE_POSITION\n ? [i18n.t(\"common.position\"), i18n.t(\"tpsl.tp\")]\n : [i18n.t(\"tpsl.tp\")];\n list.push(...types);\n }\n\n return list;\n }\n\n const type =\n typeof orderType === \"string\" ? orderType.replace(\"_ORDER\", \"\") : \"\";\n\n // bbo(ask, bid) order as a limit type\n if ([OrderType.ASK, OrderType.BID].includes(orderType)) {\n return [i18n.t(\"orderEntry.orderType.limit\")];\n }\n\n if (\n record.algo_order_id === undefined ||\n (record.algo_order_id && algoType === \"BRACKET\")\n ) {\n const typeMap = {\n [OrderType.LIMIT]: i18n.t(\"orderEntry.orderType.limit\"),\n [OrderType.MARKET]: i18n.t(\"orderEntry.orderType.market\"),\n [OrderType.POST_ONLY]: i18n.t(\"orderEntry.orderType.postOnly\"),\n [OrderType.IOC]: i18n.t(\"orderEntry.orderType.ioc\"),\n [OrderType.FOK]: i18n.t(\"orderEntry.orderType.fok\"),\n };\n\n return [\n typeMap[type as keyof typeof typeMap] || upperCaseFirstLetter(type),\n ];\n }\n\n if (algoType === AlgoOrderRootType.TRAILING_STOP) {\n return [i18n.t(\"orderEntry.orderType.trailingStop\")];\n }\n\n // stop limit, stop market\n if (type) {\n const typeMap = {\n [OrderType.LIMIT]: i18n.t(\"orderEntry.orderType.stopLimit\"),\n [OrderType.MARKET]: i18n.t(\"orderEntry.orderType.stopMarket\"),\n };\n return [typeMap[type as keyof typeof typeMap] || type];\n }\n }\n\n if (typeof algoType !== \"undefined\") {\n const list: string[] = [];\n\n if (algoType === AlgoOrderRootType.POSITIONAL_TP_SL) {\n list.push(i18n.t(\"common.position\"));\n }\n\n const tpOrder = record?.child_orders?.find(\n (order: any) =>\n order.algo_type === AlgoOrderType.TAKE_PROFIT && !!order.trigger_price,\n );\n\n const slOrder = record?.child_orders?.find(\n (order: any) =>\n order.algo_type === AlgoOrderType.STOP_LOSS && !!order.trigger_price,\n );\n\n if (tpOrder || slOrder) {\n list.push(\n tpOrder && slOrder\n ? i18n.t(\"common.tpsl\")\n : tpOrder\n ? i18n.t(\"tpsl.tp\")\n : i18n.t(\"tpsl.sl\"),\n );\n }\n\n return list;\n }\n\n return undefined;\n}\n\nexport function grayCell(record: any): boolean {\n return (\n (record as API.Order).status === OrderStatus.CANCELLED ||\n (record as API.AlgoOrder).algo_status === OrderStatus.CANCELLED\n );\n}\n\nexport function getOrderStatus(record: any) {\n return (record as API.Order).status || (record as API.AlgoOrder).algo_status;\n}\n\nexport function isGrayCell(status?: string): boolean {\n return status === OrderStatus.CANCELLED;\n}\n\nfunction findBracketTPSLOrder(order: API.AlgoOrderExt) {\n if (order.algo_type !== AlgoOrderRootType.BRACKET) {\n return {\n tpOrder: undefined,\n slOrder: undefined,\n };\n }\n\n const innerOrder = order.child_orders?.[0];\n if (!innerOrder)\n return {\n tpOrder: undefined,\n slOrder: undefined,\n };\n\n const tpOrder = innerOrder?.child_orders?.find(\n (item) => item.algo_type === AlgoOrderType.TAKE_PROFIT,\n );\n\n const slOrder = innerOrder?.child_orders?.find(\n (item) => item.algo_type === AlgoOrderType.STOP_LOSS,\n );\n\n return {\n tpOrder,\n slOrder,\n };\n}\n\nexport function calcBracketRoiAndPnL(order: API.AlgoOrderExt) {\n const defaultCallback = {\n pnl: {\n tpPnL: undefined,\n slPnL: undefined,\n },\n // roi: {\n // tpRoi: undefined,\n // slRoi: undefined,\n // },\n };\n const { tpOrder, slOrder } = findBracketTPSLOrder(order);\n if (!tpOrder && !slOrder) return defaultCallback;\n\n if (typeof order.price === undefined || !order.price) return defaultCallback;\n\n const quantity =\n order.side === OrderSide.BUY ? order.quantity : order.quantity * -1;\n\n const tpPnL =\n tpOrder?.trigger_price &&\n utils.priceToPnl({\n qty: quantity,\n price: tpOrder?.trigger_price,\n entryPrice: order.price,\n // @ts-ignore\n orderSide: order.side,\n // @ts-ignore\n orderType: tpOrder.algo_type,\n });\n const slPnL =\n slOrder?.trigger_price &&\n utils.priceToPnl({\n qty: quantity,\n // trigger price\n price: slOrder?.trigger_price,\n //\n entryPrice: order.price,\n // @ts-ignore\n orderSide: order.side,\n // @ts-ignore\n orderType: slOrder.algo_type,\n });\n\n // UI not show ROI, so we don't need to calculate ROI\n // const tpRoi = tpPnL\n // ? utils.calcTPSL_ROI({\n // pnl: tpPnL,\n // qty: order.quantity,\n // price: order.price,\n // })\n // : undefined;\n // const slRoi = slPnL\n // ? utils.calcTPSL_ROI({\n // pnl: slPnL,\n // qty: order.quantity,\n // price: order.price,\n // })\n // : undefined;\n\n return {\n pnl: {\n tpPnL,\n slPnL,\n },\n // roi: {\n // tpRoi,\n // slRoi,\n // },\n };\n}\n\nexport function areDatesEqual(date1?: Date, date2?: Date): boolean {\n if (!date1 || !date2) return false;\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n}\n\nexport function isTrailingStopOrder(order: API.AlgoOrderExt) {\n return order.algo_type === OrderType.TRAILING_STOP;\n}\n\nexport function getNotional(order: API.AlgoOrderExt, dp = 2) {\n if (order.price && order.quantity) {\n return new Decimal(order.price)\n .mul(order.quantity)\n .toFixed(dp, Decimal.ROUND_DOWN);\n }\n\n return 0;\n}\n/**\n * api order type ==> orderEntry type\n */\nexport function convertApiOrderTypeToOrderEntryType(order: API.AlgoOrderExt) {\n if (order.algo_type === OrderType.TRAILING_STOP) {\n return order.algo_type;\n }\n\n const isAlgoOrder = order.algo_order_id !== undefined;\n\n if (isAlgoOrder && order.algo_type !== AlgoOrderRootType.BRACKET) {\n return `STOP_${order.type}` as OrderType;\n }\n\n return order.type;\n}\n","import { createContext, useContext } from \"react\";\nimport type { API } from \"@orderly.network/types\";\n\nexport interface SymbolContextState {\n base_dp: number;\n quote_dp: number;\n base_tick: number;\n quote_tick: number;\n base: string;\n quote: string;\n symbol: string;\n origin: API.SymbolExt;\n quote_min: number;\n quote_max: number;\n}\n\nexport const SymbolContext = createContext<SymbolContextState>(\n {} as SymbolContextState,\n);\n\nexport const useSymbolContext = () => {\n return useContext<SymbolContextState>(SymbolContext);\n};\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { SymbolContext, SymbolContextState } from \"./symbolContext\";\n\ninterface FormatterProviderProps {\n symbol: string;\n}\n\nexport const SymbolProvider: FC<PropsWithChildren<FormatterProviderProps>> = (\n props,\n) => {\n const { symbol, children } = props;\n const symbolInfo = useSymbolsInfo()[symbol];\n const memoizedValue = useMemo<SymbolContextState>(() => {\n return {\n symbol: symbol,\n base_dp: symbolInfo(\"base_dp\"),\n quote_dp: symbolInfo(\"quote_dp\"),\n base_tick: symbolInfo(\"base_tick\"),\n quote_tick: symbolInfo(\"quote_tick\"),\n base: symbolInfo(\"base\"),\n quote: symbolInfo(\"quote\"),\n origin: symbolInfo(),\n quote_max: symbolInfo(\"quote_max\"),\n quote_min: symbolInfo(\"quote_min\"),\n };\n }, [symbol, symbolInfo]);\n return (\n <SymbolContext.Provider value={memoizedValue}>\n {children}\n </SymbolContext.Provider>\n );\n};\n","import { FC } from \"react\";\nimport { ShareIcon } from \"@orderly.network/ui\";\nimport { ShareButtonScriptReturn } from \"./shareButton.script\";\n\nexport const ShareButton: FC<ShareButtonScriptReturn> = (props) => {\n if (props.sharePnLConfig == null) {\n return null;\n }\n\n return (\n <button\n type=\"button\"\n onClick={(e: any) => {\n e.stopPropagation();\n props.showModal();\n }}\n >\n <ShareIcon color=\"white\" opacity={0.54} size={props.iconSize ?? 16} />\n </button>\n );\n};\n","import { useMemo } from \"react\";\nimport { useReferralInfo, useLeverageBySymbol } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\n\nexport type ShareButtonScriptReturn = ReturnType<typeof useShareButtonScript>;\n\nexport const useShareButtonScript = (props: {\n order: any;\n sharePnLConfig?: SharePnLConfig;\n modalId: string;\n iconSize?: number;\n}) => {\n const { sharePnLConfig, order, iconSize } = props;\n const { t } = useTranslation();\n const { getFirstRefCode } = useReferralInfo();\n const refCode = useMemo(() => {\n return getFirstRefCode()?.code;\n }, [getFirstRefCode]);\n const leverage = useLeverageBySymbol(order.symbol);\n\n const showModal = () => {\n modal.show(props.modalId, {\n pnl: {\n entity: {\n symbol: order.symbol,\n pnl: order.realized_pnl,\n side:\n order.side == \"BUY\"\n ? t(\"share.pnl.share.long\")\n : t(\"share.pnl.share.short\"),\n openPrice: order.average_executed_price,\n openTime: order.updated_time,\n quantity: order.quantity,\n },\n refCode,\n leverage,\n ...sharePnLConfig,\n },\n });\n };\n\n return {\n iconSize,\n sharePnLConfig,\n showModal,\n };\n};\n","import React from \"react\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { useShareButtonScript } from \"./shareButton.script\";\nimport { ShareButton } from \"./shareButton.ui\";\n\nexport const ShareButtonWidget: React.FC<{\n order: any;\n sharePnLConfig?: SharePnLConfig;\n modalId: string;\n iconSize?: number;\n}> = (props) => {\n const state = useShareButtonScript(props);\n return <ShareButton {...state} />;\n};\n","export { ShareButton } from \"./shareButton.ui\";\nexport { ShareButtonWidget } from \"./shareButton.widget\";\n","import { memo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\n\ntype AvgPriceProps = {\n symbol: string;\n value: string;\n};\n\nexport const AvgPrice = memo((props: AvgPriceProps) => {\n const symbolsInfo = useSymbolsInfo();\n\n const info = symbolsInfo[props.symbol];\n\n if (!props.value) {\n return \"--\";\n }\n\n return (\n <Text.numeral\n padding={false}\n dp={info(\"quote_dp\", 2)}\n rm={Decimal.ROUND_UP}\n >\n {props.value}\n </Text.numeral>\n );\n});\n","import { useMemo } from \"react\";\nimport { utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API } from \"@orderly.network/types\";\nimport {\n Flex,\n Tooltip,\n Text,\n cn,\n EditIcon,\n useModal,\n modal,\n} from \"@orderly.network/ui\";\nimport { calcBracketRoiAndPnL } from \"../../../utils/util\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\n\nexport const BracketOrderPrice = (props: { order: API.AlgoOrderExt }) => {\n const { order } = props;\n const { quote_dp, base_dp } = useSymbolContext();\n const { t } = useTranslation();\n\n const { sl_trigger_price, tp_trigger_price } = useMemo(() => {\n if (!(\"algo_type\" in order) || !Array.isArray(order.child_orders)) {\n return {};\n }\n return utils.findTPSLFromOrder(props.order.child_orders[0]);\n }, [props.order]);\n\n const { pnl } = calcBracketRoiAndPnL(order);\n\n if (!tp_trigger_price && !sl_trigger_price) {\n return \"--\";\n }\n\n return (\n <Tooltip\n // @ts-ignore\n content={\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {typeof pnl.tpPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.tpPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={quote_dp}\n color=\"buy\"\n showIdentifier\n >\n {pnl.tpPnL}\n </Text.numeral>\n )}\n {typeof pnl.slPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.slPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={quote_dp}\n color=\"sell\"\n >\n {pnl.slPnL}\n </Text.numeral>\n )}\n </Flex>\n }\n className=\"oui-bg-base-6\"\n >\n <Flex itemAlign={\"center\"} justify={\"start\"} gap={2}>\n <Flex direction={\"column\"} justify={\"start\"} itemAlign={\"start\"}>\n <Price type=\"TP\" value={tp_trigger_price} quote_dp={quote_dp} />\n <Price type=\"SL\" value={sl_trigger_price} quote_dp={quote_dp} />\n </Flex>\n <EditBracketOrder order={order} />\n </Flex>\n </Tooltip>\n );\n};\n\nconst EditBracketOrder = (props: { order: API.AlgoOrderExt }) => {\n const { order } = props;\n\n const onEdit = () => {\n modal.show(\"EditBracketOrderDialogId\", {\n order,\n });\n };\n\n return (\n <EditIcon\n size={16}\n className=\"oui-text-base-contrast oui-cursor-pointer\"\n onClick={() => {\n onEdit();\n }}\n />\n );\n};\n\nconst Price = (props: {\n type: \"TP\" | \"SL\";\n value?: number | string;\n quote_dp: number;\n}) => {\n const { type, value, quote_dp } = props;\n const { t } = useTranslation();\n\n return value ? (\n <Text.numeral\n className={cn(\n \"oui-gap-0 oui-decoration-white/20 oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n type === \"TP\" ? \"oui-text-trade-profit\" : \"oui-text-trade-loss\",\n )}\n key={\"tp\"}\n rule=\"price\"\n dp={quote_dp}\n // @ts-ignore\n prefix={\n <span className={\"oui-text-base-contrast-54\"}>\n {type === \"TP\" ? `${t(\"tpsl.tp\")} -` : `${t(\"tpsl.sl\")} -`}\n \n </span>\n }\n >\n {value}\n </Text.numeral>\n ) : (\n <></>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { API, OrderEntity } from \"@orderly.network/types\";\n\nexport interface OrderListContextState {\n onCancelOrder: (order: API.Order | API.AlgoOrder) => Promise<any>;\n editOrder: (id: string, order: OrderEntity) => Promise<any>;\n editAlgoOrder: (id: string, order: OrderEntity) => Promise<any>;\n checkMinNotional: (\n symbol: string,\n price?: string | number,\n qty?: string | number,\n ) => string | undefined;\n}\n\nexport const OrderListContext = createContext<OrderListContextState>(\n {} as OrderListContextState,\n);\n\nexport const useOrderListContext = () => {\n return useContext(OrderListContext);\n};\n\nexport interface OrderListProviderProps {\n cancelOrder: (orderId: number, symbol: string) => Promise<any>;\n editOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n cancelAlgoOrder: (orderId: number, symbol: string) => Promise<any>;\n editAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n}\n","import { FC, useState } from \"react\";\nimport { API } from \"@orderly.network/types\";\nimport { ThrottledButton, toast } from \"@orderly.network/ui\";\nimport { useOrderListContext } from \"../orderListContext\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const CancelButton: FC<{\n order: API.Order;\n}> = (props) => {\n const { order } = props;\n const { t } = useTranslation();\n\n const { onCancelOrder } = useOrderListContext();\n const [isLoading, setIsLoading] = useState(false);\n\n return (\n <ThrottledButton\n size=\"sm\"\n variant={\"outlined\"}\n color={\"secondary\"}\n onClick={(event) => {\n if (!onCancelOrder) return;\n event.preventDefault();\n event.stopPropagation();\n setIsLoading(true);\n onCancelOrder(order)\n .then(\n (res: any) => res,\n (error: any) => {\n toast.error(error.message);\n }\n )\n .finally(() => {\n setIsLoading(false);\n });\n }}\n loading={isLoading}\n >\n {t(\"common.cancel\")}\n </ThrottledButton>\n );\n};\n","export enum EditType {\n quantity,\n price,\n triggerPrice,\n callbackValue,\n callbackRate,\n}\n","import { memo } from \"react\";\nimport { useTranslation, Trans } from \"@orderly.network/i18n\";\nimport { Button, CloseIcon, ThrottledButton } from \"@orderly.network/ui\";\nimport { commify } from \"@orderly.network/utils\";\nimport { EditType } from \"../../../../type\";\n\ntype ConfirmContentProps = {\n type: EditType;\n base: string;\n value: string;\n cancelPopover: () => void;\n isSubmitting: boolean;\n onConfirm: (e: any) => void;\n};\n\nexport const ConfirmContent = memo((props: ConfirmContentProps) => {\n const { type, base, value, cancelPopover, isSubmitting, onConfirm } = props;\n const { t } = useTranslation();\n\n const renderLabel = () => {\n const common = {\n values: { base, value: commify(value) },\n components: [<span key=\"0\" className=\"oui-text-warning-darken\" />],\n };\n\n switch (type) {\n case EditType.quantity:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.quantity\" {...common} />\n );\n case EditType.price:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.price\" {...common} />\n );\n case EditType.triggerPrice:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.triggerPrice\" {...common} />\n );\n case EditType.callbackValue:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.callbackValue\" {...common} />\n );\n case EditType.callbackRate:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.callbackRate\" {...common} />\n );\n }\n };\n\n return (\n <div className=\"oui-relative oui-pt-5\">\n <div className=\"desktop:oui-text-sm oui-text-2xs oui-text-base-contrast-54\">\n {renderLabel()}\n </div>\n <div className=\"oui-mt-5 oui-grid oui-grid-cols-2 oui-gap-2\">\n <Button\n color=\"secondary\"\n size={\"md\"}\n onClick={cancelPopover}\n disabled={isSubmitting}\n >\n {t(\"common.cancel\")}\n </Button>\n <ThrottledButton size={\"md\"} loading={isSubmitting} onClick={onConfirm}>\n {t(\"common.confirm\")}\n </ThrottledButton>\n </div>\n <button\n className=\"oui-absolute oui-right-0 oui-top-0 oui-text-base-contrast-54\"\n onClick={cancelPopover}\n >\n <CloseIcon size={16} color=\"white\" opacity={1} />\n </button>\n </div>\n );\n});\n\nConfirmContent.displayName = \"ConfirmContent\";\n","import { useCallback, useEffect, useRef, useState, MouseEvent } from \"react\";\n\ntype PopoverStateProps = {\n originValue: string;\n value: string;\n setValue: (value: string) => void;\n};\n\nexport function usePopoverState(props: PopoverStateProps) {\n const { originValue, value, setValue } = props;\n\n const [open, setOpen] = useState(false);\n const [editing, setEditing] = useState(false);\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const closePopover = useCallback(() => {\n setOpen(false);\n setEditing(false);\n }, []);\n\n const cancelPopover = useCallback(() => {\n closePopover();\n setValue(originValue);\n }, [originValue]);\n\n const onClick = useCallback(\n async (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n // if value is not changed, then don't open popover\n if (value === originValue) {\n setEditing(false);\n return;\n }\n\n setOpen(true);\n },\n [value, originValue],\n );\n\n useEffect(() => {\n const handleClickOutside = (event: any) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node) &&\n !open\n ) {\n cancelPopover();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [open, cancelPopover]);\n\n return {\n value,\n setValue,\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n };\n}\n","import { useEffect, useMemo } from \"react\";\nimport { OrderValidationResult, useOrderEntity } from \"@orderly.network/hooks\";\nimport { useOrderEntryFormErrorMsg } from \"@orderly.network/react-app\";\nimport { API, OrderlyOrder, OrderSide } from \"@orderly.network/types\";\nimport { convertApiOrderTypeToOrderEntryType } from \"../../../../utils/util\";\n\nexport function useValidateField(props: {\n order: API.OrderExt | API.AlgoOrderExt;\n originValue?: string;\n value: string;\n field: keyof OrderValidationResult;\n fieldValues?: Partial<OrderlyOrder>;\n}) {\n const { order, field, originValue, value, fieldValues } = props;\n const changeFields = fieldValues || { [field]: value };\n\n const orderType = useMemo(\n () => convertApiOrderTypeToOrderEntryType(order as API.AlgoOrderExt),\n [order],\n );\n\n const { errors, validate, clearErrors } = useOrderEntity({\n symbol: order.symbol,\n order_type: orderType,\n side: order.side as OrderSide,\n ...(changeFields as any),\n });\n const { getErrorMsg } = useOrderEntryFormErrorMsg(errors);\n\n const error = useMemo(\n () => (field ? getErrorMsg(field) : undefined),\n [getErrorMsg, field],\n );\n\n useEffect(() => {\n // if value is not changed, then don't validate\n if (value === originValue) {\n clearErrors();\n return;\n }\n validate()\n .then((order) => {\n console.log(\"order\", order);\n })\n .catch((errors) => {\n console.error(`${field} validate error:`, errors);\n });\n }, [value, originValue]);\n\n return { error, errors, getErrorMsg };\n}\n","import { FC, useCallback, useEffect, useRef, MouseEvent } from \"react\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport {\n inputFormatter,\n Input,\n InputProps,\n CheckIcon,\n cn,\n Flex,\n} from \"@orderly.network/ui\";\n\nexport type EditableCellInputProps = {\n id?: string;\n name?: string;\n placeholder?: string;\n suffix?: React.ReactNode;\n value?: InputProps[\"value\"];\n onChange?: (value: string) => void;\n error?: string;\n formatters?: InputProps[\"formatters\"];\n overrideFormatters?: InputProps[\"formatters\"];\n classNames?: InputProps[\"classNames\"];\n readonly?: boolean;\n onClick: (e: MouseEvent) => void;\n onFocus?: (e: any) => void;\n onBlur?: (e: any) => void;\n handleKeyDown?: (e: any) => void;\n};\n\nexport const EditableCellInput: FC<EditableCellInputProps> = (props) => {\n const { onClick } = props;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleKeyDown = useCallback(\n (event: any) => {\n if (event.key === \"Enter\") {\n onClick(event);\n }\n },\n [onClick],\n );\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) {\n const length = input.value.length;\n input.setSelectionRange(length, length);\n }\n }, [props.value]);\n\n return (\n <Input.tooltip\n ref={inputRef}\n tooltip={props.error}\n autoComplete=\"off\"\n autoFocus\n type=\"text\"\n size=\"sm\"\n placeholder={props.readonly ? \"\" : props.placeholder || \"\"}\n id={props.id}\n name={props.name}\n color={props.error ? \"danger\" : undefined}\n value={props.readonly ? \"\" : props.value || \"\"}\n onValueChange={props.onChange}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onKeyDown={props.handleKeyDown || handleKeyDown}\n formatters={\n props.overrideFormatters || [\n ...(props.formatters ?? EMPTY_LIST),\n inputFormatter.numberFormatter,\n inputFormatter.decimalPointFormatter,\n ]\n }\n classNames={{\n root: \"oui-bg-base-700 oui-px-2 oui-py-1 oui-rounded\",\n input: \"oui-pr-2\",\n }}\n readOnly={props.readonly}\n suffix={\n <Flex gapX={1}>\n {props.suffix}\n <button onClick={onClick} disabled={!!props.error}>\n <CheckIcon\n size={18}\n color=\"white\"\n opacity={1}\n className={cn(\n \"oui-opacity-50\",\n props.error\n ? \"oui-cursor-not-allowed\"\n : \"oui-cursor-pointer hover:oui-opacity-100\",\n )}\n />\n </button>\n </Flex>\n }\n />\n );\n};\n","import { memo } from \"react\";\nimport { cn, Flex, Text } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { isGrayCell } from \"../../../../utils/util\";\n\ntype PreviewCellProps = {\n status?: string;\n value: string;\n setEditing: (isEditing: boolean) => void;\n disabled?: boolean;\n suffix?: string;\n className?: string;\n};\n\nexport const PreviewCell = memo((props: PreviewCellProps) => {\n const { status, value, disabled } = props;\n\n return (\n <div\n className={cn(\n \"oui-flex oui-items-center oui-justify-start\",\n \"oui-relative oui-max-w-[110px] oui-gap-1 oui-font-semibold\",\n isGrayCell(status) && \"oui-text-base-contrast-20\",\n props.className,\n )}\n onClick={(e) => {\n if (!disabled) {\n e.stopPropagation();\n e.preventDefault();\n props.setEditing(true);\n }\n }}\n >\n <Flex\n r=\"base\"\n className={cn(\n \"oui-h-[28px] oui-min-w-[70px]\",\n !disabled && \"oui-border oui-border-line-12 oui-bg-base-7 oui-px-2\",\n )}\n >\n <Text size=\"2xs\">\n {commifyOptional(value)}\n {props.suffix}\n </Text>\n </Flex>\n </div>\n );\n});\n","import { useCallback, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderType } from \"@orderly.network/types\";\nimport { inputFormatter, Popover, toast } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const ActivedPriceCell = (props: {\n order: API.AlgoOrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { t } = useTranslation();\n // the value before editing, initial value\n const originValue = order.activated_price?.toString() ?? \"\";\n\n const [value, setValue] = useState<string>(originValue);\n const [submitting, setSubmitting] = useState(false);\n const disabled = props.disabled || order.is_activated || order.is_triggered;\n\n const { editAlgoOrder } = useOrderListContext();\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error } = useValidateField({\n order,\n field: \"activated_price\",\n originValue,\n value,\n });\n\n const onConfirm = useCallback(() => {\n setSubmitting(true);\n\n const data: any = {\n algo_order_id: order.algo_order_id,\n activated_price: value,\n };\n\n editAlgoOrder(order.algo_order_id.toString(), data)\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setSubmitting(false));\n }, [order.algo_order_id, value, cancelPopover]);\n\n if (!order.activated_price && order.type === OrderType.MARKET) {\n return <span>{t(\"common.marketPrice\")}</span>;\n }\n\n const renderContent = () => {\n if (!editing || disabled) {\n return (\n <PreviewCell\n value={value}\n status={getOrderStatus(order)}\n setEditing={setEditing}\n disabled={disabled}\n />\n );\n }\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n // when editing, value should not be empty\n error={value ? error : t(\"orderEntry.triggerPrice.error.required\")}\n formatters={[inputFormatter.dpFormatter(quote_dp)]}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.triggerPrice}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={submitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API } from \"@orderly.network/types\";\nimport { OrderType } from \"@orderly.network/types\";\nimport { inputFormatter, Popover, toast } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const PriceCell = (props: {\n order: API.OrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { t } = useTranslation();\n\n const originValue = useMemo(() => {\n if (order.type === OrderType.MARKET && !order.price) {\n return \"Market\";\n }\n return order.price?.toString() ?? \"Market\";\n }, [order.price, order.type]);\n\n const [value, setValue] = useState<string>(originValue);\n\n const isAlgoOrder = order?.algo_order_id !== undefined;\n\n const [submitting, setSubmitting] = useState(false);\n\n const { editOrder, editAlgoOrder } = useOrderListContext();\n\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error, getErrorMsg } = useValidateField({\n order,\n field: \"order_price\",\n originValue,\n value,\n fieldValues: {\n order_price: value,\n // add order quantity to validate total\n order_quantity: order.quantity?.toString(),\n // need to pass trigger_price to validate order_price, because order_price is depend on trigger_price when type is stop limit\n trigger_price: order.trigger_price?.toString(),\n },\n });\n\n const onConfirm = () => {\n setSubmitting(true);\n\n let order_id = order.order_id;\n // if reduce only is true, edit order must add symbol, order_type, side, order_price, order_quantity, reduce_only\n let data: any = {\n symbol: order.symbol,\n order_type: order.type,\n side: order.side,\n order_quantity: order.quantity,\n order_price: value,\n };\n\n // if reduce_only is not undefined, request body must have reduce_only value\n if (order.reduce_only !== undefined) {\n data.reduce_only = order.reduce_only;\n }\n\n if (order.order_tag) {\n data.order_tag = order.order_tag;\n }\n\n if (order.client_order_id) {\n data.client_order_id = order.client_order_id;\n }\n\n if (isAlgoOrder) {\n order_id = order.algo_order_id as number;\n data = {\n ...data,\n order_id,\n price: value,\n algo_order_id: order_id,\n };\n }\n\n // edit order don't need to set visible quantity again\n // if (order?.visible_quantity === 0) {\n // data[\"visible_quantity\"] = 0;\n // }\n\n // TODO: remove this, because order not have this field\n // @ts-ignore\n if (order.tag !== undefined) {\n // @ts-ignore\n data[\"order_tag\"] = order.tag;\n }\n\n let future;\n if (order.algo_order_id !== undefined) {\n future = editAlgoOrder(order.algo_order_id.toString(), data);\n } else {\n future = editOrder(order.order_id.toString(), data);\n }\n\n future\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setSubmitting(false));\n };\n\n const isAlgoMarketOrder = order.algo_order_id && order.type == \"MARKET\";\n\n if (isAlgoMarketOrder || value === \"Market\") {\n return <span>{t(\"common.marketPrice\")}</span>;\n }\n\n const renderContent = () => {\n if (!editing || props.disabled) {\n return (\n <PreviewCell\n value={value}\n status={getOrderStatus(order)}\n setEditing={setEditing}\n disabled={props.disabled}\n />\n );\n }\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n error={error || getErrorMsg(\"total\")}\n formatters={[inputFormatter.dpFormatter(quote_dp)]}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.price}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={submitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import {\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport {\n unstable_serialize,\n useAccount,\n useMemoizedFn,\n useMutation,\n useSWRConfig,\n utils,\n} from \"@orderly.network/hooks\";\nimport {\n findTPSLOrderPriceFromOrder,\n findTPSLFromOrder,\n} from \"@orderly.network/hooks\";\nimport { API, OrderType } from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\nimport { useSymbolContext } from \"../provider/symbolContext\";\n\nexport type TPSLOrderRowContextState = {\n order: API.AlgoOrderExt;\n tp_trigger_price?: number;\n sl_trigger_price?: number;\n sl_order_price?: number | OrderType;\n tp_order_price?: number | OrderType;\n tpPnL?: number;\n slPnL?: number;\n\n onCancelOrder: (order: API.AlgoOrderExt) => Promise<void>;\n onUpdateOrder: (order: API.AlgoOrderExt, params: any) => Promise<void>;\n\n getRelatedPosition: (symbol: string) => API.PositionTPSLExt | undefined;\n\n position?: API.PositionTPSLExt;\n};\n\nexport const TPSLOrderRowContext = createContext<TPSLOrderRowContextState>(\n {} as TPSLOrderRowContextState,\n);\n\nexport const useTPSLOrderRowContext = () => {\n return useContext(TPSLOrderRowContext);\n};\n\nexport const TPSLOrderRowProvider: FC<\n PropsWithChildren<{ order: API.AlgoOrderExt }>\n> = (props) => {\n const { order, children } = props;\n const { quote_dp } = useSymbolContext();\n const [position, setPosition] = useState<API.PositionTPSLExt>();\n\n const [doDeleteOrder] = useMutation(\"/v1/algo/order\", \"DELETE\");\n const [doUpdateOrder] = useMutation(\"/v1/algo/order\", \"PUT\");\n\n const config = useSWRConfig();\n const { state } = useAccount();\n\n const positionKey = useMemo(() => {\n return unstable_serialize(() => [\"/v1/positions\", state.accountId]);\n }, [state.accountId]);\n\n const onCancelOrder = useMemoizedFn(async (order: API.AlgoOrderExt) => {\n return doDeleteOrder(null, {\n order_id: order.algo_order_id,\n symbol: order.symbol,\n });\n });\n\n const onUpdateOrder = useMemoizedFn(\n async (order: API.AlgoOrderExt, params: any) => {\n return doUpdateOrder({\n order_id: order.algo_order_id,\n child_orders: order.child_orders.map((order) => ({\n order_id: order.algo_order_id,\n quantity: params.order_quantity,\n })),\n });\n },\n );\n\n const getRelatedPosition = useMemoizedFn(\n (symbol: string): API.PositionTPSLExt => {\n const positions = config.cache.get(positionKey);\n return positions?.data?.rows?.find(\n (p: API.PositionTPSLExt) => p.symbol === symbol,\n );\n },\n );\n\n const {\n sl_trigger_price,\n tp_trigger_price,\n tpPnL,\n slPnL,\n sl_order_price,\n tp_order_price,\n } = calcTPSLPnL({\n order: order,\n position,\n quote_dp,\n });\n\n useEffect(() => {\n if (\"algo_type\" in order || ((order as any)?.reduce_only ?? false)) {\n const position = getRelatedPosition(order.symbol);\n if (position) {\n setPosition(position);\n }\n }\n }, [order.symbol]);\n\n const memoizedValue = useMemo<TPSLOrderRowContextState>(() => {\n return {\n order: order,\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n tpPnL,\n slPnL,\n position,\n onCancelOrder,\n onUpdateOrder,\n getRelatedPosition,\n };\n }, [\n order,\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n tpPnL,\n slPnL,\n position,\n onCancelOrder,\n onUpdateOrder,\n getRelatedPosition,\n ]);\n\n return (\n <TPSLOrderRowContext.Provider value={memoizedValue}>\n {children}\n </TPSLOrderRowContext.Provider>\n );\n};\n\nfunction calcTPSLPnL(props: {\n order: API.AlgoOrderExt;\n position?: API.PositionTPSLExt;\n quote_dp: number;\n}) {\n const { order, position, quote_dp } = props;\n\n if (!position)\n return {\n sl_trigger_price: undefined,\n tp_trigger_price: undefined,\n slPnL: undefined,\n tpPnL: undefined,\n };\n\n const isTPSLOrder = \"algo_type\" in order && Array.isArray(order.child_orders);\n\n const { sl_trigger_price, tp_trigger_price } = isTPSLOrder\n ? findTPSLFromOrder(order)\n : {\n sl_trigger_price: undefined,\n tp_trigger_price: undefined,\n };\n const { sl_order_price, tp_order_price } = isTPSLOrder\n ? findTPSLOrderPriceFromOrder(order)\n : {\n sl_order_price: undefined,\n tp_order_price: undefined,\n };\n\n let quantity = order.quantity;\n\n if (quantity === 0) {\n if (order.child_orders?.[0].type === \"CLOSE_POSITION\") {\n quantity = position.position_qty;\n }\n }\n\n const avgOpenPrice = position.average_open_price;\n const tpPnL =\n typeof quantity === \"number\" &&\n typeof tp_trigger_price === \"number\" &&\n typeof avgOpenPrice === \"number\"\n ? utils.priceToPnl(\n {\n qty: quantity,\n price: tp_trigger_price,\n entryPrice: position.average_open_price,\n orderSide: order.side as OrderSide,\n orderType: AlgoOrderType.TAKE_PROFIT,\n },\n { symbol: { quote_dp } },\n )\n : undefined;\n\n const slPnL =\n typeof quantity === \"number\" &&\n typeof sl_trigger_price === \"number\" &&\n typeof avgOpenPrice === \"number\"\n ? utils.priceToPnl(\n {\n qty: quantity,\n price: sl_trigger_price,\n entryPrice: position.average_open_price,\n orderSide: order.side as OrderSide,\n orderType: AlgoOrderType.STOP_LOSS,\n },\n { symbol: { quote_dp } },\n )\n : undefined;\n\n return {\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n slPnL,\n tpPnL,\n };\n}\n","import { FC, useEffect } from \"react\";\nimport { CheckIcon, Input, inputFormatter, Tooltip } from \"@orderly.network/ui\";\n\nexport const InnerInput: FC<{\n inputRef: any;\n value: string;\n setValue: any;\n setEditing: any;\n error?: string;\n handleKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n onClose: (e: any) => void;\n onFocus?: (e: any) => void;\n onBlur?: (e: any) => void;\n dp: number;\n hintInfo?: string;\n}> = (props) => {\n const {\n inputRef,\n dp,\n value,\n setValue,\n setEditing,\n error,\n handleKeyDown,\n onClick,\n onClose,\n onFocus,\n onBlur,\n hintInfo,\n } = props;\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) {\n const length = input.value.length;\n input.setSelectionRange(length, length);\n }\n setEditing(true);\n }, []);\n const open = (hintInfo?.length || 0) > 0;\n return (\n <Tooltip content={hintInfo} open={open}>\n <Input\n ref={inputRef}\n type=\"text\"\n size=\"sm\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(dp),\n inputFormatter.currencyFormatter,\n ]}\n value={value}\n onValueChange={(e) => setValue(e)}\n helpText={error}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n autoComplete=\"off\"\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={handleKeyDown}\n autoFocus\n color={open ? \"danger\" : undefined}\n classNames={{\n root: \"oui-bg-base-700 oui-px-2 oui-py-1 oui-rounded\",\n input: \"oui-pr-2\",\n }}\n // prefix={\n // <CloseIcon\n // size={14}\n // color=\"white\"\n // opacity={1}\n // className=\"oui-cursor-pointer oui-opacity-50 hover:oui-opacity-100\"\n // onClick={(e) => {\n // e.stopPropagation();\n // e.preventDefault();\n // onClose(e);\n // }}\n // />\n // }\n suffix={\n <button onClick={onClick}>\n <CheckIcon\n size={18}\n color=\"white\"\n opacity={1}\n className=\"oui-cursor-pointer oui-opacity-50 hover:oui-opacity-100\"\n />\n </button>\n }\n />\n </Tooltip>\n );\n};\n","import { FC, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useMaxQty, utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderSide } from \"@orderly.network/types\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport {\n cn,\n Flex,\n Popover,\n toast,\n Text,\n Slider,\n Button,\n PopoverTrigger,\n PopoverRoot,\n PopoverContent,\n} from \"@orderly.network/ui\";\nimport { commifyOptional, Decimal } from \"@orderly.network/utils\";\nimport { EditType } from \"../../../../type\";\nimport { grayCell } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { useTPSLOrderRowContext } from \"../../tpslOrderRowContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { InnerInput } from \"../editOrder/innerInput\";\n\nexport const QuantityCell = (props: {\n order: API.OrderExt | API.AlgoOrder;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { reduce_only } = order;\n const originValue = order.quantity.toString();\n const [value, setValue] = useState(originValue);\n\n const [editing, setEditing] = useState(false);\n\n const { t } = useTranslation();\n\n const [open, setOpen] = useState(false);\n const [error, setError] = useState<string>();\n\n const { editOrder, editAlgoOrder, checkMinNotional } = useOrderListContext();\n const { onUpdateOrder: onUpdateTPSLOrder, position } =\n useTPSLOrderRowContext();\n\n const { base_dp, base, base_tick } = useSymbolContext();\n\n const setQuantity = async (qty: string, maxQty?: number): Promise<void> => {\n setValue(qty);\n const positionQty = Math.abs(position?.position_qty || 0);\n\n if (position && reduce_only && Number(qty) > positionQty) {\n setError(\n t(\"orders.quantity.lessThanPosition\", {\n quantity: positionQty,\n }),\n );\n } else {\n const quantity = Number(qty);\n if (maxQty && quantity > maxQty) {\n setError(\n t(\"orders.quantity.lessThan\", {\n quantity: commifyOptional(maxQty, {\n fix: base_dp,\n }),\n }),\n );\n } else {\n setError(undefined);\n }\n }\n return Promise.resolve();\n };\n\n useEffect(() => {\n setQuantity(order.quantity.toString());\n }, [props.order.quantity]);\n\n const closePopover = () => {\n setOpen(false);\n setEditing(false);\n };\n const cancelPopover = () => {\n setOpen(false);\n setQuantity(order.quantity.toString());\n setEditing(false);\n };\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const clickHandler = () => {\n if (!!error) {\n return;\n }\n\n if (Number(value) === Number(order.quantity)) {\n setEditing(false);\n return;\n }\n\n const price =\n order.algo_order_id !== undefined ? order.trigger_price : order.price;\n if (price !== null && order.reduce_only !== true) {\n const notionalText = checkMinNotional(order.symbol, price, value);\n if (notionalText) {\n toast.error(notionalText);\n setIsSubmitting(false);\n cancelPopover();\n return;\n }\n }\n\n setOpen(true);\n };\n\n const onClick = (event: any) => {\n event?.stopPropagation();\n event?.preventDefault();\n\n clickHandler();\n };\n\n const handleKeyDown = (event: any) => {\n if (event.key === \"Enter\") {\n event?.stopPropagation();\n event?.preventDefault();\n clickHandler();\n }\n };\n\n const onConfirm = useCallback(() => {\n setIsSubmitting(true);\n\n let params: any = {\n symbol: order.symbol,\n order_type: order.type,\n side: order.side,\n order_price: order.price,\n order_quantity: value,\n // reduce_only: Boolean(order.reduce_only),\n algo_order_id: order.algo_order_id,\n };\n\n if (\n typeof params.algo_order_id !== \"undefined\" &&\n params.order_type === \"MARKET\"\n ) {\n // stop market order\n const { order_price, ...rest } = params;\n params = rest;\n }\n\n // if reduce_only is not undefined, request body must have reduce_only value\n if (typeof order.reduce_only !== \"undefined\") {\n params.reduce_only = order.reduce_only;\n }\n\n if (order.order_tag) {\n params.order_tag = order.order_tag;\n }\n\n if (order.client_order_id) {\n params.client_order_id = order.client_order_id;\n }\n\n if (order?.visible_quantity === 0) {\n params[\"visible_quantity\"] = 0;\n }\n\n // @ts-ignore\n if (order?.tag !== undefined) {\n // @ts-ignore\n params[\"order_tag\"] = order.tag;\n }\n\n let future;\n\n if (\"algo_type\" in order && order.algo_type === AlgoOrderRootType.TP_SL) {\n future = onUpdateTPSLOrder(order as API.AlgoOrderExt, params);\n } else {\n if (order.algo_order_id !== undefined) {\n future = editAlgoOrder(order.algo_order_id.toString(), params);\n } else {\n future = editOrder((order as API.OrderExt).order_id.toString(), params);\n }\n }\n\n future\n .then(\n (result: any) => {\n closePopover();\n setQuantity(value.toString());\n },\n (err: any) => {\n toast.error(err.message);\n setQuantity(order.quantity.toString());\n cancelPopover();\n },\n )\n .finally(() => setIsSubmitting(false));\n }, [value]);\n\n const componentRef = useRef<HTMLDivElement | null>(null);\n const quantitySliderRef = useRef<HTMLDivElement | null>(null);\n\n const handleClickOutside = (event: any) => {\n if (\n componentRef.current &&\n quantitySliderRef.current &&\n !componentRef.current.contains(event.target as Node) &&\n !quantitySliderRef.current.contains(event.target as Node) &&\n !open\n ) {\n cancelPopover();\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [open, order.quantity]);\n\n const renderContent = () => {\n if (!editing || props.disabled) {\n return (\n <PreviewCell\n order={order}\n value={value}\n setEditing={setEditing}\n disable={props.disabled}\n />\n );\n }\n\n return (\n <EditState\n inputRef={inputRef}\n quantitySliderRef={quantitySliderRef}\n base_dp={base_dp}\n base_tick={base_tick}\n quantity={value}\n setQuantity={setQuantity}\n editing={editing}\n setEditing={setEditing}\n handleKeyDown={handleKeyDown}\n onClick={onClick}\n onClose={cancelPopover}\n symbol={order.symbol}\n reduce_only={reduce_only}\n positionQty={position?.position_qty}\n error={error}\n confirmOpen={open}\n side={order.side}\n order={order}\n setError={setError}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.quantity}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={isSubmitting}\n onConfirm={onConfirm}\n />\n }\n contentProps={{\n onOpenAutoFocus: (e) => {\n // e.preventDefault();\n // e.stopPropagation();\n },\n }}\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={componentRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n\nconst PreviewCell: FC<{\n order: API.AlgoOrder | API.OrderExt;\n value: string;\n setEditing: any;\n disable?: boolean;\n}> = (props) => {\n const { order, value } = props;\n\n const executed = (order as API.OrderExt).total_executed_quantity;\n\n return (\n <Flex\n direction=\"row\"\n justify={\"start\"}\n gap={1}\n className={cn(\n \"oui-relative oui-max-w-[110px]\",\n order.side === OrderSide.BUY && \"oui-text-trade-profit\",\n order.side === OrderSide.SELL && \"oui-text-trade-loss\",\n grayCell(order) && \"oui-text-base-contrast-20\",\n )}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.setEditing(true);\n }}\n >\n {\"algo_type\" in order &&\n order.algo_type === AlgoOrderRootType.TP_SL ? null : (\n <>\n <span>{executed}</span>\n <span>/</span>\n </>\n )}\n\n <Flex\n r=\"base\"\n className={cn(\n \"oui-h-[28px] oui-min-w-[70px]\",\n !props.disable &&\n \"oui-border oui-border-line-12 oui-bg-base-7 oui-px-2\",\n )}\n >\n <Text size=\"2xs\">{value}</Text>\n </Flex>\n </Flex>\n );\n};\n\nconst EditState: FC<{\n inputRef: any;\n quantitySliderRef: any;\n base_dp: number;\n base_tick: number;\n quantity: string;\n setQuantity: (quantity: string, maxQty: number) => Promise<void>;\n editing: boolean;\n confirmOpen: boolean;\n setEditing: (value: boolean) => void;\n handleKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n onClose: () => void;\n error?: string;\n symbol: string;\n reduce_only: boolean;\n positionQty?: number;\n side?: string;\n order: any;\n setError: (err: string) => void;\n}> = (props) => {\n const {\n inputRef,\n quantitySliderRef,\n base_dp,\n base_tick,\n quantity,\n setQuantity,\n setEditing,\n handleKeyDown,\n onClick,\n onClose,\n error,\n symbol,\n reduce_only,\n positionQty,\n confirmOpen,\n order,\n } = props;\n\n const maxBuyQty = useMaxQty(symbol, order.side, order.reduce_only);\n\n const maxQty = useMemo(() => {\n if (reduce_only) {\n return Math.abs(positionQty ?? 0);\n }\n return order.quantity + Math.abs(maxBuyQty);\n }, [order.quantity, maxBuyQty, reduce_only, positionQty]);\n\n const [sliderValue, setSliderValue] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n if (sliderValue === undefined) {\n const sliderValue = new Decimal(quantity)\n .div(maxQty)\n .abs()\n .mul(100)\n .toNumber();\n setSliderValue(sliderValue);\n }\n }, [sliderValue, maxQty, quantity]);\n\n const formatQuantity = async (_qty: string | number): Promise<void> => {\n if (base_tick > 0) {\n _qty = utils.formatNumber(_qty, base_tick) ?? _qty;\n }\n return setQuantity(`${_qty}`, maxQty);\n };\n\n return (\n <PopoverRoot open={!confirmOpen}>\n <PopoverTrigger>\n <InnerInput\n inputRef={inputRef}\n dp={base_dp}\n value={quantity}\n setValue={(e: string) => {\n const quantity = Math.abs(Math.min(Number(e), maxQty)).toString();\n setQuantity(e, maxQty);\n if (e.endsWith(\".\")) return;\n if (Number(quantity) === 0) {\n setSliderValue(0);\n return;\n }\n const sliderValue = new Decimal(e)\n .div(maxQty)\n .mul(100)\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toNumber();\n setSliderValue(Math.min(100, sliderValue));\n }}\n setEditing={setEditing}\n handleKeyDown={handleKeyDown}\n onClick={onClick}\n onClose={onClose}\n onBlur={(e) => {\n formatQuantity(e.target.value);\n }}\n hintInfo={error}\n />\n </PopoverTrigger>\n <PopoverContent\n className=\"oui-w-[360px] oui-rounded-xl\"\n align=\"start\"\n side=\"bottom\"\n onOpenAutoFocus={(event) => {\n // event.stopPropagation();\n event.preventDefault();\n }}\n >\n <Flex\n p={1}\n gap={2}\n width={\"100%\"}\n itemAlign={\"start\"}\n ref={quantitySliderRef}\n >\n <Text.numeral\n size=\"xs\"\n intensity={98}\n className=\"oui-min-w-[30px] \"\n dp={2}\n padding={false}\n unit=\"%\"\n rm={Decimal.ROUND_DOWN}\n >\n {`${sliderValue}`}\n </Text.numeral>\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n gap={2}\n className=\"oui-mt-[6px]\"\n >\n <Slider\n markCount={4}\n value={[sliderValue ?? 0]}\n onValueChange={(e) => {\n const values = Array.from(e.values());\n setSliderValue(values[0]);\n const quantity = new Decimal(values[0])\n .div(100)\n .mul(maxQty)\n .abs()\n .toFixed(base_dp, Decimal.ROUND_DOWN);\n setQuantity(quantity, maxQty);\n }}\n onValueCommit={(values) => {\n const quantity = new Decimal(values[0])\n .div(100)\n .mul(maxQty)\n .abs()\n .toFixed(base_dp, Decimal.ROUND_DOWN);\n formatQuantity(quantity).finally(() => {\n inputRef.current.focus();\n });\n }}\n />\n <Buttons\n onClick={(value) => {\n setSliderValue(value * 100);\n let quantity = new Decimal(value)\n .mul(maxQty)\n .abs()\n .toFixed(base_dp, Decimal.ROUND_DOWN);\n quantity = utils.formatNumber(quantity, base_tick) ?? quantity;\n\n setQuantity(quantity, maxQty);\n setTimeout(() => {\n inputRef.current.focus();\n inputRef.current.setSelectionRange(\n quantity.length,\n quantity.length,\n );\n }, 100);\n }}\n />\n </Flex>\n </Flex>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nconst Buttons = (props: { onClick: (value: number) => void }) => {\n const { t } = useTranslation();\n const list = [\n {\n label: \"0%\",\n value: 0,\n },\n {\n label: \"25%\",\n value: 0.25,\n },\n {\n label: \"50%\",\n value: 0.5,\n },\n {\n label: \"75%\",\n value: 0.75,\n },\n {\n label: t(\"common.max\"),\n value: 1,\n },\n ];\n\n return (\n <Flex gap={2} width={\"100%\"}>\n {list.map((item, index) => {\n return (\n <Button\n key={index}\n variant=\"outlined\"\n color=\"secondary\"\n size=\"xs\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.onClick(item.value);\n }}\n className=\"oui-w-1/5\"\n >\n {item.label}\n </Button>\n );\n })}\n </Flex>\n );\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { API } from \"@orderly.network/types\";\nimport { Popover, toast, inputFormatter } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const TrailingCallbackCell = (props: {\n order: API.AlgoOrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { callback_value, callback_rate } = order;\n\n const isCallbackValue = !!callback_value;\n const isCallbackRate = !!callback_rate;\n\n const originValue = useMemo(() => {\n return callback_rate\n ? (callback_rate * 100).toString()\n : callback_value?.toString()!;\n }, [callback_value, callback_rate]);\n\n const [value, setValue] = useState<string>(originValue!);\n const [submitting, setSubmitting] = useState(false);\n\n const disabled = props.disabled || order.is_triggered;\n\n const { editAlgoOrder } = useOrderListContext();\n\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error } = useValidateField({\n order,\n originValue,\n value,\n field: isCallbackValue ? \"callback_value\" : \"callback_rate\",\n fieldValues: {\n callback_value: isCallbackValue ? value : undefined,\n callback_rate: isCallbackRate ? value : undefined,\n },\n });\n\n const onConfirm = useCallback(() => {\n setSubmitting(true);\n\n const data: any = {\n algo_order_id: order.algo_order_id,\n callback_value: isCallbackValue ? value : undefined,\n callback_rate: isCallbackRate ? `${Number(value) / 100}` : undefined,\n };\n\n editAlgoOrder(order.algo_order_id.toString(), data)\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setSubmitting(false));\n }, [order.algo_order_id, value, cancelPopover]);\n\n const renderContent = () => {\n const suffix = isCallbackRate ? \"%\" : undefined;\n\n if (!editing || disabled) {\n return (\n <PreviewCell\n status={getOrderStatus(order)}\n value={value}\n setEditing={setEditing}\n disabled={disabled}\n suffix={suffix}\n />\n );\n }\n\n const formatters = isCallbackRate\n ? [inputFormatter.dpFormatter(1)]\n : [\n inputFormatter.currencyFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ];\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n error={error}\n suffix={suffix}\n formatters={formatters}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={isCallbackRate ? EditType.callbackRate : EditType.callbackValue}\n base={base}\n value={isCallbackRate ? `${value}%` : value}\n cancelPopover={cancelPopover}\n isSubmitting={submitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import { useCallback, useState } from \"react\";\nimport { API } from \"@orderly.network/types\";\nimport { Popover, toast, inputFormatter } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const TriggerPriceCell = (props: {\n order: API.AlgoOrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const originValue = order.trigger_price?.toString();\n\n const [value, setValue] = useState<string>(originValue);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const disabled = props.disabled || order.is_triggered;\n\n const { editAlgoOrder } = useOrderListContext();\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error } = useValidateField({\n order,\n field: \"trigger_price\",\n originValue,\n value,\n });\n\n const onConfirm = useCallback(() => {\n setIsSubmitting(true);\n\n const data: any = {\n trigger_price: value,\n algo_order_id: order.algo_order_id,\n };\n\n editAlgoOrder(`${order.algo_order_id}`, data)\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setIsSubmitting(false));\n }, [order.algo_order_id, value, cancelPopover]);\n\n const renderContent = () => {\n if (!editing || disabled) {\n return (\n <PreviewCell\n value={value}\n status={getOrderStatus(order)}\n setEditing={setEditing}\n disabled={disabled}\n />\n );\n }\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n error={error}\n formatters={[inputFormatter.dpFormatter(quote_dp)]}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.triggerPrice}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={isSubmitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import { FC, useCallback, useState } from \"react\";\nimport { useConfig, useMutation } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderEntity } from \"@orderly.network/types\";\nimport { Button } from \"@orderly.network/ui\";\n\nexport const Renew: FC<{ record: any }> = (props) => {\n const { record } = props;\n const [open, setOpen] = useState(false);\n const [doCreateOrder, { data, error, reset, isMutating }] = useMutation<\n OrderEntity,\n any\n >(\"/v1/order\");\n\n const { t } = useTranslation();\n\n const brokerId = useConfig(\"brokerId\");\n const onSubmit = useCallback(() => {\n setOpen(false);\n const data: OrderEntity = {\n symbol: record.symbol,\n order_type: record.type,\n order_price: record.price,\n order_quantity: record.quantity,\n order_amount: record.amount,\n side: record.side,\n broker_id: brokerId,\n };\n\n if (Number(record.visible_quantity) < Number(record.quantity)) {\n data.visible_quantity = 0;\n }\n\n if (typeof record.reduce_only !== \"undefined\") {\n data.reduce_only = record.reduce_only;\n }\n\n if (record.order_tag) {\n data.order_tag = record.order_tag;\n }\n\n if (record.client_order_id) {\n data.client_order_id = record.client_order_id;\n }\n\n doCreateOrder(data);\n }, []);\n\n return (\n <Button\n size={\"sm\"}\n variant={\"outlined\"}\n color={\"secondary\"}\n loading={isMutating}\n disabled={isMutating}\n onClick={(event) => {\n if (isMutating) return;\n event.preventDefault();\n event.stopPropagation();\n onSubmit();\n }}\n >\n {t(\"orders.history.renew\")}\n </Button>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { API } from \"@orderly.network/types\";\nimport { PositionTPSLPopover } from \"@orderly.network/ui-tpsl\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\n\nexport const TP_SLEditButton = (props: { order: API.Order }) => {\n const { position, order } = useTPSLOrderRowContext();\n const { quote_dp, base_dp } = useSymbolContext();\n const { t } = useTranslation();\n\n return (\n <PositionTPSLPopover\n quoteDP={quote_dp}\n baseDP={base_dp}\n position={position!}\n order={order}\n label={t(\"common.edit\")}\n isEditing\n />\n );\n};\n","import {\n findTPSLOrderPriceFromOrder,\n findTPSLFromOrder,\n useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport { OrderType } from \"@orderly.network/types\";\nimport { Text } from \"@orderly.network/ui\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\n\nexport const TPSLOrderPrice = () => {\n const {\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n order,\n } = useTPSLOrderRowContext();\n const { t } = useTranslation();\n const symbolInfo = useSymbolsInfo()[order.symbol]();\n return (\n <div>\n {!!tp_trigger_price ? (\n <div className={\"oui-text-base-contrast-80 oui-td-bg-transparent\"}>\n <Text intensity={54}>{`${t(\"tpsl.tp\")} -`} </Text>\n <TPSLOrderPriceItem\n price={tp_order_price}\n quoteDP={symbolInfo.quote_dp}\n />\n </div>\n ) : null}\n {!!sl_trigger_price ? (\n <div className={\"oui-text-base-contrast-80 oui-td-bg-transparent\"}>\n <span className={\"oui-text-base-contrast-54\"}>\n {`${t(\"tpsl.sl\")} -`} \n </span>\n <TPSLOrderPriceItem\n price={sl_order_price}\n quoteDP={symbolInfo.quote_dp}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nconst TPSLOrderPriceItem = ({\n price,\n quoteDP,\n}: {\n price?: number | OrderType;\n quoteDP: number;\n}) => {\n const { t } = useTranslation();\n if (!price) {\n return null;\n }\n if (price === OrderType.MARKET) {\n return <span>{t(\"common.marketPrice\")}</span>;\n }\n\n return (\n <Text.numeral\n className=\"oui-text-base-contrast-80\"\n rule={\"price\"}\n dp={quoteDP}\n >\n {price}\n </Text.numeral>\n );\n};\n\nexport function useTPSLOrderPrice(order: any) {\n // @ts-ignore\n const { sl_trigger_price, tp_trigger_price } =\n !(\"algo_type\" in order) || !Array.isArray(order.child_orders)\n ? {}\n : findTPSLFromOrder(order);\n\n const tpTriggerPrice = tp_trigger_price\n ? `${i18n.t(\"tpsl.tp\")} - ${i18n.t(\"common.marketPrice\")}`\n : undefined;\n const slTriggerPrice = sl_trigger_price\n ? `${i18n.t(\"tpsl.sl\")} - ${i18n.t(\"common.marketPrice\")}`\n : undefined;\n\n return { tpTriggerPrice, slTriggerPrice };\n}\n","import { FC, useMemo } from \"react\";\nimport {\n OrderValidationResult,\n useSymbolsInfo,\n useTpslPriceChecker,\n utils,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, AlgoOrderType } from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { cn, Text, Tooltip } from \"@orderly.network/ui\";\nimport { CloseToLiqPriceIcon } from \"@orderly.network/ui-tpsl\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\n\nexport const OrderTriggerPrice = () => {\n const { sl_trigger_price, tp_trigger_price, order, position } =\n useTPSLOrderRowContext();\n\n const positionSide =\n position?.position_qty && position.position_qty > 0\n ? OrderSide.BUY\n : OrderSide.SELL;\n const slPriceError = useTpslPriceChecker({\n slPrice: sl_trigger_price?.toString() ?? undefined,\n liqPrice: position?.est_liq_price ?? null,\n side: positionSide,\n });\n\n return (\n <TPSLTriggerPrice\n stopLossPrice={sl_trigger_price}\n takeProfitPrice={tp_trigger_price}\n direction={\"column\"}\n order={order}\n position={position}\n slPriceError={slPriceError}\n tooltip\n />\n );\n};\n\nexport const TPSLTriggerPrice: FC<{\n takeProfitPrice: number | undefined;\n stopLossPrice: number | undefined;\n className?: string;\n direction?: \"row\" | \"column\";\n tooltip?: boolean;\n order?: API.AlgoOrder;\n position?: API.PositionTPSLExt;\n slPriceError: OrderValidationResult | null;\n}> = (props) => {\n const { direction = \"row\", order, position } = props;\n // const symbolInfo = useSymbolsInfo()[position?.symbol ?? \"\"]();\n const symbolInfo = useSymbolsInfo();\n const { t } = useTranslation();\n\n const pnl = useMemo(() => {\n const msgs = [];\n\n if (!props.tooltip || !order || !position) return;\n\n let quantity = order.quantity;\n\n if (quantity === 0) {\n if (order.child_orders?.[0].type === \"CLOSE_POSITION\") {\n quantity = position.position_qty;\n }\n }\n\n if (!!props.takeProfitPrice) {\n msgs.push(\n <TriggerPriceItem\n key={\"tp\"}\n qty={quantity}\n price={props.takeProfitPrice}\n entryPrice={position.average_open_price}\n orderSide={order.side as OrderSide}\n orderType={AlgoOrderType.TAKE_PROFIT}\n symbolInfo={symbolInfo[order.symbol]()}\n />,\n );\n }\n\n if (!!props.stopLossPrice) {\n msgs.push(\n <TriggerPriceItem\n key={\"sl\"}\n qty={quantity}\n price={props.stopLossPrice}\n entryPrice={position.average_open_price}\n orderSide={order.side as OrderSide}\n orderType={AlgoOrderType.STOP_LOSS}\n symbolInfo={symbolInfo[order.symbol]()}\n />,\n );\n }\n\n return <div>{msgs}</div>;\n }, [\n props.takeProfitPrice,\n props.stopLossPrice,\n position?.average_open_price,\n order?.side,\n order?.quantity,\n order?.algo_type,\n ]);\n\n const child = useMemo(() => {\n const children = [];\n\n if (!order?.symbol) return <span>-</span>;\n if (props.takeProfitPrice) {\n children.push(\n <Text.numeral\n className={cn(\n \"oui-text-trade-profit oui-gap-0 oui-decoration-white/20 oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n )}\n key={\"tp\"}\n rule=\"price\"\n dp={symbolInfo[order!.symbol](\"quote_dp\", 2)}\n children={props.takeProfitPrice}\n // @ts-ignore\n prefix={\n !props.stopLossPrice || direction === \"column\" ? (\n <span className={\"oui-text-base-contrast-54\"}>\n {`${t(\"tpsl.tp\")} -`} \n </span>\n ) : (\n \"\"\n )\n }\n />,\n );\n }\n if (props.stopLossPrice) {\n children.push(\n <Text.numeral\n key={\"sl\"}\n className={cn(\n \"oui-text-trade-loss oui-gap-0 oui-decoration-white/20 oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n \"oui-flex oui-items-center\",\n )}\n as=\"div\"\n rule={\"price\"}\n dp={symbolInfo[order!.symbol](\"quote_dp\", 2)}\n children={props.stopLossPrice}\n // @ts-ignore\n prefix={\n !props.takeProfitPrice || direction === \"column\" ? (\n <span className={\"oui-text-base-contrast-54\"}>\n {`${t(\"tpsl.sl\")} -`} \n </span>\n ) : (\n \"\"\n )\n }\n suffix={\n <CloseToLiqPriceIcon\n slPriceError={props.slPriceError}\n className=\"oui-ml-1\"\n />\n }\n />,\n );\n }\n\n if (children.length === 0) return <span>-</span>;\n\n if (children.length === 2 && direction === \"row\") {\n children.splice(1, 0, <span key={\"split\"}>/</span>);\n }\n\n return children;\n }, [\n props.takeProfitPrice,\n props.stopLossPrice,\n order?.symbol,\n t,\n props.slPriceError,\n ]);\n\n const content = (\n <div\n className={cn(\n \"oui-inline-flex oui-text-base-contrast-36\",\n props.direction === \"column\"\n ? \"oui-flex-col\"\n : \"oui-flex-row oui-gap-1\",\n props.className,\n )}\n >\n {child}\n </div>\n );\n\n if (props.tooltip) {\n // @ts-ignore\n return (\n <Tooltip\n // @ts-ignore\n content={pnl}\n className=\"oui-bg-base-5\"\n arrow={{ className: \"oui-fill-base-5\" }}\n >\n {content}\n </Tooltip>\n );\n }\n\n return content;\n};\n\nconst TriggerPriceItem: FC<{\n qty: number;\n price: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n symbolInfo: API.SymbolExt;\n}> = (props) => {\n const { qty, price, entryPrice, orderSide, orderType, symbolInfo } = props;\n const { t } = useTranslation();\n\n const pnl = utils.priceToPnl(\n {\n qty,\n price,\n entryPrice,\n orderSide,\n orderType,\n },\n {\n symbol: symbolInfo,\n },\n );\n\n const type = orderType === AlgoOrderType.TAKE_PROFIT ? \"TP\" : \"SL\";\n const label = type === \"TP\" ? `${t(\"tpsl.tpPnl\")}:` : `${t(\"tpsl.slPnl\")}:`;\n\n // console.log(\"trigger price item\", \"dp\", symbolInfo.quote_dp);\n\n return (\n <div className=\"oui-flex oui-items-center\">\n <span className=\"oui-text-base-contrast-54 oui-mr-1\">{label}</span>\n <Text.numeral\n rule=\"price\"\n dp={symbolInfo.quote_dp}\n padding={false}\n className={\n pnl === 0\n ? \"oui-text-base-contrast-36\"\n : pnl > 0\n ? \"oui-text-trade-profit oui-gap-0\"\n : \"oui-text-trade-loss oui-gap-0\"\n }\n // @ts-ignore\n prefix={\n // @ts-ignore\n <span>{pnl === 0 ? \"\" : pnl > 0 ? \"+\" : \"-\"}</span>\n }\n suffix={\n <span className=\"oui-text-base-contrast-36 oui-ml-1\">USDC</span>\n }\n >{`${Math.abs(pnl)}`}</Text.numeral>\n </div>\n );\n};\n","import { useMemo } from \"react\";\nimport { format } from \"date-fns\";\nimport { SymbolsInfo, utils } from \"@orderly.network/hooks\";\nimport { useTranslation, i18n } from \"@orderly.network/i18n\";\nimport {\n AlgoOrderRootType,\n AlgoOrderType,\n API,\n OrderSide,\n OrderStatus,\n OrderType,\n} from \"@orderly.network/types\";\nimport { cn, Column, Flex, Text } from \"@orderly.network/ui\";\nimport { Badge } from \"@orderly.network/ui\";\nimport { SharePnLConfig, SharePnLDialogId } from \"@orderly.network/ui-share\";\nimport {\n commifyOptional,\n Decimal,\n formatNum,\n getTrailingStopPrice,\n} from \"@orderly.network/utils\";\nimport {\n grayCell,\n parseBadgesFor,\n upperCaseFirstLetter,\n isTrailingStopOrder,\n getNotional,\n} from \"../../../utils/util\";\nimport { TabType } from \"../../orders.widget\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\nimport { ShareButtonWidget } from \"../../shareButton\";\nimport { AvgPrice } from \"./avgPrice\";\nimport { BracketOrderPrice } from \"./bracketOrderPrice\";\nimport { CancelButton } from \"./cancelBtn\";\nimport { ActivedPriceCell } from \"./components/activedPriceCell\";\nimport { PriceCell } from \"./components/priceCell\";\nimport { QuantityCell } from \"./components/quantityCell\";\nimport { TrailingCallbackCell } from \"./components/trailingCallbackCell\";\nimport { TriggerPriceCell } from \"./components/triggerPriceCell\";\nimport { Renew } from \"./renew\";\nimport { TP_SLEditButton } from \"./tpslEdit\";\nimport { TPSLOrderPrice, useTPSLOrderPrice } from \"./tpslPrice\";\nimport { OrderTriggerPrice } from \"./tpslTriggerPrice\";\n\nexport const useOrderColumn = (props: {\n _type: TabType;\n onSymbolChange?: (symbol: API.Symbol) => void;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n symbolsInfo?: SymbolsInfo;\n}) => {\n const {\n _type,\n onSymbolChange,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n symbolsInfo,\n } = props;\n const { t } = useTranslation();\n\n const columns = useMemo(() => {\n switch (_type) {\n case TabType.all:\n return [\n instrument({\n width: 130,\n showType: true,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n side({ width: 130 }),\n fillAndQuantity({\n width: 130,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n enableSort: false,\n }),\n price({\n width: 130,\n title: t(\"common.orderPrice\"),\n disableEdit: true,\n enableSort: false,\n }),\n avgOpen({ width: 130, enableSort: false, symbolsInfo }),\n tpslTriggerPrice({ width: 130, symbolsInfo: props.symbolsInfo }),\n realizedPnL({\n width: 124,\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n sharePnLConfig: sharePnLConfig,\n symbolsInfo: props.symbolsInfo,\n hideShare: true,\n }),\n estTotal({ width: 130, enableSort: false }),\n fee({ width: 130 }),\n status({ width: 130 }),\n reduceOnly({ width: 130 }),\n hidden({ width: 130 }),\n cancelBtn({ width: 130 }),\n orderTime({ width: 160, enableSort: false }),\n ];\n case TabType.pending:\n return [\n instrument({\n width: 172,\n showType: true,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n // side({ width: 162 }),\n fillAndQuantity({\n width: 162,\n className: \"oui-pr-0\",\n enableSort: false,\n }),\n price({ width: 162, className: \"oui-pr-0\", enableSort: false }),\n trailingCallback({ width: 162 }),\n triggerPrice({ width: 162, className: \"oui-pr-0\", isPending: true }),\n bracketOrderPrice({ width: 130 }),\n estTotal({ width: 162, isPending: true }),\n reduceOnly({ width: 162 }),\n hidden({ width: 162 }),\n orderTime({ width: 162, enableSort: false }),\n pendingTabCancelBtn({ width: 80 }),\n ];\n case TabType.tp_sl:\n return [\n instrument({\n width: 176,\n showType: true,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n // side({ width: 176 }),\n quantity({ width: 176 }),\n tpslTriggerPrice({ width: 176, symbolsInfo }),\n tpslPrice({ width: 176, disableEdit: true }),\n tpslNotional({ width: 176 }),\n reduceOnly({ width: 176 }),\n orderTime({ width: 176, enableSort: false }),\n tpslAction({ width: 176 }),\n ];\n case TabType.filled:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n }),\n // type({ width: 124 }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 124,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n }),\n price({\n width: 124,\n title: t(\"common.orderPrice\"),\n disableEdit: true,\n }),\n avgPrice({ width: 124 }),\n triggerPrice({ width: 124, disableEdit: true }),\n realizedPnL({\n width: 124,\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n sharePnLConfig: sharePnLConfig,\n symbolsInfo,\n hideShare: true,\n }),\n estTotal({ width: 124 }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n orderTime({ width: 176 }),\n ];\n case TabType.cancelled:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 124,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n enableSort: false,\n }),\n price({ width: 124, disableEdit: true, enableSort: false }),\n avgOpen({ width: 124, enableSort: false }),\n triggerPrice({ width: 124, disableEdit: true }),\n estTotal({ width: 124 }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n ];\n case TabType.rejected:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 124,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n }),\n price({ width: 124, disableEdit: true }),\n avgOpen({ width: 124 }),\n triggerPrice({ width: 124, disableEdit: true }),\n estTotal({ width: 124 }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n orderTime({ width: 176 }),\n ];\n case TabType.orderHistory:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 150,\n disableEdit: true,\n className: \"oui-pl-6 oui-pr-0\",\n }),\n price({\n width: 124,\n disableEdit: true,\n tabType: TabType.orderHistory,\n }),\n avgOpen({ width: 124 }),\n triggerPrice({ width: 124, disableEdit: true }),\n realizedPnL({\n width: 124,\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n sharePnLConfig: sharePnLConfig,\n symbolsInfo: props.symbolsInfo,\n hideShare: true,\n }),\n estTotal({ width: 124 }),\n trailingCallback({ width: 124, disableEdit: true }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n orderTime({ width: 150 }),\n cancelBtn({ width: 80 }),\n ];\n }\n }, [_type, pnlNotionalDecimalPrecision, sharePnLConfig, t]);\n\n return columns as Column[];\n\n // return columns();\n};\n\nfunction instrument(option?: {\n showType?: boolean;\n enableSort?: boolean;\n width?: number;\n onSymbolChange?: (symbol: API.Symbol) => void;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.symbol\"),\n dataIndex: \"symbol\",\n fixed: \"left\",\n // className: \"oui-h-[48px]\",\n width: option?.width,\n onSort: option?.enableSort\n ? (r1, r2) => {\n return r1.symbol.localeCompare(r2.symbol);\n // if (sortOrder === \"asc\") {\n // return r1.symbol.localeCompare(r2.symbol);\n // }\n // return r2.symbol.localeCompare(r1.symbol);\n }\n : undefined,\n renderPlantText: (value: string, record) => {\n const badges = parseBadgesFor(record)?.join(\",\");\n const displayBadges = badges?.length ? ` (${badges})` : \"\";\n return `${value.split(\"_\")[1]}-PERP${displayBadges}`;\n },\n render: (value: string, record) => {\n const showGray = grayCell(record);\n\n return (\n <Flex gap={2}>\n <div\n className={cn(\n \"oui-h-7 oui-w-1 oui-shrink-0 oui-rounded-[1px]\",\n record.side === OrderSide.BUY\n ? \"oui-bg-trade-profit\"\n : \"oui-bg-trade-loss\",\n )}\n />\n <Flex direction=\"column\" itemAlign={\"start\"}>\n <Text.formatted\n // rule={\"symbol\"}\n size=\"xs\"\n className=\"oui-cursor-pointer oui-text-xs\"\n onClick={(e) => {\n option?.onSymbolChange?.({ symbol: value } as API.Symbol);\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {`${value.split(\"_\")[1]}-PERP`}\n </Text.formatted>\n\n {option?.showType && (\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(record)?.map((e, index) => (\n <Badge\n key={index}\n color={\n e.toLocaleLowerCase() === \"position\"\n ? showGray\n ? \"neutral\"\n : \"primary\"\n : \"neutral\"\n }\n size=\"xs\"\n className=\"oui-whitespace-nowrap oui-break-normal\"\n >\n {e}\n </Badge>\n ))}\n </Flex>\n )}\n </Flex>\n </Flex>\n );\n },\n };\n}\n\nfunction side(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.side\"),\n dataIndex: \"side\",\n width: option?.width,\n // className: \"oui-h-[48px]\",\n onSort: option?.enableSort\n ? (r1, r2, sortOrder) => {\n return r2.side.localeCompare(r1.side);\n // if (sortOrder === \"asc\") {\n // return r2.side.localeCompare(r1.side);\n // }\n // return r1.side.localeCompare(r2.side);\n }\n : undefined,\n renderPlantText: (value: string, record) => upperCaseFirstLetter(value),\n render: (value: string, record) => {\n const clsName = grayCell(record)\n ? \"oui-text-base-contrast-20\"\n : value === OrderSide.BUY\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\";\n return (\n <span className={cn(\"oui-font-semibold\", clsName)}>\n {upperCaseFirstLetter(value)}\n </span>\n );\n },\n };\n}\n\nfunction type(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.type\"),\n dataIndex: \"type\",\n width: option?.width,\n className: option?.className,\n formatter: (value: string, record: any) => {\n if (!!record.parent_algo_type) {\n if (record.algo_type === AlgoOrderType.STOP_LOSS) {\n return record.type === OrderType.CLOSE_POSITION\n ? `Position SL`\n : \"SL\";\n }\n\n if (record.algo_type === AlgoOrderType.TAKE_PROFIT) {\n return record.type === OrderType.CLOSE_POSITION\n ? `Position TP`\n : \"TP\";\n }\n }\n\n if (record.algo_order_id) {\n return `Stop ` + `${record.type}`.toLowerCase();\n }\n return upperCaseFirstLetter(value);\n },\n };\n}\n\nfunction fillAndQuantity(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n}): Column<API.AlgoOrderExt> {\n return {\n title: i18n.t(\"orders.column.fill&Quantity\"),\n dataIndex: \"fill_quantity\",\n className: option?.className,\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b) => {\n const aQuantity =\n (a.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : a.quantity) ?? 0;\n const bQuantity =\n (b.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : b.quantity) ?? 0;\n\n return compareNumbers(aQuantity, bQuantity);\n\n // if (type == \"asc\") {\n // return compareNumbers(aQuantity, bQuantity);\n // }\n // return compareNumbers(bQuantity, aQuantity);\n }\n : undefined,\n\n renderPlantText: (value: string, record: any) => {\n if (\n record.type === OrderType.CLOSE_POSITION &&\n record.status !== OrderStatus.FILLED\n ) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n const executed = (record as API.OrderExt).total_executed_quantity;\n const first =\n \"algo_type\" in record && record.algo_type === AlgoOrderRootType.TP_SL\n ? \"\"\n : `${executed} / `;\n return first + `${record.quantity}`;\n },\n render: (value: string, record: any) => {\n if (\n record.type === OrderType.CLOSE_POSITION &&\n record.status !== OrderStatus.FILLED\n ) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n return <QuantityCell order={record} disabled={option?.disableEdit} />;\n // return value;\n },\n };\n}\n\nfunction quantity(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.AlgoOrderExt> {\n return {\n title: i18n.t(\"common.quantity\"),\n className: option?.className,\n dataIndex: \"quantity\",\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b) => {\n const aQuantity =\n (a.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : a.quantity) ?? 0;\n const bQuantity =\n (b.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : b.quantity) ?? 0;\n return compareNumbers(aQuantity, bQuantity);\n // if (type == \"asc\") {\n // return compareNumbers(aQuantity, bQuantity);\n // }\n // return compareNumbers(bQuantity, aQuantity);\n }\n : undefined,\n renderPlantText: (value: string, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n const executed = (record as API.OrderExt).total_executed_quantity;\n const first =\n \"algo_type\" in record && record.algo_type === AlgoOrderRootType.TP_SL\n ? \"\"\n : `${executed}/`;\n return first + `${record.quantity}`;\n },\n render: (value: string, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n return <QuantityCell order={record} />;\n // return value;\n },\n };\n}\n\nfunction price(option?: {\n title?: string;\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n tabType?: TabType;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"common.price\"),\n dataIndex: \"price\",\n className: option?.className,\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b, type) => {\n return compareNumbers(a.price ?? 0, b.price ?? 0);\n }\n : undefined,\n renderPlantText: (value: string, record: any) => {\n const isTrailingStop = isTrailingStopOrder(record);\n if (isTrailingStop) {\n // TODO: fix precision\n return option?.tabType === TabType.orderHistory\n ? i18n.t(\"common.marketPrice\")\n : getTrailingStopPrice(record) || \"--\";\n }\n return commifyOptional(record.price, {\n fallback: i18n.t(\"common.marketPrice\"),\n });\n },\n render: (value: string, record: any) => {\n const isTrailingStop = isTrailingStopOrder(record);\n if (isTrailingStop) {\n // TODO: fix precision\n return option?.tabType === TabType.orderHistory\n ? i18n.t(\"common.marketPrice\")\n : getTrailingStopPrice(record) || \"--\";\n }\n\n return <PriceCell order={record} disabled={option?.disableEdit} />;\n },\n };\n}\n\nfunction tpslPrice(option?: {\n title?: string;\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"common.price\"),\n dataIndex: \"price\",\n className: option?.className,\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n const { tpTriggerPrice, slTriggerPrice } = useTPSLOrderPrice(record);\n const callback = `${tpTriggerPrice || \"\"}${\n slTriggerPrice ? `${tpTriggerPrice ? \"\\n\" : \"\"}${slTriggerPrice}` : \"\"\n }`;\n\n return callback.length > 0 ? callback : \"--\";\n },\n render: (value: string, record: any) => {\n return <TPSLOrderPrice />;\n },\n };\n}\n\nfunction avgPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n symbolsInfo?: SymbolsInfo;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.avgPrice\"),\n dataIndex: \"average_executed_price\",\n className: option?.className,\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n return commifyOptional(value);\n },\n render: (value: string, record: any) => {\n return <AvgPrice symbol={record.symbol} value={value} />;\n },\n };\n}\n\nfunction triggerPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n isPending?: boolean;\n}): Column<API.Order> {\n const { isPending } = option || {};\n const checkOrderType = (record: any) => {\n const isAlgoOrder = record?.algo_order_id !== undefined;\n const isBracketOrder = record?.algo_type === \"BRACKET\";\n return isAlgoOrder && !isBracketOrder;\n };\n\n return {\n title: i18n.t(\"common.trigger\"),\n className: option?.className,\n dataIndex: \"trigger_price\",\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n if (!checkOrderType(record)) {\n return \"--\";\n }\n if (isTrailingStopOrder(record) && isPending) {\n return record.activated_price\n ? commifyOptional(record.activated_price)\n : \"--\";\n }\n return commifyOptional(value);\n },\n render: (value: string, record: any) => {\n if (!checkOrderType(record)) {\n return \"--\";\n }\n\n if (isTrailingStopOrder(record) && isPending) {\n return (\n <ActivedPriceCell order={record} disabled={option?.disableEdit} />\n );\n }\n return <TriggerPriceCell order={record} disabled={option?.disableEdit} />;\n },\n };\n}\n\nfunction tpslTriggerPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n title?: string;\n symbolsInfo?: SymbolsInfo;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"common.trigger\"),\n className: option?.className,\n dataIndex: \"tpsl_trigger_price\",\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n const info = option?.symbolsInfo?.[record.symbol];\n const quote_dp = info?.(\"quote_dp\");\n // @ts-ignore\n const { sl_trigger_price, tp_trigger_price } =\n !(\"algo_type\" in record) || !Array.isArray(record.child_orders)\n ? {}\n : utils.findTPSLFromOrder(record);\n\n const callback =\n (tp_trigger_price != null\n ? `${i18n.t(\"tpsl.tp\")}: ${commifyOptional(tp_trigger_price, {\n fix: quote_dp,\n padEnd: true,\n })}`\n : \"\") +\n (sl_trigger_price != null\n ? `${tp_trigger_price ? \"\\n\" : \"\"}${i18n.t(\n \"tpsl.sl\",\n )}: ${commifyOptional(sl_trigger_price, {\n fix: quote_dp,\n padEnd: true,\n })}`\n : \"\");\n return callback.length > 0 ? callback : \"--\";\n },\n render: (value: string, record: any) => <OrderTriggerPrice />,\n };\n}\n\nfunction bracketOrderPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}) {\n return {\n title: i18n.t(\"common.tpsl\"),\n className: option?.className,\n dataIndex: \"bracketOrderPrice\",\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n const getTPSLTriggerPrice = (): {\n sl_trigger_price?: number;\n tp_trigger_price?: number;\n } => {\n if (!(\"algo_type\" in record) || !Array.isArray(record.child_orders)) {\n return {};\n }\n return utils.findTPSLFromOrder(record.child_orders[0]);\n };\n\n const { sl_trigger_price, tp_trigger_price } = getTPSLTriggerPrice();\n\n const callback =\n (tp_trigger_price != null\n ? `${i18n.t(\"tpsl.tp\")}: ${tp_trigger_price}`\n : \"\") +\n (sl_trigger_price != null\n ? `${tp_trigger_price ? \"\\n\" : \"\"}${i18n.t(\n \"tpsl.sl\",\n )}: ${sl_trigger_price}`\n : \"\");\n return callback.length > 0 ? callback : \"--\";\n },\n render: (value: string, record: any) => (\n <BracketOrderPrice order={record} />\n ),\n };\n}\n\nfunction estTotal(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n isPending?: boolean;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.notional\"),\n dataIndex: \"executed\",\n width: option?.width,\n className: option?.className,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b, type) => {\n const aTotal =\n a.type === OrderType.CLOSE_POSITION &&\n a.status !== OrderStatus.FILLED\n ? 0\n : a.total_executed_quantity === 0 ||\n Number.isNaN(a.average_executed_price) ||\n a.average_executed_price === null\n ? 0\n : a.total_executed_quantity * a.average_executed_price;\n const bTotal =\n b.type === OrderType.CLOSE_POSITION &&\n b.status !== OrderStatus.FILLED\n ? 0\n : b.total_executed_quantity === 0 ||\n Number.isNaN(b.average_executed_price) ||\n b.average_executed_price === null\n ? 0\n : b.total_executed_quantity * b.average_executed_price;\n return compareNumbers(aTotal, bTotal);\n // if (type === \"asc\") {\n // return compareNumbers(aTotal, bTotal);\n // }\n // return compareNumbers(bTotal, aTotal);\n }\n : undefined,\n renderPlantText: (value: string, record: any) => {\n const estTotal = estTotalValue(record, option?.isPending ?? false);\n\n if (estTotal === \"Entire position\") {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return commifyOptional(\n estTotalValue(record, option?.isPending ?? false),\n { fix: 2 },\n );\n },\n render: (value: string, record: any) => {\n const estTotal = estTotalValue(record, option?.isPending ?? false);\n\n if (estTotal === \"Entire position\") {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return (\n <Text.numeral rm={Decimal.ROUND_DOWN} dp={2}>\n {estTotal}\n </Text.numeral>\n );\n },\n };\n}\n\nfunction realizedPnL(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n symbolsInfo?: SymbolsInfo;\n hideShare?: boolean;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.realizedPnl\"),\n dataIndex: \"realized_pnl\",\n width: option?.width,\n className: option?.className,\n renderPlantText: (_value: string, record: any) => {\n const info = option?.symbolsInfo?.[record.symbol];\n const quote_dp = info?.(\"quote_dp\");\n const dp = option?.pnlNotionalDecimalPrecision ?? quote_dp;\n const value = new Decimal(_value ?? 0)\n .toDecimalPlaces(dp, Decimal.ROUND_DOWN)\n .toNumber();\n\n const formatValue = commifyOptional(value);\n\n return value > 0 ? `+${formatValue}` : formatValue;\n },\n render: (_value: number | undefined, record: any) => {\n const { quote_dp } = useSymbolContext();\n const dp = option?.pnlNotionalDecimalPrecision ?? quote_dp;\n const value = new Decimal(_value ?? 0).toNumber();\n // wraper flex\n return (\n <Flex gap={1}>\n <Text.pnl\n dp={dp}\n padding={false}\n intensity={(value ?? 0) == 0 ? 80 : undefined}\n showIdentifier={(value ?? 0) > 0}\n coloring={(value ?? 0) != 0}\n >\n {value ?? \"--\"}\n </Text.pnl>\n {!option?.hideShare && (\n <ShareButtonWidget\n order={record}\n sharePnLConfig={option?.sharePnLConfig}\n modalId={SharePnLDialogId}\n />\n )}\n </Flex>\n );\n },\n };\n}\n\nfunction reduceOnly(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"orderEntry.reduceOnly\"),\n dataIndex: \"reduce_only\",\n width: option?.width,\n className: option?.className,\n renderPlantText: (value: string, record: any) => {\n return value ? i18n.t(\"common.yes\") : i18n.t(\"common.no\");\n },\n render: (value: boolean) => {\n return <Text>{value ? i18n.t(\"common.yes\") : i18n.t(\"common.no\")}</Text>;\n },\n };\n}\n\nfunction hidden(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"orders.column.hidden\"),\n dataIndex: \"visible\",\n width: option?.width,\n className: option?.className,\n renderPlantText: (value: number, record: any) => {\n return value !== 0 ? i18n.t(\"common.no\") : i18n.t(\"common.yes\");\n },\n render: (value: number, record) => {\n return (\n <Text>\n {record.visible_quantity !== 0\n ? i18n.t(\"common.no\")\n : i18n.t(\"common.yes\")}\n </Text>\n );\n },\n };\n}\n\nfunction orderTime(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n formatString?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"orders.column.orderTime\"),\n dataIndex: \"created_time\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: string, record: any) => {\n const date = new Date(value);\n const formattedDate = format(date, \"yyyy-MM-dd HH:mm:ss\");\n return formattedDate;\n },\n render: (value: string) => (\n <Text.formatted\n rule={\"date\"}\n formatString={option?.formatString || \"yyyy-MM-dd HH:mm:ss\"}\n className=\"oui-break-normal oui-whitespace-nowrap oui-font-semibold\"\n >\n {value}\n </Text.formatted>\n ),\n };\n}\n\nfunction fee(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.fee\"),\n dataIndex: \"total_fee\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n };\n}\n\nfunction notional(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.notional\"),\n dataIndex: \"notional\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: number, record: any) => {\n return commifyOptional(value, { fix: 2 });\n },\n render: (value?: string) => (\n <Text.notional className=\"oui-break-normal oui-whitespace-nowrap oui-font-semibold\">\n {value ?? \"--\"}\n </Text.notional>\n ),\n };\n}\n\nfunction tpslNotional(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.notional\"),\n dataIndex: \"executed\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: any, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n return commifyOptional(\n record.quantity === 0\n ? \"--\"\n : `${formatNum\n .notional(new Decimal(record.mark_price).mul(record.quantity))\n ?.toNumber()}`,\n );\n },\n render: (value: any, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return (\n <Text.numeral className=\"oui-break-normal oui-whitespace-nowrap oui-font-semibold\">\n {record.quantity === 0\n ? \"--\"\n : `${formatNum\n .notional(new Decimal(record.mark_price).mul(record.quantity))\n ?.toNumber()}`}\n </Text.numeral>\n );\n },\n };\n}\n\nfunction status(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n const statusMap = {\n [OrderStatus.NEW]: i18n.t(\"orders.status.pending\"),\n [OrderStatus.FILLED]: i18n.t(\"orders.status.filled\"),\n [OrderStatus.PARTIAL_FILLED]: i18n.t(\"orders.status.partialFilled\"),\n [OrderStatus.CANCELLED]: i18n.t(\"orders.status.canceled\"),\n [OrderStatus.REJECTED]: i18n.t(\"orders.status.rejected\"),\n [OrderStatus.INCOMPLETE]: i18n.t(\"orders.status.incomplete\"),\n [OrderStatus.COMPLETED]: i18n.t(\"orders.status.completed\"),\n };\n return {\n title: i18n.t(\"common.status\"),\n dataIndex: \"status\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: string, record: any) => {\n const status = value || record.algo_status;\n return (\n statusMap[status as keyof typeof statusMap] ||\n upperCaseFirstLetter(status)\n );\n },\n render: (value: string, record: any) => {\n const status = value || record.algo_status;\n return (\n statusMap[status as keyof typeof statusMap] ||\n upperCaseFirstLetter(status)\n );\n },\n };\n}\n\nfunction avgOpen(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n symbolsInfo?: SymbolsInfo;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.avgPrice\"),\n dataIndex: \"average_executed_price\",\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b) => {\n return compareNumbers(\n a.average_executed_price ?? 0,\n b.average_executed_price ?? 0,\n );\n }\n : undefined,\n className: option?.className,\n render: (value: string, record) => {\n if (record.type === OrderType.MARKET && !value) {\n return \"--\";\n }\n\n return <AvgPrice symbol={record.symbol} value={value} />;\n },\n renderPlantText: (value: string, record: any) => {\n return value ? commifyOptional(value) : \"--\";\n },\n };\n}\n\nfunction cancelBtn(option?: {\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: \"\",\n type: \"action\",\n dataIndex: \"action\",\n width: option?.width,\n className: option?.className,\n align: \"right\",\n fixed: \"right\",\n render: (_: string, record: any) => {\n if (record.status === OrderStatus.CANCELLED) {\n return <Renew record={record} />;\n }\n\n if (\n record.status === OrderStatus.NEW ||\n record.algo_status === OrderStatus.NEW\n ) {\n return <CancelButton order={record} />;\n }\n\n return null;\n },\n };\n}\n\nfunction pendingTabCancelBtn(option?: {\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: \"\",\n type: \"action\",\n dataIndex: \"action\",\n width: option?.width,\n className: option?.className,\n align: \"right\",\n fixed: \"right\",\n render: (_: string, record: any) => {\n return <CancelButton order={record} />;\n },\n };\n}\n\nfunction tpslAction(option?: {\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: \"\",\n type: \"action\",\n dataIndex: \"action\",\n width: option?.width,\n className: option?.className,\n align: \"right\",\n fixed: \"right\",\n render: (_: string, record: any) => {\n return (\n <Flex gap={3}>\n <TP_SLEditButton order={record} />\n <CancelButton order={record} />\n </Flex>\n );\n },\n };\n}\n\nfunction compareNumbers(a: number, b: number): number {\n if (a > b) return 1;\n if (a < b) return -1;\n return 0;\n}\n\n// estTotal\nfunction estTotalValue(record: any, isPending: boolean): string {\n if (isPending) {\n return getNotional(record) || \"--\";\n }\n\n if (\n record.type === OrderType.CLOSE_POSITION &&\n record.status !== OrderStatus.FILLED\n ) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return record.total_executed_quantity === 0 ||\n Number.isNaN(record.average_executed_price) ||\n record.average_executed_price === null\n ? \"--\"\n : `${record.total_executed_quantity * record.average_executed_price}`;\n}\n\nfunction trailingCallback(option?: {\n title?: string;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"orderEntry.trailing\"),\n dataIndex: \"callback_value\",\n className: option?.className,\n width: option?.width,\n renderPlantText: (value: string, record: any) => {\n const { callback_value, callback_rate } = record;\n const val =\n callback_value || (callback_rate ? `${callback_rate * 100}%` : \"--\");\n return val?.toString();\n },\n render: (value: string, record: any) => {\n if (isTrailingStopOrder(record)) {\n return (\n <TrailingCallbackCell order={record} disabled={option?.disableEdit} />\n );\n }\n\n return \"--\";\n },\n };\n}\n","import {\n FC,\n PropsWithChildren,\n ReactNode,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { useTpslPriceChecker } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n AlgoOrderRootType,\n API,\n OrderStatus,\n OrderType,\n} from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { Badge, cn, Flex, Statistic, Text, Tooltip } from \"@orderly.network/ui\";\nimport { SharePnLBottomSheetId } from \"@orderly.network/ui-share\";\nimport { CloseToLiqPriceIcon } from \"@orderly.network/ui-tpsl\";\nimport { Decimal, getTrailingStopPrice } from \"@orderly.network/utils\";\nimport {\n getNotional,\n parseBadgesFor,\n upperCaseFirstLetter,\n} from \"../../../utils/util\";\nimport { ShareButtonWidget } from \"../../shareButton\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\nimport { OrderCellState } from \"./orderCell.script\";\n\nexport const SymbolToken: FC<OrderCellState> = (props) => {\n const { item } = props;\n const isBuy = item.side === OrderSide.BUY;\n const { t } = useTranslation();\n\n return (\n <Text.formatted\n intensity={80}\n rule=\"symbol\"\n formatString=\"base-type\"\n size=\"sm\"\n // @ts-ignore\n prefix={\n <Badge color={isBuy ? \"success\" : \"danger\"} size=\"xs\">\n {isBuy ? t(\"common.buy\") : t(\"common.sell\")}\n </Badge>\n }\n onClick={() => {\n props.onSymbolChange?.({ symbol: item.symbol } as API.Symbol);\n }}\n // showIcon\n >\n {item.symbol}\n </Text.formatted>\n );\n};\n\nexport const OrderTypeView: FC<OrderCellState> = (props) => {\n const { item } = props;\n\n const orderType = useCallback(() => {\n const type =\n typeof item.type === \"string\"\n ? item.type.replace(\"_ORDER\", \"\").toLowerCase()\n : item.type;\n const isAlgoOrder =\n item.algo_order_id && item.algo_type !== AlgoOrderRootType.BRACKET;\n if (isAlgoOrder) {\n return `Stop ${type}`;\n }\n return upperCaseFirstLetter(item.type);\n }, [item]);\n\n return (\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(props.item)?.map((e, index) => (\n <Badge\n key={index}\n color={e.toLocaleLowerCase() === \"position\" ? \"primary\" : \"neutral\"}\n size=\"xs\"\n >\n {e}\n </Badge>\n ))}\n </Flex>\n );\n};\n\nexport const OrderTime: FC<OrderCellState> = (props) => {\n const { item } = props;\n\n return (\n <Text.formatted\n rule={\"date\"}\n formatString=\"yyyy-MM-dd HH:mm:ss\"\n intensity={36}\n size=\"2xs\"\n >\n {item.created_time}\n </Text.formatted>\n );\n};\n\nexport const OrderState: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n // @ts-ignore\n const status = item.status || item.algo_status;\n\n const statusMap = useMemo(() => {\n return {\n [OrderStatus.NEW]: t(\"orders.status.pending\"),\n [OrderStatus.FILLED]: t(\"orders.status.filled\"),\n [OrderStatus.PARTIAL_FILLED]: t(\"orders.status.partialFilled\"),\n [OrderStatus.CANCELLED]: t(\"orders.status.canceled\"),\n [OrderStatus.REJECTED]: t(\"orders.status.rejected\"),\n [OrderStatus.INCOMPLETE]: t(\"orders.status.incomplete\"),\n [OrderStatus.COMPLETED]: t(\"orders.status.completed\"),\n };\n }, [t]);\n\n return (\n <Text.formatted intensity={80} size=\"2xs\">\n {statusMap[status as keyof typeof statusMap] ||\n upperCaseFirstLetter(status)}\n </Text.formatted>\n );\n};\n\nexport const Qty: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n const isEntirePosition =\n item.type === OrderType.CLOSE_POSITION &&\n // @ts-ignore\n item?.status !== OrderStatus.FILLED;\n\n return (\n <Statistic\n label={t(\"common.qty\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.base_dp}\n padding={false}\n coloring\n placeholder={t(\"tpsl.entirePosition\")}\n intensity={80}\n >\n {isEntirePosition ? t(\"tpsl.entirePosition\") : item.quantity}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const Filled: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={<Text>{t(\"orders.status.filled\")}</Text>}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.base_dp}\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {/* {item.algo_order_id\n ? item.total_executed_quantity\n : (item as unknown as API.OrderExt).executed} */}\n {item.total_executed_quantity}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const Notional: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Statistic\n align=\"end\"\n label={\n <Text>\n {t(\"common.notional\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n coloring\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {(item as any).notional ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const EstTotal: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const value = useMemo(() => getNotional(item), [item.price, item.quantity]);\n\n const rendrerContent = () => {\n if (value) {\n return (\n <Text.numeral\n dp={props.quote_dp}\n coloring\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {value}\n </Text.numeral>\n );\n }\n\n return \"--\";\n };\n\n return (\n <Statistic\n align=\"end\"\n label={\n <Text>\n {t(\"common.notional\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {rendrerContent()}\n </Statistic>\n );\n};\n\nexport const TriggerPrice: FC<\n OrderCellState & {\n align?: \"start\" | \"end\";\n isPending?: boolean;\n }\n> = (props) => {\n const { item, isPending } = props;\n const { t } = useTranslation();\n\n const isTrailingStop = item?.algo_type === AlgoOrderRootType.TRAILING_STOP;\n\n const rendrerContent = () => {\n if (isTrailingStop && isPending && item.activated_price) {\n return (\n <Text.numeral\n dp={props.quote_dp}\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {item.activated_price}\n </Text.numeral>\n );\n }\n\n if (item.trigger_price) {\n return (\n <Text.numeral\n dp={props.quote_dp}\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {item.trigger_price}\n </Text.numeral>\n );\n }\n\n return \"--\";\n };\n\n return (\n <Statistic\n label={isTrailingStop ? t(\"common.trigger\") : t(\"common.triggerPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n align={props.align}\n >\n {rendrerContent()}\n </Statistic>\n );\n};\n\nexport const MarkPrice: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={t(\"common.markPrice\")}\n align=\"end\"\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {item.mark_price}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const LimitPrice: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const isAlgoOrder = item?.algo_order_id !== undefined;\n const isTrailingStop = item?.algo_type === AlgoOrderRootType.TRAILING_STOP;\n const isStopMarket = item?.type === \"MARKET\" && isAlgoOrder;\n\n const rendrerContent = () => {\n if (isTrailingStop) {\n return \"--\";\n }\n if (isStopMarket) {\n return <Text>{t(\"common.marketPrice\")}</Text>;\n }\n\n return (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {item.price ?? \"--\"}\n </Text.numeral>\n );\n };\n\n return (\n <Statistic\n label={t(\"common.limitPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {rendrerContent()}\n </Statistic>\n );\n};\n\nexport const TPTrigger: FC<OrderCellState> = (props) => {\n const { tp_trigger_price, tpPnL } = useTPSLOrderRowContext();\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={t(\"tpsl.tpTrigger\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <MobileTooltip\n content={\n tpPnL && (\n <Text.numeral\n size=\"2xs\"\n showIdentifier\n // @ts-ignore\n prefix={<Text intensity={54}>{`${t(\"tpsl.tpPnl\")}:`} </Text>}\n suffix={<Text intensity={20}> USDC</Text>}\n coloring\n >\n {tpPnL}\n </Text.numeral>\n )\n }\n classNames={{\n content: \"oui-bg-base-6 oui-ml-2\",\n arrow: \"oui-fill-base-6\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n color=\"buy\"\n padding={false}\n className={\n tp_trigger_price\n ? \"oui-border-b oui-border-dashed oui-border-base-contrast-12\"\n : undefined\n }\n >\n {tp_trigger_price ?? \"--\"}\n </Text.numeral>\n </MobileTooltip>\n </Statistic>\n );\n};\n\nexport const SLTrigger: FC<OrderCellState> = (props) => {\n const { sl_trigger_price, slPnL, position: item } = useTPSLOrderRowContext();\n const { t } = useTranslation();\n\n const side = (item?.position_qty ?? 0) > 0 ? OrderSide.BUY : OrderSide.SELL;\n const slPriceError = useTpslPriceChecker({\n slPrice: sl_trigger_price?.toString() ?? undefined,\n liqPrice: item?.est_liq_price ?? null,\n side: side,\n });\n\n return (\n <Statistic\n label={t(\"tpsl.slTrigger\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <MobileTooltip\n content={\n slPnL && (\n <Text.numeral\n size=\"2xs\"\n // @ts-ignore\n prefix={\n <Text intensity={54}>{`${t(\"tpsl.slPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}> USDC</Text>}\n coloring\n >\n {slPnL}\n </Text.numeral>\n )\n }\n classNames={{\n content: \"oui-bg-base-6 oui-ml-2\",\n arrow: \"oui-fill-base-6\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n as=\"div\"\n rm={Decimal.ROUND_DOWN}\n color=\"sell\"\n padding={false}\n suffix={<CloseToLiqPriceIcon slPriceError={slPriceError} />}\n className={cn(\n sl_trigger_price\n ? \"oui-border-b oui-border-dashed oui-border-base-contrast-12\"\n : undefined,\n \"oui-flex oui-items-center\",\n )}\n >\n {sl_trigger_price ?? \"--\"}\n </Text.numeral>\n </MobileTooltip>\n </Statistic>\n );\n};\n\nexport const TPPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n const { tp_order_price } = useTPSLOrderRowContext();\n\n const renderOrderPrice = useMemo(() => {\n if (tp_order_price === undefined) {\n return <Text>--</Text>;\n }\n if (tp_order_price === OrderType.MARKET) {\n return <Text>{t(\"common.marketPrice\")}</Text>;\n }\n return (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {tp_order_price}\n </Text.numeral>\n );\n }, [tp_order_price]);\n\n return (\n <Statistic\n label={t(\"tpsl.tpPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {renderOrderPrice}\n </Statistic>\n );\n};\nexport const SLPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n const { sl_order_price } = useTPSLOrderRowContext();\n\n const renderOrderPrice = useMemo(() => {\n if (sl_order_price === undefined) {\n return <Text>--</Text>;\n }\n if (sl_order_price === OrderType.MARKET) {\n return <Text>{t(\"common.marketPrice\")}</Text>;\n }\n return (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {sl_order_price}\n </Text.numeral>\n );\n }, [sl_order_price]);\n\n return (\n <Statistic\n label={t(\"tpsl.slPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {renderOrderPrice}\n </Statistic>\n );\n};\n\nexport const TPSLQuantity: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const quantity = useMemo(() => {\n if (item.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return (\n <span className=\"oui-text-base-contrast-80\">\n {t(\"tpsl.entirePosition\")}\n </span>\n );\n }\n\n return (\n <Text.numeral\n dp={props.base_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {item.quantity}\n </Text.numeral>\n );\n }, [item, t]);\n\n return (\n <Statistic\n label={t(\"common.quantity\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n align=\"end\"\n >\n {quantity}\n </Statistic>\n );\n};\n\nexport const AvgPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n return (\n <Statistic\n label={\n <Text>\n {t(\"common.avgPrice\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {/* @ts-ignore */}\n {props.item?.average_executed_price ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const OrderPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n return (\n <Statistic\n label={\n <Text>\n {t(\"common.orderPrice\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n placeholder={t(\"common.marketPrice\")}\n >\n {/* @ts-ignore */}\n {props.item?.price ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const RealizedPnL: FC<OrderCellState> = (props) => {\n // @ts-ignore\n const value = props?.item?.realized_pnl;\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={\n <Text>\n {t(\"common.realizedPnl\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n align=\"end\"\n >\n <Flex gap={1}>\n <Text.pnl\n dp={props.quote_dp}\n padding={false}\n intensity={(value ?? 0) == 0 ? 80 : undefined}\n showIdentifier={(value ?? 0) > 0}\n coloring={(value ?? 0) != 0}\n >\n {value ?? \"--\"}\n </Text.pnl>\n </Flex>\n </Statistic>\n );\n};\n\nexport const MobileTooltip: FC<\n PropsWithChildren<{\n content?: string | ReactNode;\n classNames?: {\n content?: string;\n arrow?: string;\n };\n }>\n> = (props) => {\n const { classNames, content } = props;\n const [open, setOpen] = useState(false);\n if (typeof content === \"undefined\") return props.children;\n return (\n <Tooltip\n // @ts-ignore\n content={content}\n className={classNames?.content}\n open={open}\n onOpenChange={setOpen}\n arrow={{ className: classNames?.arrow }}\n >\n <div onClick={() => setOpen((e) => !e)}>{props.children}</div>\n </Tooltip>\n );\n};\n\nexport const Fee: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex justify=\"end\" gapX={1} mt={1}>\n <Text size=\"2xs\" intensity={36}>\n {t(\"common.fee\")}:\n </Text>\n <Text size=\"2xs\" intensity={80}>\n {props.item?.total_fee ?? \"--\"}\n </Text>\n </Flex>\n );\n};\n\nexport const TrailingCallback: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const { callback_value, callback_rate } = item;\n\n return (\n <Statistic\n label={t(\"orderEntry.trailing\")}\n align=\"end\"\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {callback_rate ? (\n <Text intensity={80}>{`${callback_rate * 100}%`}</Text>\n ) : (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {callback_value ?? \"--\"}\n </Text.numeral>\n )}\n </Statistic>\n );\n};\n\nexport const TrailingPrice: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const value = useMemo(() => {\n return getTrailingStopPrice(item);\n }, [item]);\n\n return (\n <Statistic\n label={t(\"common.price\")}\n align=\"start\"\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {value ? (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {value}\n </Text.numeral>\n ) : (\n \"--\"\n )}\n </Statistic>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, EditIcon, Flex, Text, modal } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { MobileTooltip } from \"../items\";\nimport { BracketOrderPriceState } from \"./bracketOrderPrice.script\";\n\nexport const BracketOrderPrice: FC<BracketOrderPriceState> = (props) => {\n const { t } = useTranslation();\n\n const onEdit = () => {\n modal.show(\"EditBracketOrderSheetId\", {\n order: props.order,\n });\n };\n\n if (!props.sl_trigger_price && !props.tp_trigger_price) return <></>;\n\n return (\n <Flex gap={1} itemAlign={\"center\"} justify={\"start\"}>\n <MobileTooltip\n classNames={{\n content: \"oui-bg-base-6 oui-ml-2\",\n arrow: \"oui-fill-base-6\",\n }}\n content={\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {typeof props.pnl?.tpPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.tpPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={props.quote_dp}\n color=\"buy\"\n showIdentifier\n >\n {props.pnl?.tpPnL}\n </Text.numeral>\n )}\n {typeof props.pnl?.slPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.slPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={props.quote_dp}\n color=\"sell\"\n >\n {props.pnl?.slPnL}\n </Text.numeral>\n )}\n </Flex>\n }\n >\n <button\n onClick={() => {\n props.setOpen(!props.open);\n }}\n >\n <Flex gap={1} width={\"1\"}>\n {props.tp_trigger_price && (\n <Price\n type=\"TP\"\n value={props.tp_trigger_price}\n quote_dp={props.quote_dp}\n />\n )}\n {props.sl_trigger_price && (\n <Price\n type=\"SL\"\n value={props.sl_trigger_price}\n quote_dp={props.quote_dp}\n />\n )}\n </Flex>\n </button>\n </MobileTooltip>\n <EditIcon\n onClick={onEdit}\n opacity={1}\n className=\"oui-cursor-pointer oui-text-base-contrast-54\"\n size={16}\n />\n </Flex>\n );\n};\n\nconst Price = (props: {\n type: \"TP\" | \"SL\";\n value?: number | string;\n quote_dp: number;\n}) => {\n const { type, value, quote_dp } = props;\n\n return value ? (\n <Text.numeral\n size=\"2xs\"\n className={cn(\n \"oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n type === \"TP\" ? \"oui-text-trade-profit\" : \"oui-text-trade-loss\",\n )}\n key={\"tp\"}\n rule=\"price\"\n dp={quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n // @ts-ignore\n prefix={\n <span className={\"oui-text-base-contrast-36\"}>\n {`${type} `}: \n </span>\n }\n >\n {value}\n </Text.numeral>\n ) : (\n <></>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { utils } from \"@orderly.network/hooks\";\nimport { calcBracketRoiAndPnL } from \"../../../../utils/util\";\nimport { OrderCellState } from \"../orderCell.script\";\n\nexport const useBracketOrderPriceScript = (props: OrderCellState) => {\n const { item: order, quote_dp } = props;\n\n const [open, setOpen] = useState(false);\n\n const { sl_trigger_price, tp_trigger_price } = useMemo(() => {\n if (!(\"algo_type\" in order) || !Array.isArray(order.child_orders)) {\n return {};\n }\n return utils.findTPSLFromOrder(order.child_orders[0]);\n }, [order]);\n\n const { pnl } = calcBracketRoiAndPnL(order);\n\n return {\n sl_trigger_price,\n order,\n tp_trigger_price,\n pnl,\n quote_dp,\n open,\n setOpen,\n };\n};\n\nexport type BracketOrderPriceState = ReturnType<\n typeof useBracketOrderPriceScript\n>;\n","import { FC } from \"react\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useBracketOrderPriceScript } from \"./bracketOrderPrice.script\";\nimport { BracketOrderPrice } from \"./bracketOrderPrice.ui\";\n\nexport const BracketOrderPriceWidget: FC<OrderCellState> = (props) => {\n const state = useBracketOrderPriceScript(props);\n return <BracketOrderPrice {...state} />;\n};\n","export { BracketOrderPrice } from \"./bracketOrderPrice.ui\";\nexport { BracketOrderPriceWidget } from \"./bracketOrderPrice.widget\";\nexport { useBracketOrderPriceScript } from \"./bracketOrderPrice.script\";\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Button, SimpleDialog, Text } from \"@orderly.network/ui\";\nimport { CancelBtnState } from \"./cancelBtn.script\";\n\nexport const CancelBtn: FC<CancelBtnState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Button\n variant=\"outlined\"\n fullWidth\n color=\"secondary\"\n size=\"sm\"\n className=\"oui-border-base-contrast-36\"\n onClick={(e) => props.onCancel(e)}\n >\n {t(\"common.cancel\")}\n </Button>\n );\n};\n","import { FC, useState } from \"react\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { toast } from \"@orderly.network/ui\";\n\nexport const useCancelBtnScript = (props: { state: OrderCellState }) => {\n const { state } = props;\n const [open, setOpen] = useState(false);\n\n const { onCancelOrder } = useOrderListContext();\n const [isLoading, setIsLoading] = useState(false);\n\n const onCancel = (event?: any) => {\n if (!onCancelOrder) return Promise.resolve();\n event?.preventDefault();\n event?.stopPropagation();\n setIsLoading(true);\n return onCancelOrder(state.item)\n .then(\n (res: any) => {\n setOpen(false);\n },\n (error: any) => {\n toast.error(error.message);\n }\n ).finally(() => {\n setIsLoading(false);\n });\n };\n\n const onClose = () => {\n setOpen(false);\n };\n\n return {\n ...state,\n\n open,\n setOpen,\n onCancel,\n onClose,\n isLoading,\n };\n};\n\nexport type CancelBtnState = ReturnType<typeof useCancelBtnScript>;\n","import { FC } from \"react\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useCancelBtnScript } from \"./cancelBtn.script\";\nimport { CancelBtn } from \"./cancelBtn.ui\";\n\nexport const CancelBtnWidget = (props: { state: OrderCellState }) => {\n const state = useCancelBtnScript(props);\n return <CancelBtn {...state} />;\n};\n","export { CancelBtn } from \"./cancelBtn.ui\";\nexport { CancelBtnWidget } from \"./cancelBtn.widget\";\nexport { useCancelBtnScript } from \"./cancelBtn.script\";\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Button } from \"@orderly.network/ui\";\nimport { EditBtnState } from \"./editBtn.script\";\n\nexport const EditBtn: FC<EditBtnState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <>\n <Button\n variant=\"outlined\"\n fullWidth\n color=\"secondary\"\n size=\"sm\"\n className=\"oui-border-base-contrast-36\"\n onClick={() => {\n props.onShowEditSheet();\n }}\n >\n {t(\"common.edit\")}\n </Button>\n </>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { OrderValidationResult } from \"@orderly.network/hooks\";\nimport { OrderlyOrder } from \"@orderly.network/types\";\nimport { SymbolContextState } from \"../../../../provider/symbolContext\";\n\nexport type EditSheetContextState = {\n symbolInfo: SymbolContextState;\n getErrorMsg: (\n key: keyof OrderValidationResult,\n customValue?: string,\n ) => string;\n setOrderValue: (key: keyof OrderlyOrder, value: any) => void;\n};\n\nexport const EditSheetContext = createContext({} as EditSheetContextState);\n\nexport function useEditSheetContext() {\n return useContext(EditSheetContext);\n}\n","import { memo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype ActivitedPriceInputProps = {\n activated_price?: string | number;\n disabled?: boolean;\n};\n\nexport const ActivitedPriceInput = memo((props: ActivitedPriceInputProps) => {\n const { activated_price } = props;\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const error = activated_price\n ? getErrorMsg(\"activated_price\")\n : t(\"orderEntry.triggerPrice.error.required\");\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.trigger\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]}\n value={activated_price}\n onValueChange={(val) => setOrderValue(\"activated_price\", val)}\n disabled={props.disabled}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-5 oui-max-w-[360px]\",\n },\n arrow: {\n className: \"oui-fill-base-5\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nActivitedPriceInput.displayName = \"ActivitedPriceInput\";\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { Badge, Checkbox, Divider, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { parseBadgesFor } from \"../../../../../utils/util\";\nimport { EditSheetState } from \"../editSheet.script\";\n\nexport const ConfirmDialogContent: FC<EditSheetState> = (props) => {\n const { item } = props;\n const {\n formattedOrder,\n symbolInfo,\n isStopMarket,\n showTriggerPrice,\n isTrailingStop,\n } = props;\n const { t } = useTranslation();\n\n const showPrice = !isTrailingStop;\n const showActivatedPrice = isTrailingStop && formattedOrder.activated_price;\n const showTrailingCallback = isTrailingStop;\n\n const header = (\n <>\n <Text\n intensity={80}\n >{`You agree to edit your ${props.base}-PERP order.`}</Text>\n <Flex gap={2} mb={3} mt={2} justify={\"between\"}>\n <Text.formatted\n rule=\"symbol\"\n formatString=\"base-type\"\n size=\"base\"\n showIcon\n >\n {item.symbol}\n </Text.formatted>\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(item)?.map((e, index) => (\n <Badge\n key={index}\n color={\n e.toLocaleLowerCase() === \"position\" ? \"primary\" : \"neutral\"\n }\n size=\"xs\"\n >\n {e}\n </Badge>\n ))}\n {item.side === OrderSide.BUY ? (\n <Badge color=\"success\" size=\"xs\">\n {t(\"common.buy\")}\n </Badge>\n ) : (\n <Badge color=\"danger\" size=\"xs\">\n {t(\"common.sell\")}\n </Badge>\n )}\n </Flex>\n </Flex>\n </>\n );\n\n const triggerPriceItem = showTriggerPrice && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.triggerPrice\")}</Text>\n <Text.numeral\n intensity={80}\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n suffix={<Text intensity={54}>{\" USDC\"}</Text>}\n >\n {formattedOrder.trigger_price ?? \"--\"}\n </Text.numeral>\n </Flex>\n );\n\n const priceItem = showPrice && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.price\")}</Text>\n <Text.numeral\n intensity={80}\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n suffix={<Text intensity={54}>{\" USDC\"}</Text>}\n placeholder={isStopMarket ? t(\"common.marketPrice\") : \"--\"}\n >\n {isStopMarket\n ? t(\"common.marketPrice\")\n : (formattedOrder.order_price ?? \"--\")}\n </Text.numeral>\n </Flex>\n );\n\n const activatedPriceItem = showActivatedPrice && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.triggerPrice\")}</Text>\n {formattedOrder.activated_price ? (\n <Text.numeral\n intensity={80}\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n suffix={<Text intensity={54}>{\" USDC\"}</Text>}\n >\n {formattedOrder.activated_price}\n </Text.numeral>\n ) : (\n t(\"common.marketPrice\")\n )}\n </Flex>\n );\n\n const trailingCallbackItem = showTrailingCallback && (\n <>\n {formattedOrder.callback_value && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"orderEntry.trailingValue\")}</Text>\n <Text.numeral\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {formattedOrder.callback_value}\n </Text.numeral>\n </Flex>\n )}\n {formattedOrder.callback_rate && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"orderEntry.trailingRate\")}</Text>\n <Text className=\"oui-text-base-contrast\">\n {formattedOrder.callback_rate}%\n </Text>\n </Flex>\n )}\n </>\n );\n\n const quantityItem = (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.qty\")}</Text>\n <Text.numeral\n color={item.side === OrderSide.BUY ? \"buy\" : \"sell\"}\n dp={symbolInfo.base_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {formattedOrder.order_quantity}\n </Text.numeral>\n </Flex>\n );\n\n const orderConfirmCheckbox = (\n <Flex className=\"oui-gap-[2px]\">\n <Checkbox\n color=\"white\"\n id=\"oui-checkbox-disableOrderConfirmation\"\n checked={!props.orderConfirm}\n onCheckedChange={(e: boolean) => {\n props.setOrderConfirm(!e);\n }}\n />\n <label\n className=\"oui-text-2xs oui-text-base-contrast-54\"\n htmlFor=\"oui-checkbox-disableOrderConfirmation\"\n >\n {t(\"orderEntry.disableOrderConfirm\")}\n </label>\n </Flex>\n );\n\n return (\n <div className=\"oui-pt-2\">\n {header}\n <Divider />\n <Flex\n direction={\"column\"}\n gap={1}\n width={\"100%\"}\n className=\"oui-text-sm oui-text-base-contrast-54\"\n py={3}\n >\n {triggerPriceItem}\n {priceItem}\n {quantityItem}\n {activatedPriceItem}\n {trailingCallbackItem}\n </Flex>\n\n {orderConfirmCheckbox}\n </div>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderSide } from \"@orderly.network/types\";\nimport { Badge, Flex, Text } from \"@orderly.network/ui\";\nimport { parseBadgesFor } from \"../../../../../utils/util\";\n\ntype EditSheetHeaderProps = {\n item: API.AlgoOrderExt;\n};\n\nexport const EditSheetHeader = (props: EditSheetHeaderProps) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Flex width={\"100%\"} justify={\"between\"}>\n <Text.formatted rule={\"symbol\"} showIcon intensity={80}>\n {item.symbol}\n </Text.formatted>\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(props.item)?.map((e, index) => (\n <Badge\n key={index}\n color={e.toLocaleLowerCase() === \"position\" ? \"primary\" : \"neutral\"}\n size=\"xs\"\n >\n {e}\n </Badge>\n ))}\n {item.side === OrderSide.BUY ? (\n <Badge color=\"success\" size=\"xs\">\n {t(\"common.buy\")}\n </Badge>\n ) : (\n <Badge color=\"danger\" size=\"xs\">\n {t(\"common.sell\")}\n </Badge>\n )}\n </Flex>\n </Flex>\n );\n};\n","import { memo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype PriceInputProps = {\n order_price?: string | number;\n disabled?: boolean;\n};\n\nexport const PriceInput = memo((props: PriceInputProps) => {\n const [focus, setFocus] = useState(false);\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const error =\n getErrorMsg(\"order_price\") || (focus ? getErrorMsg(\"total\") : \"\");\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.price\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]}\n disabled={props.disabled}\n value={props.order_price}\n onValueChange={(val) => setOrderValue(\"order_price\", val)}\n onBlur={() => {\n setFocus(false);\n }}\n onFocus={() => {\n setFocus(true);\n }}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-5\",\n },\n arrow: {\n className: \"oui-fill-base-5\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nPriceInput.displayName = \"PriceInput\";\n","import { memo, useState } from \"react\";\nimport { utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype QuantityInputProps = {\n value: string | number;\n};\n\nexport const QuantityInput = memo((props: QuantityInputProps) => {\n const [focus, setFocus] = useState(false);\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n\n const { base_dp, base_tick, base } = symbolInfo;\n\n const error =\n getErrorMsg(\"order_quantity\") || (focus ? getErrorMsg(\"total\") : \"\");\n\n const setQuantity = (val: string) => {\n setOrderValue(\"order_quantity\", val);\n };\n\n const onBlur = (value: string) => {\n if (base_tick && base_tick > 0) {\n const formatQty = utils.formatNumber(value, base_tick) ?? value;\n setQuantity(formatQty);\n }\n };\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.quantity\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {base}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(base_dp),\n // inputFormatter.rangeFormatter({ max: props.maxQty }),\n ]}\n value={props.value}\n onValueChange={setQuantity}\n onBlur={(event) => {\n onBlur(event.target.value);\n setFocus(false);\n }}\n onFocus={() => {\n setFocus(true);\n }}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-6\",\n },\n arrow: {\n className: \"oui-fill-base-6\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nQuantityInput.displayName = \"QuantityInput\";\n","import { memo, useMemo } from \"react\";\nimport { useThrottledCallback, utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Slider, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype QuantitySliderProps = {\n maxQty: number;\n quantity: string | number;\n};\n\nexport const QuantitySlider = memo((props: QuantitySliderProps) => {\n const { quantity, maxQty } = props;\n const { t } = useTranslation();\n\n const { symbolInfo, setOrderValue } = useEditSheetContext();\n const { base_dp, base_tick } = symbolInfo;\n\n const sliderValue = useMemo(() => {\n if (quantity && Number(quantity) !== 0 && maxQty !== 0) {\n const value = new Decimal(quantity)\n .div(maxQty)\n .mul(100)\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toNumber();\n return value;\n }\n return 0;\n }, [quantity, maxQty]);\n\n const sliderToQuantity = useThrottledCallback(\n (value: number) => {\n const newQty = new Decimal(value)\n .div(100)\n .mul(maxQty)\n .toDecimalPlaces(base_dp, Decimal.ROUND_DOWN)\n .toNumber();\n\n setOrderValue(\"order_quantity\", utils.formatNumber(newQty, base_tick));\n },\n 50,\n {},\n );\n\n const percentages =\n props.quantity && props.maxQty\n ? Math.min(Number(props.quantity) / props.maxQty, 1)\n : undefined;\n\n return (\n <>\n <Slider\n markCount={4}\n value={[sliderValue]}\n onValueChange={(e) => {\n sliderToQuantity(e[0]);\n }}\n color=\"primary\"\n />\n <Flex width={\"100%\"} justify={\"between\"}>\n <Text.numeral\n color=\"primary\"\n size=\"2xs\"\n dp={2}\n padding={false}\n rule=\"percentages\"\n >{`${percentages ?? 0}`}</Text.numeral>\n <Flex\n gap={1}\n onClick={() => {\n setOrderValue(\"order_quantity\", maxQty.toString());\n }}\n >\n <Text size=\"2xs\" color=\"primary\">\n {t(\"common.max\")}\n </Text>\n <Text.numeral intensity={54} size=\"2xs\" dp={base_dp}>\n {props.maxQty}\n </Text.numeral>\n </Flex>\n </Flex>\n </>\n );\n});\n\nQuantitySlider.displayName = \"QuantitySlider\";\n","import { memo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype TrailingCallbackInputProps = {\n isCallbackValue?: boolean;\n callback_value?: number;\n callback_rate?: number;\n};\n\nexport const TrailingCallbackInput = memo(\n (props: TrailingCallbackInputProps) => {\n const { isCallbackValue, callback_value, callback_rate } = props;\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const label = isCallbackValue\n ? t(\"orderEntry.trailingValue\")\n : t(\"orderEntry.trailingRate\");\n\n const field = isCallbackValue ? \"callback_value\" : \"callback_rate\";\n\n const suffix = isCallbackValue ? (\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n ) : (\n \"%\"\n );\n\n const error = getErrorMsg(field);\n\n const formatters = [\n inputFormatter.numberFormatter,\n inputFormatter.decimalPointFormatter,\n ];\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {label}\n </Text>\n }\n suffix={suffix}\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={\n isCallbackValue\n ? [\n ...formatters,\n inputFormatter.currencyFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]\n : [...formatters, inputFormatter.dpFormatter(1)]\n }\n value={isCallbackValue ? callback_value : callback_rate}\n onValueChange={(val) => setOrderValue(field, val)}\n tooltip={error}\n tooltipProps={{\n content: {\n // mobile max width\n className: \"oui-bg-base-5 oui-max-w-[360px]\",\n },\n arrow: {\n className: \"oui-fill-base-5\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n },\n);\n\nTrailingCallbackInput.displayName = \"TrailingCallbackInput\";\n","import { memo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype TriggerPriceInputProps = {\n trigger_price?: string | number;\n disabled?: boolean;\n};\n\nexport const TriggerPriceInput = memo((props: TriggerPriceInputProps) => {\n const { t } = useTranslation();\n\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const error = getErrorMsg(\"trigger_price\");\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.triggerPrice\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]}\n value={props.trigger_price}\n onValueChange={(val) => setOrderValue(\"trigger_price\", val)}\n disabled={props.disabled}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-6 oui-text-base-contrast-80\",\n },\n arrow: {\n className: \"oui-fill-base-6\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast oui-w-full\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nTriggerPriceInput.displayName = \"TriggerPriceInput\";\n","import { FC, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useOrderEntryFormErrorMsg } from \"@orderly.network/react-app\";\nimport {\n Button,\n Divider,\n Flex,\n SimpleDialog,\n Text,\n ThrottledButton,\n} from \"@orderly.network/ui\";\nimport { ActivitedPriceInput } from \"./components/activitedPriceInput\";\nimport { ConfirmDialogContent } from \"./components/editDialogContent\";\nimport { EditSheetContext } from \"./components/editSheetContext\";\nimport { EditSheetHeader } from \"./components/editSheetHeader\";\nimport { PriceInput } from \"./components/priceInput\";\nimport { QuantityInput } from \"./components/quantityInput\";\nimport { QuantitySlider } from \"./components/quantitySlider\";\nimport { TrailingCallbackInput } from \"./components/trailingCallbackInput\";\nimport { TriggerPriceInput } from \"./components/triggerPriceInput\";\nimport { EditSheetState } from \"./editSheet.script\";\n\nexport const EditSheet: FC<EditSheetState> = (props) => {\n const {\n item,\n symbolInfo,\n formattedOrder,\n isStopMarket,\n isTrailingStop,\n setOrderValue,\n errors,\n } = props;\n const { t } = useTranslation();\n\n const { getErrorMsg } = useOrderEntryFormErrorMsg(errors!);\n\n const disabled =\n !props.isChanged ||\n Object.keys(errors!).length > 0 ||\n // when activated price is not empty, the activated price input should not be empty\n (!!item.activated_price && !formattedOrder.activated_price);\n\n const header = <EditSheetHeader item={item} />;\n\n const lastPrice = (\n <Flex width={\"100%\"} justify={\"between\"}>\n <Text>{t(\"common.lastPrice\")}</Text>\n <Text.numeral dp={symbolInfo.quote_dp}>\n {props.markPrice ?? \"--\"}\n </Text.numeral>\n </Flex>\n );\n\n const triggerPriceInput = props.showTriggerPrice && (\n <TriggerPriceInput\n trigger_price={formattedOrder.trigger_price}\n disabled={!!item.is_triggered}\n />\n );\n\n const renderPriceInput = () => {\n if (isTrailingStop) {\n return (\n item.activated_price && (\n <ActivitedPriceInput\n activated_price={formattedOrder.activated_price}\n disabled={item.is_activated}\n />\n )\n );\n }\n\n return (\n <PriceInput\n order_price={\n isStopMarket\n ? t(\"orderEntry.orderType.market\")\n : formattedOrder.order_price\n }\n disabled={isStopMarket}\n />\n );\n };\n\n const trailingCallbackInput = isTrailingStop && (\n <TrailingCallbackInput\n isCallbackValue={!!item.callback_value}\n callback_value={formattedOrder.callback_value}\n callback_rate={formattedOrder.callback_rate}\n />\n );\n\n const quantityInput = <QuantityInput value={formattedOrder.order_quantity} />;\n\n const quantitySlider = (\n <QuantitySlider\n maxQty={props.maxQty}\n quantity={formattedOrder.order_quantity}\n />\n );\n\n const buttons = (\n <Flex width={\"100%\"} gap={3} mt={2}>\n <Button\n fullWidth\n color=\"secondary\"\n onClick={(e) => {\n props.onClose();\n }}\n >\n {t(\"common.cancel\")}\n </Button>\n <ThrottledButton\n fullWidth\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.onSheetConfirm();\n }}\n loading={props.submitting}\n disabled={disabled}\n >\n {t(\"common.confirm\")}\n </ThrottledButton>\n </Flex>\n );\n\n const ctxValue = useMemo(() => {\n return {\n symbolInfo,\n getErrorMsg,\n setOrderValue,\n };\n }, [symbolInfo, getErrorMsg, setOrderValue]);\n\n return (\n <EditSheetContext.Provider value={ctxValue}>\n <Flex\n direction={\"column\"}\n gap={3}\n width={\"100%\"}\n itemAlign={\"start\"}\n className=\"oui-text-sm\"\n >\n {header}\n <Divider intensity={8} className=\"oui-w-full\" />\n {lastPrice}\n <Flex width={\"100%\"} direction={\"column\"} itemAlign={\"stretch\"} gap={2}>\n {triggerPriceInput}\n {renderPriceInput()}\n {trailingCallbackInput}\n {quantityInput}\n {quantitySlider}\n </Flex>\n {buttons}\n </Flex>\n\n <SimpleDialog\n open={props.dialogOpen}\n onOpenChange={props.setDialogOpen}\n title={t(\"orders.editOrder\")}\n size=\"xs\"\n actions={{\n primary: {\n label: t(\"common.confirm\"),\n onClick: props.onDialogConfirm,\n loading: props.submitting,\n fullWidth: true,\n },\n secondary: {\n label: t(\"common.cancel\"),\n onClick: props.onCloseDialog,\n fullWidth: true,\n },\n }}\n classNames={{\n content: \"oui-pb-4\",\n body: \"oui-p-0\",\n footer: \"oui-pt-3 oui-pb-0\",\n }}\n >\n <ConfirmDialogContent {...props} />\n </SimpleDialog>\n </EditSheetContext.Provider>\n );\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { useOrderEntity } from \"@orderly.network/hooks\";\nimport {\n API,\n OrderlyOrder,\n OrderSide,\n OrderType,\n} from \"@orderly.network/types\";\n\nexport const useEditOrderEntry = (props: {\n order: API.AlgoOrderExt;\n orderType: OrderType;\n maxQty: number;\n}) => {\n const { order, orderType, maxQty } = props;\n\n const [formattedOrder, setFormattedOrder] = useState({\n symbol: order.symbol,\n side: order.side as OrderSide,\n reduce_only: order.reduce_only,\n order_type: orderType,\n // TODO: trailing stop order edit price twice, order.price will be 0\n order_price: order.price || undefined,\n order_quantity: order.quantity,\n trigger_price: order.trigger_price,\n activated_price: order.activated_price,\n callback_value: order.callback_value,\n callback_rate: order.callback_rate ? order.callback_rate * 100 : undefined,\n });\n\n const { markPrice, errors, validate, clearErrors } = useOrderEntity(\n formattedOrder,\n {\n maxQty,\n },\n );\n\n const setOrderValue = useCallback((key: keyof OrderlyOrder, value: any) => {\n setFormattedOrder((oldValue) => ({\n ...oldValue,\n [key]: value,\n }));\n }, []);\n\n const {\n order_price,\n order_quantity,\n trigger_price,\n activated_price,\n callback_value,\n callback_rate,\n } = formattedOrder;\n\n const isChanged =\n (order.price && order.price != order_price) ||\n (order.quantity && order.quantity != order_quantity) ||\n (order.trigger_price && order.trigger_price != trigger_price) ||\n // trailing stop fields\n (order.activated_price && order.activated_price != activated_price) ||\n (order.callback_value && order.callback_value != callback_value) ||\n (order.callback_rate && order.callback_rate * 100 != callback_rate);\n\n useEffect(() => {\n if (isChanged) {\n validate()\n .then((order) => {\n console.log(\"validate success\", order);\n })\n .catch((err) => {\n console.log(\"validate error\", err);\n });\n } else {\n clearErrors();\n }\n }, [\n isChanged,\n order_price,\n order_quantity,\n trigger_price,\n activated_price,\n callback_value,\n callback_rate,\n ]);\n\n return {\n markPrice,\n errors,\n validate,\n setOrderValue,\n formattedOrder,\n isChanged,\n };\n};\n","import { useMemo } from \"react\";\nimport { useMaxQty } from \"@orderly.network/hooks\";\nimport { API, OrderSide } from \"@orderly.network/types\";\n\nexport function useEditOrderMaxQty(\n order: API.AlgoOrderExt,\n positionQty?: number,\n) {\n const { reduce_only } = order;\n\n const maxQty = useMaxQty(order.symbol, order.side as OrderSide, reduce_only);\n\n return useMemo(() => {\n if (reduce_only) {\n return Math.abs(positionQty ?? 0);\n }\n return order.quantity + Math.abs(maxQty);\n }, [order.quantity, maxQty, reduce_only, positionQty]);\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { API, OrderEntity, OrderType } from \"@orderly.network/types\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { toast, useModal } from \"@orderly.network/ui\";\nimport { convertApiOrderTypeToOrderEntryType } from \"../../../../utils/util\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useEditOrderEntry } from \"./hooks/useEditOrderEntry\";\nimport { useEditOrderMaxQty } from \"./hooks/useEditOrderMaxQty\";\n\nexport const useEditSheetScript = (props: {\n state: OrderCellState;\n position?: API.PositionTPSLExt;\n editAlgoOrder: (id: string, order: OrderEntity) => Promise<any>;\n editOrder: (id: string, order: OrderEntity) => Promise<any>;\n}) => {\n const { state, editAlgoOrder, editOrder, position } = props;\n const { item: order } = state;\n const { hide: onClose } = useModal();\n const [dialogOpen, setDialogOpen] = useState(false);\n const [submitting, setSubmitting] = useState(false);\n\n const isAlgoOrder =\n order.algo_order_id !== undefined &&\n order.algo_type !== AlgoOrderRootType.BRACKET;\n\n const isStopMarket = order?.type === \"MARKET\" && isAlgoOrder;\n const isTrailingStop = order.algo_type === OrderType.TRAILING_STOP;\n\n const showTriggerPrice = isAlgoOrder && !isTrailingStop;\n\n const orderType = useMemo(\n () => convertApiOrderTypeToOrderEntryType(order),\n [order],\n );\n\n const [orderConfirm, setOrderConfirm] = useLocalStorage(\n \"orderly_order_confirm\",\n true,\n );\n\n const maxQty = useEditOrderMaxQty(order, position?.position_qty);\n\n const {\n formattedOrder,\n setOrderValue,\n markPrice,\n errors,\n validate,\n isChanged,\n } = useEditOrderEntry({\n order,\n orderType,\n maxQty,\n });\n\n useEffect(() => {}, [order.price, formattedOrder.order_price]);\n\n const onCloseDialog = useCallback(() => {\n setDialogOpen(false);\n }, []);\n\n const onSubmit = useCallback(\n async (values: OrderEntity) => {\n let future;\n const isHidden =\n order.visible_quantity !== undefined\n ? order.visible_quantity === 0\n : (order as any).visible !== undefined\n ? (order as any).visible === 0\n : false;\n\n if (order.order_tag) {\n values.order_tag = order.order_tag;\n }\n\n if (order.client_order_id) {\n values.client_order_id = order.client_order_id;\n }\n\n if (order.algo_order_id !== undefined) {\n if (isTrailingStop) {\n if (values.callback_rate) {\n values = {\n ...values,\n callback_rate: (Number(values.callback_rate) / 100).toString(),\n };\n } else if (isStopMarket && \"order_price\" in values) {\n const { order_price, ...rest } = values;\n values = rest;\n }\n }\n\n future = editAlgoOrder(order.algo_order_id.toString(), {\n ...values,\n });\n } else {\n future = editOrder((order as any).order_id.toString(), {\n ...values,\n ...(isHidden ? { visible_quantity: 0 } : {}),\n });\n }\n try {\n setSubmitting(true);\n\n const res = await future;\n onClose();\n } catch (err: any) {\n toast.error(err?.message ?? `${err}`);\n } finally {\n setSubmitting(false);\n }\n },\n [editAlgoOrder, editOrder, isTrailingStop],\n );\n\n const onDialogConfirm = () => {\n if (formattedOrder) {\n return onSubmit(formattedOrder as any);\n }\n return Promise.reject();\n };\n\n const onSheetConfirm = () => {\n validate()\n .then(\n (result) => {\n if (orderConfirm) {\n setDialogOpen(true);\n } else {\n // @ts-ignore\n onSubmit(formattedOrder);\n }\n },\n (error) => {\n // rejected\n if (error?.total?.message) {\n toast.error(error?.total.message);\n }\n },\n )\n .catch((err) => {});\n };\n\n return {\n ...state,\n markPrice,\n isStopMarket,\n isTrailingStop,\n showTriggerPrice,\n formattedOrder,\n setOrderValue,\n maxQty,\n onClose,\n onSheetConfirm,\n errors,\n isChanged,\n dialogOpen,\n setDialogOpen,\n onDialogConfirm,\n onCloseDialog,\n submitting,\n\n orderConfirm,\n setOrderConfirm,\n };\n};\n\nexport type EditSheetState = ReturnType<typeof useEditSheetScript>;\n","import { API, OrderEntity } from \"@orderly.network/types\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useEditSheetScript } from \"./editSheet.script\";\nimport { EditSheet } from \"./editSheet.ui\";\n\ntype EditSheetWidgetProps = {\n state: OrderCellState;\n editAlgoOrder: (id: string, order: OrderEntity) => Promise<any>;\n editOrder: (id: string, order: OrderEntity) => Promise<any>;\n position?: API.PositionTPSLExt;\n};\n\nexport const EditSheetWidget = (props: EditSheetWidgetProps) => {\n const state = useEditSheetScript(props);\n return <EditSheet {...state} />;\n};\n","export { EditSheet } from \"./editSheet.ui\";\nexport { EditSheetWidget } from \"./editSheet.widget\";\nexport { useEditSheetScript } from \"./editSheet.script\";\n","import { useCallback } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { PositionTPSLSheet } from \"@orderly.network/ui-tpsl\";\nimport { TabType } from \"../../../orders.widget\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { useTPSLOrderRowContext } from \"../../tpslOrderRowContext\";\nimport { EditSheetWidget } from \"../editSheet\";\nimport { OrderCellState } from \"../orderCell.script\";\n\nexport const useEditBtnScript = (props: { state: OrderCellState }) => {\n const { state } = props;\n const { t } = useTranslation();\n const symbolInfo = useSymbolsInfo()[props.state.item.symbol]();\n\n const { editAlgoOrder, editOrder } = useOrderListContext();\n const { position } = useTPSLOrderRowContext();\n\n const onShowEditSheet = useCallback(() => {\n if (props.state.type === TabType.tp_sl) {\n modal\n .sheet({\n content: (\n <PositionTPSLSheet\n symbol={props.state.item.symbol}\n symbolInfo={symbolInfo}\n isEditing\n order={props.state.item}\n />\n ),\n })\n .catch((error) => {\n console.log(error);\n });\n } else {\n modal\n .sheet({\n title: t(\"orders.editOrder\"),\n // size: \"xs\",\n classNames: {\n content: \"oui-bg-base-8\",\n },\n content: (\n <EditSheetWidget\n state={state}\n position={position}\n editAlgoOrder={editAlgoOrder}\n editOrder={editOrder}\n />\n ),\n })\n .catch((error) => {\n console.log(error);\n });\n }\n }, [state]);\n\n return {\n ...state,\n onShowEditSheet,\n };\n};\n\nexport type EditBtnState = ReturnType<typeof useEditBtnScript>;\n","import { OrderCellState } from \"../orderCell.script\";\nimport { useEditBtnScript } from \"./editBtn.script\";\nimport { EditBtn } from \"./editBtn.ui\";\n\nexport const EditBtnWidget = (props: { state: OrderCellState }) => {\n const state = useEditBtnScript(props);\n return <EditBtn {...state} />;\n};\n","export { EditBtn } from \"./editBtn.ui\";\nexport { EditBtnWidget } from \"./editBtn.widget\";\nexport { useEditBtnScript } from \"./editBtn.script\";\n","import React, { FC } from \"react\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { Divider, Flex, Grid, Text } from \"@orderly.network/ui\";\nimport { TabType } from \"../../orders.widget\";\nimport { BracketOrderPriceWidget } from \"./bracketOrderPrice\";\nimport { CancelBtnWidget } from \"./cancelBtn\";\nimport { EditBtnWidget } from \"./editBtn\";\nimport {\n OrderTime,\n SymbolToken,\n OrderTypeView,\n Qty,\n Filled,\n EstTotal,\n TriggerPrice,\n LimitPrice,\n MarkPrice,\n TPTrigger,\n TPPrice,\n TPSLQuantity,\n SLTrigger,\n SLPrice,\n AvgPrice,\n OrderPrice,\n RealizedPnL,\n OrderState,\n Fee,\n TrailingCallback,\n TrailingPrice,\n} from \"./items\";\nimport { OrderCellState } from \"./orderCell.script\";\n\nexport const OrderCell: FC<\n OrderCellState & {\n className?: string;\n }\n> = (props) => {\n return (\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n gap={2}\n itemAlign={\"start\"}\n className={props.className}\n >\n <Header {...props} />\n <Divider intensity={6} className=\"oui-w-full\" />\n <Body {...props} />\n {props.type === TabType.pending && <BracketOrderPriceWidget {...props} />}\n {props.type !== TabType.orderHistory && <Btns {...props} />}\n </Flex>\n );\n};\n\nexport const Header: FC<OrderCellState> = (props) => {\n return (\n <Flex direction={\"column\"} gap={1} width={\"100%\"}>\n <Flex justify={\"between\"} width={\"100%\"}>\n <SymbolToken {...props} />\n <OrderTime {...props} />\n </Flex>\n <Flex width={\"100%\"} justify={\"between\"}>\n <OrderTypeView {...props} />\n {props.type === TabType.orderHistory && <OrderState {...props} />}\n </Flex>\n </Flex>\n );\n};\n\nexport const Body: FC<OrderCellState> = (props) => {\n return (\n <Grid cols={3} rows={2} width={\"100%\"} gap={1}>\n {itemsWithType(props)}\n </Grid>\n );\n};\n\nexport const Btns: FC<OrderCellState> = (props) => {\n return (\n <Grid cols={3} rows={1} width={\"100%\"} gap={2}>\n <div></div>\n <EditBtnWidget state={props} />\n <CancelBtnWidget state={props} />\n </Grid>\n );\n};\n\nfunction itemsWithType(props: OrderCellState) {\n switch (props.type) {\n case TabType.all:\n return <></>;\n case TabType.pending:\n const isTrailingStop =\n props.item?.algo_type === AlgoOrderRootType.TRAILING_STOP;\n\n if (isTrailingStop) {\n return (\n <>\n <Qty {...props} />\n <Filled {...props} />\n <EstTotal {...props} />\n <TriggerPrice {...props} isPending={true} />\n <TrailingPrice {...props} />\n <TrailingCallback {...props} />\n </>\n );\n }\n\n return (\n <>\n <Qty {...props} />\n <Filled {...props} />\n <EstTotal {...props} />\n <TriggerPrice {...props} isPending={true} />\n <LimitPrice {...props} />\n <MarkPrice {...props} />\n </>\n );\n\n case TabType.tp_sl:\n return (\n <>\n <TPTrigger {...props} />\n <TPPrice {...props} />\n <TPSLQuantity {...props} />\n <SLTrigger {...props} />\n <SLPrice {...props} />\n </>\n );\n case TabType.filled:\n return <></>;\n case TabType.cancelled:\n return <></>;\n case TabType.rejected:\n return <></>;\n case TabType.orderHistory:\n return (\n <>\n <Qty {...props} />\n <Filled {...props} />\n <TriggerPrice {...props} align=\"end\" />\n <AvgPrice {...props} />\n <OrderPrice {...props} />\n <RealizedPnL {...props} />\n {/* placeholder */}\n <div></div>\n {/* placeholder */}\n <div></div>\n <Fee {...props} />\n </>\n );\n }\n}\n","import { API } from \"@orderly.network/types\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { TabType } from \"../../orders.widget\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\n\nexport const useOrderCellScript = (props: {\n item: API.AlgoOrderExt;\n index: number;\n type: TabType;\n sharePnLConfig?: SharePnLConfig;\n onSymbolChange?: (symbol: API.Symbol) => void;\n}) => {\n const symbolInfo = useSymbolContext();\n return {\n ...props,\n ...symbolInfo,\n // use symbolInfo replace ...symbolInfo\n symbolInfo,\n };\n};\n\nexport type OrderCellState = ReturnType<typeof useOrderCellScript>;\n","import { API } from \"@orderly.network/types\";\nimport { useOrderCellScript } from \"./orderCell.script\";\nimport { OrderCell } from \"./orderCell.ui\";\nimport { TabType } from \"../../orders.widget\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\n\nexport const OrderCellWidget = (props: {\n item: API.AlgoOrderExt;\n index: number;\n className?: string;\n type: TabType;\n sharePnLConfig?: SharePnLConfig;\n onSymbolChange?: (symbol: API.Symbol) => void;\n}) => {\n const { className, ...rest } = props;\n\n const state = useOrderCellScript(rest);\n return <OrderCell {...state} className={className} />;\n};\n","export { OrderCell } from \"./orderCell.ui\";\nexport { OrderCellWidget } from \"./orderCell.widget\";\nexport { useOrderCellScript } from \"./orderCell.script\";\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { getMinNotional, useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { useMemoizedFn } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderEntity } from \"@orderly.network/types\";\nimport { OrderListContext, OrderListContextState } from \"./orderListContext\";\n\nexport interface OrderListProviderProps {\n cancelOrder: (orderId: number, symbol: string) => Promise<any>;\n editOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n cancelAlgoOrder: (orderId: number, symbol: string) => Promise<any>;\n editAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n}\n\nexport const OrderListProvider: FC<\n PropsWithChildren<OrderListProviderProps>\n> = (props) => {\n const { cancelOrder, editOrder, cancelAlgoOrder, editAlgoOrder } = props;\n const { t } = useTranslation();\n const symbolsInfo = useSymbolsInfo();\n\n const onCancelOrder = useMemoizedFn(\n async (order: API.Order | API.AlgoOrder) => {\n if (order.algo_order_id !== undefined) {\n if (\n \"root_algo_order_id\" in order &&\n order.root_algo_order_id !== order.algo_order_id\n ) {\n return cancelAlgoOrder(order.root_algo_order_id, order.symbol);\n }\n\n return cancelAlgoOrder(order.algo_order_id, order.symbol).then(\n () => {},\n );\n }\n // @ts-ignore\n return cancelOrder(order.order_id, order.symbol).then(() => {\n // toast.success(\"Order canceled successfully\");\n });\n },\n );\n\n const checkMinNotional = useMemoizedFn(\n (symbol: string, price?: string | number, qty?: string | number) => {\n const { min_notional } = symbolsInfo[symbol]();\n const minNotional = getMinNotional({ price, qty, min_notional });\n if (minNotional !== undefined) {\n return t(\"orderEntry.total.error.min\", { value: minNotional });\n }\n },\n );\n\n const memoizedValue = useMemo<OrderListContextState>(() => {\n return {\n onCancelOrder,\n editOrder,\n editAlgoOrder,\n checkMinNotional,\n };\n }, [onCancelOrder, editOrder, editAlgoOrder, checkMinNotional]);\n\n return (\n <OrderListContext.Provider value={memoizedValue}>\n {props.children}\n </OrderListContext.Provider>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Flex,\n ListView,\n Button,\n Grid,\n Picker,\n DataFilter,\n cn,\n TableFeatures,\n} from \"@orderly.network/ui\";\nimport { AuthGuardDataTable } from \"@orderly.network/ui-connector\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport { grayCell } from \"../../utils/util\";\nimport { TabType } from \"../orders.widget\";\nimport { SymbolProvider } from \"../provider/symbolProvider\";\nimport { useOrderColumn } from \"./desktop/useColumn\";\nimport { OrderCellWidget } from \"./mobile\";\nimport { OrdersBuilderState } from \"./orderList.script\";\nimport { OrderListProvider } from \"./orderListProvider\";\nimport { TPSLOrderRowProvider } from \"./tpslOrderRowContext\";\n\nexport const DesktopOrderList: FC<\n OrdersBuilderState & { testIds?: { tableBody?: string } }\n> = (props) => {\n const { sharePnLConfig, ...rest } = props;\n const columns = useOrderColumn({\n _type: props.type,\n onSymbolChange: props.onSymbolChange,\n pnlNotionalDecimalPrecision: props.pnlNotionalDecimalPrecision,\n sharePnLConfig,\n symbolsInfo: props.symbolsInfo,\n });\n\n return (\n <OrderListProvider\n cancelOrder={props.cancelOrder}\n editOrder={props.updateOrder}\n cancelAlgoOrder={props.cancelAlgoOrder}\n editAlgoOrder={props.updateAlgoOrder}\n // cancelTPSLOrder={props.cancelTPSLOrder}\n >\n <Flex direction=\"column\" width=\"100%\" height=\"100%\" itemAlign=\"start\">\n {props.filterItems.length > 0 && (\n <DataFilter\n items={props.filterItems}\n onFilter={(value: any) => {\n props.onFilter(value);\n }}\n trailing={\n [TabType.pending, TabType.tp_sl].includes(props.type) && (\n <CancelAll {...props} />\n )\n }\n />\n )}\n <AuthGuardDataTable\n columns={columns}\n loading={props.isLoading}\n dataSource={props.dataSource}\n bordered\n ignoreLoadingCheck={true}\n testIds={{\n body: props.testIds?.tableBody,\n }}\n classNames={{\n header: \"oui-h-[38px]\",\n root: \"oui-items-start !oui-h-[calc(100%_-_49px)]\",\n }}\n onRow={(record, index) => {\n return {\n className: cn(\n \"oui-h-[48px]\",\n grayCell(record)\n ? \"oui-text-base-contrast-20\"\n : \"oui-text-base-contrast-80\",\n ),\n };\n }}\n generatedRowKey={(record, index) =>\n `${props.type}${index}${\n record.order_id || record.algo_order_id\n }_index${index}`\n }\n renderRowContainer={(record: any, index, children) => {\n if (\n props.type === TabType.tp_sl ||\n props.type === TabType.pending\n ) {\n children = (\n <TPSLOrderRowProvider order={record}>\n {children}\n </TPSLOrderRowProvider>\n );\n }\n\n return (\n <SymbolProvider symbol={record.symbol}>{children}</SymbolProvider>\n );\n }}\n pagination={props.pagination}\n manualPagination={props.manualPagination}\n features={[TableFeatures.DownloadFeature]}\n getTableInstance={(table) => {\n props.tableInstance.current = table;\n }}\n />\n </Flex>\n </OrderListProvider>\n );\n};\n\nexport const MobileOrderList: FC<\n OrdersBuilderState & {\n classNames?: { root?: string; cell?: string; content?: string };\n showFilter?: boolean;\n }\n> = (props) => {\n const { t } = useTranslation();\n\n return (\n <OrderListProvider\n cancelOrder={props.cancelOrder}\n editOrder={props.updateOrder}\n cancelAlgoOrder={props.cancelAlgoOrder}\n editAlgoOrder={props.updateAlgoOrder}\n // cancelTPSLOrder={props.cancelTPSLOrder}\n >\n <Grid\n cols={1}\n rows={2}\n className=\"oui-w-full oui-grid-rows-[auto,1fr]\"\n gap={2}\n >\n {/* <Filter\n items={props.filterItems}\n onFilter={(value: any) => {\n props.onFilter(value);\n }}\n className=\"oui-px-3\"\n \n /> */}\n\n {props.showFilter ? (\n <Flex gap={2} p={2} className=\"oui-rounded-b-xl oui-bg-base-9\">\n {props.filterItems.map((item) => {\n // not support range type\n if (item.type !== \"select\") {\n return null;\n }\n return (\n <Picker\n key={`item-${item.name}`}\n options={item.options}\n size={\"sm\"}\n value={item.value}\n className=\"oui-text-2xs oui-text-base-contrast-54 \"\n placeholder={\n item.name === \"side\"\n ? t(\"common.side.all\")\n : item.name === \"status\"\n ? t(\"common.status.all\")\n : \"\"\n }\n onValueChange={(value) => {\n //\n props.onFilter?.({ name: item.name, value: value });\n }}\n />\n );\n })}\n </Flex>\n ) : (\n <div></div>\n )}\n <ListView\n className={props.classNames?.root}\n contentClassName={props.classNames?.content}\n dataSource={props.dataSource}\n loadMore={props.loadMore}\n isLoading={props.isLoading}\n renderItem={(item, index) => {\n let children = (\n <OrderCellWidget\n item={item}\n index={index}\n className={props.classNames?.cell}\n type={props.type}\n onSymbolChange={props.onSymbolChange}\n sharePnLConfig={props.sharePnLConfig}\n />\n );\n if ([TabType.tp_sl, TabType.pending].includes(props.type)) {\n children = (\n <TPSLOrderRowProvider order={item}>\n {children}\n </TPSLOrderRowProvider>\n );\n }\n return (\n <SymbolProvider symbol={item.symbol}>{children}</SymbolProvider>\n );\n }}\n />\n </Grid>\n </OrderListProvider>\n );\n};\n\nconst CancelAll: FC<OrdersBuilderState> = (props) => {\n const { t } = useTranslation();\n const { symbol } = props;\n\n const formattedSymbol = symbol ? formatSymbol(symbol, \"base\") : symbol;\n\n return (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"xs\"\n disabled={(props.dataSource?.length ?? 0) == 0}\n className=\"disabled:oui-bg-transport\"\n onClick={(e) => props.onCancelAll()}\n data-testid={`oui-testid-dataList-${props.type.toLowerCase()}-cancelAll-button`}\n >\n {symbol\n ? t(\"orders.cancelAll.ofSymbol\", { symbol: formattedSymbol })\n : t(\"orders.cancelAll\")}\n </Button>\n );\n};\n","import { useMemo } from \"react\";\nimport { API, AlgoOrderRootType, OrderStatus } from \"@orderly.network/types\";\n\nexport const useFormatOrderHistory = (data: API.AlgoOrderExt[]) => {\n const formattedData = useMemo(() => {\n const _data: API.AlgoOrder[] = [];\n\n for (let index = 0; index < data.length; index++) {\n const element = data[index];\n // console.log(\"element\", element);\n if (\n element.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL ||\n element.algo_type === AlgoOrderRootType.TP_SL\n ) {\n if (\n element.algo_status !== OrderStatus.FILLED &&\n element.algo_status !== OrderStatus.PARTIAL_FILLED\n ) {\n for (let j = 0; j < element.child_orders.length; j++) {\n const e = element.child_orders[j];\n if (!e.is_activated || !e.trigger_price) {\n continue;\n }\n (e as any).parent_algo_type = element.algo_type;\n _data.push(e);\n }\n } else {\n // if order is filled then show only the filled order\n for (let j = 0; j < element.child_orders.length; j++) {\n const e = element.child_orders[j];\n if (\n !!e &&\n (e.algo_status === OrderStatus.FILLED ||\n e.algo_status === OrderStatus.PARTIAL_FILLED)\n ) {\n (e as any).parent_algo_type = element.algo_type;\n _data.push(e);\n }\n }\n }\n } else {\n _data.push(element);\n }\n }\n\n return _data;\n\n // data.map((item) => {});\n }, [data]);\n\n return formattedData;\n};\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n ForwardedRef,\n useImperativeHandle,\n} from \"react\";\nimport { differenceInDays, setHours, subDays, format } from \"date-fns\";\nimport {\n useLocalStorage,\n useOrderStream,\n useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport {\n AlgoOrderRootType,\n OrderStatus,\n OrderSide,\n API,\n} from \"@orderly.network/types\";\nimport { modal, usePagination, Text, Table } from \"@orderly.network/ui\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport { areDatesEqual } from \"../../utils/util\";\nimport { TabType } from \"../orders.widget\";\nimport { useFormatOrderHistory } from \"./useFormatOrderHistory\";\n\nexport type OrderListInstance = {\n download?: () => void;\n};\n\nexport type useOrderListScriptOptions = {\n type: TabType;\n ordersStatus?: OrderStatus;\n symbol?: string;\n enableLoadMore?: boolean;\n onSymbolChange?: (symbol: API.Symbol) => void;\n sharePnLConfig?: SharePnLConfig;\n filterConfig?: {\n side?: OrderSide | \"all\";\n range?: {\n from?: Date;\n to?: Date;\n };\n };\n pnlNotionalDecimalPrecision?: number;\n ref?: ForwardedRef<OrderListInstance>;\n};\n\nexport const useOrderListScript = (props: useOrderListScriptOptions) => {\n const {\n ordersStatus,\n type,\n enableLoadMore = false,\n onSymbolChange,\n filterConfig,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n } = props;\n const { t } = useTranslation();\n const symbolsInfo = useSymbolsInfo();\n\n const manualPagination = useMemo(() => {\n // pending and ts_sl list use client pagination\n return ordersStatus !== OrderStatus.INCOMPLETE;\n }, [ordersStatus]);\n\n const defaultPageSize = 50;\n const { page, pageSize, setPage, pagination, parsePagination } =\n usePagination({\n pageSize: defaultPageSize,\n });\n\n // when symbol change, reset page\n useEffect(() => {\n setPage(1);\n }, [props.symbol]);\n\n const {\n orderStatus,\n ordersSide,\n dateRange,\n filterItems,\n onFilter,\n filterDays,\n updateFilterDays,\n } = useFilter(type, {\n ordersStatus,\n setPage,\n filterConfig,\n });\n\n const includes = useMemo(() => {\n if (type === TabType.tp_sl) {\n return [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL];\n }\n return undefined;\n }, [type]);\n\n const excludes = useMemo(() => {\n if (type === TabType.pending) {\n return [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL];\n }\n return undefined;\n }, [type]);\n\n const tableInstance = useRef<Table<any>>();\n\n useImperativeHandle(props.ref, () => ({\n download: () => {\n const filename = `orders_${format(new Date(), \"yyyyMMdd_HHmmss\")}`;\n tableInstance.current?.download(filename);\n },\n }));\n\n const [\n data,\n {\n isLoading,\n loadMore,\n cancelOrder,\n updateOrder,\n cancelAlgoOrder,\n updateAlgoOrder,\n cancelAllPendingOrders,\n cancelAllTPSLOrders,\n meta,\n refresh,\n },\n ] = useOrderStream({\n symbol: props.symbol,\n status: orderStatus,\n side: ordersSide,\n page: enableLoadMore || !manualPagination ? undefined : page,\n // pending and ts_sl list get all data\n size: manualPagination ? pageSize : 500,\n sourceTypeAll: type === TabType.orderHistory,\n dateRange,\n includes,\n excludes,\n });\n\n const localPageSizeKey = `orderly_${type}_pageSize`;\n const [typePageSize, setTypePageSize] = useLocalStorage(\n localPageSizeKey,\n defaultPageSize,\n );\n\n useEffect(() => {\n if (typePageSize !== pageSize) {\n setTypePageSize(pageSize);\n }\n }, [pageSize, typePageSize]);\n\n const onCancelAll = useCallback(() => {\n const { title, content } = getDialogInfo(type, t, props.symbol);\n\n modal.confirm({\n title: title,\n content: <Text size=\"sm\">{content}</Text>,\n onCancel: async () => {},\n onOk: async () => {\n try {\n // await cancelAll(null, { source_type: \"ALL\" });\n if (type === TabType.tp_sl) {\n await cancelAllTPSLOrders(props.symbol);\n } else {\n await cancelAllPendingOrders(props.symbol);\n }\n refresh();\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 }, [type, t, props.symbol]);\n\n const formattedData = useFormatOrderHistory(data ?? []);\n\n const dataSource =\n useDataTap(type !== TabType.tp_sl ? formattedData : data, {\n fallbackData: [],\n }) ?? undefined;\n\n const _pagination = useMemo(() => {\n if (manualPagination) {\n return parsePagination(meta);\n }\n return pagination;\n }, [meta, manualPagination, parsePagination, pagination]);\n\n return {\n type,\n dataSource,\n isLoading,\n loadMore,\n cancelOrder,\n updateOrder,\n cancelAlgoOrder,\n updateAlgoOrder,\n pagination: _pagination,\n manualPagination,\n pnlNotionalDecimalPrecision,\n\n // filter\n onFilter,\n filterItems,\n onCancelAll,\n\n onSymbolChange,\n\n sharePnLConfig,\n tableInstance,\n symbolsInfo,\n filterDays,\n updateFilterDays,\n\n symbol: props.symbol,\n };\n};\n\nconst useFilter = (\n type: TabType,\n option: {\n ordersStatus?: OrderStatus | \"all\";\n setPage: (page: number) => void;\n filterConfig?: {\n side?: OrderSide | \"all\";\n range?: {\n from?: Date;\n to?: Date;\n };\n };\n },\n) => {\n const { t } = useTranslation();\n const [orderStatus, setOrderStatus] = useState<OrderStatus | \"all\">(\n option.ordersStatus ?? \"all\",\n );\n const [ordersSide, setOrdersSide] = useState<OrderSide | \"all\">(\n option.filterConfig?.side ?? \"all\",\n );\n\n /// default is 90d\n const [filterDays, setFilterDays] = useState<1 | 7 | 30 | 90 | null>(90);\n\n const defaultRange =\n option.filterConfig?.range ??\n (type === TabType.all || type === TabType.orderHistory\n ? formatDatePickerRange({\n to: new Date(),\n from: offsetEndOfDay(subDays(new Date(), 89)),\n })\n : {});\n\n const [dateRange, setDateRange] = useState<{\n from?: Date;\n to?: Date;\n }>(defaultRange);\n\n const updateFilterDays = (days: 1 | 7 | 30 | 90) => {\n setFilterDays(days);\n setDateRange({\n from: offsetStartOfDay(subDays(new Date(), days - 1)),\n to: offsetEndOfDay(new Date()),\n });\n option.setPage(1);\n };\n\n const onFilter = (filter: { name: string; value: any }) => {\n if (filter.name === \"side\") {\n setOrdersSide(filter.value);\n option.setPage(1);\n }\n\n if (filter.name === \"status\") {\n setOrderStatus(filter.value);\n option.setPage(1);\n }\n\n if (filter.name === \"dateRange\") {\n setDateRange(formatDatePickerRange(filter.value));\n option.setPage(1);\n\n const newDateRange = formatDatePickerRange(filter.value);\n if (newDateRange.from && newDateRange.to) {\n const diffDays =\n Math.abs(differenceInDays(newDateRange.from, newDateRange.to)) + 1;\n const dateRangeMap: { [key: number]: { from: Date; to: Date } } = {\n 1: {\n from: offsetStartOfDay(new Date())!,\n to: offsetEndOfDay(new Date())!,\n },\n 7: {\n from: offsetStartOfDay(subDays(new Date(), 6))!,\n to: offsetEndOfDay(new Date())!,\n },\n 30: {\n from: offsetStartOfDay(subDays(new Date(), 29))!,\n to: offsetEndOfDay(new Date())!,\n },\n 90: {\n from: offsetStartOfDay(subDays(new Date(), 89))!,\n to: offsetEndOfDay(new Date())!,\n },\n };\n\n const dateRange = dateRangeMap[diffDays];\n if (\n dateRange &&\n areDatesEqual(dateRange.from, newDateRange.from) &&\n areDatesEqual(dateRange.to, newDateRange.to)\n ) {\n setFilterDays(diffDays as any);\n } else {\n setFilterDays(null);\n }\n }\n }\n };\n\n const filterItems = useMemo((): any[] => {\n const sideFilter = {\n type: \"select\",\n name: \"side\",\n options: [\n {\n label: t(\"common.side.all\"),\n value: \"all\",\n },\n {\n label: t(\"common.buy\"),\n value: \"BUY\",\n },\n {\n label: t(\"common.sell\"),\n value: \"SELL\",\n },\n ],\n value: ordersSide,\n };\n\n const dateRangeFilter = {\n type: \"range\",\n name: \"dateRange\",\n value: dateRange,\n };\n\n const statusFilter = {\n type: \"select\",\n name: \"status\",\n options: [\n {\n label: t(\"common.status.all\"),\n value: \"all\",\n },\n {\n label: t(\"orders.status.pending\"),\n value: OrderStatus.INCOMPLETE,\n },\n {\n label: t(\"orders.status.filled\"),\n value: OrderStatus.FILLED,\n },\n {\n label: t(\"orders.status.partialFilled\"),\n value: OrderStatus.PARTIAL_FILLED,\n },\n {\n label: t(\"orders.status.canceled\"),\n value: OrderStatus.CANCELLED,\n },\n {\n label: t(\"orders.status.rejected\"),\n value: OrderStatus.REJECTED,\n },\n ],\n value: orderStatus,\n };\n switch (type) {\n case TabType.all:\n return [sideFilter, statusFilter, dateRangeFilter];\n case TabType.pending:\n return [sideFilter];\n case TabType.tp_sl:\n return [sideFilter];\n case TabType.filled:\n return [sideFilter];\n case TabType.cancelled:\n return [sideFilter];\n case TabType.rejected:\n return [sideFilter];\n case TabType.orderHistory:\n return [sideFilter, statusFilter, dateRangeFilter];\n }\n }, [type, ordersSide, orderStatus, dateRange, t]);\n\n return {\n filterItems,\n onFilter,\n ordersSide: ordersSide === \"all\" ? undefined : ordersSide,\n dateRange,\n orderStatus: orderStatus === \"all\" ? undefined : orderStatus,\n filterDays,\n updateFilterDays,\n };\n};\n\nexport type OrdersBuilderState = ReturnType<typeof useOrderListScript>;\nexport type FilterState = ReturnType<typeof useFilter>;\n\nexport const parseDateRangeForFilter = (dateRange: {\n from: Date;\n to?: Date;\n}) => {\n let { from, to } = dateRange;\n\n if (typeof to === \"undefined\") {\n to = new Date();\n }\n\n const diff = differenceInDays(from, to);\n\n // console.log(\"diff\", diff);\n\n if (diff === 0) {\n return [from, setHours(to, 23)];\n }\n\n return [from, to];\n};\n\nfunction offsetStartOfDay(date?: Date) {\n if (date == null) return date;\n\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n}\n\nfunction offsetEndOfDay(date?: Date) {\n if (date == null) return date;\n\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n}\n\nexport const formatDatePickerRange = (option: { from?: Date; to?: Date }) => ({\n from: offsetStartOfDay(option.from),\n to: offsetEndOfDay(option.to ?? option.from),\n});\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","import React, { forwardRef } from \"react\";\nimport { OrderSide, OrderStatus, API } from \"@orderly.network/types\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { TabType } from \"../orders.widget\";\nimport { OrderListInstance, useOrderListScript } from \"./orderList.script\";\nimport { DesktopOrderList, MobileOrderList } from \"./orderList.ui\";\n\nexport type DesktopOrderListWidgetProps = {\n type: TabType;\n ordersStatus?: OrderStatus;\n /** if has value, will be fetch current symbol orders*/\n symbol?: string;\n onSymbolChange?: (symbol: API.Symbol) => void;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n testIds?: {\n tableBody?: string;\n };\n};\n\nexport const DesktopOrderListWidget = forwardRef<\n OrderListInstance,\n DesktopOrderListWidgetProps\n>((props, ref) => {\n const { testIds, ...rest } = props;\n const state = useOrderListScript({ ...rest, ref });\n return <DesktopOrderList {...state} testIds={testIds} />;\n});\n\nexport const MobileOrderListWidget: React.FC<{\n type: TabType;\n ordersStatus?: OrderStatus;\n /** if has value, will be fetch current symbol orders*/\n symbol?: string;\n onSymbolChange?: (symbol: API.Symbol) => void;\n sharePnLConfig?: SharePnLConfig;\n classNames?: { root?: string; cell?: string; content?: string };\n showFilter?: boolean;\n filterConfig?: {\n side?: OrderSide | \"all\";\n range?: { from?: Date; to?: Date };\n };\n}> = (props) => {\n const state = useOrderListScript({ ...props, enableLoadMore: true });\n return (\n <MobileOrderList\n {...state}\n classNames={props.classNames}\n showFilter={props.showFilter}\n />\n );\n};\n","export { DesktopOrderList, MobileOrderList } from \"./orderList.ui\";\nexport {\n DesktopOrderListWidget,\n MobileOrderListWidget,\n} from \"./orderList.widget\";\nexport { useOrderListScript, type OrderListInstance } from \"./orderList.script\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport { TabPanel, Tabs } from \"@orderly.network/ui\";\nimport type { DesktopOrderListWidgetProps } from \"./orderList/orderList.widget\";\nimport { OrdersBuilderState } from \"./orders.script\";\nimport { TabType } from \"./orders.widget\";\n\nconst LazyDesktopOrderListWidget = React.lazy(() =>\n import(\"./orderList\").then((mod) => {\n return { default: mod.DesktopOrderListWidget };\n }),\n);\n\nexport const Orders: React.FC<OrdersBuilderState> = (props) => {\n const { t } = useTranslation();\n const { pnlNotionalDecimalPrecision, orderListRef } = props;\n const commonProps: Partial<DesktopOrderListWidgetProps> = {\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n };\n return (\n <Tabs\n defaultValue={props.current || TabType.all}\n variant=\"contained\"\n className=\"oui-h-full\"\n classNames={{\n tabsContent: \"oui-h-[calc(100%_-_28px)]\",\n }}\n >\n <TabPanel value={TabType.all} title={t(\"common.all\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.all}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n sharePnLConfig={props.sharePnLConfig}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.pending} title={t(\"orders.status.pending\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.pending}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.tp_sl} title={t(\"common.tpsl\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.tp_sl}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.filled} title={t(\"orders.status.filled\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.filled}\n ordersStatus={OrderStatus.FILLED}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n sharePnLConfig={props.sharePnLConfig}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.cancelled} title={t(\"orders.status.canceled\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.cancelled}\n ordersStatus={OrderStatus.CANCELLED}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.rejected} title={t(\"orders.status.rejected\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.rejected}\n ordersStatus={OrderStatus.REJECTED}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n {/* <TabPanel value={TabType.orderHistory} title={t(\"orders.orderHistory\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n type={TabType.orderHistory}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel> */}\n </Tabs>\n );\n};\n// ----------------- Orders ui component end -----------------\n","import { forwardRef } from \"react\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { OrderListInstance } from \"./orderList/orderList.script\";\nimport { useOrdersScript } from \"./orders.script\";\nimport { Orders } from \"./orders.ui\";\n\nexport enum TabType {\n all = \"all\",\n pending = \"pending\",\n tp_sl = \"tp_sl\",\n filled = \"filled\",\n cancelled = \"cancelled\",\n rejected = \"rejected\",\n orderHistory = \"orderHistory\",\n}\n\nexport type OrdersWidgetProps = {\n current?: TabType;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n};\n\nexport const OrdersWidget = forwardRef<OrderListInstance, OrdersWidgetProps>(\n (props, ref) => {\n const state = useOrdersScript({ ...props, ref });\n return <Orders {...state} />;\n },\n);\n","export {\n OrdersWidget,\n TabType,\n} from \"./components/orders.widget\";\nexport { useOrdersScript } from \"./components/orders.script\";\nexport type { OrdersBuilderState } from \"./components/orders.script\";\n\nexport * from \"./components/orderList\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/orders.script.ts","../src/utils/util.ts","../src/components/provider/symbolContext.tsx","../src/components/provider/symbolProvider.tsx","../src/components/shareButton/shareButton.ui.tsx","../src/components/shareButton/shareButton.script.tsx","../src/components/shareButton/shareButton.widget.tsx","../src/components/shareButton/index.ts","../src/components/orderList/desktop/avgPrice.tsx","../src/components/orderList/desktop/bracketOrderPrice.tsx","../src/components/orderList/orderListContext.tsx","../src/components/orderList/desktop/cancelBtn.tsx","../src/type.ts","../src/components/orderList/desktop/editOrder/confirmContent.tsx","../src/components/orderList/desktop/hooks/usePopoverState.ts","../src/components/orderList/desktop/hooks/useValidateField.ts","../src/components/orderList/desktop/components/editableCellInput.tsx","../src/components/orderList/desktop/components/previewCell.tsx","../src/components/orderList/desktop/components/activedPriceCell.tsx","../src/components/orderList/desktop/components/priceCell.tsx","../src/components/orderList/tpslOrderRowContext.tsx","../src/components/orderList/desktop/editOrder/innerInput.tsx","../src/components/orderList/desktop/components/quantityCell.tsx","../src/components/orderList/desktop/components/trailingCallbackCell.tsx","../src/components/orderList/desktop/components/triggerPriceCell.tsx","../src/components/orderList/desktop/renew.tsx","../src/components/orderList/desktop/tpslEdit.tsx","../src/components/orderList/desktop/tpslPrice.tsx","../src/components/orderList/desktop/tpslTriggerPrice.tsx","../src/components/orderList/desktop/useColumn.tsx","../src/components/orderList/mobile/items.tsx","../src/components/orderList/mobile/bracketOrderPrice/bracketOrderPrice.ui.tsx","../src/components/orderList/mobile/bracketOrderPrice/bracketOrderPrice.script.tsx","../src/components/orderList/mobile/bracketOrderPrice/bracketOrderPrice.widget.tsx","../src/components/orderList/mobile/bracketOrderPrice/index.ts","../src/components/orderList/mobile/cancelBtn/cancelBtn.ui.tsx","../src/components/orderList/mobile/cancelBtn/cancelBtn.script.tsx","../src/components/orderList/mobile/cancelBtn/cancelBtn.widget.tsx","../src/components/orderList/mobile/cancelBtn/index.ts","../src/components/orderList/mobile/editBtn/editBtn.ui.tsx","../src/components/orderList/mobile/editSheet/components/editSheetContext.ts","../src/components/orderList/mobile/editSheet/components/activitedPriceInput.tsx","../src/components/orderList/mobile/editSheet/components/editDialogContent.tsx","../src/components/orderList/mobile/editSheet/components/editSheetHeader.tsx","../src/components/orderList/mobile/editSheet/components/priceInput.tsx","../src/components/orderList/mobile/editSheet/components/quantityInput.tsx","../src/components/orderList/mobile/editSheet/components/quantitySlider.tsx","../src/components/orderList/mobile/editSheet/components/trailingCallbackInput.tsx","../src/components/orderList/mobile/editSheet/components/triggerPriceInput.tsx","../src/components/orderList/mobile/editSheet/editSheet.ui.tsx","../src/components/orderList/mobile/editSheet/hooks/useEditOrderEntry.ts","../src/components/orderList/mobile/editSheet/hooks/useEditOrderMaxQty.ts","../src/components/orderList/mobile/editSheet/editSheet.script.tsx","../src/components/orderList/mobile/editSheet/editSheet.widget.tsx","../src/components/orderList/mobile/editSheet/index.ts","../src/components/orderList/mobile/editBtn/editBtn.script.tsx","../src/components/orderList/mobile/editBtn/editBtn.widget.tsx","../src/components/orderList/mobile/editBtn/index.ts","../src/components/orderList/mobile/orderCell.ui.tsx","../src/components/orderList/mobile/orderCell.script.tsx","../src/components/orderList/mobile/orderCell.widget.tsx","../src/components/orderList/mobile/index.ts","../src/components/orderList/orderListProvider.tsx","../src/components/orderList/orderList.ui.tsx","../src/components/orderList/useFormatOrderHistory.ts","../src/components/orderList/orderList.script.tsx","../src/components/orderList/orderList.widget.tsx","../src/components/orderList/index.ts","../src/components/orders.ui.tsx","../src/components/orders.widget.tsx","../src/index.ts"],"names":["useOrdersScript","useRef","useImperativeHandle","AlgoOrderType","types","OrderType","i18n","AlgoOrderRootType","OrderStatus","status","quantity","OrderSide","utils","Decimal","createContext","useContext","useSymbolsInfo","useMemo","jsx","ShareIcon","useTranslation","useReferralInfo","useLeverageBySymbol","modal","memo","Text","Tooltip","Flex","jsxs","EditIcon","cn","Fragment","useState","ThrottledButton","toast","commify","Trans","Button","CloseIcon","useCallback","useEffect","useOrderEntity","useOrderEntryFormErrorMsg","order","errors","Input","EMPTY_LIST","inputFormatter","CheckIcon","commifyOptional","Popover","findTPSLFromOrder","findTPSLOrderPriceFromOrder","useMutation","useSWRConfig","useAccount","unstable_serialize","useMemoizedFn","position","PreviewCell","price","useMaxQty","sliderValue","PopoverRoot","PopoverTrigger","PopoverContent","Slider","useConfig","data","PositionTPSLPopover","useTpslPriceChecker","CloseToLiqPriceIcon","Badge","getTrailingStopPrice","estTotal","SharePnLDialogId","format","formatNum","AvgPrice","Statistic","side","BracketOrderPrice","Price","init_bracketOrderPrice","init_cancelBtn","Checkbox","Divider","useThrottledCallback","SimpleDialog","useModal","useLocalStorage","PositionTPSLSheet","Grid","getMinNotional","DesktopOrderList","MobileOrderList","DataFilter","AuthGuardDataTable","TableFeatures","Picker","ListView","formatSymbol","useOrderListScript","usePagination","useOrderStream","useDataTap","subDays","differenceInDays","dateRange","DesktopOrderListWidget","MobileOrderListWidget","forwardRef","React","Tabs","TabPanel","TabType","OrdersWidget"],"mappings":"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","file":"index.js","sourcesContent":["import { ForwardedRef, useImperativeHandle, useRef } from \"react\";\nimport { TabType } from \"./orders.widget\";\nimport { OrderListInstance } from \"./orderList/orderList.script\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\n\ntype UseOrdersScriptOptions = {\n current?: TabType;\n pnlNotionalDecimalPrecision?: number;\n ref: ForwardedRef<OrderListInstance>;\n sharePnLConfig?: SharePnLConfig\n};\n\nexport const useOrdersScript = (props: UseOrdersScriptOptions) => {\n const { current, pnlNotionalDecimalPrecision, sharePnLConfig } = props;\n\n const orderListRef = useRef<OrderListInstance>(null);\n\n useImperativeHandle(props.ref, () => ({\n download: () => {\n orderListRef.current?.download?.();\n },\n }));\n\n return {\n current,\n pnlNotionalDecimalPrecision,\n orderListRef,\n sharePnLConfig,\n };\n};\n\nexport type OrdersBuilderState = ReturnType<typeof useOrdersScript>;\n","import { utils } from \"@orderly.network/hooks\";\nimport { i18n } from \"@orderly.network/i18n\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport {\n AlgoOrderRootType,\n AlgoOrderType,\n API,\n OrderStatus,\n OrderType,\n} from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const upperCaseFirstLetter = (str: string) => {\n if (str === undefined) return str;\n if (str.length === 0) return str;\n if (str.length === 1) return str.charAt(0).toUpperCase();\n return str.charAt(0).toUpperCase() + str.toLowerCase().slice(1);\n};\n\n/**\n * order_type: LIMIT、MARKET、CLOSE_POSITION\n * algo_type: STOP、TPSL、positional_TPSL、BRACKET\n */\nexport function parseBadgesFor(record: any): undefined | string[] {\n const orderType = record.type;\n const algoType = record.algo_type;\n if (typeof orderType !== \"undefined\") {\n const list: string[] = [];\n\n if (!!record.parent_algo_type) {\n if (algoType === AlgoOrderType.STOP_LOSS) {\n const types =\n orderType === OrderType.CLOSE_POSITION\n ? [i18n.t(\"common.position\"), i18n.t(\"tpsl.sl\")]\n : [i18n.t(\"tpsl.sl\")];\n list.push(...types);\n }\n\n if (algoType === AlgoOrderType.TAKE_PROFIT) {\n const types =\n orderType === OrderType.CLOSE_POSITION\n ? [i18n.t(\"common.position\"), i18n.t(\"tpsl.tp\")]\n : [i18n.t(\"tpsl.tp\")];\n list.push(...types);\n }\n\n return list;\n }\n\n const type =\n typeof orderType === \"string\" ? orderType.replace(\"_ORDER\", \"\") : \"\";\n\n // bbo(ask, bid) order as a limit type\n if ([OrderType.ASK, OrderType.BID].includes(orderType)) {\n return [i18n.t(\"orderEntry.orderType.limit\")];\n }\n\n if (\n record.algo_order_id === undefined ||\n (record.algo_order_id && algoType === \"BRACKET\")\n ) {\n const typeMap = {\n [OrderType.LIMIT]: i18n.t(\"orderEntry.orderType.limit\"),\n [OrderType.MARKET]: i18n.t(\"orderEntry.orderType.market\"),\n [OrderType.POST_ONLY]: i18n.t(\"orderEntry.orderType.postOnly\"),\n [OrderType.IOC]: i18n.t(\"orderEntry.orderType.ioc\"),\n [OrderType.FOK]: i18n.t(\"orderEntry.orderType.fok\"),\n };\n\n return [\n typeMap[type as keyof typeof typeMap] || upperCaseFirstLetter(type),\n ];\n }\n\n if (algoType === AlgoOrderRootType.TRAILING_STOP) {\n return [i18n.t(\"orderEntry.orderType.trailingStop\")];\n }\n\n // stop limit, stop market\n if (type) {\n const typeMap = {\n [OrderType.LIMIT]: i18n.t(\"orderEntry.orderType.stopLimit\"),\n [OrderType.MARKET]: i18n.t(\"orderEntry.orderType.stopMarket\"),\n };\n return [typeMap[type as keyof typeof typeMap] || type];\n }\n }\n\n if (typeof algoType !== \"undefined\") {\n const list: string[] = [];\n\n if (algoType === AlgoOrderRootType.POSITIONAL_TP_SL) {\n list.push(i18n.t(\"common.position\"));\n }\n\n const tpOrder = record?.child_orders?.find(\n (order: any) =>\n order.algo_type === AlgoOrderType.TAKE_PROFIT && !!order.trigger_price,\n );\n\n const slOrder = record?.child_orders?.find(\n (order: any) =>\n order.algo_type === AlgoOrderType.STOP_LOSS && !!order.trigger_price,\n );\n\n if (tpOrder || slOrder) {\n list.push(\n tpOrder && slOrder\n ? i18n.t(\"common.tpsl\")\n : tpOrder\n ? i18n.t(\"tpsl.tp\")\n : i18n.t(\"tpsl.sl\"),\n );\n }\n\n return list;\n }\n\n return undefined;\n}\n\nexport function grayCell(record: any): boolean {\n return (\n (record as API.Order).status === OrderStatus.CANCELLED ||\n (record as API.AlgoOrder).algo_status === OrderStatus.CANCELLED\n );\n}\n\nexport function getOrderStatus(record: any) {\n return (record as API.Order).status || (record as API.AlgoOrder).algo_status;\n}\n\nexport function isGrayCell(status?: string): boolean {\n return status === OrderStatus.CANCELLED;\n}\n\nfunction findBracketTPSLOrder(order: API.AlgoOrderExt) {\n if (order.algo_type !== AlgoOrderRootType.BRACKET) {\n return {\n tpOrder: undefined,\n slOrder: undefined,\n };\n }\n\n const innerOrder = order.child_orders?.[0];\n if (!innerOrder)\n return {\n tpOrder: undefined,\n slOrder: undefined,\n };\n\n const tpOrder = innerOrder?.child_orders?.find(\n (item) => item.algo_type === AlgoOrderType.TAKE_PROFIT,\n );\n\n const slOrder = innerOrder?.child_orders?.find(\n (item) => item.algo_type === AlgoOrderType.STOP_LOSS,\n );\n\n return {\n tpOrder,\n slOrder,\n };\n}\n\nexport function calcBracketRoiAndPnL(order: API.AlgoOrderExt) {\n const defaultCallback = {\n pnl: {\n tpPnL: undefined,\n slPnL: undefined,\n },\n // roi: {\n // tpRoi: undefined,\n // slRoi: undefined,\n // },\n };\n const { tpOrder, slOrder } = findBracketTPSLOrder(order);\n if (!tpOrder && !slOrder) return defaultCallback;\n\n if (typeof order.price === undefined || !order.price) return defaultCallback;\n\n const quantity =\n order.side === OrderSide.BUY ? order.quantity : order.quantity * -1;\n\n const tpPnL =\n tpOrder?.trigger_price &&\n utils.priceToPnl({\n qty: quantity,\n price: tpOrder?.trigger_price,\n entryPrice: order.price,\n // @ts-ignore\n orderSide: order.side,\n // @ts-ignore\n orderType: tpOrder.algo_type,\n });\n const slPnL =\n slOrder?.trigger_price &&\n utils.priceToPnl({\n qty: quantity,\n // trigger price\n price: slOrder?.trigger_price,\n //\n entryPrice: order.price,\n // @ts-ignore\n orderSide: order.side,\n // @ts-ignore\n orderType: slOrder.algo_type,\n });\n\n // UI not show ROI, so we don't need to calculate ROI\n // const tpRoi = tpPnL\n // ? utils.calcTPSL_ROI({\n // pnl: tpPnL,\n // qty: order.quantity,\n // price: order.price,\n // })\n // : undefined;\n // const slRoi = slPnL\n // ? utils.calcTPSL_ROI({\n // pnl: slPnL,\n // qty: order.quantity,\n // price: order.price,\n // })\n // : undefined;\n\n return {\n pnl: {\n tpPnL,\n slPnL,\n },\n // roi: {\n // tpRoi,\n // slRoi,\n // },\n };\n}\n\nexport function areDatesEqual(date1?: Date, date2?: Date): boolean {\n if (!date1 || !date2) return false;\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n}\n\nexport function isTrailingStopOrder(order: API.AlgoOrderExt) {\n return order.algo_type === OrderType.TRAILING_STOP;\n}\n\nexport function getNotional(order: API.AlgoOrderExt, dp = 2) {\n if (order.price && order.quantity) {\n return new Decimal(order.price)\n .mul(order.quantity)\n .toFixed(dp, Decimal.ROUND_DOWN);\n }\n\n return 0;\n}\n/**\n * api order type ==> orderEntry type\n */\nexport function convertApiOrderTypeToOrderEntryType(order: API.AlgoOrderExt) {\n if (order.algo_type === OrderType.TRAILING_STOP) {\n return order.algo_type;\n }\n\n const isAlgoOrder = order.algo_order_id !== undefined;\n\n if (isAlgoOrder && order.algo_type !== AlgoOrderRootType.BRACKET) {\n return `STOP_${order.type}` as OrderType;\n }\n\n return order.type;\n}\n","import { createContext, useContext } from \"react\";\nimport type { API } from \"@orderly.network/types\";\n\nexport interface SymbolContextState {\n base_dp: number;\n quote_dp: number;\n base_tick: number;\n quote_tick: number;\n base: string;\n quote: string;\n symbol: string;\n origin: API.SymbolExt;\n quote_min: number;\n quote_max: number;\n}\n\nexport const SymbolContext = createContext<SymbolContextState>(\n {} as SymbolContextState,\n);\n\nexport const useSymbolContext = () => {\n return useContext<SymbolContextState>(SymbolContext);\n};\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { SymbolContext, SymbolContextState } from \"./symbolContext\";\n\ninterface FormatterProviderProps {\n symbol: string;\n}\n\nexport const SymbolProvider: FC<PropsWithChildren<FormatterProviderProps>> = (\n props,\n) => {\n const { symbol, children } = props;\n const symbolInfo = useSymbolsInfo()[symbol];\n const memoizedValue = useMemo<SymbolContextState>(() => {\n return {\n symbol: symbol,\n base_dp: symbolInfo(\"base_dp\"),\n quote_dp: symbolInfo(\"quote_dp\"),\n base_tick: symbolInfo(\"base_tick\"),\n quote_tick: symbolInfo(\"quote_tick\"),\n base: symbolInfo(\"base\"),\n quote: symbolInfo(\"quote\"),\n origin: symbolInfo(),\n quote_max: symbolInfo(\"quote_max\"),\n quote_min: symbolInfo(\"quote_min\"),\n };\n }, [symbol, symbolInfo]);\n return (\n <SymbolContext.Provider value={memoizedValue}>\n {children}\n </SymbolContext.Provider>\n );\n};\n","import { FC } from \"react\";\nimport { ShareIcon } from \"@orderly.network/ui\";\nimport { ShareButtonScriptReturn } from \"./shareButton.script\";\n\nexport const ShareButton: FC<ShareButtonScriptReturn> = (props) => {\n if (props.sharePnLConfig == null) {\n return null;\n }\n\n return (\n <button\n type=\"button\"\n onClick={(e: any) => {\n e.stopPropagation();\n props.showModal();\n }}\n >\n <ShareIcon color=\"white\" opacity={0.54} size={props.iconSize ?? 16} />\n </button>\n );\n};\n","import { useMemo } from \"react\";\nimport { useReferralInfo, useLeverageBySymbol } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\n\nexport type ShareButtonScriptReturn = ReturnType<typeof useShareButtonScript>;\n\nexport const useShareButtonScript = (props: {\n order: any;\n sharePnLConfig?: SharePnLConfig;\n modalId: string;\n iconSize?: number;\n}) => {\n const { sharePnLConfig, order, iconSize } = props;\n const { t } = useTranslation();\n const { getFirstRefCode } = useReferralInfo();\n const refCode = useMemo(() => {\n return getFirstRefCode()?.code;\n }, [getFirstRefCode]);\n const leverage = useLeverageBySymbol(order.symbol);\n\n const showModal = () => {\n modal.show(props.modalId, {\n pnl: {\n entity: {\n symbol: order.symbol,\n pnl: order.realized_pnl,\n side:\n order.side == \"BUY\"\n ? t(\"share.pnl.share.long\")\n : t(\"share.pnl.share.short\"),\n openPrice: order.average_executed_price,\n openTime: order.updated_time,\n quantity: order.quantity,\n },\n refCode,\n leverage,\n ...sharePnLConfig,\n },\n });\n };\n\n return {\n iconSize,\n sharePnLConfig,\n showModal,\n };\n};\n","import React from \"react\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { useShareButtonScript } from \"./shareButton.script\";\nimport { ShareButton } from \"./shareButton.ui\";\n\nexport const ShareButtonWidget: React.FC<{\n order: any;\n sharePnLConfig?: SharePnLConfig;\n modalId: string;\n iconSize?: number;\n}> = (props) => {\n const state = useShareButtonScript(props);\n return <ShareButton {...state} />;\n};\n","export { ShareButton } from \"./shareButton.ui\";\nexport { ShareButtonWidget } from \"./shareButton.widget\";\n","import { memo } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\n\ntype AvgPriceProps = {\n symbol: string;\n value: string;\n};\n\nexport const AvgPrice = memo((props: AvgPriceProps) => {\n const symbolsInfo = useSymbolsInfo();\n\n const info = symbolsInfo[props.symbol];\n\n if (!props.value) {\n return \"--\";\n }\n\n return (\n <Text.numeral\n padding={false}\n dp={info(\"quote_dp\", 2)}\n rm={Decimal.ROUND_UP}\n >\n {props.value}\n </Text.numeral>\n );\n});\n","import { useMemo } from \"react\";\nimport { utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API } from \"@orderly.network/types\";\nimport {\n Flex,\n Tooltip,\n Text,\n cn,\n EditIcon,\n useModal,\n modal,\n} from \"@orderly.network/ui\";\nimport { calcBracketRoiAndPnL } from \"../../../utils/util\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\n\nexport const BracketOrderPrice = (props: { order: API.AlgoOrderExt }) => {\n const { order } = props;\n const { quote_dp, base_dp } = useSymbolContext();\n const { t } = useTranslation();\n\n const { sl_trigger_price, tp_trigger_price } = useMemo(() => {\n if (!(\"algo_type\" in order) || !Array.isArray(order.child_orders)) {\n return {};\n }\n return utils.findTPSLFromOrder(props.order.child_orders[0]);\n }, [props.order]);\n\n const { pnl } = calcBracketRoiAndPnL(order);\n\n if (!tp_trigger_price && !sl_trigger_price) {\n return \"--\";\n }\n\n return (\n <Tooltip\n // @ts-ignore\n content={\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {typeof pnl.tpPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.tpPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={quote_dp}\n color=\"buy\"\n showIdentifier\n >\n {pnl.tpPnL}\n </Text.numeral>\n )}\n {typeof pnl.slPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.slPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={quote_dp}\n color=\"sell\"\n >\n {pnl.slPnL}\n </Text.numeral>\n )}\n </Flex>\n }\n className=\"oui-bg-base-6\"\n >\n <Flex itemAlign={\"center\"} justify={\"start\"} gap={2}>\n <Flex direction={\"column\"} justify={\"start\"} itemAlign={\"start\"}>\n <Price type=\"TP\" value={tp_trigger_price} quote_dp={quote_dp} />\n <Price type=\"SL\" value={sl_trigger_price} quote_dp={quote_dp} />\n </Flex>\n <EditBracketOrder order={order} />\n </Flex>\n </Tooltip>\n );\n};\n\nconst EditBracketOrder = (props: { order: API.AlgoOrderExt }) => {\n const { order } = props;\n\n const onEdit = () => {\n modal.show(\"EditBracketOrderDialogId\", {\n order,\n });\n };\n\n return (\n <EditIcon\n size={16}\n className=\"oui-text-base-contrast oui-cursor-pointer\"\n onClick={() => {\n onEdit();\n }}\n />\n );\n};\n\nconst Price = (props: {\n type: \"TP\" | \"SL\";\n value?: number | string;\n quote_dp: number;\n}) => {\n const { type, value, quote_dp } = props;\n const { t } = useTranslation();\n\n return value ? (\n <Text.numeral\n className={cn(\n \"oui-gap-0 oui-decoration-white/20 oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n type === \"TP\" ? \"oui-text-trade-profit\" : \"oui-text-trade-loss\",\n )}\n key={\"tp\"}\n rule=\"price\"\n dp={quote_dp}\n // @ts-ignore\n prefix={\n <span className={\"oui-text-base-contrast-54\"}>\n {type === \"TP\" ? `${t(\"tpsl.tp\")} -` : `${t(\"tpsl.sl\")} -`}\n \n </span>\n }\n >\n {value}\n </Text.numeral>\n ) : (\n <></>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { API, OrderEntity } from \"@orderly.network/types\";\n\nexport interface OrderListContextState {\n onCancelOrder: (order: API.Order | API.AlgoOrder) => Promise<any>;\n editOrder: (id: string, order: OrderEntity) => Promise<any>;\n editAlgoOrder: (id: string, order: OrderEntity) => Promise<any>;\n checkMinNotional: (\n symbol: string,\n price?: string | number,\n qty?: string | number,\n ) => string | undefined;\n}\n\nexport const OrderListContext = createContext<OrderListContextState>(\n {} as OrderListContextState,\n);\n\nexport const useOrderListContext = () => {\n return useContext(OrderListContext);\n};\n\nexport interface OrderListProviderProps {\n cancelOrder: (orderId: number, symbol: string) => Promise<any>;\n editOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n cancelAlgoOrder: (orderId: number, symbol: string) => Promise<any>;\n editAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n}\n","import { FC, useState } from \"react\";\nimport { API } from \"@orderly.network/types\";\nimport { ThrottledButton, toast } from \"@orderly.network/ui\";\nimport { useOrderListContext } from \"../orderListContext\";\nimport { useTranslation } from \"@orderly.network/i18n\";\n\nexport const CancelButton: FC<{\n order: API.Order;\n}> = (props) => {\n const { order } = props;\n const { t } = useTranslation();\n\n const { onCancelOrder } = useOrderListContext();\n const [isLoading, setIsLoading] = useState(false);\n\n return (\n <ThrottledButton\n size=\"sm\"\n variant={\"outlined\"}\n color={\"secondary\"}\n onClick={(event) => {\n if (!onCancelOrder) return;\n event.preventDefault();\n event.stopPropagation();\n setIsLoading(true);\n onCancelOrder(order)\n .then(\n (res: any) => res,\n (error: any) => {\n toast.error(error.message);\n }\n )\n .finally(() => {\n setIsLoading(false);\n });\n }}\n loading={isLoading}\n >\n {t(\"common.cancel\")}\n </ThrottledButton>\n );\n};\n","export enum EditType {\n quantity,\n price,\n triggerPrice,\n callbackValue,\n callbackRate,\n}\n","import { memo } from \"react\";\nimport { useTranslation, Trans } from \"@orderly.network/i18n\";\nimport { Button, CloseIcon, ThrottledButton } from \"@orderly.network/ui\";\nimport { commify } from \"@orderly.network/utils\";\nimport { EditType } from \"../../../../type\";\n\ntype ConfirmContentProps = {\n type: EditType;\n base: string;\n value: string;\n cancelPopover: () => void;\n isSubmitting: boolean;\n onConfirm: (e: any) => void;\n};\n\nexport const ConfirmContent = memo((props: ConfirmContentProps) => {\n const { type, base, value, cancelPopover, isSubmitting, onConfirm } = props;\n const { t } = useTranslation();\n\n const renderLabel = () => {\n const common = {\n values: { base, value: commify(value) },\n components: [<span key=\"0\" className=\"oui-text-warning-darken\" />],\n };\n\n switch (type) {\n case EditType.quantity:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.quantity\" {...common} />\n );\n case EditType.price:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.price\" {...common} />\n );\n case EditType.triggerPrice:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.triggerPrice\" {...common} />\n );\n case EditType.callbackValue:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.callbackValue\" {...common} />\n );\n case EditType.callbackRate:\n return (\n // @ts-ignore\n <Trans i18nKey=\"order.edit.confirm.callbackRate\" {...common} />\n );\n }\n };\n\n return (\n <div className=\"oui-relative oui-pt-5\">\n <div className=\"desktop:oui-text-sm oui-text-2xs oui-text-base-contrast-54\">\n {renderLabel()}\n </div>\n <div className=\"oui-mt-5 oui-grid oui-grid-cols-2 oui-gap-2\">\n <Button\n color=\"secondary\"\n size={\"md\"}\n onClick={cancelPopover}\n disabled={isSubmitting}\n >\n {t(\"common.cancel\")}\n </Button>\n <ThrottledButton size={\"md\"} loading={isSubmitting} onClick={onConfirm}>\n {t(\"common.confirm\")}\n </ThrottledButton>\n </div>\n <button\n className=\"oui-absolute oui-right-0 oui-top-0 oui-text-base-contrast-54\"\n onClick={cancelPopover}\n >\n <CloseIcon size={16} color=\"white\" opacity={1} />\n </button>\n </div>\n );\n});\n\nConfirmContent.displayName = \"ConfirmContent\";\n","import { useCallback, useEffect, useRef, useState, MouseEvent } from \"react\";\n\ntype PopoverStateProps = {\n originValue: string;\n value: string;\n setValue: (value: string) => void;\n};\n\nexport function usePopoverState(props: PopoverStateProps) {\n const { originValue, value, setValue } = props;\n\n const [open, setOpen] = useState(false);\n const [editing, setEditing] = useState(false);\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const closePopover = useCallback(() => {\n setOpen(false);\n setEditing(false);\n }, []);\n\n const cancelPopover = useCallback(() => {\n closePopover();\n setValue(originValue);\n }, [originValue]);\n\n const onClick = useCallback(\n async (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n // if value is not changed, then don't open popover\n if (value === originValue) {\n setEditing(false);\n return;\n }\n\n setOpen(true);\n },\n [value, originValue],\n );\n\n useEffect(() => {\n const handleClickOutside = (event: any) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node) &&\n !open\n ) {\n cancelPopover();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [open, cancelPopover]);\n\n return {\n value,\n setValue,\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n };\n}\n","import { useEffect, useMemo } from \"react\";\nimport { OrderValidationResult, useOrderEntity } from \"@orderly.network/hooks\";\nimport { useOrderEntryFormErrorMsg } from \"@orderly.network/react-app\";\nimport { API, OrderlyOrder, OrderSide } from \"@orderly.network/types\";\nimport { convertApiOrderTypeToOrderEntryType } from \"../../../../utils/util\";\n\nexport function useValidateField(props: {\n order: API.OrderExt | API.AlgoOrderExt;\n originValue?: string;\n value: string;\n field: keyof OrderValidationResult;\n fieldValues?: Partial<OrderlyOrder>;\n}) {\n const { order, field, originValue, value, fieldValues } = props;\n const changeFields = fieldValues || { [field]: value };\n\n const orderType = useMemo(\n () => convertApiOrderTypeToOrderEntryType(order as API.AlgoOrderExt),\n [order],\n );\n\n const { errors, validate, clearErrors } = useOrderEntity({\n symbol: order.symbol,\n order_type: orderType,\n side: order.side as OrderSide,\n ...(changeFields as any),\n });\n const { getErrorMsg } = useOrderEntryFormErrorMsg(errors);\n\n const error = useMemo(\n () => (field ? getErrorMsg(field) : undefined),\n [getErrorMsg, field],\n );\n\n useEffect(() => {\n // if value is not changed, then don't validate\n if (value === originValue) {\n clearErrors();\n return;\n }\n validate()\n .then((order) => {\n console.log(\"order\", order);\n })\n .catch((errors) => {\n console.error(`${field} validate error:`, errors);\n });\n }, [value, originValue]);\n\n return { error, errors, getErrorMsg };\n}\n","import { FC, useCallback, useEffect, useRef, MouseEvent } from \"react\";\nimport { EMPTY_LIST } from \"@orderly.network/types\";\nimport {\n inputFormatter,\n Input,\n InputProps,\n CheckIcon,\n cn,\n Flex,\n} from \"@orderly.network/ui\";\n\nexport type EditableCellInputProps = {\n id?: string;\n name?: string;\n placeholder?: string;\n suffix?: React.ReactNode;\n value?: InputProps[\"value\"];\n onChange?: (value: string) => void;\n error?: string;\n formatters?: InputProps[\"formatters\"];\n overrideFormatters?: InputProps[\"formatters\"];\n classNames?: InputProps[\"classNames\"];\n readonly?: boolean;\n onClick: (e: MouseEvent) => void;\n onFocus?: (e: any) => void;\n onBlur?: (e: any) => void;\n handleKeyDown?: (e: any) => void;\n};\n\nexport const EditableCellInput: FC<EditableCellInputProps> = (props) => {\n const { onClick } = props;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleKeyDown = useCallback(\n (event: any) => {\n if (event.key === \"Enter\") {\n onClick(event);\n }\n },\n [onClick],\n );\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) {\n const length = input.value.length;\n input.setSelectionRange(length, length);\n }\n }, [props.value]);\n\n return (\n <Input.tooltip\n ref={inputRef}\n tooltip={props.error}\n autoComplete=\"off\"\n autoFocus\n type=\"text\"\n size=\"sm\"\n placeholder={props.readonly ? \"\" : props.placeholder || \"\"}\n id={props.id}\n name={props.name}\n color={props.error ? \"danger\" : undefined}\n value={props.readonly ? \"\" : props.value || \"\"}\n onValueChange={props.onChange}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onKeyDown={props.handleKeyDown || handleKeyDown}\n formatters={\n props.overrideFormatters || [\n ...(props.formatters ?? EMPTY_LIST),\n inputFormatter.numberFormatter,\n inputFormatter.decimalPointFormatter,\n ]\n }\n classNames={{\n root: \"oui-bg-base-700 oui-px-2 oui-py-1 oui-rounded\",\n input: \"oui-pr-2\",\n }}\n readOnly={props.readonly}\n suffix={\n <Flex gapX={1}>\n {props.suffix}\n <button onClick={onClick} disabled={!!props.error}>\n <CheckIcon\n size={18}\n color=\"white\"\n opacity={1}\n className={cn(\n \"oui-opacity-50\",\n props.error\n ? \"oui-cursor-not-allowed\"\n : \"oui-cursor-pointer hover:oui-opacity-100\",\n )}\n />\n </button>\n </Flex>\n }\n />\n );\n};\n","import { memo } from \"react\";\nimport { cn, Flex, Text } from \"@orderly.network/ui\";\nimport { commifyOptional } from \"@orderly.network/utils\";\nimport { isGrayCell } from \"../../../../utils/util\";\n\ntype PreviewCellProps = {\n status?: string;\n value: string;\n setEditing: (isEditing: boolean) => void;\n disabled?: boolean;\n suffix?: string;\n className?: string;\n};\n\nexport const PreviewCell = memo((props: PreviewCellProps) => {\n const { status, value, disabled } = props;\n\n return (\n <div\n className={cn(\n \"oui-flex oui-items-center oui-justify-start\",\n \"oui-relative oui-max-w-[110px] oui-gap-1 oui-font-semibold\",\n isGrayCell(status) && \"oui-text-base-contrast-20\",\n props.className,\n )}\n onClick={(e) => {\n if (!disabled) {\n e.stopPropagation();\n e.preventDefault();\n props.setEditing(true);\n }\n }}\n >\n <Flex\n r=\"base\"\n className={cn(\n \"oui-h-[28px] oui-min-w-[70px]\",\n !disabled && \"oui-border oui-border-line-12 oui-bg-base-7 oui-px-2\",\n )}\n >\n <Text size=\"2xs\">\n {commifyOptional(value)}\n {props.suffix}\n </Text>\n </Flex>\n </div>\n );\n});\n","import { useCallback, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderType } from \"@orderly.network/types\";\nimport { inputFormatter, Popover, toast } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const ActivedPriceCell = (props: {\n order: API.AlgoOrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { t } = useTranslation();\n // the value before editing, initial value\n const originValue = order.activated_price?.toString() ?? \"\";\n\n const [value, setValue] = useState<string>(originValue);\n const [submitting, setSubmitting] = useState(false);\n const disabled = props.disabled || order.is_activated || order.is_triggered;\n\n const { editAlgoOrder } = useOrderListContext();\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error } = useValidateField({\n order,\n field: \"activated_price\",\n originValue,\n value,\n });\n\n const onConfirm = useCallback(() => {\n setSubmitting(true);\n\n const data: any = {\n algo_order_id: order.algo_order_id,\n activated_price: value,\n };\n\n editAlgoOrder(order.algo_order_id.toString(), data)\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setSubmitting(false));\n }, [order.algo_order_id, value, cancelPopover]);\n\n if (!order.activated_price && order.type === OrderType.MARKET) {\n return <span>{t(\"common.marketPrice\")}</span>;\n }\n\n const renderContent = () => {\n if (!editing || disabled) {\n return (\n <PreviewCell\n value={value}\n status={getOrderStatus(order)}\n setEditing={setEditing}\n disabled={disabled}\n />\n );\n }\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n // when editing, value should not be empty\n error={value ? error : t(\"orderEntry.triggerPrice.error.required\")}\n formatters={[inputFormatter.dpFormatter(quote_dp)]}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.triggerPrice}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={submitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API } from \"@orderly.network/types\";\nimport { OrderType } from \"@orderly.network/types\";\nimport { inputFormatter, Popover, toast } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const PriceCell = (props: {\n order: API.OrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { t } = useTranslation();\n\n const originValue = useMemo(() => {\n if (order.type === OrderType.MARKET && !order.price) {\n return \"Market\";\n }\n return order.price?.toString() ?? \"Market\";\n }, [order.price, order.type]);\n\n const [value, setValue] = useState<string>(originValue);\n\n const isAlgoOrder = order?.algo_order_id !== undefined;\n\n const [submitting, setSubmitting] = useState(false);\n\n const { editOrder, editAlgoOrder } = useOrderListContext();\n\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error, getErrorMsg } = useValidateField({\n order,\n field: \"order_price\",\n originValue,\n value,\n fieldValues: {\n order_price: value,\n // add order quantity to validate total\n order_quantity: order.quantity?.toString(),\n // need to pass trigger_price to validate order_price, because order_price is depend on trigger_price when type is stop limit\n trigger_price: order.trigger_price?.toString(),\n },\n });\n\n const onConfirm = () => {\n setSubmitting(true);\n\n let order_id = order.order_id;\n // if reduce only is true, edit order must add symbol, order_type, side, order_price, order_quantity, reduce_only\n let data: any = {\n symbol: order.symbol,\n order_type: order.type,\n side: order.side,\n order_quantity: order.quantity,\n order_price: value,\n };\n\n // if reduce_only is not undefined, request body must have reduce_only value\n if (order.reduce_only !== undefined) {\n data.reduce_only = order.reduce_only;\n }\n\n if (order.order_tag) {\n data.order_tag = order.order_tag;\n }\n\n if (order.client_order_id) {\n data.client_order_id = order.client_order_id;\n }\n\n if (isAlgoOrder) {\n order_id = order.algo_order_id as number;\n data = {\n ...data,\n order_id,\n price: value,\n algo_order_id: order_id,\n };\n }\n\n // edit order don't need to set visible quantity again\n // if (order?.visible_quantity === 0) {\n // data[\"visible_quantity\"] = 0;\n // }\n\n // TODO: remove this, because order not have this field\n // @ts-ignore\n if (order.tag !== undefined) {\n // @ts-ignore\n data[\"order_tag\"] = order.tag;\n }\n\n let future;\n if (order.algo_order_id !== undefined) {\n future = editAlgoOrder(order.algo_order_id.toString(), data);\n } else {\n future = editOrder(order.order_id.toString(), data);\n }\n\n future\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setSubmitting(false));\n };\n\n const isAlgoMarketOrder = order.algo_order_id && order.type == \"MARKET\";\n\n if (isAlgoMarketOrder || value === \"Market\") {\n return <span>{t(\"common.marketPrice\")}</span>;\n }\n\n const renderContent = () => {\n if (!editing || props.disabled) {\n return (\n <PreviewCell\n value={value}\n status={getOrderStatus(order)}\n setEditing={setEditing}\n disabled={props.disabled}\n />\n );\n }\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n error={error || getErrorMsg(\"total\")}\n formatters={[inputFormatter.dpFormatter(quote_dp)]}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.price}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={submitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import {\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport {\n unstable_serialize,\n useAccount,\n useMemoizedFn,\n useMutation,\n useSWRConfig,\n utils,\n} from \"@orderly.network/hooks\";\nimport {\n findTPSLOrderPriceFromOrder,\n findTPSLFromOrder,\n} from \"@orderly.network/hooks\";\nimport { API, OrderType } from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\nimport { useSymbolContext } from \"../provider/symbolContext\";\n\nexport type TPSLOrderRowContextState = {\n order: API.AlgoOrderExt;\n tp_trigger_price?: number;\n sl_trigger_price?: number;\n sl_order_price?: number | OrderType;\n tp_order_price?: number | OrderType;\n tpPnL?: number;\n slPnL?: number;\n\n onCancelOrder: (order: API.AlgoOrderExt) => Promise<void>;\n onUpdateOrder: (order: API.AlgoOrderExt, params: any) => Promise<void>;\n\n getRelatedPosition: (symbol: string) => API.PositionTPSLExt | undefined;\n\n position?: API.PositionTPSLExt;\n};\n\nexport const TPSLOrderRowContext = createContext<TPSLOrderRowContextState>(\n {} as TPSLOrderRowContextState,\n);\n\nexport const useTPSLOrderRowContext = () => {\n return useContext(TPSLOrderRowContext);\n};\n\nexport const TPSLOrderRowProvider: FC<\n PropsWithChildren<{ order: API.AlgoOrderExt }>\n> = (props) => {\n const { order, children } = props;\n const { quote_dp } = useSymbolContext();\n const [position, setPosition] = useState<API.PositionTPSLExt>();\n\n const [doDeleteOrder] = useMutation(\"/v1/algo/order\", \"DELETE\");\n const [doUpdateOrder] = useMutation(\"/v1/algo/order\", \"PUT\");\n\n const config = useSWRConfig();\n const { state } = useAccount();\n\n const positionKey = useMemo(() => {\n return unstable_serialize(() => [\"/v1/positions\", state.accountId]);\n }, [state.accountId]);\n\n const onCancelOrder = useMemoizedFn(async (order: API.AlgoOrderExt) => {\n return doDeleteOrder(null, {\n order_id: order.algo_order_id,\n symbol: order.symbol,\n });\n });\n\n const onUpdateOrder = useMemoizedFn(\n async (order: API.AlgoOrderExt, params: any) => {\n return doUpdateOrder({\n order_id: order.algo_order_id,\n child_orders: order.child_orders.map((order) => ({\n order_id: order.algo_order_id,\n quantity: params.order_quantity,\n })),\n });\n },\n );\n\n const getRelatedPosition = useMemoizedFn(\n (symbol: string): API.PositionTPSLExt => {\n const positions = config.cache.get(positionKey);\n return positions?.data?.rows?.find(\n (p: API.PositionTPSLExt) => p.symbol === symbol,\n );\n },\n );\n\n const {\n sl_trigger_price,\n tp_trigger_price,\n tpPnL,\n slPnL,\n sl_order_price,\n tp_order_price,\n } = calcTPSLPnL({\n order: order,\n position,\n quote_dp,\n });\n\n useEffect(() => {\n if (\"algo_type\" in order || ((order as any)?.reduce_only ?? false)) {\n const position = getRelatedPosition(order.symbol);\n if (position) {\n setPosition(position);\n }\n }\n }, [order.symbol]);\n\n const memoizedValue = useMemo<TPSLOrderRowContextState>(() => {\n return {\n order: order,\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n tpPnL,\n slPnL,\n position,\n onCancelOrder,\n onUpdateOrder,\n getRelatedPosition,\n };\n }, [\n order,\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n tpPnL,\n slPnL,\n position,\n onCancelOrder,\n onUpdateOrder,\n getRelatedPosition,\n ]);\n\n return (\n <TPSLOrderRowContext.Provider value={memoizedValue}>\n {children}\n </TPSLOrderRowContext.Provider>\n );\n};\n\nfunction calcTPSLPnL(props: {\n order: API.AlgoOrderExt;\n position?: API.PositionTPSLExt;\n quote_dp: number;\n}) {\n const { order, position, quote_dp } = props;\n\n if (!position)\n return {\n sl_trigger_price: undefined,\n tp_trigger_price: undefined,\n slPnL: undefined,\n tpPnL: undefined,\n };\n\n const isTPSLOrder = \"algo_type\" in order && Array.isArray(order.child_orders);\n\n const { sl_trigger_price, tp_trigger_price } = isTPSLOrder\n ? findTPSLFromOrder(order)\n : {\n sl_trigger_price: undefined,\n tp_trigger_price: undefined,\n };\n const { sl_order_price, tp_order_price } = isTPSLOrder\n ? findTPSLOrderPriceFromOrder(order)\n : {\n sl_order_price: undefined,\n tp_order_price: undefined,\n };\n\n let quantity = order.quantity;\n\n if (quantity === 0) {\n if (order.child_orders?.[0].type === \"CLOSE_POSITION\") {\n quantity = position.position_qty;\n }\n }\n\n const avgOpenPrice = position.average_open_price;\n const tpPnL =\n typeof quantity === \"number\" &&\n typeof tp_trigger_price === \"number\" &&\n typeof avgOpenPrice === \"number\"\n ? utils.priceToPnl(\n {\n qty: quantity,\n price: tp_trigger_price,\n entryPrice: position.average_open_price,\n orderSide: order.side as OrderSide,\n orderType: AlgoOrderType.TAKE_PROFIT,\n },\n { symbol: { quote_dp } },\n )\n : undefined;\n\n const slPnL =\n typeof quantity === \"number\" &&\n typeof sl_trigger_price === \"number\" &&\n typeof avgOpenPrice === \"number\"\n ? utils.priceToPnl(\n {\n qty: quantity,\n price: sl_trigger_price,\n entryPrice: position.average_open_price,\n orderSide: order.side as OrderSide,\n orderType: AlgoOrderType.STOP_LOSS,\n },\n { symbol: { quote_dp } },\n )\n : undefined;\n\n return {\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n slPnL,\n tpPnL,\n };\n}\n","import { FC, useEffect } from \"react\";\nimport { CheckIcon, Input, inputFormatter, Tooltip } from \"@orderly.network/ui\";\n\nexport const InnerInput: FC<{\n inputRef: any;\n value: string;\n setValue: any;\n setEditing: any;\n error?: string;\n handleKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n onClose: (e: any) => void;\n onFocus?: (e: any) => void;\n onBlur?: (e: any) => void;\n dp: number;\n hintInfo?: string;\n}> = (props) => {\n const {\n inputRef,\n dp,\n value,\n setValue,\n setEditing,\n error,\n handleKeyDown,\n onClick,\n onClose,\n onFocus,\n onBlur,\n hintInfo,\n } = props;\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) {\n const length = input.value.length;\n input.setSelectionRange(length, length);\n }\n setEditing(true);\n }, []);\n const open = (hintInfo?.length || 0) > 0;\n return (\n <Tooltip content={hintInfo} open={open}>\n <Input\n ref={inputRef}\n type=\"text\"\n size=\"sm\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(dp),\n inputFormatter.currencyFormatter,\n ]}\n value={value}\n onValueChange={(e) => setValue(e)}\n helpText={error}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n autoComplete=\"off\"\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={handleKeyDown}\n autoFocus\n color={open ? \"danger\" : undefined}\n classNames={{\n root: \"oui-bg-base-700 oui-px-2 oui-py-1 oui-rounded\",\n input: \"oui-pr-2\",\n }}\n // prefix={\n // <CloseIcon\n // size={14}\n // color=\"white\"\n // opacity={1}\n // className=\"oui-cursor-pointer oui-opacity-50 hover:oui-opacity-100\"\n // onClick={(e) => {\n // e.stopPropagation();\n // e.preventDefault();\n // onClose(e);\n // }}\n // />\n // }\n suffix={\n <button onClick={onClick}>\n <CheckIcon\n size={18}\n color=\"white\"\n opacity={1}\n className=\"oui-cursor-pointer oui-opacity-50 hover:oui-opacity-100\"\n />\n </button>\n }\n />\n </Tooltip>\n );\n};\n","import { FC, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useMaxQty, utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderSide } from \"@orderly.network/types\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport {\n cn,\n Flex,\n Popover,\n toast,\n Text,\n Slider,\n Button,\n PopoverTrigger,\n PopoverRoot,\n PopoverContent,\n} from \"@orderly.network/ui\";\nimport { commifyOptional, Decimal } from \"@orderly.network/utils\";\nimport { EditType } from \"../../../../type\";\nimport { grayCell } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { useTPSLOrderRowContext } from \"../../tpslOrderRowContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { InnerInput } from \"../editOrder/innerInput\";\n\nexport const QuantityCell = (props: {\n order: API.OrderExt | API.AlgoOrder;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { reduce_only } = order;\n const originValue = order.quantity.toString();\n const [value, setValue] = useState(originValue);\n\n const [editing, setEditing] = useState(false);\n\n const { t } = useTranslation();\n\n const [open, setOpen] = useState(false);\n const [error, setError] = useState<string>();\n\n const { editOrder, editAlgoOrder, checkMinNotional } = useOrderListContext();\n const { onUpdateOrder: onUpdateTPSLOrder, position } =\n useTPSLOrderRowContext();\n\n const { base_dp, base, base_tick } = useSymbolContext();\n\n const setQuantity = async (qty: string, maxQty?: number): Promise<void> => {\n setValue(qty);\n const positionQty = Math.abs(position?.position_qty || 0);\n\n if (position && reduce_only && Number(qty) > positionQty) {\n setError(\n t(\"orders.quantity.lessThanPosition\", {\n quantity: positionQty,\n }),\n );\n } else {\n const quantity = Number(qty);\n if (maxQty && quantity > maxQty) {\n setError(\n t(\"orders.quantity.lessThan\", {\n quantity: commifyOptional(maxQty, {\n fix: base_dp,\n }),\n }),\n );\n } else {\n setError(undefined);\n }\n }\n return Promise.resolve();\n };\n\n useEffect(() => {\n setQuantity(order.quantity.toString());\n }, [props.order.quantity]);\n\n const closePopover = () => {\n setOpen(false);\n setEditing(false);\n };\n const cancelPopover = () => {\n setOpen(false);\n setQuantity(order.quantity.toString());\n setEditing(false);\n };\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const clickHandler = () => {\n if (!!error) {\n return;\n }\n\n if (Number(value) === Number(order.quantity)) {\n setEditing(false);\n return;\n }\n\n const price =\n order.algo_order_id !== undefined ? order.trigger_price : order.price;\n if (price !== null && order.reduce_only !== true) {\n const notionalText = checkMinNotional(order.symbol, price, value);\n if (notionalText) {\n toast.error(notionalText);\n setIsSubmitting(false);\n cancelPopover();\n return;\n }\n }\n\n setOpen(true);\n };\n\n const onClick = (event: any) => {\n event?.stopPropagation();\n event?.preventDefault();\n\n clickHandler();\n };\n\n const handleKeyDown = (event: any) => {\n if (event.key === \"Enter\") {\n event?.stopPropagation();\n event?.preventDefault();\n clickHandler();\n }\n };\n\n const onConfirm = useCallback(() => {\n setIsSubmitting(true);\n\n let params: any = {\n symbol: order.symbol,\n order_type: order.type,\n side: order.side,\n order_price: order.price,\n order_quantity: value,\n // reduce_only: Boolean(order.reduce_only),\n algo_order_id: order.algo_order_id,\n };\n\n if (\n typeof params.algo_order_id !== \"undefined\" &&\n params.order_type === \"MARKET\"\n ) {\n // stop market order\n const { order_price, ...rest } = params;\n params = rest;\n }\n\n // if reduce_only is not undefined, request body must have reduce_only value\n if (typeof order.reduce_only !== \"undefined\") {\n params.reduce_only = order.reduce_only;\n }\n\n if (order.order_tag) {\n params.order_tag = order.order_tag;\n }\n\n if (order.client_order_id) {\n params.client_order_id = order.client_order_id;\n }\n\n if (order?.visible_quantity === 0) {\n params[\"visible_quantity\"] = 0;\n }\n\n // @ts-ignore\n if (order?.tag !== undefined) {\n // @ts-ignore\n params[\"order_tag\"] = order.tag;\n }\n\n let future;\n\n if (\"algo_type\" in order && order.algo_type === AlgoOrderRootType.TP_SL) {\n future = onUpdateTPSLOrder(order as API.AlgoOrderExt, params);\n } else {\n if (order.algo_order_id !== undefined) {\n future = editAlgoOrder(order.algo_order_id.toString(), params);\n } else {\n future = editOrder((order as API.OrderExt).order_id.toString(), params);\n }\n }\n\n future\n .then(\n (result: any) => {\n closePopover();\n setQuantity(value.toString());\n },\n (err: any) => {\n toast.error(err.message);\n setQuantity(order.quantity.toString());\n cancelPopover();\n },\n )\n .finally(() => setIsSubmitting(false));\n }, [value]);\n\n const componentRef = useRef<HTMLDivElement | null>(null);\n const quantitySliderRef = useRef<HTMLDivElement | null>(null);\n\n const handleClickOutside = (event: any) => {\n if (\n componentRef.current &&\n quantitySliderRef.current &&\n !componentRef.current.contains(event.target as Node) &&\n !quantitySliderRef.current.contains(event.target as Node) &&\n !open\n ) {\n cancelPopover();\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [open, order.quantity]);\n\n const renderContent = () => {\n if (!editing || props.disabled) {\n return (\n <PreviewCell\n order={order}\n value={value}\n setEditing={setEditing}\n disable={props.disabled}\n />\n );\n }\n\n return (\n <EditState\n inputRef={inputRef}\n quantitySliderRef={quantitySliderRef}\n base_dp={base_dp}\n base_tick={base_tick}\n quantity={value}\n setQuantity={setQuantity}\n editing={editing}\n setEditing={setEditing}\n handleKeyDown={handleKeyDown}\n onClick={onClick}\n onClose={cancelPopover}\n symbol={order.symbol}\n reduce_only={reduce_only}\n positionQty={position?.position_qty}\n error={error}\n confirmOpen={open}\n side={order.side}\n order={order}\n setError={setError}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.quantity}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={isSubmitting}\n onConfirm={onConfirm}\n />\n }\n contentProps={{\n onOpenAutoFocus: (e) => {\n // e.preventDefault();\n // e.stopPropagation();\n },\n }}\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={componentRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n\nconst PreviewCell: FC<{\n order: API.AlgoOrder | API.OrderExt;\n value: string;\n setEditing: any;\n disable?: boolean;\n}> = (props) => {\n const { order, value } = props;\n\n const executed = (order as API.OrderExt).total_executed_quantity;\n\n return (\n <Flex\n direction=\"row\"\n justify={\"start\"}\n gap={1}\n className={cn(\n \"oui-relative oui-max-w-[110px]\",\n order.side === OrderSide.BUY && \"oui-text-trade-profit\",\n order.side === OrderSide.SELL && \"oui-text-trade-loss\",\n grayCell(order) && \"oui-text-base-contrast-20\",\n )}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.setEditing(true);\n }}\n >\n {\"algo_type\" in order &&\n order.algo_type === AlgoOrderRootType.TP_SL ? null : (\n <>\n <span>{executed}</span>\n <span>/</span>\n </>\n )}\n\n <Flex\n r=\"base\"\n className={cn(\n \"oui-h-[28px] oui-min-w-[70px]\",\n !props.disable &&\n \"oui-border oui-border-line-12 oui-bg-base-7 oui-px-2\",\n )}\n >\n <Text size=\"2xs\">{value}</Text>\n </Flex>\n </Flex>\n );\n};\n\nconst EditState: FC<{\n inputRef: any;\n quantitySliderRef: any;\n base_dp: number;\n base_tick: number;\n quantity: string;\n setQuantity: (quantity: string, maxQty: number) => Promise<void>;\n editing: boolean;\n confirmOpen: boolean;\n setEditing: (value: boolean) => void;\n handleKeyDown: (e: any) => void;\n onClick: (e: any) => void;\n onClose: () => void;\n error?: string;\n symbol: string;\n reduce_only: boolean;\n positionQty?: number;\n side?: string;\n order: any;\n setError: (err: string) => void;\n}> = (props) => {\n const {\n inputRef,\n quantitySliderRef,\n base_dp,\n base_tick,\n quantity,\n setQuantity,\n setEditing,\n handleKeyDown,\n onClick,\n onClose,\n error,\n symbol,\n reduce_only,\n positionQty,\n confirmOpen,\n order,\n } = props;\n\n const maxBuyQty = useMaxQty(symbol, order.side, order.reduce_only);\n\n const maxQty = useMemo(() => {\n if (reduce_only) {\n return Math.abs(positionQty ?? 0);\n }\n return order.quantity + Math.abs(maxBuyQty);\n }, [order.quantity, maxBuyQty, reduce_only, positionQty]);\n\n const [sliderValue, setSliderValue] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n if (sliderValue === undefined) {\n const sliderValue = new Decimal(quantity)\n .div(maxQty)\n .abs()\n .mul(100)\n .toNumber();\n setSliderValue(sliderValue);\n }\n }, [sliderValue, maxQty, quantity]);\n\n const formatQuantity = async (_qty: string | number): Promise<void> => {\n if (base_tick > 0) {\n _qty = utils.formatNumber(_qty, base_tick) ?? _qty;\n }\n return setQuantity(`${_qty}`, maxQty);\n };\n\n return (\n <PopoverRoot open={!confirmOpen}>\n <PopoverTrigger>\n <InnerInput\n inputRef={inputRef}\n dp={base_dp}\n value={quantity}\n setValue={(e: string) => {\n const quantity = Math.abs(Math.min(Number(e), maxQty)).toString();\n setQuantity(e, maxQty);\n if (e.endsWith(\".\")) return;\n if (Number(quantity) === 0) {\n setSliderValue(0);\n return;\n }\n const sliderValue = new Decimal(e)\n .div(maxQty)\n .mul(100)\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toNumber();\n setSliderValue(Math.min(100, sliderValue));\n }}\n setEditing={setEditing}\n handleKeyDown={handleKeyDown}\n onClick={onClick}\n onClose={onClose}\n onBlur={(e) => {\n formatQuantity(e.target.value);\n }}\n hintInfo={error}\n />\n </PopoverTrigger>\n <PopoverContent\n className=\"oui-w-[360px] oui-rounded-xl\"\n align=\"start\"\n side=\"bottom\"\n onOpenAutoFocus={(event) => {\n // event.stopPropagation();\n event.preventDefault();\n }}\n >\n <Flex\n p={1}\n gap={2}\n width={\"100%\"}\n itemAlign={\"start\"}\n ref={quantitySliderRef}\n >\n <Text.numeral\n size=\"xs\"\n intensity={98}\n className=\"oui-min-w-[30px] \"\n dp={2}\n padding={false}\n unit=\"%\"\n rm={Decimal.ROUND_DOWN}\n >\n {`${sliderValue}`}\n </Text.numeral>\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n gap={2}\n className=\"oui-mt-[6px]\"\n >\n <Slider\n markCount={4}\n value={[sliderValue ?? 0]}\n onValueChange={(e) => {\n const values = Array.from(e.values());\n setSliderValue(values[0]);\n const quantity = new Decimal(values[0])\n .div(100)\n .mul(maxQty)\n .abs()\n .toFixed(base_dp, Decimal.ROUND_DOWN);\n setQuantity(quantity, maxQty);\n }}\n onValueCommit={(values) => {\n const quantity = new Decimal(values[0])\n .div(100)\n .mul(maxQty)\n .abs()\n .toFixed(base_dp, Decimal.ROUND_DOWN);\n formatQuantity(quantity).finally(() => {\n inputRef.current.focus();\n });\n }}\n />\n <Buttons\n onClick={(value) => {\n setSliderValue(value * 100);\n let quantity = new Decimal(value)\n .mul(maxQty)\n .abs()\n .toFixed(base_dp, Decimal.ROUND_DOWN);\n quantity = utils.formatNumber(quantity, base_tick) ?? quantity;\n\n setQuantity(quantity, maxQty);\n setTimeout(() => {\n inputRef.current.focus();\n inputRef.current.setSelectionRange(\n quantity.length,\n quantity.length,\n );\n }, 100);\n }}\n />\n </Flex>\n </Flex>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nconst Buttons = (props: { onClick: (value: number) => void }) => {\n const { t } = useTranslation();\n const list = [\n {\n label: \"0%\",\n value: 0,\n },\n {\n label: \"25%\",\n value: 0.25,\n },\n {\n label: \"50%\",\n value: 0.5,\n },\n {\n label: \"75%\",\n value: 0.75,\n },\n {\n label: t(\"common.max\"),\n value: 1,\n },\n ];\n\n return (\n <Flex gap={2} width={\"100%\"}>\n {list.map((item, index) => {\n return (\n <Button\n key={index}\n variant=\"outlined\"\n color=\"secondary\"\n size=\"xs\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.onClick(item.value);\n }}\n className=\"oui-w-1/5\"\n >\n {item.label}\n </Button>\n );\n })}\n </Flex>\n );\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { API } from \"@orderly.network/types\";\nimport { Popover, toast, inputFormatter } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const TrailingCallbackCell = (props: {\n order: API.AlgoOrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const { callback_value, callback_rate } = order;\n\n const isCallbackValue = !!callback_value;\n const isCallbackRate = !!callback_rate;\n\n const originValue = useMemo(() => {\n return callback_rate\n ? (callback_rate * 100).toString()\n : callback_value?.toString()!;\n }, [callback_value, callback_rate]);\n\n const [value, setValue] = useState<string>(originValue!);\n const [submitting, setSubmitting] = useState(false);\n\n const disabled = props.disabled || order.is_triggered;\n\n const { editAlgoOrder } = useOrderListContext();\n\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error } = useValidateField({\n order,\n originValue,\n value,\n field: isCallbackValue ? \"callback_value\" : \"callback_rate\",\n fieldValues: {\n callback_value: isCallbackValue ? value : undefined,\n callback_rate: isCallbackRate ? value : undefined,\n },\n });\n\n const onConfirm = useCallback(() => {\n setSubmitting(true);\n\n const data: any = {\n algo_order_id: order.algo_order_id,\n callback_value: isCallbackValue ? value : undefined,\n callback_rate: isCallbackRate ? `${Number(value) / 100}` : undefined,\n };\n\n editAlgoOrder(order.algo_order_id.toString(), data)\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setSubmitting(false));\n }, [order.algo_order_id, value, cancelPopover]);\n\n const renderContent = () => {\n const suffix = isCallbackRate ? \"%\" : undefined;\n\n if (!editing || disabled) {\n return (\n <PreviewCell\n status={getOrderStatus(order)}\n value={value}\n setEditing={setEditing}\n disabled={disabled}\n suffix={suffix}\n />\n );\n }\n\n const formatters = isCallbackRate\n ? [inputFormatter.dpFormatter(1)]\n : [\n inputFormatter.currencyFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ];\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n error={error}\n suffix={suffix}\n formatters={formatters}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={isCallbackRate ? EditType.callbackRate : EditType.callbackValue}\n base={base}\n value={isCallbackRate ? `${value}%` : value}\n cancelPopover={cancelPopover}\n isSubmitting={submitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import { useCallback, useState } from \"react\";\nimport { API } from \"@orderly.network/types\";\nimport { Popover, toast, inputFormatter } from \"@orderly.network/ui\";\nimport { EditType } from \"../../../../type\";\nimport { getOrderStatus } from \"../../../../utils/util\";\nimport { useSymbolContext } from \"../../../provider/symbolContext\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { ConfirmContent } from \"../editOrder/confirmContent\";\nimport { usePopoverState } from \"../hooks/usePopoverState\";\nimport { useValidateField } from \"../hooks/useValidateField\";\nimport { EditableCellInput } from \"./editableCellInput\";\nimport { PreviewCell } from \"./previewCell\";\n\nexport const TriggerPriceCell = (props: {\n order: API.AlgoOrderExt;\n disabled?: boolean;\n}) => {\n const { order } = props;\n const originValue = order.trigger_price?.toString();\n\n const [value, setValue] = useState<string>(originValue);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const disabled = props.disabled || order.is_triggered;\n\n const { editAlgoOrder } = useOrderListContext();\n const { base, quote_dp } = useSymbolContext();\n\n const {\n open,\n setOpen,\n editing,\n setEditing,\n containerRef,\n closePopover,\n cancelPopover,\n onClick,\n } = usePopoverState({\n originValue,\n value,\n setValue,\n });\n\n const { error } = useValidateField({\n order,\n field: \"trigger_price\",\n originValue,\n value,\n });\n\n const onConfirm = useCallback(() => {\n setIsSubmitting(true);\n\n const data: any = {\n trigger_price: value,\n algo_order_id: order.algo_order_id,\n };\n\n editAlgoOrder(`${order.algo_order_id}`, data)\n .then((result: any) => {\n closePopover();\n setValue(value);\n })\n .catch((err: any) => {\n toast.error(err.message);\n cancelPopover();\n })\n .finally(() => setIsSubmitting(false));\n }, [order.algo_order_id, value, cancelPopover]);\n\n const renderContent = () => {\n if (!editing || disabled) {\n return (\n <PreviewCell\n value={value}\n status={getOrderStatus(order)}\n setEditing={setEditing}\n disabled={disabled}\n />\n );\n }\n\n return (\n <EditableCellInput\n value={value}\n onChange={setValue}\n onClick={onClick}\n error={error}\n formatters={[inputFormatter.dpFormatter(quote_dp)]}\n />\n );\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={\n <ConfirmContent\n type={EditType.triggerPrice}\n base={base}\n value={value}\n cancelPopover={cancelPopover}\n isSubmitting={isSubmitting}\n onConfirm={onConfirm}\n />\n }\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n ref={containerRef}\n >\n {renderContent()}\n </div>\n </Popover>\n );\n};\n","import { FC, useCallback, useState } from \"react\";\nimport { useConfig, useMutation } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderEntity } from \"@orderly.network/types\";\nimport { Button } from \"@orderly.network/ui\";\n\nexport const Renew: FC<{ record: any }> = (props) => {\n const { record } = props;\n const [open, setOpen] = useState(false);\n const [doCreateOrder, { data, error, reset, isMutating }] = useMutation<\n OrderEntity,\n any\n >(\"/v1/order\");\n\n const { t } = useTranslation();\n\n const brokerId = useConfig(\"brokerId\");\n const onSubmit = useCallback(() => {\n setOpen(false);\n const data: OrderEntity = {\n symbol: record.symbol,\n order_type: record.type,\n order_price: record.price,\n order_quantity: record.quantity,\n order_amount: record.amount,\n side: record.side,\n broker_id: brokerId,\n };\n\n if (Number(record.visible_quantity) < Number(record.quantity)) {\n data.visible_quantity = 0;\n }\n\n if (typeof record.reduce_only !== \"undefined\") {\n data.reduce_only = record.reduce_only;\n }\n\n if (record.order_tag) {\n data.order_tag = record.order_tag;\n }\n\n if (record.client_order_id) {\n data.client_order_id = record.client_order_id;\n }\n\n doCreateOrder(data);\n }, []);\n\n return (\n <Button\n size={\"sm\"}\n variant={\"outlined\"}\n color={\"secondary\"}\n loading={isMutating}\n disabled={isMutating}\n onClick={(event) => {\n if (isMutating) return;\n event.preventDefault();\n event.stopPropagation();\n onSubmit();\n }}\n >\n {t(\"orders.history.renew\")}\n </Button>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { API } from \"@orderly.network/types\";\nimport { PositionTPSLPopover } from \"@orderly.network/ui-tpsl\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\n\nexport const TP_SLEditButton = (props: { order: API.Order }) => {\n const { position, order } = useTPSLOrderRowContext();\n const { quote_dp, base_dp } = useSymbolContext();\n const { t } = useTranslation();\n\n return (\n <PositionTPSLPopover\n quoteDP={quote_dp}\n baseDP={base_dp}\n position={position!}\n order={order}\n label={t(\"common.edit\")}\n isEditing\n />\n );\n};\n","import {\n findTPSLOrderPriceFromOrder,\n findTPSLFromOrder,\n useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { i18n, useTranslation } from \"@orderly.network/i18n\";\nimport { OrderType } from \"@orderly.network/types\";\nimport { Text } from \"@orderly.network/ui\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\n\nexport const TPSLOrderPrice = () => {\n const {\n sl_trigger_price,\n tp_trigger_price,\n sl_order_price,\n tp_order_price,\n order,\n } = useTPSLOrderRowContext();\n const { t } = useTranslation();\n const symbolInfo = useSymbolsInfo()[order.symbol]();\n return (\n <div>\n {!!tp_trigger_price ? (\n <div className={\"oui-text-base-contrast-80 oui-td-bg-transparent\"}>\n <Text intensity={54}>{`${t(\"tpsl.tp\")} -`} </Text>\n <TPSLOrderPriceItem\n price={tp_order_price}\n quoteDP={symbolInfo.quote_dp}\n />\n </div>\n ) : null}\n {!!sl_trigger_price ? (\n <div className={\"oui-text-base-contrast-80 oui-td-bg-transparent\"}>\n <span className={\"oui-text-base-contrast-54\"}>\n {`${t(\"tpsl.sl\")} -`} \n </span>\n <TPSLOrderPriceItem\n price={sl_order_price}\n quoteDP={symbolInfo.quote_dp}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nconst TPSLOrderPriceItem = ({\n price,\n quoteDP,\n}: {\n price?: number | OrderType;\n quoteDP: number;\n}) => {\n const { t } = useTranslation();\n if (!price) {\n return null;\n }\n if (price === OrderType.MARKET) {\n return <span>{t(\"common.marketPrice\")}</span>;\n }\n\n return (\n <Text.numeral\n className=\"oui-text-base-contrast-80\"\n rule={\"price\"}\n dp={quoteDP}\n >\n {price}\n </Text.numeral>\n );\n};\n\nexport function useTPSLOrderPrice(order: any) {\n // @ts-ignore\n const { sl_trigger_price, tp_trigger_price } =\n !(\"algo_type\" in order) || !Array.isArray(order.child_orders)\n ? {}\n : findTPSLFromOrder(order);\n\n const tpTriggerPrice = tp_trigger_price\n ? `${i18n.t(\"tpsl.tp\")} - ${i18n.t(\"common.marketPrice\")}`\n : undefined;\n const slTriggerPrice = sl_trigger_price\n ? `${i18n.t(\"tpsl.sl\")} - ${i18n.t(\"common.marketPrice\")}`\n : undefined;\n\n return { tpTriggerPrice, slTriggerPrice };\n}\n","import { FC, useMemo } from \"react\";\nimport {\n OrderValidationResult,\n useSymbolsInfo,\n useTpslPriceChecker,\n utils,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, AlgoOrderType } from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { cn, Text, Tooltip } from \"@orderly.network/ui\";\nimport { CloseToLiqPriceIcon } from \"@orderly.network/ui-tpsl\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\n\nexport const OrderTriggerPrice = () => {\n const { sl_trigger_price, tp_trigger_price, order, position } =\n useTPSLOrderRowContext();\n\n const positionSide =\n position?.position_qty && position.position_qty > 0\n ? OrderSide.BUY\n : OrderSide.SELL;\n const slPriceError = useTpslPriceChecker({\n slPrice: sl_trigger_price?.toString() ?? undefined,\n liqPrice: position?.est_liq_price ?? null,\n side: positionSide,\n });\n\n return (\n <TPSLTriggerPrice\n stopLossPrice={sl_trigger_price}\n takeProfitPrice={tp_trigger_price}\n direction={\"column\"}\n order={order}\n position={position}\n slPriceError={slPriceError}\n tooltip\n />\n );\n};\n\nexport const TPSLTriggerPrice: FC<{\n takeProfitPrice: number | undefined;\n stopLossPrice: number | undefined;\n className?: string;\n direction?: \"row\" | \"column\";\n tooltip?: boolean;\n order?: API.AlgoOrder;\n position?: API.PositionTPSLExt;\n slPriceError: OrderValidationResult | null;\n}> = (props) => {\n const { direction = \"row\", order, position } = props;\n // const symbolInfo = useSymbolsInfo()[position?.symbol ?? \"\"]();\n const symbolInfo = useSymbolsInfo();\n const { t } = useTranslation();\n\n const pnl = useMemo(() => {\n const msgs = [];\n\n if (!props.tooltip || !order || !position) return;\n\n let quantity = order.quantity;\n\n if (quantity === 0) {\n if (order.child_orders?.[0].type === \"CLOSE_POSITION\") {\n quantity = position.position_qty;\n }\n }\n\n if (!!props.takeProfitPrice) {\n msgs.push(\n <TriggerPriceItem\n key={\"tp\"}\n qty={quantity}\n price={props.takeProfitPrice}\n entryPrice={position.average_open_price}\n orderSide={order.side as OrderSide}\n orderType={AlgoOrderType.TAKE_PROFIT}\n symbolInfo={symbolInfo[order.symbol]()}\n />,\n );\n }\n\n if (!!props.stopLossPrice) {\n msgs.push(\n <TriggerPriceItem\n key={\"sl\"}\n qty={quantity}\n price={props.stopLossPrice}\n entryPrice={position.average_open_price}\n orderSide={order.side as OrderSide}\n orderType={AlgoOrderType.STOP_LOSS}\n symbolInfo={symbolInfo[order.symbol]()}\n />,\n );\n }\n\n return <div>{msgs}</div>;\n }, [\n props.takeProfitPrice,\n props.stopLossPrice,\n position?.average_open_price,\n order?.side,\n order?.quantity,\n order?.algo_type,\n ]);\n\n const child = useMemo(() => {\n const children = [];\n\n if (!order?.symbol) return <span>-</span>;\n if (props.takeProfitPrice) {\n children.push(\n <Text.numeral\n className={cn(\n \"oui-text-trade-profit oui-gap-0 oui-decoration-white/20 oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n )}\n key={\"tp\"}\n rule=\"price\"\n dp={symbolInfo[order!.symbol](\"quote_dp\", 2)}\n children={props.takeProfitPrice}\n // @ts-ignore\n prefix={\n !props.stopLossPrice || direction === \"column\" ? (\n <span className={\"oui-text-base-contrast-54\"}>\n {`${t(\"tpsl.tp\")} -`} \n </span>\n ) : (\n \"\"\n )\n }\n />,\n );\n }\n if (props.stopLossPrice) {\n children.push(\n <Text.numeral\n key={\"sl\"}\n className={cn(\n \"oui-text-trade-loss oui-gap-0 oui-decoration-white/20 oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n \"oui-flex oui-items-center\",\n )}\n as=\"div\"\n rule={\"price\"}\n dp={symbolInfo[order!.symbol](\"quote_dp\", 2)}\n children={props.stopLossPrice}\n // @ts-ignore\n prefix={\n !props.takeProfitPrice || direction === \"column\" ? (\n <span className={\"oui-text-base-contrast-54\"}>\n {`${t(\"tpsl.sl\")} -`} \n </span>\n ) : (\n \"\"\n )\n }\n suffix={\n <CloseToLiqPriceIcon\n slPriceError={props.slPriceError}\n className=\"oui-ml-1\"\n />\n }\n />,\n );\n }\n\n if (children.length === 0) return <span>-</span>;\n\n if (children.length === 2 && direction === \"row\") {\n children.splice(1, 0, <span key={\"split\"}>/</span>);\n }\n\n return children;\n }, [\n props.takeProfitPrice,\n props.stopLossPrice,\n order?.symbol,\n t,\n props.slPriceError,\n ]);\n\n const content = (\n <div\n className={cn(\n \"oui-inline-flex oui-text-base-contrast-36\",\n props.direction === \"column\"\n ? \"oui-flex-col\"\n : \"oui-flex-row oui-gap-1\",\n props.className,\n )}\n >\n {child}\n </div>\n );\n\n if (props.tooltip) {\n // @ts-ignore\n return (\n <Tooltip\n // @ts-ignore\n content={pnl}\n className=\"oui-bg-base-5\"\n arrow={{ className: \"oui-fill-base-5\" }}\n >\n {content}\n </Tooltip>\n );\n }\n\n return content;\n};\n\nconst TriggerPriceItem: FC<{\n qty: number;\n price: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n symbolInfo: API.SymbolExt;\n}> = (props) => {\n const { qty, price, entryPrice, orderSide, orderType, symbolInfo } = props;\n const { t } = useTranslation();\n\n const pnl = utils.priceToPnl(\n {\n qty,\n price,\n entryPrice,\n orderSide,\n orderType,\n },\n {\n symbol: symbolInfo,\n },\n );\n\n const type = orderType === AlgoOrderType.TAKE_PROFIT ? \"TP\" : \"SL\";\n const label = type === \"TP\" ? `${t(\"tpsl.tpPnl\")}:` : `${t(\"tpsl.slPnl\")}:`;\n\n // console.log(\"trigger price item\", \"dp\", symbolInfo.quote_dp);\n\n return (\n <div className=\"oui-flex oui-items-center\">\n <span className=\"oui-text-base-contrast-54 oui-mr-1\">{label}</span>\n <Text.numeral\n rule=\"price\"\n dp={symbolInfo.quote_dp}\n padding={false}\n className={\n pnl === 0\n ? \"oui-text-base-contrast-36\"\n : pnl > 0\n ? \"oui-text-trade-profit oui-gap-0\"\n : \"oui-text-trade-loss oui-gap-0\"\n }\n // @ts-ignore\n prefix={\n // @ts-ignore\n <span>{pnl === 0 ? \"\" : pnl > 0 ? \"+\" : \"-\"}</span>\n }\n suffix={\n <span className=\"oui-text-base-contrast-36 oui-ml-1\">USDC</span>\n }\n >{`${Math.abs(pnl)}`}</Text.numeral>\n </div>\n );\n};\n","import { useMemo } from \"react\";\nimport { format } from \"date-fns\";\nimport { SymbolsInfo, utils } from \"@orderly.network/hooks\";\nimport { useTranslation, i18n } from \"@orderly.network/i18n\";\nimport {\n AlgoOrderRootType,\n AlgoOrderType,\n API,\n OrderSide,\n OrderStatus,\n OrderType,\n} from \"@orderly.network/types\";\nimport { cn, Column, Flex, Text } from \"@orderly.network/ui\";\nimport { Badge } from \"@orderly.network/ui\";\nimport { SharePnLConfig, SharePnLDialogId } from \"@orderly.network/ui-share\";\nimport {\n commifyOptional,\n Decimal,\n formatNum,\n getTrailingStopPrice,\n} from \"@orderly.network/utils\";\nimport {\n grayCell,\n parseBadgesFor,\n upperCaseFirstLetter,\n isTrailingStopOrder,\n getNotional,\n} from \"../../../utils/util\";\nimport { TabType } from \"../../orders.widget\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\nimport { ShareButtonWidget } from \"../../shareButton\";\nimport { AvgPrice } from \"./avgPrice\";\nimport { BracketOrderPrice } from \"./bracketOrderPrice\";\nimport { CancelButton } from \"./cancelBtn\";\nimport { ActivedPriceCell } from \"./components/activedPriceCell\";\nimport { PriceCell } from \"./components/priceCell\";\nimport { QuantityCell } from \"./components/quantityCell\";\nimport { TrailingCallbackCell } from \"./components/trailingCallbackCell\";\nimport { TriggerPriceCell } from \"./components/triggerPriceCell\";\nimport { Renew } from \"./renew\";\nimport { TP_SLEditButton } from \"./tpslEdit\";\nimport { TPSLOrderPrice, useTPSLOrderPrice } from \"./tpslPrice\";\nimport { OrderTriggerPrice } from \"./tpslTriggerPrice\";\n\nexport const useOrderColumn = (props: {\n _type: TabType;\n onSymbolChange?: (symbol: API.Symbol) => void;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n symbolsInfo?: SymbolsInfo;\n}) => {\n const {\n _type,\n onSymbolChange,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n symbolsInfo,\n } = props;\n const { t } = useTranslation();\n\n const columns = useMemo(() => {\n switch (_type) {\n case TabType.all:\n return [\n instrument({\n width: 130,\n showType: true,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n side({ width: 130 }),\n fillAndQuantity({\n width: 130,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n enableSort: false,\n }),\n price({\n width: 130,\n title: t(\"common.orderPrice\"),\n disableEdit: true,\n enableSort: false,\n }),\n avgOpen({ width: 130, enableSort: false, symbolsInfo }),\n tpslTriggerPrice({ width: 130, symbolsInfo: props.symbolsInfo }),\n realizedPnL({\n width: 124,\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n sharePnLConfig: sharePnLConfig,\n symbolsInfo: props.symbolsInfo,\n hideShare: true,\n }),\n estTotal({ width: 130, enableSort: false }),\n fee({ width: 130 }),\n status({ width: 130 }),\n reduceOnly({ width: 130 }),\n hidden({ width: 130 }),\n cancelBtn({ width: 130 }),\n orderTime({ width: 160, enableSort: false }),\n ];\n case TabType.pending:\n return [\n instrument({\n width: 172,\n showType: true,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n // side({ width: 162 }),\n fillAndQuantity({\n width: 162,\n className: \"oui-pr-0\",\n enableSort: false,\n }),\n price({ width: 162, className: \"oui-pr-0\", enableSort: false }),\n trailingCallback({ width: 162 }),\n triggerPrice({ width: 162, className: \"oui-pr-0\", isPending: true }),\n bracketOrderPrice({ width: 130 }),\n estTotal({ width: 162, isPending: true }),\n reduceOnly({ width: 162 }),\n hidden({ width: 162 }),\n orderTime({ width: 162, enableSort: false }),\n pendingTabCancelBtn({ width: 80 }),\n ];\n case TabType.tp_sl:\n return [\n instrument({\n width: 176,\n showType: true,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n // side({ width: 176 }),\n quantity({ width: 176 }),\n tpslTriggerPrice({ width: 176, symbolsInfo }),\n tpslPrice({ width: 176, disableEdit: true }),\n tpslNotional({ width: 176 }),\n reduceOnly({ width: 176 }),\n orderTime({ width: 176, enableSort: false }),\n tpslAction({ width: 176 }),\n ];\n case TabType.filled:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n }),\n // type({ width: 124 }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 124,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n }),\n price({\n width: 124,\n title: t(\"common.orderPrice\"),\n disableEdit: true,\n }),\n avgPrice({ width: 124 }),\n triggerPrice({ width: 124, disableEdit: true }),\n realizedPnL({\n width: 124,\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n sharePnLConfig: sharePnLConfig,\n symbolsInfo,\n hideShare: true,\n }),\n estTotal({ width: 124 }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n orderTime({ width: 176 }),\n ];\n case TabType.cancelled:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n enableSort: false,\n }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 124,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n enableSort: false,\n }),\n price({ width: 124, disableEdit: true, enableSort: false }),\n avgOpen({ width: 124, enableSort: false }),\n triggerPrice({ width: 124, disableEdit: true }),\n estTotal({ width: 124 }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n ];\n case TabType.rejected:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 124,\n disableEdit: true,\n className: \"oui-pl-0 oui-pr-0\",\n }),\n price({ width: 124, disableEdit: true }),\n avgOpen({ width: 124 }),\n triggerPrice({ width: 124, disableEdit: true }),\n estTotal({ width: 124 }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n orderTime({ width: 176 }),\n ];\n case TabType.orderHistory:\n return [\n instrument({\n showType: true,\n width: 154,\n onSymbolChange: onSymbolChange,\n }),\n // side({ width: 124 }),\n fillAndQuantity({\n width: 150,\n disableEdit: true,\n className: \"oui-pl-6 oui-pr-0\",\n }),\n price({\n width: 124,\n disableEdit: true,\n tabType: TabType.orderHistory,\n }),\n avgOpen({ width: 124 }),\n triggerPrice({ width: 124, disableEdit: true }),\n realizedPnL({\n width: 124,\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n sharePnLConfig: sharePnLConfig,\n symbolsInfo: props.symbolsInfo,\n hideShare: true,\n }),\n estTotal({ width: 124 }),\n trailingCallback({ width: 124, disableEdit: true }),\n fee({ width: 124 }),\n status({ width: 124 }),\n reduceOnly({ width: 124 }),\n hidden({ width: 124 }),\n orderTime({ width: 150 }),\n cancelBtn({ width: 80 }),\n ];\n }\n }, [_type, pnlNotionalDecimalPrecision, sharePnLConfig, t]);\n\n return columns as Column[];\n\n // return columns();\n};\n\nfunction instrument(option?: {\n showType?: boolean;\n enableSort?: boolean;\n width?: number;\n onSymbolChange?: (symbol: API.Symbol) => void;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.symbol\"),\n dataIndex: \"symbol\",\n fixed: \"left\",\n // className: \"oui-h-[48px]\",\n width: option?.width,\n onSort: option?.enableSort\n ? (r1, r2) => {\n return r1.symbol.localeCompare(r2.symbol);\n // if (sortOrder === \"asc\") {\n // return r1.symbol.localeCompare(r2.symbol);\n // }\n // return r2.symbol.localeCompare(r1.symbol);\n }\n : undefined,\n renderPlantText: (value: string, record) => {\n const badges = parseBadgesFor(record)?.join(\",\");\n const displayBadges = badges?.length ? ` (${badges})` : \"\";\n return `${value.split(\"_\")[1]}-PERP${displayBadges}`;\n },\n render: (value: string, record) => {\n const showGray = grayCell(record);\n\n return (\n <Flex gap={2}>\n <div\n className={cn(\n \"oui-h-7 oui-w-1 oui-shrink-0 oui-rounded-[1px]\",\n record.side === OrderSide.BUY\n ? \"oui-bg-trade-profit\"\n : \"oui-bg-trade-loss\",\n )}\n />\n <Flex direction=\"column\" itemAlign={\"start\"}>\n <Text.formatted\n // rule={\"symbol\"}\n size=\"xs\"\n className=\"oui-cursor-pointer oui-text-xs\"\n onClick={(e) => {\n option?.onSymbolChange?.({ symbol: value } as API.Symbol);\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {`${value.split(\"_\")[1]}-PERP`}\n </Text.formatted>\n\n {option?.showType && (\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(record)?.map((e, index) => (\n <Badge\n key={index}\n color={\n e.toLocaleLowerCase() === \"position\"\n ? showGray\n ? \"neutral\"\n : \"primary\"\n : \"neutral\"\n }\n size=\"xs\"\n className=\"oui-whitespace-nowrap oui-break-normal\"\n >\n {e}\n </Badge>\n ))}\n </Flex>\n )}\n </Flex>\n </Flex>\n );\n },\n };\n}\n\nfunction side(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.side\"),\n dataIndex: \"side\",\n width: option?.width,\n // className: \"oui-h-[48px]\",\n onSort: option?.enableSort\n ? (r1, r2, sortOrder) => {\n return r2.side.localeCompare(r1.side);\n // if (sortOrder === \"asc\") {\n // return r2.side.localeCompare(r1.side);\n // }\n // return r1.side.localeCompare(r2.side);\n }\n : undefined,\n renderPlantText: (value: string, record) => upperCaseFirstLetter(value),\n render: (value: string, record) => {\n const clsName = grayCell(record)\n ? \"oui-text-base-contrast-20\"\n : value === OrderSide.BUY\n ? \"oui-text-trade-profit\"\n : \"oui-text-trade-loss\";\n return (\n <span className={cn(\"oui-font-semibold\", clsName)}>\n {upperCaseFirstLetter(value)}\n </span>\n );\n },\n };\n}\n\nfunction type(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.type\"),\n dataIndex: \"type\",\n width: option?.width,\n className: option?.className,\n formatter: (value: string, record: any) => {\n if (!!record.parent_algo_type) {\n if (record.algo_type === AlgoOrderType.STOP_LOSS) {\n return record.type === OrderType.CLOSE_POSITION\n ? `Position SL`\n : \"SL\";\n }\n\n if (record.algo_type === AlgoOrderType.TAKE_PROFIT) {\n return record.type === OrderType.CLOSE_POSITION\n ? `Position TP`\n : \"TP\";\n }\n }\n\n if (record.algo_order_id) {\n return `Stop ` + `${record.type}`.toLowerCase();\n }\n return upperCaseFirstLetter(value);\n },\n };\n}\n\nfunction fillAndQuantity(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n}): Column<API.AlgoOrderExt> {\n return {\n title: i18n.t(\"orders.column.fill&Quantity\"),\n dataIndex: \"fill_quantity\",\n className: option?.className,\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b) => {\n const aQuantity =\n (a.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : a.quantity) ?? 0;\n const bQuantity =\n (b.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : b.quantity) ?? 0;\n\n return compareNumbers(aQuantity, bQuantity);\n\n // if (type == \"asc\") {\n // return compareNumbers(aQuantity, bQuantity);\n // }\n // return compareNumbers(bQuantity, aQuantity);\n }\n : undefined,\n\n renderPlantText: (value: string, record: any) => {\n if (\n record.type === OrderType.CLOSE_POSITION &&\n record.status !== OrderStatus.FILLED\n ) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n const executed = (record as API.OrderExt).total_executed_quantity;\n const first =\n \"algo_type\" in record && record.algo_type === AlgoOrderRootType.TP_SL\n ? \"\"\n : `${executed} / `;\n return first + `${record.quantity}`;\n },\n render: (value: string, record: any) => {\n if (\n record.type === OrderType.CLOSE_POSITION &&\n record.status !== OrderStatus.FILLED\n ) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n return <QuantityCell order={record} disabled={option?.disableEdit} />;\n // return value;\n },\n };\n}\n\nfunction quantity(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.AlgoOrderExt> {\n return {\n title: i18n.t(\"common.quantity\"),\n className: option?.className,\n dataIndex: \"quantity\",\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b) => {\n const aQuantity =\n (a.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : a.quantity) ?? 0;\n const bQuantity =\n (b.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL\n ? 0\n : b.quantity) ?? 0;\n return compareNumbers(aQuantity, bQuantity);\n // if (type == \"asc\") {\n // return compareNumbers(aQuantity, bQuantity);\n // }\n // return compareNumbers(bQuantity, aQuantity);\n }\n : undefined,\n renderPlantText: (value: string, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n const executed = (record as API.OrderExt).total_executed_quantity;\n const first =\n \"algo_type\" in record && record.algo_type === AlgoOrderRootType.TP_SL\n ? \"\"\n : `${executed}/`;\n return first + `${record.quantity}`;\n },\n render: (value: string, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n return <QuantityCell order={record} />;\n // return value;\n },\n };\n}\n\nfunction price(option?: {\n title?: string;\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n tabType?: TabType;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"common.price\"),\n dataIndex: \"price\",\n className: option?.className,\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b, type) => {\n return compareNumbers(a.price ?? 0, b.price ?? 0);\n }\n : undefined,\n renderPlantText: (value: string, record: any) => {\n const isTrailingStop = isTrailingStopOrder(record);\n if (isTrailingStop) {\n // TODO: fix precision\n return option?.tabType === TabType.orderHistory\n ? i18n.t(\"common.marketPrice\")\n : getTrailingStopPrice(record) || \"--\";\n }\n return commifyOptional(record.price, {\n fallback: i18n.t(\"common.marketPrice\"),\n });\n },\n render: (value: string, record: any) => {\n const isTrailingStop = isTrailingStopOrder(record);\n if (isTrailingStop) {\n // TODO: fix precision\n return option?.tabType === TabType.orderHistory\n ? i18n.t(\"common.marketPrice\")\n : getTrailingStopPrice(record) || \"--\";\n }\n\n return <PriceCell order={record} disabled={option?.disableEdit} />;\n },\n };\n}\n\nfunction tpslPrice(option?: {\n title?: string;\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"common.price\"),\n dataIndex: \"price\",\n className: option?.className,\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n const { tpTriggerPrice, slTriggerPrice } = useTPSLOrderPrice(record);\n const callback = `${tpTriggerPrice || \"\"}${\n slTriggerPrice ? `${tpTriggerPrice ? \"\\n\" : \"\"}${slTriggerPrice}` : \"\"\n }`;\n\n return callback.length > 0 ? callback : \"--\";\n },\n render: (value: string, record: any) => {\n return <TPSLOrderPrice />;\n },\n };\n}\n\nfunction avgPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n symbolsInfo?: SymbolsInfo;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.avgPrice\"),\n dataIndex: \"average_executed_price\",\n className: option?.className,\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n return commifyOptional(value);\n },\n render: (value: string, record: any) => {\n return <AvgPrice symbol={record.symbol} value={value} />;\n },\n };\n}\n\nfunction triggerPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n isPending?: boolean;\n}): Column<API.Order> {\n const { isPending } = option || {};\n const checkOrderType = (record: any) => {\n const isAlgoOrder = record?.algo_order_id !== undefined;\n const isBracketOrder = record?.algo_type === \"BRACKET\";\n return isAlgoOrder && !isBracketOrder;\n };\n\n return {\n title: i18n.t(\"common.trigger\"),\n className: option?.className,\n dataIndex: \"trigger_price\",\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n if (!checkOrderType(record)) {\n return \"--\";\n }\n if (isTrailingStopOrder(record) && isPending) {\n return record.activated_price\n ? commifyOptional(record.activated_price)\n : \"--\";\n }\n return commifyOptional(value);\n },\n render: (value: string, record: any) => {\n if (!checkOrderType(record)) {\n return \"--\";\n }\n\n if (isTrailingStopOrder(record) && isPending) {\n return (\n <ActivedPriceCell order={record} disabled={option?.disableEdit} />\n );\n }\n return <TriggerPriceCell order={record} disabled={option?.disableEdit} />;\n },\n };\n}\n\nfunction tpslTriggerPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n title?: string;\n symbolsInfo?: SymbolsInfo;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"common.trigger\"),\n className: option?.className,\n dataIndex: \"tpsl_trigger_price\",\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n const info = option?.symbolsInfo?.[record.symbol];\n const quote_dp = info?.(\"quote_dp\");\n // @ts-ignore\n const { sl_trigger_price, tp_trigger_price } =\n !(\"algo_type\" in record) || !Array.isArray(record.child_orders)\n ? {}\n : utils.findTPSLFromOrder(record);\n\n const callback =\n (tp_trigger_price != null\n ? `${i18n.t(\"tpsl.tp\")}: ${commifyOptional(tp_trigger_price, {\n fix: quote_dp,\n padEnd: true,\n })}`\n : \"\") +\n (sl_trigger_price != null\n ? `${tp_trigger_price ? \"\\n\" : \"\"}${i18n.t(\n \"tpsl.sl\",\n )}: ${commifyOptional(sl_trigger_price, {\n fix: quote_dp,\n padEnd: true,\n })}`\n : \"\");\n return callback.length > 0 ? callback : \"--\";\n },\n render: (value: string, record: any) => <OrderTriggerPrice />,\n };\n}\n\nfunction bracketOrderPrice(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}) {\n return {\n title: i18n.t(\"common.tpsl\"),\n className: option?.className,\n dataIndex: \"bracketOrderPrice\",\n width: option?.width,\n onSort: option?.enableSort,\n renderPlantText: (value: string, record: any) => {\n const getTPSLTriggerPrice = (): {\n sl_trigger_price?: number;\n tp_trigger_price?: number;\n } => {\n if (!(\"algo_type\" in record) || !Array.isArray(record.child_orders)) {\n return {};\n }\n return utils.findTPSLFromOrder(record.child_orders[0]);\n };\n\n const { sl_trigger_price, tp_trigger_price } = getTPSLTriggerPrice();\n\n const callback =\n (tp_trigger_price != null\n ? `${i18n.t(\"tpsl.tp\")}: ${tp_trigger_price}`\n : \"\") +\n (sl_trigger_price != null\n ? `${tp_trigger_price ? \"\\n\" : \"\"}${i18n.t(\n \"tpsl.sl\",\n )}: ${sl_trigger_price}`\n : \"\");\n return callback.length > 0 ? callback : \"--\";\n },\n render: (value: string, record: any) => (\n <BracketOrderPrice order={record} />\n ),\n };\n}\n\nfunction estTotal(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n isPending?: boolean;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.notional\"),\n dataIndex: \"executed\",\n width: option?.width,\n className: option?.className,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b, type) => {\n const aTotal =\n a.type === OrderType.CLOSE_POSITION &&\n a.status !== OrderStatus.FILLED\n ? 0\n : a.total_executed_quantity === 0 ||\n Number.isNaN(a.average_executed_price) ||\n a.average_executed_price === null\n ? 0\n : a.total_executed_quantity * a.average_executed_price;\n const bTotal =\n b.type === OrderType.CLOSE_POSITION &&\n b.status !== OrderStatus.FILLED\n ? 0\n : b.total_executed_quantity === 0 ||\n Number.isNaN(b.average_executed_price) ||\n b.average_executed_price === null\n ? 0\n : b.total_executed_quantity * b.average_executed_price;\n return compareNumbers(aTotal, bTotal);\n // if (type === \"asc\") {\n // return compareNumbers(aTotal, bTotal);\n // }\n // return compareNumbers(bTotal, aTotal);\n }\n : undefined,\n renderPlantText: (value: string, record: any) => {\n const estTotal = estTotalValue(record, option?.isPending ?? false);\n\n if (estTotal === \"Entire position\") {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return commifyOptional(\n estTotalValue(record, option?.isPending ?? false),\n { fix: 2 },\n );\n },\n render: (value: string, record: any) => {\n const estTotal = estTotalValue(record, option?.isPending ?? false);\n\n if (estTotal === \"Entire position\") {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return (\n <Text.numeral rm={Decimal.ROUND_DOWN} dp={2}>\n {estTotal}\n </Text.numeral>\n );\n },\n };\n}\n\nfunction realizedPnL(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n symbolsInfo?: SymbolsInfo;\n hideShare?: boolean;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.realizedPnl\"),\n dataIndex: \"realized_pnl\",\n width: option?.width,\n className: option?.className,\n renderPlantText: (_value: string, record: any) => {\n const info = option?.symbolsInfo?.[record.symbol];\n const quote_dp = info?.(\"quote_dp\");\n const dp = option?.pnlNotionalDecimalPrecision ?? quote_dp;\n const value = new Decimal(_value ?? 0)\n .toDecimalPlaces(dp, Decimal.ROUND_DOWN)\n .toNumber();\n\n const formatValue = commifyOptional(value);\n\n return value > 0 ? `+${formatValue}` : formatValue;\n },\n render: (_value: number | undefined, record: any) => {\n const { quote_dp } = useSymbolContext();\n const dp = option?.pnlNotionalDecimalPrecision ?? quote_dp;\n const value = new Decimal(_value ?? 0).toNumber();\n // wraper flex\n return (\n <Flex gap={1}>\n <Text.pnl\n dp={dp}\n padding={false}\n intensity={(value ?? 0) == 0 ? 80 : undefined}\n showIdentifier={(value ?? 0) > 0}\n coloring={(value ?? 0) != 0}\n >\n {value ?? \"--\"}\n </Text.pnl>\n {!option?.hideShare && (\n <ShareButtonWidget\n order={record}\n sharePnLConfig={option?.sharePnLConfig}\n modalId={SharePnLDialogId}\n />\n )}\n </Flex>\n );\n },\n };\n}\n\nfunction reduceOnly(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"orderEntry.reduceOnly\"),\n dataIndex: \"reduce_only\",\n width: option?.width,\n className: option?.className,\n renderPlantText: (value: string, record: any) => {\n return value ? i18n.t(\"common.yes\") : i18n.t(\"common.no\");\n },\n render: (value: boolean) => {\n return <Text>{value ? i18n.t(\"common.yes\") : i18n.t(\"common.no\")}</Text>;\n },\n };\n}\n\nfunction hidden(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"orders.column.hidden\"),\n dataIndex: \"visible\",\n width: option?.width,\n className: option?.className,\n renderPlantText: (value: number, record: any) => {\n return value !== 0 ? i18n.t(\"common.no\") : i18n.t(\"common.yes\");\n },\n render: (value: number, record) => {\n return (\n <Text>\n {record.visible_quantity !== 0\n ? i18n.t(\"common.no\")\n : i18n.t(\"common.yes\")}\n </Text>\n );\n },\n };\n}\n\nfunction orderTime(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n formatString?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"orders.column.orderTime\"),\n dataIndex: \"created_time\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: string, record: any) => {\n const date = new Date(value);\n const formattedDate = format(date, \"yyyy-MM-dd HH:mm:ss\");\n return formattedDate;\n },\n render: (value: string) => (\n <Text.formatted\n rule={\"date\"}\n formatString={option?.formatString || \"yyyy-MM-dd HH:mm:ss\"}\n className=\"oui-break-normal oui-whitespace-nowrap oui-font-semibold\"\n >\n {value}\n </Text.formatted>\n ),\n };\n}\n\nfunction fee(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.fee\"),\n dataIndex: \"total_fee\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n };\n}\n\nfunction notional(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.notional\"),\n dataIndex: \"notional\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: number, record: any) => {\n return commifyOptional(value, { fix: 2 });\n },\n render: (value?: string) => (\n <Text.notional className=\"oui-break-normal oui-whitespace-nowrap oui-font-semibold\">\n {value ?? \"--\"}\n </Text.notional>\n ),\n };\n}\n\nfunction tpslNotional(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.notional\"),\n dataIndex: \"executed\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: any, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n return commifyOptional(\n record.quantity === 0\n ? \"--\"\n : `${formatNum\n .notional(new Decimal(record.mark_price).mul(record.quantity))\n ?.toNumber()}`,\n );\n },\n render: (value: any, record: any) => {\n if (record.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return (\n <Text.numeral className=\"oui-break-normal oui-whitespace-nowrap oui-font-semibold\">\n {record.quantity === 0\n ? \"--\"\n : `${formatNum\n .notional(new Decimal(record.mark_price).mul(record.quantity))\n ?.toNumber()}`}\n </Text.numeral>\n );\n },\n };\n}\n\nfunction status(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n}): Column<API.Order> {\n const statusMap = {\n [OrderStatus.NEW]: i18n.t(\"orders.status.pending\"),\n [OrderStatus.FILLED]: i18n.t(\"orders.status.filled\"),\n [OrderStatus.PARTIAL_FILLED]: i18n.t(\"orders.status.partialFilled\"),\n [OrderStatus.CANCELLED]: i18n.t(\"orders.status.canceled\"),\n [OrderStatus.REJECTED]: i18n.t(\"orders.status.rejected\"),\n [OrderStatus.INCOMPLETE]: i18n.t(\"orders.status.incomplete\"),\n [OrderStatus.COMPLETED]: i18n.t(\"orders.status.completed\"),\n };\n return {\n title: i18n.t(\"common.status\"),\n dataIndex: \"status\",\n width: option?.width,\n onSort: option?.enableSort,\n className: option?.className,\n renderPlantText: (value: string, record: any) => {\n const status = value || record.algo_status;\n return (\n statusMap[status as keyof typeof statusMap] ||\n upperCaseFirstLetter(status)\n );\n },\n render: (value: string, record: any) => {\n const status = value || record.algo_status;\n return (\n statusMap[status as keyof typeof statusMap] ||\n upperCaseFirstLetter(status)\n );\n },\n };\n}\n\nfunction avgOpen(option?: {\n enableSort?: boolean;\n width?: number;\n className?: string;\n symbolsInfo?: SymbolsInfo;\n}): Column<API.Order> {\n return {\n title: i18n.t(\"common.avgPrice\"),\n dataIndex: \"average_executed_price\",\n width: option?.width,\n onSort:\n (option?.enableSort ?? false)\n ? (a, b) => {\n return compareNumbers(\n a.average_executed_price ?? 0,\n b.average_executed_price ?? 0,\n );\n }\n : undefined,\n className: option?.className,\n render: (value: string, record) => {\n if (record.type === OrderType.MARKET && !value) {\n return \"--\";\n }\n\n return <AvgPrice symbol={record.symbol} value={value} />;\n },\n renderPlantText: (value: string, record: any) => {\n return value ? commifyOptional(value) : \"--\";\n },\n };\n}\n\nfunction cancelBtn(option?: {\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: \"\",\n type: \"action\",\n dataIndex: \"action\",\n width: option?.width,\n className: option?.className,\n align: \"right\",\n fixed: \"right\",\n render: (_: string, record: any) => {\n if (record.status === OrderStatus.CANCELLED) {\n return <Renew record={record} />;\n }\n\n if (\n record.status === OrderStatus.NEW ||\n record.algo_status === OrderStatus.NEW\n ) {\n return <CancelButton order={record} />;\n }\n\n return null;\n },\n };\n}\n\nfunction pendingTabCancelBtn(option?: {\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: \"\",\n type: \"action\",\n dataIndex: \"action\",\n width: option?.width,\n className: option?.className,\n align: \"right\",\n fixed: \"right\",\n render: (_: string, record: any) => {\n return <CancelButton order={record} />;\n },\n };\n}\n\nfunction tpslAction(option?: {\n width?: number;\n className?: string;\n}): Column<API.Order> {\n return {\n title: \"\",\n type: \"action\",\n dataIndex: \"action\",\n width: option?.width,\n className: option?.className,\n align: \"right\",\n fixed: \"right\",\n render: (_: string, record: any) => {\n return (\n <Flex gap={3}>\n <TP_SLEditButton order={record} />\n <CancelButton order={record} />\n </Flex>\n );\n },\n };\n}\n\nfunction compareNumbers(a: number, b: number): number {\n if (a > b) return 1;\n if (a < b) return -1;\n return 0;\n}\n\n// estTotal\nfunction estTotalValue(record: any, isPending: boolean): string {\n if (isPending) {\n return getNotional(record) || \"--\";\n }\n\n if (\n record.type === OrderType.CLOSE_POSITION &&\n record.status !== OrderStatus.FILLED\n ) {\n return i18n.t(\"tpsl.entirePosition\");\n }\n\n return record.total_executed_quantity === 0 ||\n Number.isNaN(record.average_executed_price) ||\n record.average_executed_price === null\n ? \"--\"\n : `${record.total_executed_quantity * record.average_executed_price}`;\n}\n\nfunction trailingCallback(option?: {\n title?: string;\n width?: number;\n className?: string;\n disableEdit?: boolean;\n}): Column<API.Order> {\n return {\n title: option?.title ?? i18n.t(\"orderEntry.trailing\"),\n dataIndex: \"callback_value\",\n className: option?.className,\n width: option?.width,\n renderPlantText: (value: string, record: any) => {\n const { callback_value, callback_rate } = record;\n const val =\n callback_value || (callback_rate ? `${callback_rate * 100}%` : \"--\");\n return val?.toString();\n },\n render: (value: string, record: any) => {\n if (isTrailingStopOrder(record)) {\n return (\n <TrailingCallbackCell order={record} disabled={option?.disableEdit} />\n );\n }\n\n return \"--\";\n },\n };\n}\n","import {\n FC,\n PropsWithChildren,\n ReactNode,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { useTpslPriceChecker } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n AlgoOrderRootType,\n API,\n OrderStatus,\n OrderType,\n} from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { Badge, cn, Flex, Statistic, Text, Tooltip } from \"@orderly.network/ui\";\nimport { SharePnLBottomSheetId } from \"@orderly.network/ui-share\";\nimport { CloseToLiqPriceIcon } from \"@orderly.network/ui-tpsl\";\nimport { Decimal, getTrailingStopPrice } from \"@orderly.network/utils\";\nimport {\n getNotional,\n parseBadgesFor,\n upperCaseFirstLetter,\n} from \"../../../utils/util\";\nimport { ShareButtonWidget } from \"../../shareButton\";\nimport { useTPSLOrderRowContext } from \"../tpslOrderRowContext\";\nimport { OrderCellState } from \"./orderCell.script\";\n\nexport const SymbolToken: FC<OrderCellState> = (props) => {\n const { item } = props;\n const isBuy = item.side === OrderSide.BUY;\n const { t } = useTranslation();\n\n return (\n <Text.formatted\n intensity={80}\n rule=\"symbol\"\n formatString=\"base-type\"\n size=\"sm\"\n // @ts-ignore\n prefix={\n <Badge color={isBuy ? \"success\" : \"danger\"} size=\"xs\">\n {isBuy ? t(\"common.buy\") : t(\"common.sell\")}\n </Badge>\n }\n onClick={() => {\n props.onSymbolChange?.({ symbol: item.symbol } as API.Symbol);\n }}\n // showIcon\n >\n {item.symbol}\n </Text.formatted>\n );\n};\n\nexport const OrderTypeView: FC<OrderCellState> = (props) => {\n const { item } = props;\n\n const orderType = useCallback(() => {\n const type =\n typeof item.type === \"string\"\n ? item.type.replace(\"_ORDER\", \"\").toLowerCase()\n : item.type;\n const isAlgoOrder =\n item.algo_order_id && item.algo_type !== AlgoOrderRootType.BRACKET;\n if (isAlgoOrder) {\n return `Stop ${type}`;\n }\n return upperCaseFirstLetter(item.type);\n }, [item]);\n\n return (\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(props.item)?.map((e, index) => (\n <Badge\n key={index}\n color={e.toLocaleLowerCase() === \"position\" ? \"primary\" : \"neutral\"}\n size=\"xs\"\n >\n {e}\n </Badge>\n ))}\n </Flex>\n );\n};\n\nexport const OrderTime: FC<OrderCellState> = (props) => {\n const { item } = props;\n\n return (\n <Text.formatted\n rule={\"date\"}\n formatString=\"yyyy-MM-dd HH:mm:ss\"\n intensity={36}\n size=\"2xs\"\n >\n {item.created_time}\n </Text.formatted>\n );\n};\n\nexport const OrderState: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n // @ts-ignore\n const status = item.status || item.algo_status;\n\n const statusMap = useMemo(() => {\n return {\n [OrderStatus.NEW]: t(\"orders.status.pending\"),\n [OrderStatus.FILLED]: t(\"orders.status.filled\"),\n [OrderStatus.PARTIAL_FILLED]: t(\"orders.status.partialFilled\"),\n [OrderStatus.CANCELLED]: t(\"orders.status.canceled\"),\n [OrderStatus.REJECTED]: t(\"orders.status.rejected\"),\n [OrderStatus.INCOMPLETE]: t(\"orders.status.incomplete\"),\n [OrderStatus.COMPLETED]: t(\"orders.status.completed\"),\n };\n }, [t]);\n\n return (\n <Text.formatted intensity={80} size=\"2xs\">\n {statusMap[status as keyof typeof statusMap] ||\n upperCaseFirstLetter(status)}\n </Text.formatted>\n );\n};\n\nexport const Qty: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n const isEntirePosition =\n item.type === OrderType.CLOSE_POSITION &&\n // @ts-ignore\n item?.status !== OrderStatus.FILLED;\n\n return (\n <Statistic\n label={t(\"common.qty\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.base_dp}\n padding={false}\n coloring\n placeholder={t(\"tpsl.entirePosition\")}\n intensity={80}\n >\n {isEntirePosition ? t(\"tpsl.entirePosition\") : item.quantity}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const Filled: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={<Text>{t(\"orders.status.filled\")}</Text>}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.base_dp}\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {/* {item.algo_order_id\n ? item.total_executed_quantity\n : (item as unknown as API.OrderExt).executed} */}\n {item.total_executed_quantity}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const Notional: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Statistic\n align=\"end\"\n label={\n <Text>\n {t(\"common.notional\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n coloring\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {(item as any).notional ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const EstTotal: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const value = useMemo(() => getNotional(item), [item.price, item.quantity]);\n\n const rendrerContent = () => {\n if (value) {\n return (\n <Text.numeral\n dp={props.quote_dp}\n coloring\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {value}\n </Text.numeral>\n );\n }\n\n return \"--\";\n };\n\n return (\n <Statistic\n align=\"end\"\n label={\n <Text>\n {t(\"common.notional\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {rendrerContent()}\n </Statistic>\n );\n};\n\nexport const TriggerPrice: FC<\n OrderCellState & {\n align?: \"start\" | \"end\";\n isPending?: boolean;\n }\n> = (props) => {\n const { item, isPending } = props;\n const { t } = useTranslation();\n\n const isTrailingStop = item?.algo_type === AlgoOrderRootType.TRAILING_STOP;\n\n const rendrerContent = () => {\n if (isTrailingStop && isPending && item.activated_price) {\n return (\n <Text.numeral\n dp={props.quote_dp}\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {item.activated_price}\n </Text.numeral>\n );\n }\n\n if (item.trigger_price) {\n return (\n <Text.numeral\n dp={props.quote_dp}\n intensity={80}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {item.trigger_price}\n </Text.numeral>\n );\n }\n\n return \"--\";\n };\n\n return (\n <Statistic\n label={isTrailingStop ? t(\"common.trigger\") : t(\"common.triggerPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n align={props.align}\n >\n {rendrerContent()}\n </Statistic>\n );\n};\n\nexport const MarkPrice: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={t(\"common.markPrice\")}\n align=\"end\"\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {item.mark_price}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const LimitPrice: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const isAlgoOrder = item?.algo_order_id !== undefined;\n const isTrailingStop = item?.algo_type === AlgoOrderRootType.TRAILING_STOP;\n const isStopMarket = item?.type === \"MARKET\" && isAlgoOrder;\n\n const rendrerContent = () => {\n if (isTrailingStop) {\n return \"--\";\n }\n if (isStopMarket) {\n return <Text>{t(\"common.marketPrice\")}</Text>;\n }\n\n return (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {item.price ?? \"--\"}\n </Text.numeral>\n );\n };\n\n return (\n <Statistic\n label={t(\"common.limitPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {rendrerContent()}\n </Statistic>\n );\n};\n\nexport const TPTrigger: FC<OrderCellState> = (props) => {\n const { tp_trigger_price, tpPnL } = useTPSLOrderRowContext();\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={t(\"tpsl.tpTrigger\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <MobileTooltip\n content={\n tpPnL && (\n <Text.numeral\n size=\"2xs\"\n showIdentifier\n // @ts-ignore\n prefix={<Text intensity={54}>{`${t(\"tpsl.tpPnl\")}:`} </Text>}\n suffix={<Text intensity={20}> USDC</Text>}\n coloring\n >\n {tpPnL}\n </Text.numeral>\n )\n }\n classNames={{\n content: \"oui-bg-base-6 oui-ml-2\",\n arrow: \"oui-fill-base-6\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n color=\"buy\"\n padding={false}\n className={\n tp_trigger_price\n ? \"oui-border-b oui-border-dashed oui-border-base-contrast-12\"\n : undefined\n }\n >\n {tp_trigger_price ?? \"--\"}\n </Text.numeral>\n </MobileTooltip>\n </Statistic>\n );\n};\n\nexport const SLTrigger: FC<OrderCellState> = (props) => {\n const { sl_trigger_price, slPnL, position: item } = useTPSLOrderRowContext();\n const { t } = useTranslation();\n\n const side = (item?.position_qty ?? 0) > 0 ? OrderSide.BUY : OrderSide.SELL;\n const slPriceError = useTpslPriceChecker({\n slPrice: sl_trigger_price?.toString() ?? undefined,\n liqPrice: item?.est_liq_price ?? null,\n side: side,\n });\n\n return (\n <Statistic\n label={t(\"tpsl.slTrigger\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <MobileTooltip\n content={\n slPnL && (\n <Text.numeral\n size=\"2xs\"\n // @ts-ignore\n prefix={\n <Text intensity={54}>{`${t(\"tpsl.slPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}> USDC</Text>}\n coloring\n >\n {slPnL}\n </Text.numeral>\n )\n }\n classNames={{\n content: \"oui-bg-base-6 oui-ml-2\",\n arrow: \"oui-fill-base-6\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n as=\"div\"\n rm={Decimal.ROUND_DOWN}\n color=\"sell\"\n padding={false}\n suffix={<CloseToLiqPriceIcon slPriceError={slPriceError} />}\n className={cn(\n sl_trigger_price\n ? \"oui-border-b oui-border-dashed oui-border-base-contrast-12\"\n : undefined,\n \"oui-flex oui-items-center\",\n )}\n >\n {sl_trigger_price ?? \"--\"}\n </Text.numeral>\n </MobileTooltip>\n </Statistic>\n );\n};\n\nexport const TPPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n const { tp_order_price } = useTPSLOrderRowContext();\n\n const renderOrderPrice = useMemo(() => {\n if (tp_order_price === undefined) {\n return <Text>--</Text>;\n }\n if (tp_order_price === OrderType.MARKET) {\n return <Text>{t(\"common.marketPrice\")}</Text>;\n }\n return (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {tp_order_price}\n </Text.numeral>\n );\n }, [tp_order_price]);\n\n return (\n <Statistic\n label={t(\"tpsl.tpPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {renderOrderPrice}\n </Statistic>\n );\n};\nexport const SLPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n const { sl_order_price } = useTPSLOrderRowContext();\n\n const renderOrderPrice = useMemo(() => {\n if (sl_order_price === undefined) {\n return <Text>--</Text>;\n }\n if (sl_order_price === OrderType.MARKET) {\n return <Text>{t(\"common.marketPrice\")}</Text>;\n }\n return (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {sl_order_price}\n </Text.numeral>\n );\n }, [sl_order_price]);\n\n return (\n <Statistic\n label={t(\"tpsl.slPrice\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {renderOrderPrice}\n </Statistic>\n );\n};\n\nexport const TPSLQuantity: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const quantity = useMemo(() => {\n if (item.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL) {\n return (\n <span className=\"oui-text-base-contrast-80\">\n {t(\"tpsl.entirePosition\")}\n </span>\n );\n }\n\n return (\n <Text.numeral\n dp={props.base_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {item.quantity}\n </Text.numeral>\n );\n }, [item, t]);\n\n return (\n <Statistic\n label={t(\"common.quantity\")}\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n align=\"end\"\n >\n {quantity}\n </Statistic>\n );\n};\n\nexport const AvgPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n return (\n <Statistic\n label={\n <Text>\n {t(\"common.avgPrice\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {/* @ts-ignore */}\n {props.item?.average_executed_price ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const OrderPrice: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n return (\n <Statistic\n label={\n <Text>\n {t(\"common.orderPrice\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n placeholder={t(\"common.marketPrice\")}\n >\n {/* @ts-ignore */}\n {props.item?.price ?? \"--\"}\n </Text.numeral>\n </Statistic>\n );\n};\n\nexport const RealizedPnL: FC<OrderCellState> = (props) => {\n // @ts-ignore\n const value = props?.item?.realized_pnl;\n const { t } = useTranslation();\n\n return (\n <Statistic\n label={\n <Text>\n {t(\"common.realizedPnl\")}\n <Text intensity={20}>(USDC)</Text>\n </Text>\n }\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n align=\"end\"\n >\n <Flex gap={1}>\n <Text.pnl\n dp={props.quote_dp}\n padding={false}\n intensity={(value ?? 0) == 0 ? 80 : undefined}\n showIdentifier={(value ?? 0) > 0}\n coloring={(value ?? 0) != 0}\n >\n {value ?? \"--\"}\n </Text.pnl>\n </Flex>\n </Statistic>\n );\n};\n\nexport const MobileTooltip: FC<\n PropsWithChildren<{\n content?: string | ReactNode;\n classNames?: {\n content?: string;\n arrow?: string;\n };\n }>\n> = (props) => {\n const { classNames, content } = props;\n const [open, setOpen] = useState(false);\n if (typeof content === \"undefined\") return props.children;\n return (\n <Tooltip\n // @ts-ignore\n content={content}\n className={classNames?.content}\n open={open}\n onOpenChange={setOpen}\n arrow={{ className: classNames?.arrow }}\n >\n <div onClick={() => setOpen((e) => !e)}>{props.children}</div>\n </Tooltip>\n );\n};\n\nexport const Fee: FC<OrderCellState> = (props) => {\n const { t } = useTranslation();\n return (\n <Flex justify=\"end\" gapX={1} mt={1}>\n <Text size=\"2xs\" intensity={36}>\n {t(\"common.fee\")}:\n </Text>\n <Text size=\"2xs\" intensity={80}>\n {props.item?.total_fee ?? \"--\"}\n </Text>\n </Flex>\n );\n};\n\nexport const TrailingCallback: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const { callback_value, callback_rate } = item;\n\n return (\n <Statistic\n label={t(\"orderEntry.trailing\")}\n align=\"end\"\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {callback_rate ? (\n <Text intensity={80}>{`${callback_rate * 100}%`}</Text>\n ) : (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {callback_value ?? \"--\"}\n </Text.numeral>\n )}\n </Statistic>\n );\n};\n\nexport const TrailingPrice: FC<OrderCellState> = (props) => {\n const { item } = props;\n const { t } = useTranslation();\n\n const value = useMemo(() => {\n return getTrailingStopPrice(item);\n }, [item]);\n\n return (\n <Statistic\n label={t(\"common.price\")}\n align=\"start\"\n classNames={{\n root: \"oui-text-xs\",\n label: \"oui-text-2xs\",\n }}\n >\n {value ? (\n <Text.numeral\n dp={props.quote_dp}\n rm={Decimal.ROUND_DOWN}\n intensity={80}\n padding={false}\n >\n {value}\n </Text.numeral>\n ) : (\n \"--\"\n )}\n </Statistic>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, EditIcon, Flex, Text, modal } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { MobileTooltip } from \"../items\";\nimport { BracketOrderPriceState } from \"./bracketOrderPrice.script\";\n\nexport const BracketOrderPrice: FC<BracketOrderPriceState> = (props) => {\n const { t } = useTranslation();\n\n const onEdit = () => {\n modal.show(\"EditBracketOrderSheetId\", {\n order: props.order,\n });\n };\n\n if (!props.sl_trigger_price && !props.tp_trigger_price) return <></>;\n\n return (\n <Flex gap={1} itemAlign={\"center\"} justify={\"start\"}>\n <MobileTooltip\n classNames={{\n content: \"oui-bg-base-6 oui-ml-2\",\n arrow: \"oui-fill-base-6\",\n }}\n content={\n <Flex direction={\"column\"} itemAlign={\"start\"} gap={1}>\n {typeof props.pnl?.tpPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.tpPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={props.quote_dp}\n color=\"buy\"\n showIdentifier\n >\n {props.pnl?.tpPnL}\n </Text.numeral>\n )}\n {typeof props.pnl?.slPnL !== \"undefined\" && (\n <Text.numeral\n // @ts-ignore\n prefix={\n <Text intensity={80}>{`${t(\"tpsl.slPnl\")}:`} </Text>\n }\n suffix={<Text intensity={20}>{\" USDC\"}</Text>}\n dp={props.quote_dp}\n color=\"sell\"\n >\n {props.pnl?.slPnL}\n </Text.numeral>\n )}\n </Flex>\n }\n >\n <button\n onClick={() => {\n props.setOpen(!props.open);\n }}\n >\n <Flex gap={1} width={\"1\"}>\n {props.tp_trigger_price && (\n <Price\n type=\"TP\"\n value={props.tp_trigger_price}\n quote_dp={props.quote_dp}\n />\n )}\n {props.sl_trigger_price && (\n <Price\n type=\"SL\"\n value={props.sl_trigger_price}\n quote_dp={props.quote_dp}\n />\n )}\n </Flex>\n </button>\n </MobileTooltip>\n <EditIcon\n onClick={onEdit}\n opacity={1}\n className=\"oui-cursor-pointer oui-text-base-contrast-54\"\n size={16}\n />\n </Flex>\n );\n};\n\nconst Price = (props: {\n type: \"TP\" | \"SL\";\n value?: number | string;\n quote_dp: number;\n}) => {\n const { type, value, quote_dp } = props;\n\n return value ? (\n <Text.numeral\n size=\"2xs\"\n className={cn(\n \"oui-border-b oui-border-dashed oui-border-base-contrast-12\",\n type === \"TP\" ? \"oui-text-trade-profit\" : \"oui-text-trade-loss\",\n )}\n key={\"tp\"}\n rule=\"price\"\n dp={quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n // @ts-ignore\n prefix={\n <span className={\"oui-text-base-contrast-36\"}>\n {`${type} `}: \n </span>\n }\n >\n {value}\n </Text.numeral>\n ) : (\n <></>\n );\n};\n","import { useMemo, useState } from \"react\";\nimport { utils } from \"@orderly.network/hooks\";\nimport { calcBracketRoiAndPnL } from \"../../../../utils/util\";\nimport { OrderCellState } from \"../orderCell.script\";\n\nexport const useBracketOrderPriceScript = (props: OrderCellState) => {\n const { item: order, quote_dp } = props;\n\n const [open, setOpen] = useState(false);\n\n const { sl_trigger_price, tp_trigger_price } = useMemo(() => {\n if (!(\"algo_type\" in order) || !Array.isArray(order.child_orders)) {\n return {};\n }\n return utils.findTPSLFromOrder(order.child_orders[0]);\n }, [order]);\n\n const { pnl } = calcBracketRoiAndPnL(order);\n\n return {\n sl_trigger_price,\n order,\n tp_trigger_price,\n pnl,\n quote_dp,\n open,\n setOpen,\n };\n};\n\nexport type BracketOrderPriceState = ReturnType<\n typeof useBracketOrderPriceScript\n>;\n","import { FC } from \"react\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useBracketOrderPriceScript } from \"./bracketOrderPrice.script\";\nimport { BracketOrderPrice } from \"./bracketOrderPrice.ui\";\n\nexport const BracketOrderPriceWidget: FC<OrderCellState> = (props) => {\n const state = useBracketOrderPriceScript(props);\n return <BracketOrderPrice {...state} />;\n};\n","export { BracketOrderPrice } from \"./bracketOrderPrice.ui\";\nexport { BracketOrderPriceWidget } from \"./bracketOrderPrice.widget\";\nexport { useBracketOrderPriceScript } from \"./bracketOrderPrice.script\";\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Button, SimpleDialog, Text } from \"@orderly.network/ui\";\nimport { CancelBtnState } from \"./cancelBtn.script\";\n\nexport const CancelBtn: FC<CancelBtnState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <Button\n variant=\"outlined\"\n fullWidth\n color=\"secondary\"\n size=\"sm\"\n className=\"oui-border-base-contrast-36\"\n onClick={(e) => props.onCancel(e)}\n >\n {t(\"common.cancel\")}\n </Button>\n );\n};\n","import { FC, useState } from \"react\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { toast } from \"@orderly.network/ui\";\n\nexport const useCancelBtnScript = (props: { state: OrderCellState }) => {\n const { state } = props;\n const [open, setOpen] = useState(false);\n\n const { onCancelOrder } = useOrderListContext();\n const [isLoading, setIsLoading] = useState(false);\n\n const onCancel = (event?: any) => {\n if (!onCancelOrder) return Promise.resolve();\n event?.preventDefault();\n event?.stopPropagation();\n setIsLoading(true);\n return onCancelOrder(state.item)\n .then(\n (res: any) => {\n setOpen(false);\n },\n (error: any) => {\n toast.error(error.message);\n }\n ).finally(() => {\n setIsLoading(false);\n });\n };\n\n const onClose = () => {\n setOpen(false);\n };\n\n return {\n ...state,\n\n open,\n setOpen,\n onCancel,\n onClose,\n isLoading,\n };\n};\n\nexport type CancelBtnState = ReturnType<typeof useCancelBtnScript>;\n","import { FC } from \"react\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useCancelBtnScript } from \"./cancelBtn.script\";\nimport { CancelBtn } from \"./cancelBtn.ui\";\n\nexport const CancelBtnWidget = (props: { state: OrderCellState }) => {\n const state = useCancelBtnScript(props);\n return <CancelBtn {...state} />;\n};\n","export { CancelBtn } from \"./cancelBtn.ui\";\nexport { CancelBtnWidget } from \"./cancelBtn.widget\";\nexport { useCancelBtnScript } from \"./cancelBtn.script\";\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Button } from \"@orderly.network/ui\";\nimport { EditBtnState } from \"./editBtn.script\";\n\nexport const EditBtn: FC<EditBtnState> = (props) => {\n const { t } = useTranslation();\n\n return (\n <>\n <Button\n variant=\"outlined\"\n fullWidth\n color=\"secondary\"\n size=\"sm\"\n className=\"oui-border-base-contrast-36\"\n onClick={() => {\n props.onShowEditSheet();\n }}\n >\n {t(\"common.edit\")}\n </Button>\n </>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { OrderValidationResult } from \"@orderly.network/hooks\";\nimport { OrderlyOrder } from \"@orderly.network/types\";\nimport { SymbolContextState } from \"../../../../provider/symbolContext\";\n\nexport type EditSheetContextState = {\n symbolInfo: SymbolContextState;\n getErrorMsg: (\n key: keyof OrderValidationResult,\n customValue?: string,\n ) => string;\n setOrderValue: (key: keyof OrderlyOrder, value: any) => void;\n};\n\nexport const EditSheetContext = createContext({} as EditSheetContextState);\n\nexport function useEditSheetContext() {\n return useContext(EditSheetContext);\n}\n","import { memo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype ActivitedPriceInputProps = {\n activated_price?: string | number;\n disabled?: boolean;\n};\n\nexport const ActivitedPriceInput = memo((props: ActivitedPriceInputProps) => {\n const { activated_price } = props;\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const error = activated_price\n ? getErrorMsg(\"activated_price\")\n : t(\"orderEntry.triggerPrice.error.required\");\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.trigger\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]}\n value={activated_price}\n onValueChange={(val) => setOrderValue(\"activated_price\", val)}\n disabled={props.disabled}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-5 oui-max-w-[360px]\",\n },\n arrow: {\n className: \"oui-fill-base-5\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nActivitedPriceInput.displayName = \"ActivitedPriceInput\";\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { Badge, Checkbox, Divider, Flex, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { parseBadgesFor } from \"../../../../../utils/util\";\nimport { EditSheetState } from \"../editSheet.script\";\n\nexport const ConfirmDialogContent: FC<EditSheetState> = (props) => {\n const { item } = props;\n const {\n formattedOrder,\n symbolInfo,\n isStopMarket,\n showTriggerPrice,\n isTrailingStop,\n } = props;\n const { t } = useTranslation();\n\n const showPrice = !isTrailingStop;\n const showActivatedPrice = isTrailingStop && formattedOrder.activated_price;\n const showTrailingCallback = isTrailingStop;\n\n const header = (\n <>\n <Text\n intensity={80}\n >{`You agree to edit your ${props.base}-PERP order.`}</Text>\n <Flex gap={2} mb={3} mt={2} justify={\"between\"}>\n <Text.formatted\n rule=\"symbol\"\n formatString=\"base-type\"\n size=\"base\"\n showIcon\n >\n {item.symbol}\n </Text.formatted>\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(item)?.map((e, index) => (\n <Badge\n key={index}\n color={\n e.toLocaleLowerCase() === \"position\" ? \"primary\" : \"neutral\"\n }\n size=\"xs\"\n >\n {e}\n </Badge>\n ))}\n {item.side === OrderSide.BUY ? (\n <Badge color=\"success\" size=\"xs\">\n {t(\"common.buy\")}\n </Badge>\n ) : (\n <Badge color=\"danger\" size=\"xs\">\n {t(\"common.sell\")}\n </Badge>\n )}\n </Flex>\n </Flex>\n </>\n );\n\n const triggerPriceItem = showTriggerPrice && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.triggerPrice\")}</Text>\n <Text.numeral\n intensity={80}\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n suffix={<Text intensity={54}>{\" USDC\"}</Text>}\n >\n {formattedOrder.trigger_price ?? \"--\"}\n </Text.numeral>\n </Flex>\n );\n\n const priceItem = showPrice && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.price\")}</Text>\n <Text.numeral\n intensity={80}\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n suffix={<Text intensity={54}>{\" USDC\"}</Text>}\n placeholder={isStopMarket ? t(\"common.marketPrice\") : \"--\"}\n >\n {isStopMarket\n ? t(\"common.marketPrice\")\n : (formattedOrder.order_price ?? \"--\")}\n </Text.numeral>\n </Flex>\n );\n\n const activatedPriceItem = showActivatedPrice && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.triggerPrice\")}</Text>\n {formattedOrder.activated_price ? (\n <Text.numeral\n intensity={80}\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n suffix={<Text intensity={54}>{\" USDC\"}</Text>}\n >\n {formattedOrder.activated_price}\n </Text.numeral>\n ) : (\n t(\"common.marketPrice\")\n )}\n </Flex>\n );\n\n const trailingCallbackItem = showTrailingCallback && (\n <>\n {formattedOrder.callback_value && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"orderEntry.trailingValue\")}</Text>\n <Text.numeral\n dp={symbolInfo.quote_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {formattedOrder.callback_value}\n </Text.numeral>\n </Flex>\n )}\n {formattedOrder.callback_rate && (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"orderEntry.trailingRate\")}</Text>\n <Text className=\"oui-text-base-contrast\">\n {formattedOrder.callback_rate}%\n </Text>\n </Flex>\n )}\n </>\n );\n\n const quantityItem = (\n <Flex justify={\"between\"} width={\"100%\"} gap={1}>\n <Text>{t(\"common.qty\")}</Text>\n <Text.numeral\n color={item.side === OrderSide.BUY ? \"buy\" : \"sell\"}\n dp={symbolInfo.base_dp}\n padding={false}\n rm={Decimal.ROUND_DOWN}\n >\n {formattedOrder.order_quantity}\n </Text.numeral>\n </Flex>\n );\n\n const orderConfirmCheckbox = (\n <Flex className=\"oui-gap-[2px]\">\n <Checkbox\n color=\"white\"\n id=\"oui-checkbox-disableOrderConfirmation\"\n checked={!props.orderConfirm}\n onCheckedChange={(e: boolean) => {\n props.setOrderConfirm(!e);\n }}\n />\n <label\n className=\"oui-text-2xs oui-text-base-contrast-54\"\n htmlFor=\"oui-checkbox-disableOrderConfirmation\"\n >\n {t(\"orderEntry.disableOrderConfirm\")}\n </label>\n </Flex>\n );\n\n return (\n <div className=\"oui-pt-2\">\n {header}\n <Divider />\n <Flex\n direction={\"column\"}\n gap={1}\n width={\"100%\"}\n className=\"oui-text-sm oui-text-base-contrast-54\"\n py={3}\n >\n {triggerPriceItem}\n {priceItem}\n {quantityItem}\n {activatedPriceItem}\n {trailingCallbackItem}\n </Flex>\n\n {orderConfirmCheckbox}\n </div>\n );\n};\n","import { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderSide } from \"@orderly.network/types\";\nimport { Badge, Flex, Text } from \"@orderly.network/ui\";\nimport { parseBadgesFor } from \"../../../../../utils/util\";\n\ntype EditSheetHeaderProps = {\n item: API.AlgoOrderExt;\n};\n\nexport const EditSheetHeader = (props: EditSheetHeaderProps) => {\n const { item } = props;\n const { t } = useTranslation();\n\n return (\n <Flex width={\"100%\"} justify={\"between\"}>\n <Text.formatted rule={\"symbol\"} showIcon intensity={80}>\n {item.symbol}\n </Text.formatted>\n <Flex direction={\"row\"} gap={1}>\n {parseBadgesFor(props.item)?.map((e, index) => (\n <Badge\n key={index}\n color={e.toLocaleLowerCase() === \"position\" ? \"primary\" : \"neutral\"}\n size=\"xs\"\n >\n {e}\n </Badge>\n ))}\n {item.side === OrderSide.BUY ? (\n <Badge color=\"success\" size=\"xs\">\n {t(\"common.buy\")}\n </Badge>\n ) : (\n <Badge color=\"danger\" size=\"xs\">\n {t(\"common.sell\")}\n </Badge>\n )}\n </Flex>\n </Flex>\n );\n};\n","import { memo, useState } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype PriceInputProps = {\n order_price?: string | number;\n disabled?: boolean;\n};\n\nexport const PriceInput = memo((props: PriceInputProps) => {\n const [focus, setFocus] = useState(false);\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const error =\n getErrorMsg(\"order_price\") || (focus ? getErrorMsg(\"total\") : \"\");\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.price\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]}\n disabled={props.disabled}\n value={props.order_price}\n onValueChange={(val) => setOrderValue(\"order_price\", val)}\n onBlur={() => {\n setFocus(false);\n }}\n onFocus={() => {\n setFocus(true);\n }}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-5\",\n },\n arrow: {\n className: \"oui-fill-base-5\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nPriceInput.displayName = \"PriceInput\";\n","import { memo, useState } from \"react\";\nimport { utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype QuantityInputProps = {\n value: string | number;\n};\n\nexport const QuantityInput = memo((props: QuantityInputProps) => {\n const [focus, setFocus] = useState(false);\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n\n const { base_dp, base_tick, base } = symbolInfo;\n\n const error =\n getErrorMsg(\"order_quantity\") || (focus ? getErrorMsg(\"total\") : \"\");\n\n const setQuantity = (val: string) => {\n setOrderValue(\"order_quantity\", val);\n };\n\n const onBlur = (value: string) => {\n if (base_tick && base_tick > 0) {\n const formatQty = utils.formatNumber(value, base_tick) ?? value;\n setQuantity(formatQty);\n }\n };\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.quantity\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {base}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(base_dp),\n // inputFormatter.rangeFormatter({ max: props.maxQty }),\n ]}\n value={props.value}\n onValueChange={setQuantity}\n onBlur={(event) => {\n onBlur(event.target.value);\n setFocus(false);\n }}\n onFocus={() => {\n setFocus(true);\n }}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-6\",\n },\n arrow: {\n className: \"oui-fill-base-6\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nQuantityInput.displayName = \"QuantityInput\";\n","import { memo, useMemo } from \"react\";\nimport { useThrottledCallback, utils } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { Flex, Slider, Text } from \"@orderly.network/ui\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype QuantitySliderProps = {\n maxQty: number;\n quantity: string | number;\n};\n\nexport const QuantitySlider = memo((props: QuantitySliderProps) => {\n const { quantity, maxQty } = props;\n const { t } = useTranslation();\n\n const { symbolInfo, setOrderValue } = useEditSheetContext();\n const { base_dp, base_tick } = symbolInfo;\n\n const sliderValue = useMemo(() => {\n if (quantity && Number(quantity) !== 0 && maxQty !== 0) {\n const value = new Decimal(quantity)\n .div(maxQty)\n .mul(100)\n .toDecimalPlaces(2, Decimal.ROUND_DOWN)\n .toNumber();\n return value;\n }\n return 0;\n }, [quantity, maxQty]);\n\n const sliderToQuantity = useThrottledCallback(\n (value: number) => {\n const newQty = new Decimal(value)\n .div(100)\n .mul(maxQty)\n .toDecimalPlaces(base_dp, Decimal.ROUND_DOWN)\n .toNumber();\n\n setOrderValue(\"order_quantity\", utils.formatNumber(newQty, base_tick));\n },\n 50,\n {},\n );\n\n const percentages =\n props.quantity && props.maxQty\n ? Math.min(Number(props.quantity) / props.maxQty, 1)\n : undefined;\n\n return (\n <>\n <Slider\n markCount={4}\n value={[sliderValue]}\n onValueChange={(e) => {\n sliderToQuantity(e[0]);\n }}\n color=\"primary\"\n />\n <Flex width={\"100%\"} justify={\"between\"}>\n <Text.numeral\n color=\"primary\"\n size=\"2xs\"\n dp={2}\n padding={false}\n rule=\"percentages\"\n >{`${percentages ?? 0}`}</Text.numeral>\n <Flex\n gap={1}\n onClick={() => {\n setOrderValue(\"order_quantity\", maxQty.toString());\n }}\n >\n <Text size=\"2xs\" color=\"primary\">\n {t(\"common.max\")}\n </Text>\n <Text.numeral intensity={54} size=\"2xs\" dp={base_dp}>\n {props.maxQty}\n </Text.numeral>\n </Flex>\n </Flex>\n </>\n );\n});\n\nQuantitySlider.displayName = \"QuantitySlider\";\n","import { memo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype TrailingCallbackInputProps = {\n isCallbackValue?: boolean;\n callback_value?: number;\n callback_rate?: number;\n};\n\nexport const TrailingCallbackInput = memo(\n (props: TrailingCallbackInputProps) => {\n const { isCallbackValue, callback_value, callback_rate } = props;\n const { t } = useTranslation();\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const label = isCallbackValue\n ? t(\"orderEntry.trailingValue\")\n : t(\"orderEntry.trailingRate\");\n\n const field = isCallbackValue ? \"callback_value\" : \"callback_rate\";\n\n const suffix = isCallbackValue ? (\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n ) : (\n \"%\"\n );\n\n const error = getErrorMsg(field);\n\n const formatters = [\n inputFormatter.numberFormatter,\n inputFormatter.decimalPointFormatter,\n ];\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {label}\n </Text>\n }\n suffix={suffix}\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={\n isCallbackValue\n ? [\n ...formatters,\n inputFormatter.currencyFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]\n : [...formatters, inputFormatter.dpFormatter(1)]\n }\n value={isCallbackValue ? callback_value : callback_rate}\n onValueChange={(val) => setOrderValue(field, val)}\n tooltip={error}\n tooltipProps={{\n content: {\n // mobile max width\n className: \"oui-bg-base-5 oui-max-w-[360px]\",\n },\n arrow: {\n className: \"oui-fill-base-5\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n },\n);\n\nTrailingCallbackInput.displayName = \"TrailingCallbackInput\";\n","import { memo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { cn, Input, inputFormatter, Text } from \"@orderly.network/ui\";\nimport { useEditSheetContext } from \"./editSheetContext\";\n\ntype TriggerPriceInputProps = {\n trigger_price?: string | number;\n disabled?: boolean;\n};\n\nexport const TriggerPriceInput = memo((props: TriggerPriceInputProps) => {\n const { t } = useTranslation();\n\n const { symbolInfo, setOrderValue, getErrorMsg } = useEditSheetContext();\n const { quote, quote_dp } = symbolInfo;\n\n const error = getErrorMsg(\"trigger_price\");\n\n return (\n <Input.tooltip\n prefix={\n <Text intensity={54} className=\"oui-px-3\">\n {t(\"common.triggerPrice\")}\n </Text>\n }\n suffix={\n <Text intensity={54} className=\"oui-px-3\">\n {quote}\n </Text>\n }\n color={error ? \"danger\" : undefined}\n align=\"right\"\n fullWidth\n autoComplete=\"off\"\n formatters={[\n inputFormatter.numberFormatter,\n inputFormatter.dpFormatter(quote_dp),\n ]}\n value={props.trigger_price}\n onValueChange={(val) => setOrderValue(\"trigger_price\", val)}\n disabled={props.disabled}\n tooltip={error}\n tooltipProps={{\n content: {\n className: \"oui-bg-base-6 oui-text-base-contrast-80\",\n },\n arrow: {\n className: \"oui-fill-base-6\",\n },\n }}\n classNames={{\n input: \"oui-text-base-contrast oui-w-full\",\n root: cn(\"oui-outline-line-12\", error && \"oui-outline-danger\"),\n }}\n />\n );\n});\n\nTriggerPriceInput.displayName = \"TriggerPriceInput\";\n","import { FC, useMemo } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useOrderEntryFormErrorMsg } from \"@orderly.network/react-app\";\nimport {\n Button,\n Divider,\n Flex,\n SimpleDialog,\n Text,\n ThrottledButton,\n} from \"@orderly.network/ui\";\nimport { ActivitedPriceInput } from \"./components/activitedPriceInput\";\nimport { ConfirmDialogContent } from \"./components/editDialogContent\";\nimport { EditSheetContext } from \"./components/editSheetContext\";\nimport { EditSheetHeader } from \"./components/editSheetHeader\";\nimport { PriceInput } from \"./components/priceInput\";\nimport { QuantityInput } from \"./components/quantityInput\";\nimport { QuantitySlider } from \"./components/quantitySlider\";\nimport { TrailingCallbackInput } from \"./components/trailingCallbackInput\";\nimport { TriggerPriceInput } from \"./components/triggerPriceInput\";\nimport { EditSheetState } from \"./editSheet.script\";\n\nexport const EditSheet: FC<EditSheetState> = (props) => {\n const {\n item,\n symbolInfo,\n formattedOrder,\n isStopMarket,\n isTrailingStop,\n setOrderValue,\n errors,\n } = props;\n const { t } = useTranslation();\n\n const { getErrorMsg } = useOrderEntryFormErrorMsg(errors!);\n\n const disabled =\n !props.isChanged ||\n Object.keys(errors!).length > 0 ||\n // when activated price is not empty, the activated price input should not be empty\n (!!item.activated_price && !formattedOrder.activated_price);\n\n const header = <EditSheetHeader item={item} />;\n\n const lastPrice = (\n <Flex width={\"100%\"} justify={\"between\"}>\n <Text>{t(\"common.lastPrice\")}</Text>\n <Text.numeral dp={symbolInfo.quote_dp}>\n {props.markPrice ?? \"--\"}\n </Text.numeral>\n </Flex>\n );\n\n const triggerPriceInput = props.showTriggerPrice && (\n <TriggerPriceInput\n trigger_price={formattedOrder.trigger_price}\n disabled={!!item.is_triggered}\n />\n );\n\n const renderPriceInput = () => {\n if (isTrailingStop) {\n return (\n item.activated_price && (\n <ActivitedPriceInput\n activated_price={formattedOrder.activated_price}\n disabled={item.is_activated}\n />\n )\n );\n }\n\n return (\n <PriceInput\n order_price={\n isStopMarket\n ? t(\"orderEntry.orderType.market\")\n : formattedOrder.order_price\n }\n disabled={isStopMarket}\n />\n );\n };\n\n const trailingCallbackInput = isTrailingStop && (\n <TrailingCallbackInput\n isCallbackValue={!!item.callback_value}\n callback_value={formattedOrder.callback_value}\n callback_rate={formattedOrder.callback_rate}\n />\n );\n\n const quantityInput = <QuantityInput value={formattedOrder.order_quantity} />;\n\n const quantitySlider = (\n <QuantitySlider\n maxQty={props.maxQty}\n quantity={formattedOrder.order_quantity}\n />\n );\n\n const buttons = (\n <Flex width={\"100%\"} gap={3} mt={2}>\n <Button\n fullWidth\n color=\"secondary\"\n onClick={(e) => {\n props.onClose();\n }}\n >\n {t(\"common.cancel\")}\n </Button>\n <ThrottledButton\n fullWidth\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.onSheetConfirm();\n }}\n loading={props.submitting}\n disabled={disabled}\n >\n {t(\"common.confirm\")}\n </ThrottledButton>\n </Flex>\n );\n\n const ctxValue = useMemo(() => {\n return {\n symbolInfo,\n getErrorMsg,\n setOrderValue,\n };\n }, [symbolInfo, getErrorMsg, setOrderValue]);\n\n return (\n <EditSheetContext.Provider value={ctxValue}>\n <Flex\n direction={\"column\"}\n gap={3}\n width={\"100%\"}\n itemAlign={\"start\"}\n className=\"oui-text-sm\"\n >\n {header}\n <Divider intensity={8} className=\"oui-w-full\" />\n {lastPrice}\n <Flex width={\"100%\"} direction={\"column\"} itemAlign={\"stretch\"} gap={2}>\n {triggerPriceInput}\n {renderPriceInput()}\n {trailingCallbackInput}\n {quantityInput}\n {quantitySlider}\n </Flex>\n {buttons}\n </Flex>\n\n <SimpleDialog\n open={props.dialogOpen}\n onOpenChange={props.setDialogOpen}\n title={t(\"orders.editOrder\")}\n size=\"xs\"\n actions={{\n primary: {\n label: t(\"common.confirm\"),\n onClick: props.onDialogConfirm,\n loading: props.submitting,\n fullWidth: true,\n },\n secondary: {\n label: t(\"common.cancel\"),\n onClick: props.onCloseDialog,\n fullWidth: true,\n },\n }}\n classNames={{\n content: \"oui-pb-4\",\n body: \"oui-p-0\",\n footer: \"oui-pt-3 oui-pb-0\",\n }}\n >\n <ConfirmDialogContent {...props} />\n </SimpleDialog>\n </EditSheetContext.Provider>\n );\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { useOrderEntity } from \"@orderly.network/hooks\";\nimport {\n API,\n OrderlyOrder,\n OrderSide,\n OrderType,\n} from \"@orderly.network/types\";\n\nexport const useEditOrderEntry = (props: {\n order: API.AlgoOrderExt;\n orderType: OrderType;\n maxQty: number;\n}) => {\n const { order, orderType, maxQty } = props;\n\n const [formattedOrder, setFormattedOrder] = useState({\n symbol: order.symbol,\n side: order.side as OrderSide,\n reduce_only: order.reduce_only,\n order_type: orderType,\n // TODO: trailing stop order edit price twice, order.price will be 0\n order_price: order.price || undefined,\n order_quantity: order.quantity,\n trigger_price: order.trigger_price,\n activated_price: order.activated_price,\n callback_value: order.callback_value,\n callback_rate: order.callback_rate ? order.callback_rate * 100 : undefined,\n });\n\n const { markPrice, errors, validate, clearErrors } = useOrderEntity(\n formattedOrder,\n {\n maxQty,\n },\n );\n\n const setOrderValue = useCallback((key: keyof OrderlyOrder, value: any) => {\n setFormattedOrder((oldValue) => ({\n ...oldValue,\n [key]: value,\n }));\n }, []);\n\n const {\n order_price,\n order_quantity,\n trigger_price,\n activated_price,\n callback_value,\n callback_rate,\n } = formattedOrder;\n\n const isChanged =\n (order.price && order.price != order_price) ||\n (order.quantity && order.quantity != order_quantity) ||\n (order.trigger_price && order.trigger_price != trigger_price) ||\n // trailing stop fields\n (order.activated_price && order.activated_price != activated_price) ||\n (order.callback_value && order.callback_value != callback_value) ||\n (order.callback_rate && order.callback_rate * 100 != callback_rate);\n\n useEffect(() => {\n if (isChanged) {\n validate()\n .then((order) => {\n console.log(\"validate success\", order);\n })\n .catch((err) => {\n console.log(\"validate error\", err);\n });\n } else {\n clearErrors();\n }\n }, [\n isChanged,\n order_price,\n order_quantity,\n trigger_price,\n activated_price,\n callback_value,\n callback_rate,\n ]);\n\n return {\n markPrice,\n errors,\n validate,\n setOrderValue,\n formattedOrder,\n isChanged,\n };\n};\n","import { useMemo } from \"react\";\nimport { useMaxQty } from \"@orderly.network/hooks\";\nimport { API, OrderSide } from \"@orderly.network/types\";\n\nexport function useEditOrderMaxQty(\n order: API.AlgoOrderExt,\n positionQty?: number,\n) {\n const { reduce_only } = order;\n\n const maxQty = useMaxQty(order.symbol, order.side as OrderSide, reduce_only);\n\n return useMemo(() => {\n if (reduce_only) {\n return Math.abs(positionQty ?? 0);\n }\n return order.quantity + Math.abs(maxQty);\n }, [order.quantity, maxQty, reduce_only, positionQty]);\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocalStorage } from \"@orderly.network/hooks\";\nimport { API, OrderEntity, OrderType } from \"@orderly.network/types\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { toast, useModal } from \"@orderly.network/ui\";\nimport { convertApiOrderTypeToOrderEntryType } from \"../../../../utils/util\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useEditOrderEntry } from \"./hooks/useEditOrderEntry\";\nimport { useEditOrderMaxQty } from \"./hooks/useEditOrderMaxQty\";\n\nexport const useEditSheetScript = (props: {\n state: OrderCellState;\n position?: API.PositionTPSLExt;\n editAlgoOrder: (id: string, order: OrderEntity) => Promise<any>;\n editOrder: (id: string, order: OrderEntity) => Promise<any>;\n}) => {\n const { state, editAlgoOrder, editOrder, position } = props;\n const { item: order } = state;\n const { hide: onClose } = useModal();\n const [dialogOpen, setDialogOpen] = useState(false);\n const [submitting, setSubmitting] = useState(false);\n\n const isAlgoOrder =\n order.algo_order_id !== undefined &&\n order.algo_type !== AlgoOrderRootType.BRACKET;\n\n const isStopMarket = order?.type === \"MARKET\" && isAlgoOrder;\n const isTrailingStop = order.algo_type === OrderType.TRAILING_STOP;\n\n const showTriggerPrice = isAlgoOrder && !isTrailingStop;\n\n const orderType = useMemo(\n () => convertApiOrderTypeToOrderEntryType(order),\n [order],\n );\n\n const [orderConfirm, setOrderConfirm] = useLocalStorage(\n \"orderly_order_confirm\",\n true,\n );\n\n const maxQty = useEditOrderMaxQty(order, position?.position_qty);\n\n const {\n formattedOrder,\n setOrderValue,\n markPrice,\n errors,\n validate,\n isChanged,\n } = useEditOrderEntry({\n order,\n orderType,\n maxQty,\n });\n\n useEffect(() => {}, [order.price, formattedOrder.order_price]);\n\n const onCloseDialog = useCallback(() => {\n setDialogOpen(false);\n }, []);\n\n const onSubmit = useCallback(\n async (values: OrderEntity) => {\n let future;\n const isHidden =\n order.visible_quantity !== undefined\n ? order.visible_quantity === 0\n : (order as any).visible !== undefined\n ? (order as any).visible === 0\n : false;\n\n if (order.order_tag) {\n values.order_tag = order.order_tag;\n }\n\n if (order.client_order_id) {\n values.client_order_id = order.client_order_id;\n }\n\n if (order.algo_order_id !== undefined) {\n if (isTrailingStop) {\n if (values.callback_rate) {\n values = {\n ...values,\n callback_rate: (Number(values.callback_rate) / 100).toString(),\n };\n } else if (isStopMarket && \"order_price\" in values) {\n const { order_price, ...rest } = values;\n values = rest;\n }\n }\n\n future = editAlgoOrder(order.algo_order_id.toString(), {\n ...values,\n });\n } else {\n future = editOrder((order as any).order_id.toString(), {\n ...values,\n ...(isHidden ? { visible_quantity: 0 } : {}),\n });\n }\n try {\n setSubmitting(true);\n\n const res = await future;\n onClose();\n } catch (err: any) {\n toast.error(err?.message ?? `${err}`);\n } finally {\n setSubmitting(false);\n }\n },\n [editAlgoOrder, editOrder, isTrailingStop],\n );\n\n const onDialogConfirm = () => {\n if (formattedOrder) {\n return onSubmit(formattedOrder as any);\n }\n return Promise.reject();\n };\n\n const onSheetConfirm = () => {\n validate()\n .then(\n (result) => {\n if (orderConfirm) {\n setDialogOpen(true);\n } else {\n // @ts-ignore\n onSubmit(formattedOrder);\n }\n },\n (error) => {\n // rejected\n if (error?.total?.message) {\n toast.error(error?.total.message);\n }\n },\n )\n .catch((err) => {});\n };\n\n return {\n ...state,\n markPrice,\n isStopMarket,\n isTrailingStop,\n showTriggerPrice,\n formattedOrder,\n setOrderValue,\n maxQty,\n onClose,\n onSheetConfirm,\n errors,\n isChanged,\n dialogOpen,\n setDialogOpen,\n onDialogConfirm,\n onCloseDialog,\n submitting,\n\n orderConfirm,\n setOrderConfirm,\n };\n};\n\nexport type EditSheetState = ReturnType<typeof useEditSheetScript>;\n","import { API, OrderEntity } from \"@orderly.network/types\";\nimport { OrderCellState } from \"../orderCell.script\";\nimport { useEditSheetScript } from \"./editSheet.script\";\nimport { EditSheet } from \"./editSheet.ui\";\n\ntype EditSheetWidgetProps = {\n state: OrderCellState;\n editAlgoOrder: (id: string, order: OrderEntity) => Promise<any>;\n editOrder: (id: string, order: OrderEntity) => Promise<any>;\n position?: API.PositionTPSLExt;\n};\n\nexport const EditSheetWidget = (props: EditSheetWidgetProps) => {\n const state = useEditSheetScript(props);\n return <EditSheet {...state} />;\n};\n","export { EditSheet } from \"./editSheet.ui\";\nexport { EditSheetWidget } from \"./editSheet.widget\";\nexport { useEditSheetScript } from \"./editSheet.script\";\n","import { useCallback } from \"react\";\nimport { useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { modal } from \"@orderly.network/ui\";\nimport { PositionTPSLSheet } from \"@orderly.network/ui-tpsl\";\nimport { TabType } from \"../../../orders.widget\";\nimport { useOrderListContext } from \"../../orderListContext\";\nimport { useTPSLOrderRowContext } from \"../../tpslOrderRowContext\";\nimport { EditSheetWidget } from \"../editSheet\";\nimport { OrderCellState } from \"../orderCell.script\";\n\nexport const useEditBtnScript = (props: { state: OrderCellState }) => {\n const { state } = props;\n const { t } = useTranslation();\n const symbolInfo = useSymbolsInfo()[props.state.item.symbol]();\n\n const { editAlgoOrder, editOrder } = useOrderListContext();\n const { position } = useTPSLOrderRowContext();\n\n const onShowEditSheet = useCallback(() => {\n if (props.state.type === TabType.tp_sl) {\n modal\n .sheet({\n content: (\n <PositionTPSLSheet\n symbol={props.state.item.symbol}\n symbolInfo={symbolInfo}\n isEditing\n order={props.state.item}\n />\n ),\n })\n .catch((error) => {\n console.log(error);\n });\n } else {\n modal\n .sheet({\n title: t(\"orders.editOrder\"),\n // size: \"xs\",\n classNames: {\n content: \"oui-bg-base-8\",\n },\n content: (\n <EditSheetWidget\n state={state}\n position={position}\n editAlgoOrder={editAlgoOrder}\n editOrder={editOrder}\n />\n ),\n })\n .catch((error) => {\n console.log(error);\n });\n }\n }, [state]);\n\n return {\n ...state,\n onShowEditSheet,\n };\n};\n\nexport type EditBtnState = ReturnType<typeof useEditBtnScript>;\n","import { OrderCellState } from \"../orderCell.script\";\nimport { useEditBtnScript } from \"./editBtn.script\";\nimport { EditBtn } from \"./editBtn.ui\";\n\nexport const EditBtnWidget = (props: { state: OrderCellState }) => {\n const state = useEditBtnScript(props);\n return <EditBtn {...state} />;\n};\n","export { EditBtn } from \"./editBtn.ui\";\nexport { EditBtnWidget } from \"./editBtn.widget\";\nexport { useEditBtnScript } from \"./editBtn.script\";\n","import React, { FC } from \"react\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { Divider, Flex, Grid, Text } from \"@orderly.network/ui\";\nimport { TabType } from \"../../orders.widget\";\nimport { BracketOrderPriceWidget } from \"./bracketOrderPrice\";\nimport { CancelBtnWidget } from \"./cancelBtn\";\nimport { EditBtnWidget } from \"./editBtn\";\nimport {\n OrderTime,\n SymbolToken,\n OrderTypeView,\n Qty,\n Filled,\n EstTotal,\n TriggerPrice,\n LimitPrice,\n MarkPrice,\n TPTrigger,\n TPPrice,\n TPSLQuantity,\n SLTrigger,\n SLPrice,\n AvgPrice,\n OrderPrice,\n RealizedPnL,\n OrderState,\n Fee,\n TrailingCallback,\n TrailingPrice,\n} from \"./items\";\nimport { OrderCellState } from \"./orderCell.script\";\n\nexport const OrderCell: FC<\n OrderCellState & {\n className?: string;\n }\n> = (props) => {\n return (\n <Flex\n direction={\"column\"}\n width={\"100%\"}\n gap={2}\n itemAlign={\"start\"}\n className={props.className}\n >\n <Header {...props} />\n <Divider intensity={6} className=\"oui-w-full\" />\n <Body {...props} />\n {props.type === TabType.pending && <BracketOrderPriceWidget {...props} />}\n {props.type !== TabType.orderHistory && <Btns {...props} />}\n </Flex>\n );\n};\n\nexport const Header: FC<OrderCellState> = (props) => {\n return (\n <Flex direction={\"column\"} gap={1} width={\"100%\"}>\n <Flex justify={\"between\"} width={\"100%\"}>\n <SymbolToken {...props} />\n <OrderTime {...props} />\n </Flex>\n <Flex width={\"100%\"} justify={\"between\"}>\n <OrderTypeView {...props} />\n {props.type === TabType.orderHistory && <OrderState {...props} />}\n </Flex>\n </Flex>\n );\n};\n\nexport const Body: FC<OrderCellState> = (props) => {\n return (\n <Grid cols={3} rows={2} width={\"100%\"} gap={1}>\n {itemsWithType(props)}\n </Grid>\n );\n};\n\nexport const Btns: FC<OrderCellState> = (props) => {\n return (\n <Grid cols={3} rows={1} width={\"100%\"} gap={2}>\n <div></div>\n <EditBtnWidget state={props} />\n <CancelBtnWidget state={props} />\n </Grid>\n );\n};\n\nfunction itemsWithType(props: OrderCellState) {\n switch (props.type) {\n case TabType.all:\n return <></>;\n case TabType.pending:\n const isTrailingStop =\n props.item?.algo_type === AlgoOrderRootType.TRAILING_STOP;\n\n if (isTrailingStop) {\n return (\n <>\n <Qty {...props} />\n <Filled {...props} />\n <EstTotal {...props} />\n <TriggerPrice {...props} isPending={true} />\n <TrailingPrice {...props} />\n <TrailingCallback {...props} />\n </>\n );\n }\n\n return (\n <>\n <Qty {...props} />\n <Filled {...props} />\n <EstTotal {...props} />\n <TriggerPrice {...props} isPending={true} />\n <LimitPrice {...props} />\n <MarkPrice {...props} />\n </>\n );\n\n case TabType.tp_sl:\n return (\n <>\n <TPTrigger {...props} />\n <TPPrice {...props} />\n <TPSLQuantity {...props} />\n <SLTrigger {...props} />\n <SLPrice {...props} />\n </>\n );\n case TabType.filled:\n return <></>;\n case TabType.cancelled:\n return <></>;\n case TabType.rejected:\n return <></>;\n case TabType.orderHistory:\n return (\n <>\n <Qty {...props} />\n <Filled {...props} />\n <TriggerPrice {...props} align=\"end\" />\n <AvgPrice {...props} />\n <OrderPrice {...props} />\n <RealizedPnL {...props} />\n {/* placeholder */}\n <div></div>\n {/* placeholder */}\n <div></div>\n <Fee {...props} />\n </>\n );\n }\n}\n","import { API } from \"@orderly.network/types\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { TabType } from \"../../orders.widget\";\nimport { useSymbolContext } from \"../../provider/symbolContext\";\n\nexport const useOrderCellScript = (props: {\n item: API.AlgoOrderExt;\n index: number;\n type: TabType;\n sharePnLConfig?: SharePnLConfig;\n onSymbolChange?: (symbol: API.Symbol) => void;\n}) => {\n const symbolInfo = useSymbolContext();\n return {\n ...props,\n ...symbolInfo,\n // use symbolInfo replace ...symbolInfo\n symbolInfo,\n };\n};\n\nexport type OrderCellState = ReturnType<typeof useOrderCellScript>;\n","import { API } from \"@orderly.network/types\";\nimport { useOrderCellScript } from \"./orderCell.script\";\nimport { OrderCell } from \"./orderCell.ui\";\nimport { TabType } from \"../../orders.widget\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\n\nexport const OrderCellWidget = (props: {\n item: API.AlgoOrderExt;\n index: number;\n className?: string;\n type: TabType;\n sharePnLConfig?: SharePnLConfig;\n onSymbolChange?: (symbol: API.Symbol) => void;\n}) => {\n const { className, ...rest } = props;\n\n const state = useOrderCellScript(rest);\n return <OrderCell {...state} className={className} />;\n};\n","export { OrderCell } from \"./orderCell.ui\";\nexport { OrderCellWidget } from \"./orderCell.widget\";\nexport { useOrderCellScript } from \"./orderCell.script\";\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport { getMinNotional, useSymbolsInfo } from \"@orderly.network/hooks\";\nimport { useMemoizedFn } from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { API, OrderEntity } from \"@orderly.network/types\";\nimport { OrderListContext, OrderListContextState } from \"./orderListContext\";\n\nexport interface OrderListProviderProps {\n cancelOrder: (orderId: number, symbol: string) => Promise<any>;\n editOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n cancelAlgoOrder: (orderId: number, symbol: string) => Promise<any>;\n editAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;\n}\n\nexport const OrderListProvider: FC<\n PropsWithChildren<OrderListProviderProps>\n> = (props) => {\n const { cancelOrder, editOrder, cancelAlgoOrder, editAlgoOrder } = props;\n const { t } = useTranslation();\n const symbolsInfo = useSymbolsInfo();\n\n const onCancelOrder = useMemoizedFn(\n async (order: API.Order | API.AlgoOrder) => {\n if (order.algo_order_id !== undefined) {\n if (\n \"root_algo_order_id\" in order &&\n order.root_algo_order_id !== order.algo_order_id\n ) {\n return cancelAlgoOrder(order.root_algo_order_id, order.symbol);\n }\n\n return cancelAlgoOrder(order.algo_order_id, order.symbol).then(\n () => {},\n );\n }\n // @ts-ignore\n return cancelOrder(order.order_id, order.symbol).then(() => {\n // toast.success(\"Order canceled successfully\");\n });\n },\n );\n\n const checkMinNotional = useMemoizedFn(\n (symbol: string, price?: string | number, qty?: string | number) => {\n const { min_notional } = symbolsInfo[symbol]();\n const minNotional = getMinNotional({ price, qty, min_notional });\n if (minNotional !== undefined) {\n return t(\"orderEntry.total.error.min\", { value: minNotional });\n }\n },\n );\n\n const memoizedValue = useMemo<OrderListContextState>(() => {\n return {\n onCancelOrder,\n editOrder,\n editAlgoOrder,\n checkMinNotional,\n };\n }, [onCancelOrder, editOrder, editAlgoOrder, checkMinNotional]);\n\n return (\n <OrderListContext.Provider value={memoizedValue}>\n {props.children}\n </OrderListContext.Provider>\n );\n};\n","import { FC } from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport {\n Flex,\n ListView,\n Button,\n Grid,\n Picker,\n DataFilter,\n cn,\n TableFeatures,\n} from \"@orderly.network/ui\";\nimport { AuthGuardDataTable } from \"@orderly.network/ui-connector\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport { grayCell } from \"../../utils/util\";\nimport { TabType } from \"../orders.widget\";\nimport { SymbolProvider } from \"../provider/symbolProvider\";\nimport { useOrderColumn } from \"./desktop/useColumn\";\nimport { OrderCellWidget } from \"./mobile\";\nimport { OrdersBuilderState } from \"./orderList.script\";\nimport { OrderListProvider } from \"./orderListProvider\";\nimport { TPSLOrderRowProvider } from \"./tpslOrderRowContext\";\n\nexport const DesktopOrderList: FC<\n OrdersBuilderState & { testIds?: { tableBody?: string } }\n> = (props) => {\n const { sharePnLConfig, ...rest } = props;\n const columns = useOrderColumn({\n _type: props.type,\n onSymbolChange: props.onSymbolChange,\n pnlNotionalDecimalPrecision: props.pnlNotionalDecimalPrecision,\n sharePnLConfig,\n symbolsInfo: props.symbolsInfo,\n });\n\n return (\n <OrderListProvider\n cancelOrder={props.cancelOrder}\n editOrder={props.updateOrder}\n cancelAlgoOrder={props.cancelAlgoOrder}\n editAlgoOrder={props.updateAlgoOrder}\n // cancelTPSLOrder={props.cancelTPSLOrder}\n >\n <Flex direction=\"column\" width=\"100%\" height=\"100%\" itemAlign=\"start\">\n {props.filterItems.length > 0 && (\n <DataFilter\n items={props.filterItems}\n onFilter={(value: any) => {\n props.onFilter(value);\n }}\n trailing={\n [TabType.pending, TabType.tp_sl].includes(props.type) && (\n <CancelAll {...props} />\n )\n }\n />\n )}\n <AuthGuardDataTable\n columns={columns}\n loading={props.isLoading}\n dataSource={props.dataSource}\n bordered\n ignoreLoadingCheck={true}\n testIds={{\n body: props.testIds?.tableBody,\n }}\n classNames={{\n header: \"oui-h-[38px]\",\n root: \"oui-items-start !oui-h-[calc(100%_-_49px)]\",\n }}\n onRow={(record, index) => {\n return {\n className: cn(\n \"oui-h-[48px]\",\n grayCell(record)\n ? \"oui-text-base-contrast-20\"\n : \"oui-text-base-contrast-80\",\n ),\n };\n }}\n generatedRowKey={(record, index) =>\n `${props.type}${index}${\n record.order_id || record.algo_order_id\n }_index${index}`\n }\n renderRowContainer={(record: any, index, children) => {\n if (\n props.type === TabType.tp_sl ||\n props.type === TabType.pending\n ) {\n children = (\n <TPSLOrderRowProvider order={record}>\n {children}\n </TPSLOrderRowProvider>\n );\n }\n\n return (\n <SymbolProvider symbol={record.symbol}>{children}</SymbolProvider>\n );\n }}\n pagination={props.pagination}\n manualPagination={props.manualPagination}\n features={[TableFeatures.DownloadFeature]}\n getTableInstance={(table) => {\n props.tableInstance.current = table;\n }}\n />\n </Flex>\n </OrderListProvider>\n );\n};\n\nexport const MobileOrderList: FC<\n OrdersBuilderState & {\n classNames?: { root?: string; cell?: string; content?: string };\n showFilter?: boolean;\n }\n> = (props) => {\n const { t } = useTranslation();\n\n return (\n <OrderListProvider\n cancelOrder={props.cancelOrder}\n editOrder={props.updateOrder}\n cancelAlgoOrder={props.cancelAlgoOrder}\n editAlgoOrder={props.updateAlgoOrder}\n // cancelTPSLOrder={props.cancelTPSLOrder}\n >\n <Grid\n cols={1}\n rows={2}\n className=\"oui-w-full oui-grid-rows-[auto,1fr]\"\n gap={2}\n >\n {/* <Filter\n items={props.filterItems}\n onFilter={(value: any) => {\n props.onFilter(value);\n }}\n className=\"oui-px-3\"\n \n /> */}\n\n {props.showFilter ? (\n <Flex gap={2} p={2} className=\"oui-rounded-b-xl oui-bg-base-9\">\n {props.filterItems.map((item) => {\n // not support range type\n if (item.type !== \"select\") {\n return null;\n }\n return (\n <Picker\n key={`item-${item.name}`}\n options={item.options}\n size={\"sm\"}\n value={item.value}\n className=\"oui-text-2xs oui-text-base-contrast-54 \"\n placeholder={\n item.name === \"side\"\n ? t(\"common.side.all\")\n : item.name === \"status\"\n ? t(\"common.status.all\")\n : \"\"\n }\n onValueChange={(value) => {\n //\n props.onFilter?.({ name: item.name, value: value });\n }}\n />\n );\n })}\n </Flex>\n ) : (\n <div></div>\n )}\n <ListView\n className={props.classNames?.root}\n contentClassName={props.classNames?.content}\n dataSource={props.dataSource}\n loadMore={props.loadMore}\n isLoading={props.isLoading}\n renderItem={(item, index) => {\n let children = (\n <OrderCellWidget\n item={item}\n index={index}\n className={props.classNames?.cell}\n type={props.type}\n onSymbolChange={props.onSymbolChange}\n sharePnLConfig={props.sharePnLConfig}\n />\n );\n if ([TabType.tp_sl, TabType.pending].includes(props.type)) {\n children = (\n <TPSLOrderRowProvider order={item}>\n {children}\n </TPSLOrderRowProvider>\n );\n }\n return (\n <SymbolProvider symbol={item.symbol}>{children}</SymbolProvider>\n );\n }}\n />\n </Grid>\n </OrderListProvider>\n );\n};\n\nconst CancelAll: FC<OrdersBuilderState> = (props) => {\n const { t } = useTranslation();\n const { symbol } = props;\n\n const formattedSymbol = symbol ? formatSymbol(symbol, \"base\") : symbol;\n\n return (\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"xs\"\n disabled={(props.dataSource?.length ?? 0) == 0}\n className=\"disabled:oui-bg-transport\"\n onClick={(e) => props.onCancelAll()}\n data-testid={`oui-testid-dataList-${props.type.toLowerCase()}-cancelAll-button`}\n >\n {symbol\n ? t(\"orders.cancelAll.ofSymbol\", { symbol: formattedSymbol })\n : t(\"orders.cancelAll\")}\n </Button>\n );\n};\n","import { useMemo } from \"react\";\nimport { API, AlgoOrderRootType, OrderStatus } from \"@orderly.network/types\";\n\nexport const useFormatOrderHistory = (data: API.AlgoOrderExt[]) => {\n const formattedData = useMemo(() => {\n const _data: API.AlgoOrder[] = [];\n\n for (let index = 0; index < data.length; index++) {\n const element = data[index];\n // console.log(\"element\", element);\n if (\n element.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL ||\n element.algo_type === AlgoOrderRootType.TP_SL\n ) {\n if (\n element.algo_status !== OrderStatus.FILLED &&\n element.algo_status !== OrderStatus.PARTIAL_FILLED\n ) {\n for (let j = 0; j < element.child_orders.length; j++) {\n const e = element.child_orders[j];\n if (!e.is_activated || !e.trigger_price) {\n continue;\n }\n (e as any).parent_algo_type = element.algo_type;\n _data.push(e);\n }\n } else {\n // if order is filled then show only the filled order\n for (let j = 0; j < element.child_orders.length; j++) {\n const e = element.child_orders[j];\n if (\n !!e &&\n (e.algo_status === OrderStatus.FILLED ||\n e.algo_status === OrderStatus.PARTIAL_FILLED)\n ) {\n (e as any).parent_algo_type = element.algo_type;\n _data.push(e);\n }\n }\n }\n } else {\n _data.push(element);\n }\n }\n\n return _data;\n\n // data.map((item) => {});\n }, [data]);\n\n return formattedData;\n};\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n ForwardedRef,\n useImperativeHandle,\n} from \"react\";\nimport { differenceInDays, setHours, subDays, format } from \"date-fns\";\nimport {\n useLocalStorage,\n useOrderStream,\n useSymbolsInfo,\n} from \"@orderly.network/hooks\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { useDataTap } from \"@orderly.network/react-app\";\nimport {\n AlgoOrderRootType,\n OrderStatus,\n OrderSide,\n API,\n} from \"@orderly.network/types\";\nimport { modal, usePagination, Text, Table } from \"@orderly.network/ui\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { formatSymbol } from \"@orderly.network/utils\";\nimport { areDatesEqual } from \"../../utils/util\";\nimport { TabType } from \"../orders.widget\";\nimport { useFormatOrderHistory } from \"./useFormatOrderHistory\";\n\nexport type OrderListInstance = {\n download?: () => void;\n};\n\nexport type useOrderListScriptOptions = {\n type: TabType;\n ordersStatus?: OrderStatus;\n symbol?: string;\n enableLoadMore?: boolean;\n onSymbolChange?: (symbol: API.Symbol) => void;\n sharePnLConfig?: SharePnLConfig;\n filterConfig?: {\n side?: OrderSide | \"all\";\n range?: {\n from?: Date;\n to?: Date;\n };\n };\n pnlNotionalDecimalPrecision?: number;\n ref?: ForwardedRef<OrderListInstance>;\n};\n\nexport const useOrderListScript = (props: useOrderListScriptOptions) => {\n const {\n ordersStatus,\n type,\n enableLoadMore = false,\n onSymbolChange,\n filterConfig,\n pnlNotionalDecimalPrecision,\n sharePnLConfig,\n } = props;\n const { t } = useTranslation();\n const symbolsInfo = useSymbolsInfo();\n\n const manualPagination = useMemo(() => {\n // pending and ts_sl list use client pagination\n return ordersStatus !== OrderStatus.INCOMPLETE;\n }, [ordersStatus]);\n\n const defaultPageSize = 50;\n const { page, pageSize, setPage, pagination, parsePagination } =\n usePagination({\n pageSize: defaultPageSize,\n });\n\n // when symbol change, reset page\n useEffect(() => {\n setPage(1);\n }, [props.symbol]);\n\n const {\n orderStatus,\n ordersSide,\n dateRange,\n filterItems,\n onFilter,\n filterDays,\n updateFilterDays,\n } = useFilter(type, {\n ordersStatus,\n setPage,\n filterConfig,\n });\n\n const includes = useMemo(() => {\n if (type === TabType.tp_sl) {\n return [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL];\n }\n return undefined;\n }, [type]);\n\n const excludes = useMemo(() => {\n if (type === TabType.pending) {\n return [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL];\n }\n return undefined;\n }, [type]);\n\n const tableInstance = useRef<Table<any>>();\n\n useImperativeHandle(props.ref, () => ({\n download: () => {\n const filename = `orders_${format(new Date(), \"yyyyMMdd_HHmmss\")}`;\n tableInstance.current?.download(filename);\n },\n }));\n\n const [\n data,\n {\n isLoading,\n loadMore,\n cancelOrder,\n updateOrder,\n cancelAlgoOrder,\n updateAlgoOrder,\n cancelAllPendingOrders,\n cancelAllTPSLOrders,\n meta,\n refresh,\n },\n ] = useOrderStream({\n symbol: props.symbol,\n status: orderStatus,\n side: ordersSide,\n page: enableLoadMore || !manualPagination ? undefined : page,\n // pending and ts_sl list get all data\n size: manualPagination ? pageSize : 500,\n sourceTypeAll: type === TabType.orderHistory,\n dateRange,\n includes,\n excludes,\n });\n\n const localPageSizeKey = `orderly_${type}_pageSize`;\n const [typePageSize, setTypePageSize] = useLocalStorage(\n localPageSizeKey,\n defaultPageSize,\n );\n\n useEffect(() => {\n if (typePageSize !== pageSize) {\n setTypePageSize(pageSize);\n }\n }, [pageSize, typePageSize]);\n\n const onCancelAll = useCallback(() => {\n const { title, content } = getDialogInfo(type, t, props.symbol);\n\n modal.confirm({\n title: title,\n content: <Text size=\"sm\">{content}</Text>,\n onCancel: async () => {},\n onOk: async () => {\n try {\n // await cancelAll(null, { source_type: \"ALL\" });\n if (type === TabType.tp_sl) {\n await cancelAllTPSLOrders(props.symbol);\n } else {\n await cancelAllPendingOrders(props.symbol);\n }\n refresh();\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 }, [type, t, props.symbol]);\n\n const formattedData = useFormatOrderHistory(data ?? []);\n\n const dataSource =\n useDataTap(type !== TabType.tp_sl ? formattedData : data, {\n fallbackData: [],\n }) ?? undefined;\n\n const _pagination = useMemo(() => {\n if (manualPagination) {\n return parsePagination(meta);\n }\n return pagination;\n }, [meta, manualPagination, parsePagination, pagination]);\n\n return {\n type,\n dataSource,\n isLoading,\n loadMore,\n cancelOrder,\n updateOrder,\n cancelAlgoOrder,\n updateAlgoOrder,\n pagination: _pagination,\n manualPagination,\n pnlNotionalDecimalPrecision,\n\n // filter\n onFilter,\n filterItems,\n onCancelAll,\n\n onSymbolChange,\n\n sharePnLConfig,\n tableInstance,\n symbolsInfo,\n filterDays,\n updateFilterDays,\n\n symbol: props.symbol,\n };\n};\n\nconst useFilter = (\n type: TabType,\n option: {\n ordersStatus?: OrderStatus | \"all\";\n setPage: (page: number) => void;\n filterConfig?: {\n side?: OrderSide | \"all\";\n range?: {\n from?: Date;\n to?: Date;\n };\n };\n },\n) => {\n const { t } = useTranslation();\n const [orderStatus, setOrderStatus] = useState<OrderStatus | \"all\">(\n option.ordersStatus ?? \"all\",\n );\n const [ordersSide, setOrdersSide] = useState<OrderSide | \"all\">(\n option.filterConfig?.side ?? \"all\",\n );\n\n /// default is 90d\n const [filterDays, setFilterDays] = useState<1 | 7 | 30 | 90 | null>(90);\n\n const defaultRange =\n option.filterConfig?.range ??\n (type === TabType.all || type === TabType.orderHistory\n ? formatDatePickerRange({\n to: new Date(),\n from: offsetEndOfDay(subDays(new Date(), 89)),\n })\n : {});\n\n const [dateRange, setDateRange] = useState<{\n from?: Date;\n to?: Date;\n }>(defaultRange);\n\n const updateFilterDays = (days: 1 | 7 | 30 | 90) => {\n setFilterDays(days);\n setDateRange({\n from: offsetStartOfDay(subDays(new Date(), days - 1)),\n to: offsetEndOfDay(new Date()),\n });\n option.setPage(1);\n };\n\n const onFilter = (filter: { name: string; value: any }) => {\n if (filter.name === \"side\") {\n setOrdersSide(filter.value);\n option.setPage(1);\n }\n\n if (filter.name === \"status\") {\n setOrderStatus(filter.value);\n option.setPage(1);\n }\n\n if (filter.name === \"dateRange\") {\n setDateRange(formatDatePickerRange(filter.value));\n option.setPage(1);\n\n const newDateRange = formatDatePickerRange(filter.value);\n if (newDateRange.from && newDateRange.to) {\n const diffDays =\n Math.abs(differenceInDays(newDateRange.from, newDateRange.to)) + 1;\n const dateRangeMap: { [key: number]: { from: Date; to: Date } } = {\n 1: {\n from: offsetStartOfDay(new Date())!,\n to: offsetEndOfDay(new Date())!,\n },\n 7: {\n from: offsetStartOfDay(subDays(new Date(), 6))!,\n to: offsetEndOfDay(new Date())!,\n },\n 30: {\n from: offsetStartOfDay(subDays(new Date(), 29))!,\n to: offsetEndOfDay(new Date())!,\n },\n 90: {\n from: offsetStartOfDay(subDays(new Date(), 89))!,\n to: offsetEndOfDay(new Date())!,\n },\n };\n\n const dateRange = dateRangeMap[diffDays];\n if (\n dateRange &&\n areDatesEqual(dateRange.from, newDateRange.from) &&\n areDatesEqual(dateRange.to, newDateRange.to)\n ) {\n setFilterDays(diffDays as any);\n } else {\n setFilterDays(null);\n }\n }\n }\n };\n\n const filterItems = useMemo((): any[] => {\n const sideFilter = {\n type: \"select\",\n name: \"side\",\n options: [\n {\n label: t(\"common.side.all\"),\n value: \"all\",\n },\n {\n label: t(\"common.buy\"),\n value: \"BUY\",\n },\n {\n label: t(\"common.sell\"),\n value: \"SELL\",\n },\n ],\n value: ordersSide,\n };\n\n const dateRangeFilter = {\n type: \"range\",\n name: \"dateRange\",\n value: dateRange,\n };\n\n const statusFilter = {\n type: \"select\",\n name: \"status\",\n options: [\n {\n label: t(\"common.status.all\"),\n value: \"all\",\n },\n {\n label: t(\"orders.status.pending\"),\n value: OrderStatus.INCOMPLETE,\n },\n {\n label: t(\"orders.status.filled\"),\n value: OrderStatus.FILLED,\n },\n {\n label: t(\"orders.status.partialFilled\"),\n value: OrderStatus.PARTIAL_FILLED,\n },\n {\n label: t(\"orders.status.canceled\"),\n value: OrderStatus.CANCELLED,\n },\n {\n label: t(\"orders.status.rejected\"),\n value: OrderStatus.REJECTED,\n },\n ],\n value: orderStatus,\n };\n switch (type) {\n case TabType.all:\n return [sideFilter, statusFilter, dateRangeFilter];\n case TabType.pending:\n return [sideFilter];\n case TabType.tp_sl:\n return [sideFilter];\n case TabType.filled:\n return [sideFilter];\n case TabType.cancelled:\n return [sideFilter];\n case TabType.rejected:\n return [sideFilter];\n case TabType.orderHistory:\n return [sideFilter, statusFilter, dateRangeFilter];\n }\n }, [type, ordersSide, orderStatus, dateRange, t]);\n\n return {\n filterItems,\n onFilter,\n ordersSide: ordersSide === \"all\" ? undefined : ordersSide,\n dateRange,\n orderStatus: orderStatus === \"all\" ? undefined : orderStatus,\n filterDays,\n updateFilterDays,\n };\n};\n\nexport type OrdersBuilderState = ReturnType<typeof useOrderListScript>;\nexport type FilterState = ReturnType<typeof useFilter>;\n\nexport const parseDateRangeForFilter = (dateRange: {\n from: Date;\n to?: Date;\n}) => {\n let { from, to } = dateRange;\n\n if (typeof to === \"undefined\") {\n to = new Date();\n }\n\n const diff = differenceInDays(from, to);\n\n // console.log(\"diff\", diff);\n\n if (diff === 0) {\n return [from, setHours(to, 23)];\n }\n\n return [from, to];\n};\n\nfunction offsetStartOfDay(date?: Date) {\n if (date == null) return date;\n\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n}\n\nfunction offsetEndOfDay(date?: Date) {\n if (date == null) return date;\n\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n}\n\nexport const formatDatePickerRange = (option: { from?: Date; to?: Date }) => ({\n from: offsetStartOfDay(option.from),\n to: offsetEndOfDay(option.to ?? option.from),\n});\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","import React, { forwardRef } from \"react\";\nimport { OrderSide, OrderStatus, API } from \"@orderly.network/types\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { TabType } from \"../orders.widget\";\nimport { OrderListInstance, useOrderListScript } from \"./orderList.script\";\nimport { DesktopOrderList, MobileOrderList } from \"./orderList.ui\";\n\nexport type DesktopOrderListWidgetProps = {\n type: TabType;\n ordersStatus?: OrderStatus;\n /** if has value, will be fetch current symbol orders*/\n symbol?: string;\n onSymbolChange?: (symbol: API.Symbol) => void;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n testIds?: {\n tableBody?: string;\n };\n};\n\nexport const DesktopOrderListWidget = forwardRef<\n OrderListInstance,\n DesktopOrderListWidgetProps\n>((props, ref) => {\n const { testIds, ...rest } = props;\n const state = useOrderListScript({ ...rest, ref });\n return <DesktopOrderList {...state} testIds={testIds} />;\n});\n\nexport const MobileOrderListWidget: React.FC<{\n type: TabType;\n ordersStatus?: OrderStatus;\n /** if has value, will be fetch current symbol orders*/\n symbol?: string;\n onSymbolChange?: (symbol: API.Symbol) => void;\n sharePnLConfig?: SharePnLConfig;\n classNames?: { root?: string; cell?: string; content?: string };\n showFilter?: boolean;\n filterConfig?: {\n side?: OrderSide | \"all\";\n range?: { from?: Date; to?: Date };\n };\n}> = (props) => {\n const state = useOrderListScript({ ...props, enableLoadMore: true });\n return (\n <MobileOrderList\n {...state}\n classNames={props.classNames}\n showFilter={props.showFilter}\n />\n );\n};\n","export { DesktopOrderList, MobileOrderList } from \"./orderList.ui\";\nexport {\n DesktopOrderListWidget,\n MobileOrderListWidget,\n} from \"./orderList.widget\";\nexport { useOrderListScript, type OrderListInstance } from \"./orderList.script\";\n","import React from \"react\";\nimport { useTranslation } from \"@orderly.network/i18n\";\nimport { OrderStatus } from \"@orderly.network/types\";\nimport { TabPanel, Tabs } from \"@orderly.network/ui\";\nimport type { DesktopOrderListWidgetProps } from \"./orderList/orderList.widget\";\nimport { OrdersBuilderState } from \"./orders.script\";\nimport { TabType } from \"./orders.widget\";\n\nconst LazyDesktopOrderListWidget = React.lazy(() =>\n import(\"./orderList\").then((mod) => {\n return { default: mod.DesktopOrderListWidget };\n }),\n);\n\nexport const Orders: React.FC<OrdersBuilderState> = (props) => {\n const { t } = useTranslation();\n const { pnlNotionalDecimalPrecision, orderListRef } = props;\n const commonProps: Partial<DesktopOrderListWidgetProps> = {\n pnlNotionalDecimalPrecision: pnlNotionalDecimalPrecision,\n };\n return (\n <Tabs\n defaultValue={props.current || TabType.all}\n variant=\"contained\"\n className=\"oui-h-full\"\n classNames={{\n tabsContent: \"oui-h-[calc(100%_-_28px)]\",\n }}\n >\n <TabPanel value={TabType.all} title={t(\"common.all\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.all}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n sharePnLConfig={props.sharePnLConfig}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.pending} title={t(\"orders.status.pending\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.pending}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.tp_sl} title={t(\"common.tpsl\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.tp_sl}\n ordersStatus={OrderStatus.INCOMPLETE}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.filled} title={t(\"orders.status.filled\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.filled}\n ordersStatus={OrderStatus.FILLED}\n pnlNotionalDecimalPrecision={pnlNotionalDecimalPrecision}\n sharePnLConfig={props.sharePnLConfig}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.cancelled} title={t(\"orders.status.canceled\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.cancelled}\n ordersStatus={OrderStatus.CANCELLED}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n <TabPanel value={TabType.rejected} title={t(\"orders.status.rejected\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n ref={orderListRef}\n type={TabType.rejected}\n ordersStatus={OrderStatus.REJECTED}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel>\n {/* <TabPanel value={TabType.orderHistory} title={t(\"orders.orderHistory\")}>\n <React.Suspense fallback={null}>\n <LazyDesktopOrderListWidget\n type={TabType.orderHistory}\n {...commonProps}\n />\n </React.Suspense>\n </TabPanel> */}\n </Tabs>\n );\n};\n// ----------------- Orders ui component end -----------------\n","import { forwardRef } from \"react\";\nimport { SharePnLConfig } from \"@orderly.network/ui-share\";\nimport { OrderListInstance } from \"./orderList/orderList.script\";\nimport { useOrdersScript } from \"./orders.script\";\nimport { Orders } from \"./orders.ui\";\n\nexport enum TabType {\n all = \"all\",\n pending = \"pending\",\n tp_sl = \"tp_sl\",\n filled = \"filled\",\n cancelled = \"cancelled\",\n rejected = \"rejected\",\n orderHistory = \"orderHistory\",\n}\n\nexport type OrdersWidgetProps = {\n current?: TabType;\n pnlNotionalDecimalPrecision?: number;\n sharePnLConfig?: SharePnLConfig;\n};\n\nexport const OrdersWidget = forwardRef<OrderListInstance, OrdersWidgetProps>(\n (props, ref) => {\n const state = useOrdersScript({ ...props, ref });\n return <Orders {...state} />;\n },\n);\n","export {\n OrdersWidget,\n TabType,\n} from \"./components/orders.widget\";\nexport { useOrdersScript } from \"./components/orders.script\";\nexport type { OrdersBuilderState } from \"./components/orders.script\";\n\nexport * from \"./components/orderList\";\n"]}
|