@orderly.network/ui-order-entry 2.4.2-alpha.0 → 2.5.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -5
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +11 -10
package/dist/index.mjs
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useLocalStorage, useEventEmitter, useLeverage, useOrderEntry, useAccount, useMarginRatio, utils, useBoolean, useAccountInfo } from '@orderly.network/hooks';
|
|
1
|
+
import Er, { forwardRef, createContext, useState, useImperativeHandle, useEffect, useContext, useMemo, useRef, useCallback } from 'react';
|
|
2
|
+
import { useLocalStorage, useEventEmitter, useLeverage, useOrderEntry, useAccount, useMarginRatio, useComputedLTV, useHoldingStream, useTokensInfo, useIndexPricesStream, utils, useQuery, useBoolean, useAccountInfo } from '@orderly.network/hooks';
|
|
3
3
|
import { i18n, useTranslation } from '@orderly.network/i18n';
|
|
4
4
|
import { useOrderEntryFormErrorMsg, useAppContext } from '@orderly.network/react-app';
|
|
5
5
|
import { OrderSide, OrderType, BBOOrderType, OrderLevel, DistributionType, AccountStatusEnum } from '@orderly.network/types';
|
|
6
|
-
import { registerSimpleDialog, ExclamationFillIcon, modal, Text, Tooltip, TooltipTrigger, Flex, Input, cn, inputFormatter, Box, Grid, Badge, Divider, textVariants, Checkbox, Button, TokenIcon, DataTable, SimpleDropdownMenu, CaretDownIcon, useScreen, CaretRightIcon, ThrottledButton, Switch, Slider, Select, PopoverRoot, PopoverTrigger, PopoverContent, convertValueToPercentage, toast, SimpleDialog, EditIcon } from '@orderly.network/ui';
|
|
6
|
+
import { registerSimpleDialog, ExclamationFillIcon, modal, Text, Tooltip, TooltipTrigger, Flex, Input, cn, inputFormatter, Box, Grid, Badge, Divider, textVariants, Checkbox, Button, TokenIcon, DataTable, SimpleDropdownMenu, CaretDownIcon, useScreen, CaretRightIcon, InfoCircleIcon, ThrottledButton, Switch, Slider, Select, PopoverRoot, PopoverTrigger, PopoverContent, convertValueToPercentage, toast, SimpleDialog, EditIcon } from '@orderly.network/ui';
|
|
7
7
|
import { LeverageWidgetWithSheetId } from '@orderly.network/ui-leverage';
|
|
8
8
|
import { Decimal, zero, todpIfNeed, commifyOptional, removeTrailingZeros } from '@orderly.network/utils';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
10
|
+
import { account } from '@orderly.network/perp';
|
|
10
11
|
import { AuthGuard } from '@orderly.network/ui-connector';
|
|
11
12
|
|
|
12
|
-
var Nt=e=>{let{pinned:t,orderTypeExtra:r}=e,{t:o}=useTranslation(),i=n=>a=>{e.onValueChange&&e.onValueChange("order_type_ext",a?n:"");};return useEffect(()=>{e.onValueChange?.("visible_quantity",e.hidden?0:1);},[e.hidden]),jsxs("div",{className:"oui-text-base-contrast-54",children:[jsxs(Flex,{justify:t?"start":"between",mb:3,width:t?"unset":"100%",className:"oui-gap-x-2 md:oui-gap-x-3",wrap:"wrap",gapY:1,children:[jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-postOnly-checkBox",id:"toggle_order_post_only",className:"oui-peer",color:"white",variant:"radio",disabled:!e.showExtra,checked:r===OrderType.POST_ONLY,onCheckedChange:i(OrderType.POST_ONLY)}),jsx("label",{htmlFor:"toggle_order_post_only",className:cn("oui-text-2xs oui-ml-1 peer-data-[disabled]:oui-text-base-contrast-20","oui-break-normal oui-whitespace-nowrap"),children:o("orderEntry.orderType.postOnly")})]}),jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-ioc-checkBox",id:"toggle_order_iov",color:"white",className:"oui-peer",variant:"radio",checked:r===OrderType.IOC,onCheckedChange:i(OrderType.IOC),disabled:!e.showExtra}),jsx("label",{htmlFor:"toggle_order_iov",className:cn("oui-text-2xs oui-ml-1 peer-data-[disabled]:oui-text-base-contrast-20","oui-break-normal oui-whitespace-nowrap"),children:o("orderEntry.orderType.ioc")})]}),jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-fox-checkBox",id:"toggle_order_fok",color:"white",variant:"radio",className:"oui-peer",checked:r===OrderType.FOK,onCheckedChange:i(OrderType.FOK),disabled:!e.showExtra}),jsx("label",{htmlFor:"toggle_order_fok",className:cn("oui-text-2xs oui-ml-1 peer-data-[disabled]:oui-text-base-contrast-20","oui-break-normal oui-whitespace-nowrap"),children:o("orderEntry.orderType.fok")})]})]}),jsxs(Flex,{gapX:6,children:[jsxs(Flex,{children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-orderConfirm-checkBox",id:"toggle_order_confirm",color:"white",checked:e.needConfirm,onCheckedChange:n=>{e.setNeedConfirm(!!n);}}),jsx("label",{htmlFor:"toggle_order_confirm",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.orderConfirm")})]}),jsxs(Flex,{children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-hidden-checkBox",id:"toggle_order_hidden",color:"white",checked:e.hidden,onCheckedChange:n=>{e.setHidden(n);}}),jsx("label",{htmlFor:"toggle_order_hidden",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.hidden")})]})]}),!t&&jsxs(Fragment,{children:[jsx(Divider,{className:"oui-my-3"}),jsxs(Flex,{children:[jsx(Switch,{"data-testid":"oui-testid-orderEntry-additional-keepVisible-switch",id:"toggle_order_keep_visible",onCheckedChange:n=>{e.setPinned(n);}}),jsx("label",{htmlFor:"toggle_order_keep_visible",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.keepVisible")})]})]})]})};var Lt=()=>({});var Me=e=>{let t=Lt();return jsx(Nt,{...t,...e})};function ve(e){let{order_type:t,order_type_ext:r}=e,o=[OrderType.ASK,OrderType.BID].includes(r);return t?t===OrderType.LIMIT&&o:o}function Ft(e,t){if([BBOOrderType.COUNTERPARTY1,BBOOrderType.COUNTERPARTY5].includes(e))return t===OrderSide.BUY?OrderType.ASK:OrderType.BID;if([BBOOrderType.QUEUE1,BBOOrderType.QUEUE5].includes(e))return t===OrderSide.BUY?OrderType.BID:OrderType.ASK}function wt(e){if([BBOOrderType.COUNTERPARTY1,BBOOrderType.QUEUE1].includes(e))return OrderLevel.ONE;if([BBOOrderType.COUNTERPARTY5,BBOOrderType.QUEUE5].includes(e))return OrderLevel.FIVE}function Bt(e){let{type:t,side:r,level:o}=e;if(t===OrderType.ASK){if(o===OrderLevel.ONE)return r===OrderSide.BUY?BBOOrderType.COUNTERPARTY1:BBOOrderType.QUEUE1;if(o===OrderLevel.FIVE)return r===OrderSide.BUY?BBOOrderType.COUNTERPARTY5:BBOOrderType.QUEUE5}if(t===OrderType.BID){if(o===OrderLevel.ONE)return r===OrderSide.BUY?BBOOrderType.QUEUE1:BBOOrderType.COUNTERPARTY1;if(o===OrderLevel.FIVE)return r===OrderSide.BUY?BBOOrderType.QUEUE5:BBOOrderType.COUNTERPARTY5}}function kt(e){let t=e?.data?.rows||[];if(t.length>0){let r=t.length,o=t.filter(i=>i.success).length;return o===r?i18n.t("orderEntry.scaledOrder.fullySuccessful",{total:r}):o===0?i18n.t("orderEntry.scaledOrder.allFailed"):i18n.t("orderEntry.scaledOrder.partiallySuccessful",{successCount:o,total:r})}}var ot=e=>{let{symbolInfo:t,order:r,onConfirm:o,onCancel:i}=e,{quote_dp:n,base_dp:a}=t,{side:f,order_type:s,order_type_ext:c,level:m}=r,{t:d}=useTranslation(),[g,C]=useLocalStorage("orderly_order_confirm",true),I=()=>{if(s===OrderType.MARKET||s===OrderType.STOP_MARKET)return jsx(Text,{intensity:80,children:d("common.marketPrice")});if(ve({order_type:s,order_type_ext:c})){let b=Bt({type:c,side:f,level:m}),v={[BBOOrderType.COUNTERPARTY1]:d("orderEntry.bbo.counterparty1"),[BBOOrderType.COUNTERPARTY5]:d("orderEntry.bbo.counterparty5"),[BBOOrderType.QUEUE1]:d("orderEntry.bbo.queue1"),[BBOOrderType.QUEUE5]:d("orderEntry.bbo.queue5")}[b];return jsx(Text,{intensity:80,children:v})}return jsx(Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:n,padding:false,children:r.order_price})};return jsxs(Fragment,{children:[jsxs(Flex,{justify:"between",children:[jsx(Text.formatted,{rule:"symbol",showIcon:true,children:r.symbol}),jsxs(Flex,{justify:"end",gapX:1,children:[jsx(zr,{type:s}),f===OrderSide.BUY?jsx(Badge,{color:"buy",size:"sm",children:d("common.buy")}):jsx(Badge,{color:"sell",size:"sm",children:d("common.sell")})]})]}),jsx(Divider,{className:"oui-my-4"}),jsxs("div",{className:textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.qty")}),jsx(Text.numeral,{rule:"price",dp:a,padding:false,className:"oui-text-base-contrast",children:r.order_quantity})]}),r.trigger_price?jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.trigger")}),jsx(Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:n,padding:false,children:r.trigger_price})]}):null,jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.price")}),I()]}),jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.notional")}),jsx(Text.numeral,{unit:"USDC",rule:"price",dp:n,padding:false,className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:r.total})]})]}),r.tp_trigger_price||r.sl_trigger_price?jsxs(Fragment,{children:[jsx(Divider,{className:"oui-my-4"}),jsxs("div",{className:textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[r.tp_trigger_price&&jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("orderEntry.tpMarkPrice")}),jsx(Text.numeral,{unit:"USDC",rule:"price",coloring:true,dp:n,padding:false,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:r.tp_trigger_price})]}),r.sl_trigger_price&&jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("orderEntry.slMarkPrice")}),jsx(Text.numeral,{unit:"USDC",rule:"price",coloring:true,className:"oui-text-trade-loss",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:n,padding:false,children:r.sl_trigger_price})]})]})]}):null,jsxs(Flex,{gapX:1,pt:4,pb:5,children:[jsx(Checkbox,{id:"orderConfirm",color:"white",onCheckedChange:b=>{C(!b);}}),jsx("label",{htmlFor:"orderConfirm",className:textVariants({size:"xs",intensity:54}),children:d("orderEntry.disableOrderConfirm")})]}),r.tp_trigger_price||r.sl_trigger_price?jsx(Box,{py:3,px:3,className:"oui-text-center",children:jsx(Text,{color:"warning",size:"xs",children:d("orderEntry.tpsl.trigger.description")})}):null,jsxs(Grid,{cols:2,gapX:3,children:[jsx(Button,{color:"secondary",size:"md",onClick:()=>i(),children:d("common.cancel")}),jsx(Button,{size:"md",onClick:()=>o(),children:d("common.confirm")})]})]})};ot.displayName="OrderConfirmDialog";var zr=e=>{let{t}=useTranslation(),r=useMemo(()=>{switch(e.type){case OrderType.LIMIT:return t("orderEntry.orderType.limit");case OrderType.MARKET:return t("common.marketPrice");case OrderType.STOP_LIMIT:return t("orderEntry.orderType.stopLimit");case OrderType.STOP_MARKET:return t("orderEntry.orderType.stopMarket");default:return ""}},[e.type]);return jsx(Badge,{color:"neutral",size:"sm",children:r})},Qr=e=>{let{close:t,resolve:r,reject:o,...i}=e;return jsx(ot,{...i,onCancel:()=>{o(),t();},onConfirm:()=>{r(),t();}})},nt="orderConfirm";registerSimpleDialog(nt,Qr,{size:"sm",title:()=>i18n.t("orderEntry.orderConfirm")});var at=e=>{let{order:t,symbolInfo:r,dataSource:o,national:i,askAndBid:n,totalQuantity:a}=e,{base:f,quote:s,base_dp:c,quote_dp:m}=r,{t:d}=useTranslation(),g=()=>{e.reject(),e.close?.();},C=()=>{e.resolve(),e.close?.();},I=useMemo(()=>[{title:d("common.symbol"),dataIndex:"symbol",width:125,render:(b,v)=>jsxs(Flex,{gap:2,children:[jsx("div",{className:cn("oui-h-[38px] oui-w-1 oui-shrink-0 oui-rounded-[1px]",v.side===OrderSide.BUY?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxs(Flex,{direction:"column",itemAlign:"start",children:[jsxs(Flex,{gapX:1,children:[jsx(TokenIcon,{symbol:b,className:"oui-size-3"}),jsx(Text.formatted,{rule:"symbol",size:"xs",formatString:"base-type",children:b})]}),jsx(Badge,{color:"neutral",size:"xs",children:d("orderEntry.orderType.limit")})]})]})},{title:d("common.quantity"),dataIndex:"order_quantity",width:100,render:(b,v)=>jsx(Text.numeral,{rule:"price",dp:c,padding:false,color:v.side===OrderSide.BUY?"buy":"sell",children:b})},{title:d("common.orderPrice"),dataIndex:"order_price",width:100,render:(b,v)=>{let N=!!(v.side===OrderSide.BUY?n?.[0]&&Number(b)>=n?.[0]:n?.[1]&&Number(b)<=n?.[1]);return jsxs(Flex,{gapX:1,children:[jsx(Text.numeral,{rule:"price",dp:m,children:b}),N&&jsx(Tooltip,{content:d("orderEntry.confirmScaledOrder.orderPrice.warning"),className:"oui-w-[240px] oui-text-2xs oui-font-semibold oui-text-base-contrast-80",children:jsx(Zr,{className:"oui-text-warning-darken"})})]})}}],[d,r,n,c,m]);return jsxs("div",{className:"oui-font-semibold",children:[jsx(DataTable,{classNames:{root:cn("oui-bg-base-7","oui-rounded-lg","oui-overflow-hidden",t.orders?.length>=6&&"oui-h-[320px]"),scroll:"!oui-min-h-[130px]"},dataSource:o,columns:I,bordered:true,onRow:()=>({className:cn("oui-h-[50px]")})}),jsxs("div",{className:"oui-mb-5 oui-mt-4 oui-text-2xs",children:[jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("orderEntry.totalOrders")}),jsx(Text,{intensity:80,children:t.orders?.length})]}),jsxs(Flex,{justify:"between",mt:2,children:[jsx(Text,{children:d("orderEntry.totalQuantity")}),jsx(Text.numeral,{rule:"price",unit:f,dp:c,padding:false,intensity:80,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:a})]}),jsxs(Flex,{justify:"between",mt:2,children:[jsx(Text,{children:d("common.notional")}),jsx(Text.numeral,{rule:"price",unit:s,dp:m,padding:false,intensity:80,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:i})]})]}),jsxs(Grid,{cols:2,gapX:3,children:[jsx(Button,{color:"secondary",size:"md",onClick:g,children:d("common.cancel")}),jsx(Button,{size:"md",onClick:C,children:d("common.confirm")})]})]})},Zr=forwardRef((e,t)=>jsx("svg",{width:"12",height:"13",viewBox:"0 0 12 13",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",ref:t,...e,children:jsx("path",{d:"M5.99951 1.50708C3.23811 1.50708 0.999512 3.74558 0.999512 6.50708C0.999512 9.26858 3.23811 11.5071 5.99951 11.5071C8.76091 11.5071 10.9995 9.26858 10.9995 6.50708C10.9995 3.74558 8.76091 1.50708 5.99951 1.50708ZM5.99951 4.00708C6.27566 4.00708 6.49951 4.23108 6.49951 4.50708C6.49951 4.78308 6.27566 5.00708 5.99951 5.00708C5.72336 5.00708 5.49951 4.78308 5.49951 4.50708C5.49951 4.23108 5.72336 4.00708 5.99951 4.00708ZM5.99951 5.50708C6.27566 5.50708 6.49951 5.73108 6.49951 6.00708V8.50708C6.49951 8.78308 6.27566 9.00708 5.99951 9.00708C5.72336 9.00708 5.49951 8.78308 5.49951 8.50708V6.00708C5.49951 5.73108 5.72336 5.50708 5.99951 5.50708Z"})}));function lt(e){let{order:t,symbolInfo:r}=e,o=t.orders,[i,n]=useState(),a=useEventEmitter(),f=useMemo(()=>o.reduce((m,d)=>m.add(new Decimal(d.order_price).mul(d.order_quantity)),zero).toNumber(),[o]),s=useMemo(()=>o.reduce((m,d)=>m.add(new Decimal(d.order_quantity)),zero).toString(),[o,r.base_dp]);return useEffect(()=>{let c=m=>{let d=m.asks?.[m.asks.length-1]?.[0],g=m.bids?.[0]?.[0];n([d,g]);};return a.on("orderbook:update",c),()=>{a.off("orderbook:update",c);}},[]),{dataSource:o,national:f,askAndBid:i,totalQuantity:s}}var Qt=e=>{let t=lt(e);return jsx(at,{...e,...t})},Ve="scaledOrderConfirm";registerSimpleDialog(Ve,Qt,{size:"md",title:()=>i18n.t("orderEntry.confirmScaledOrder"),contentProps:{}});var dt=e=>{let{t}=useTranslation(),{takerFeeRate:r,makerFeeRate:o}=e;return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:t("common.fees")}),jsx(AuthGuard,{fallback:()=>jsxs(Text,{size:"2xs",children:[t("portfolio.feeTier.column.taker"),": --% /"," ",t("portfolio.feeTier.column.maker"),": --%"]}),children:jsxs(Flex,{gap:1,children:[jsxs(Text,{size:"2xs",children:[t("portfolio.feeTier.column.taker"),":"]}),jsx(Text,{size:"2xs",className:"oui-text-base-contrast-80",children:r}),jsx(Text,{size:"2xs",children:"/"}),jsxs(Text,{size:"2xs",children:[t("portfolio.feeTier.column.maker"),":"]}),jsx(Text,{size:"2xs",className:"oui-text-base-contrast-80",children:o})]})})]})};var ut=()=>{let{data:e}=useAccountInfo(),t=useMemo(()=>{let o=e?.futures_taker_fee_rate;if(!(typeof o>"u"))return `${new Decimal(o).mul(.01).toString()}%`},[e]),r=useMemo(()=>{let o=e?.futures_maker_fee_rate;if(!(typeof o>"u"))return `${new Decimal(o).mul(.01).toString()}%`},[e]);return {takerFeeRate:t,makerFeeRate:r}};var ct=()=>{let e=ut();return jsx(dt,{...e})};var Pe=createContext({}),Kt=Pe.Provider;var Ht=e=>{let{t}=useTranslation(),{className:r,...o}=e,i=()=>{modal.dialog({title:t("common.tips"),size:"sm",content:jsx(go,{value:e.value})});};return jsxs(Flex,{direction:"column",itemAlign:"start",justify:"center",p:2,r:"base",width:"100%",intensity:600,className:cn("oui-t-rounded oui-text-base-contrast-36","oui-border oui-border-solid oui-border-line",r),children:[jsx(Text,{size:"2xs",className:"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12",onClick:i,children:t("orderEntry.quantityDistribution")}),jsx(bo,{...o})]})},go=e=>{let{t}=useTranslation(),[r,o]=useState(DistributionType.FLAT);useEffect(()=>{o([DistributionType.FLAT,DistributionType.ASCENDING,DistributionType.DESCENDING].includes(e.value)?e.value:DistributionType.FLAT);},[e.value]);let i=useMemo(()=>[{type:DistributionType.FLAT,title:t("orderEntry.distributionType.flat"),description:t("orderEntry.distributionType.flat.description"),formula:`${t("orderEntry.skew")} = 1`,quantity:jsx(xo,{})},{type:DistributionType.ASCENDING,title:t("orderEntry.distributionType.ascending"),description:t("orderEntry.distributionType.ascending.description"),formula:`${t("orderEntry.skew")} > 1`,quantity:jsx(To,{})},{type:DistributionType.DESCENDING,title:t("orderEntry.distributionType.descending"),description:t("orderEntry.distributionType.descending.description"),formula:`0 < ${t("orderEntry.skew")} < 1`,quantity:jsx(ho,{})}],[]),n=useMemo(()=>i.find(a=>a.type===r),[i,r]);return jsxs("div",{className:"oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:[jsxs(Flex,{direction:"column",itemAlign:"start",gapY:1,children:[jsx(Text,{intensity:80,children:t("orderEntry.quantityDistribution.description")}),jsx(Text,{children:t("orderEntry.quantityDistribution.formula")})]}),jsxs(Flex,{intensity:600,p:1,r:"base",mt:3,itemAlign:"start",children:[jsx(Flex,{direction:"column",itemAlign:"start",children:i.map(a=>jsx(Box,{intensity:r===a.type?500:600,width:78,p:2,className:"oui-cursor-pointer oui-rounded-l",onClick:()=>{o(a.type);},children:jsx(Text,{children:a.title})},a.title))}),jsxs(Flex,{direction:"column",itemAlign:"start",gapY:1,p:2,intensity:500,width:"100%",className:cn("oui-rounded-r",r===DistributionType.FLAT&&"oui-rounded-bl",r===DistributionType.ASCENDING&&"oui-rounded-l",r===DistributionType.DESCENDING&&"oui-rounded-tl"),children:[jsx("div",{children:n?.formula}),jsx(Text,{children:n?.description}),jsx(Flex,{width:"100%",justify:"center",children:n?.quantity}),jsxs(Flex,{width:"100%",gapX:1,justify:"center",children:[jsx(Text,{className:"oui-text-base-1",children:t("common.price")}),jsx(_o,{})]})]})]})]})},bo=e=>{let{value:t,onValueChange:r}=e,{t:o}=useTranslation(),i=a=>f=>{r(a);},n=useMemo(()=>({[DistributionType.FLAT]:o("orderEntry.distributionType.flat"),[DistributionType.ASCENDING]:o("orderEntry.distributionType.ascending.abbr"),[DistributionType.DESCENDING]:o("orderEntry.distributionType.descending.abbr"),[DistributionType.CUSTOM]:o("orderEntry.distributionType.custom")}),[o]);return jsx(Flex,{className:cn("oui-gap-x-[6px] lg:oui-gap-x-2"),wrap:"wrap",children:Object.values(DistributionType).map(a=>jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{id:`distribution-type-${a}`,color:"white",variant:"radio",checked:t===a,onCheckedChange:i(a)}),jsx("label",{htmlFor:`distribution-type-${a}`,className:cn("oui-text-2xs","oui-ml-1","oui-whitespace-nowrap oui-break-normal"),children:n[a]})]},a))})},xo=()=>jsxs("svg",{width:"218",height:"40",viewBox:"0 0 218 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"18",y:"18",width:"181",height:"4",fill:"rgb(var(--oui-color-base-2))"}),jsx("circle",{cx:"15",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"62",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"109",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"156",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"203",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"})]}),To=()=>jsxs("svg",{width:"218",height:"40",viewBox:"0 0 218 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"18",y:"18",width:"181",height:"4",fill:"rgb(var(--oui-color-base-2))"}),jsx("circle",{cx:"15",cy:"20",r:"4.28571",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.42857"}),jsx("circle",{cx:"62",cy:"20",r:"5.14286",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.71429"}),jsx("circle",{cx:"109",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"156",cy:"20",r:"6.85714",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.28571"}),jsx("circle",{cx:"203",cy:"20",r:"7.71429",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.57143"})]}),ho=()=>jsxs("svg",{width:"218",height:"40",viewBox:"0 0 218 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{width:"181",height:"4",transform:"matrix(-1 0 0 1 200 18)",fill:"rgb(var(--oui-color-base-2))"}),jsx("circle",{cx:"5",cy:"5",r:"4.28571",transform:"matrix(-1 0 0 1 208 15)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.42857"}),jsx("circle",{cx:"6",cy:"6",r:"5.14286",transform:"matrix(-1 0 0 1 162 14)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.71429"}),jsx("circle",{cx:"7",cy:"7",r:"6",transform:"matrix(-1 0 0 1 116 13)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"8",cy:"8",r:"6.85714",transform:"matrix(-1 0 0 1 70 12)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.28571"}),jsx("circle",{cx:"9",cy:"9",r:"7.71429",transform:"matrix(-1 0 0 1 24 11)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.57143"})]}),_o=()=>jsx("svg",{width:"176",height:"8",viewBox:"0 0 176 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M175.354 4.35355C175.549 4.15829 175.549 3.84171 175.354 3.64645L172.172 0.464466C171.976 0.269204 171.66 0.269204 171.464 0.464466C171.269 0.659728 171.269 0.976311 171.464 1.17157L174.293 4L171.464 6.82843C171.269 7.02369 171.269 7.34027 171.464 7.53553C171.66 7.7308 171.976 7.7308 172.172 7.53553L175.354 4.35355ZM0 4V4.5H175V4V3.5H0V4Z",fill:"rgb(var(--oui-color-base-1))"})});var Zt=[.01,.05,.1],er=forwardRef((e,t)=>{let{t:r}=useTranslation(),[o,i]=useState(),[n,a]=useState(""),[f,s]=useState(void 0);useImperativeHandle(t,()=>({getValue:()=>n?new Decimal(n)?.toNumber():o})),useEffect(()=>{e.initialValue&&!Zt.includes(e.initialValue)?a(e.initialValue.toString()):i(e.initialValue);},[e.initialValue,open]);let c=g=>{i(g),a(""),s(void 0);},m=g=>{if(!g){a(g);return}let C=new Decimal(g);i(void 0),C.gt(3)?(a("3"),s(r("orderEntry.slippage.error.exceed"))):(a(g),s(void 0));},d=e.isMobile?jsx("button",{onClick:()=>{modal.alert({title:r("common.tips"),message:jsx(Text,{size:"2xs",children:r("orderEntry.slippage.tips")})});},children:jsx(ExclamationFillIcon,{className:"oui-text-base-contrast-54",size:16})}):jsx(Tooltip,{content:jsx(Text,{intensity:80,size:"2xs",children:r("orderEntry.slippage.tips")}),className:"oui-w-[260px] oui-bg-base-6",arrow:{className:"oui-fill-base-6"},children:jsx(TooltipTrigger,{children:jsx(ExclamationFillIcon,{className:"oui-text-base-contrast-54",size:16})})});return jsxs("div",{className:"oui-text-2xs",children:[jsxs(Flex,{mb:2,gapX:1,children:[jsx(Text,{size:"xs",children:r("orderEntry.slippage")}),d]}),jsxs(Flex,{gapX:2,children:[Zt.map(g=>jsx(Fo,{value:g,isActive:o===g,onClick:()=>{c(g);}},g)),jsx(Input,{suffix:"%",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(2)],value:n,onValueChange:m,classNames:{root:cn("oui-rounded-md oui-bg-base-6","oui-h-[40px] oui-w-[74px]"),input:"oui-text-base-contrast",additional:"oui-pl-1"}})]}),!!f&&jsx(Box,{mt:5,className:"-oui-mb-5",children:jsx(Text,{size:"2xs",color:"danger",children:f})})]})}),Fo=({value:e,isActive:t,onClick:r})=>jsx(Flex,{intensity:600,justify:"center",itemAlign:"center",r:"md",width:74,height:40,className:cn("oui-cursor-pointer oui-select-none",t&&"oui-bg-primary-light"),onClick:r,children:jsxs(Text,{size:"sm",intensity:80,children:[e,"%"]})});var tr=e=>{let{t}=useTranslation(),[r,{setTrue:o,setFalse:i,toggle:n}]=useBoolean(false),{isMobile:a}=useScreen(),f=useRef(null),s=()=>{let c=f.current?.getValue();return e.setSlippage(c?c.toString():"1"),i(),Promise.resolve(true)};return jsxs(Fragment,{children:[jsx(SimpleDialog,{open:r,onOpenChange:n,title:t("common.settings"),contentProps:{size:a?"xs":"sm"},actions:{primary:{disabled:false,label:t("common.save"),onClick:s},secondary:{label:t("common.cancel"),onClick:()=>i()}},children:jsx(er,{ref:f,isMobile:a,initialValue:e.slippage?Number(e.slippage):void 0})}),jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:t("orderEntry.slippage")}),jsx(AuthGuard,{fallback:()=>jsxs(Text,{size:"2xs",children:[t("orderEntry.slippage.est"),": -% / ",t("common.max"),": --%"]}),children:jsxs(Flex,{gap:1,children:[jsx(Text.numeral,{size:"2xs",rule:"percentages",prefix:`${t("orderEntry.slippage.est")}: `,suffix:` / ${t("common.max")}: `,children:e.estSlippage??0}),jsx("button",{className:"oui-text-2xs",onClick:()=>o(),children:jsxs(Flex,{className:"oui-gap-0.5",as:"span",children:[jsx(Text,{size:"2xs",className:"oui-text-primary",children:`${e.slippage||"-"}%`}),jsx(EditIcon,{className:"oui-text-primary oui-hidden md:oui-block",size:12,opacity:1})]})})]})})]})]})};var rr=e=>jsx(tr,{...e});var ir=createContext({}),Qe=()=>useContext(ir),bt=e=>{let{type:t,values:r}=e,[o,i]=useLocalStorage("TP/SL_Mode","Offset%"),{t:n}=useTranslation(),a=useMemo(()=>!r.PnL||!e.values.trigger_price?null:jsxs(Flex,{children:[jsx("span",{className:"oui-text-xs oui-text-base-contrast-54",children:o==="PnL"?n("orderEntry.estRoi"):n("orderEntry.estPnL")}),o==="PnL"?jsx(Text.numeral,{rule:"percentages",className:cn("oui-text-xs oui-ml-1",t==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),children:r.ROI}):jsx(Text.numeral,{rule:"price",className:cn("oui-text-xs oui-ml-1",t==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),children:r.PnL})]}),[o,e.values.PnL,e.values.trigger_price]);return jsx(ir.Provider,{value:{mode:o,setMode:i,tipsEle:a},children:e.children})};var ar=e=>{let{type:t,values:r,quote_dp:o}=e,{t:i}=useTranslation(),{mode:n,setMode:a,tipsEle:f}=Qe(),[s,c]=useState(false),[m,d]=useState(false),g=useMemo(()=>{switch(n){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[n]),[C,I]=useState(r[n]);useEffect(()=>{m||I(r[n]);},[r,n,m]);let b=useMemo(()=>[{label:i("tpsl.pnl"),value:"PnL",testId:"PnL_menu_item"},{label:i("tpsl.offset"),value:"Offset",testId:"Offset_mneu_item"},{label:`${i("tpsl.offset")}%`,value:"Offset%",testId:"Offset%_menu_item"}],[i]),v=useMemo(()=>({PnL:i("tpsl.pnl"),Offset:i("tpsl.offset"),"Offset%":`${i("tpsl.offset")}%`}),[i]),N=useRef("");return {mode:n,modes:b,modeLabelMap:v,formatter:V=>{let{dp:Y=2}=V;return {onRenderBefore:(y,X)=>(y=`${y}`,t==="SL"&&n==="PnL"&&(y=y.startsWith("-")?y:"-"+y),y===""||y==="-"?"":n==="Offset%"?`${new Decimal(y.replace(new RegExp(N.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${N.current}`:(n==="Offset"&&(y=todpIfNeed(y,Y)),`${y}`)),onSendBefore:y=>{if(/^\-?0{2,}$/.test(y))return "0";if(n==="Offset%"){if(y!==""){y=todpIfNeed(y,2);let X=y.match(/\.0{0,2}$/);X?N.current=X[0]:N.current="",y=new Decimal(y).div(100).toString(),y=`${y}${N.current}`;}}else y=todpIfNeed(y,Y);return y===""||y==="-"?"":y}}},onModeChange:V=>{a(V);},onFocus:()=>{c(true),d(true);},onBlur:()=>{c(false),d(false),e.onChange(g,C);},value:C,onValueChange:V=>{I(V),e.onChange(g,V);},quote_dp:o,tips:s?f:void 0}};var ur=e=>{let{mode:t,modes:r,modeLabelMap:o,onModeChange:i,onValueChange:n,quote:a,quote_dp:f,value:s,type:c,tips:m,onFocus:d,onBlur:g}=e,[C,I]=useState(t),[b,v]=useState(t==="Offset%"?"%":a);useEffect(()=>{I(t),v(t==="Offset%"?"%":a);},[t]),useEffect(()=>{I(s?"":t);},[s]);let N=useMemo(()=>`${c.toLowerCase()}_${t.toLowerCase()}`,[]);return jsx(Input.tooltip,{prefix:o[C]||C,size:"md",placeholder:b,id:N,align:"right",value:s,tooltip:m,tooltipProps:{content:{side:e.type==="TP"?"top":"bottom"}},"data-testid":e.testIds?.input,autoComplete:"off",onValueChange:n,formatters:[e.formatter({dp:f,mode:t,type:c}),inputFormatter.currencyFormatter],classNames:{root:c==="TP"?"oui-text-trade-profit":"oui-text-trade-loss",additional:"oui-text-base-contrast-54",input:"oui-text-inherit"},onFocus:()=>{I(""),v(""),d();},onBlur:()=>{I(s?"":t),v(t==="Offset%"?"%":a),g();},suffix:jsxs(Fragment,{children:[t==="Offset%"&&!!s&&jsx(Text,{size:"2xs",color:"inherit",className:"oui-ml-[2px]",children:"%"}),jsx(nn,{mode:t,modes:r,onModeChange:W=>i(W.value),testId:e.testIds?.dropDown})]})})},nn=e=>jsx(SimpleDropdownMenu,{currentValue:e.mode,menu:e.modes,align:"end",size:"xs",className:"oui-min-w-[80px]",onCloseAutoFocus:t=>t.preventDefault(),onSelect:t=>e.onModeChange(t),children:jsx("button",{className:"oui-p-2","data-testid":e.testId,children:jsx(CaretDownIcon,{size:12,color:"white"})})});var cr=e=>{let{testIds:t,quote:r,...o}=e,i=ar(o);return jsx(ur,{...i,testIds:t,quote:r,type:e.type})};var fr=e=>{let t=pr.useRef(null),{t:r}=useTranslation();return useEffect(()=>{e.orderType!==OrderType.LIMIT&&e.orderType!==OrderType.MARKET&&e.onSwitchChanged(false);},[e.orderType]),e.orderType!==OrderType.LIMIT&&e.orderType!==OrderType.MARKET||e.isReduceOnly?null:jsxs("div",{children:[jsxs(Flex,{itemAlign:"center",gapX:1,children:[jsx(Switch,{id:"order_entry_tpsl",className:"oui-h-[14px]",checked:e.switchState,disabled:e.orderType!==OrderType.LIMIT&&e.orderType!==OrderType.MARKET||e.isReduceOnly,onCheckedChange:o=>{e.onSwitchChanged(o);}}),jsx("label",{htmlFor:"order_entry_tpsl",className:"oui-text-xs",children:r("common.tpsl")}),jsx(ExclamationFillIcon,{color:"white",size:14,opacity:1,className:"oui-cursor-pointer oui-text-white/[.36] hover:oui-text-white/80",onClick:()=>{modal.dialog({title:r("common.tips"),size:"xs",content:jsx(Text,{intensity:54,children:r("orderEntry.tpsl.tips")})});}})]}),jsx("div",{className:cn("oui-max-h-0 oui-overflow-hidden oui-transition-all",e.switchState&&"oui-max-h-[100px]"),onTransitionEnd:()=>{t.current?.style.setProperty("opacity",e.switchState?"1":"0");},children:jsx(gr,{ref:t,onChange:e.onChange,values:e.values,errors:e.errors,quote_dp:e.quote_dp})})]})},gr=pr.forwardRef((e,t)=>{let{parseErrorMsg:r}=useOrderEntryFormErrorMsg(e.errors);return jsxs("div",{ref:t,className:"oui-space-y-1 oui-px-px oui-py-2 oui-transition-all",children:[jsx(bt,{values:e.values.tp,type:"TP",children:jsx(mr,{type:"TP",error:r("tp_trigger_price"),onChange:e.onChange,values:e.values.tp,quote_dp:e.quote_dp,testIds:{first:"oui-testid-orderEntry-tpsl-tpPrice-input",second:"oui-testid-orderEntry-tpsl-tpPnl-input",dropDown:"oui-testid-orderEntry-tpsl-tp-dropDown-trigger-button"}})}),jsx(bt,{values:e.values.sl,type:"SL",children:jsx(mr,{type:"SL",error:r("sl_trigger_price"),onChange:e.onChange,values:e.values.sl,quote_dp:e.quote_dp,testIds:{first:"oui-testid-orderEntry-tpsl-slPrice-input",second:"oui-testid-orderEntry-tpsl-slPnl-input",dropDown:"oui-testid-orderEntry-tpsl-sl-dropDown-trigger-button"}})})]})});gr.displayName="TPSLInputForm";var hn=e=>{let{t}=useTranslation(),{errorMsgVisible:r}=useContext(Pe),{tipsEle:o}=Qe(),[i,n]=useState(`${e.type} Price`),[a,f]=useState("USDC"),[s,c]=useState(false),[m,d]=useState(false),[g,C]=useState(e.values.trigger_price??"");useEffect(()=>{m||C(e.values.trigger_price??"");},[e.values.trigger_price,m]);let I=useMemo(()=>e.error&&r?e.error:s?o:null,[e.error,r,s,o]),b=G=>{let A=e.type==="TP"?t("tpsl.tpPrice"):t("tpsl.slPrice");return G&&(A=e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),A},v=G=>{C(G),e.onChange(G);};useEffect(()=>{n(b(e.values.trigger_price)),m||C(e.values.trigger_price??"");},[e.type,e.values.trigger_price]);let N=()=>{n(e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),f(""),c(true),d(true);},W=()=>{n(b(e.values.trigger_price)),f("USDC"),c(false),d(false),e.onChange(g);};return jsx(Input.tooltip,{"data-testid":e.testId,prefix:i,size:"md",placeholder:a,align:"right",onFocus:N,onBlur:W,tooltip:I,tooltipProps:{content:{side:e.type==="TP"?"top":"bottom"}},color:e.error?"danger":void 0,autoComplete:"off",value:g,classNames:{additional:"oui-text-base-contrast-54",root:"oui-pr-2 md:oui-pr-3",prefix:"oui-pr-1 md:oui-pr-2"},onValueChange:v,formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(e.quote_dp??2),inputFormatter.currencyFormatter]})},mr=e=>{let t=e.type==="SL"?"sl_trigger_price":"tp_trigger_price";return jsxs(Grid,{cols:2,gapX:1,children:[jsx(hn,{testId:e.testIds?.first,type:e.type,error:e.error,values:e.values??"",onChange:r=>{e.onChange(t,r);},quote_dp:e.quote_dp}),jsx(cr,{testIds:{input:e.testIds?.second,dropDown:e.testIds?.dropDown},onChange:e.onChange,quote:"USDC",quote_dp:e.quote_dp,type:e.type,values:{PnL:e.values.PnL,Offset:e.values.Offset,"Offset%":e.values["Offset%"],ROI:e.values.ROI}})]})};var St=e=>{let{side:t,formattedOrder:r,setOrderValue:o,symbolInfo:i,maxQty:n,freeCollateral:a,helper:f,submit:s,metaState:c,bboStatus:m,bboType:d,onBBOChange:g,toggleBBO:C}=e,{curLeverage:I}=useLeverage(),{t:b}=useTranslation(),{isMobile:v}=useScreen(),{errors:N,validated:W}=c,[G,A]=useState(false),[$,V]=useLocalStorage("orderly_order_confirm",true),[Y,y]=useLocalStorage("orderly-order-additional-pinned",true),[X,we]=useLocalStorage("orderly-order-hidden",false),[me,Xe]=useLocalStorage("orderly-slippage","1",{parseJSON:T=>!T||T==='""'?"1":JSON.parse(T)}),{parseErrorMsg:Be}=useOrderEntryFormErrorMsg(W?N:null),je=useMemo(()=>t===OrderSide.BUY?b("orderEntry.buyLong"):b("orderEntry.sellShort"),[t,b]);useEffect(()=>{W&&A(true);},[W]),useEffect(()=>{me?o("slippage",Number(me)):o("slippage",void 0);},[me]),useEffect(()=>{let T=h=>{h.target.closest("#order-entry-submit-button")||A(Re=>Re&&false);};return G?document.addEventListener("click",T):document.removeEventListener("click",T),()=>{document.removeEventListener("click",T);}},[G]);let Ze=()=>{let T=r.order_type===OrderType.SCALED;f.validate().then(h=>T?modal.show(Ve,{order:h,symbolInfo:i,size:v?"sm":"md"}):$?modal.show(nt,{order:r,symbolInfo:i}):true,h=>(h.slippage&&toast.error(h.slippage.message),A(true),Promise.reject())).then(()=>s({resetOnSuccess:false}).then(h=>{if(!h.success&&h.message)toast.error(h.message);else if(h.success&&T){let _e=kt(h);_e&&toast.success(_e);}})).catch(h=>{h?.message&&toast.error(h.message);});},ke=v&&e.canTrade;return jsx(Kt,{value:{errorMsgVisible:G},children:jsxs("div",{className:"oui-space-y-2 oui-text-base-contrast-54 xl:oui-space-y-3",ref:e.containerRef,children:[jsxs(Flex,{gapX:2,className:"oui-flex-col oui-gap-y-3 lg:oui-flex-row",children:[jsxs("div",{className:cn("oui-grid oui-w-full oui-flex-1 oui-gap-x-2 lg:oui-flex lg:oui-gap-x-[6px]",ke?"oui-grid-cols-3":"oui-grid-cols-2"),children:[jsx(Button,{onClick:()=>{e.setOrderValue("side",OrderSide.BUY);},size:"md",fullWidth:true,"data-type":OrderSide.BUY,className:cn(t===OrderSide.BUY&&e.canTrade?"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-buy-button",children:b("common.buy")}),jsx(Button,{onClick:()=>{e.setOrderValue("side",OrderSide.SELL);},"data-type":OrderSide.SELL,fullWidth:true,size:"md",className:cn(t===OrderSide.SELL&&e.canTrade?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-sell-button",children:b("common.sell")}),ke&&jsx(Button,{size:"md",fullWidth:true,trailing:jsx(CaretRightIcon,{size:12,className:"oui-text-base-contrast-36"}),onClick:()=>{modal.show(LeverageWidgetWithSheetId,{currentLeverage:I});},className:cn("oui-bg-base-7 oui-text-primary-light hover:oui-bg-base-6 active:oui-bg-base-6"),children:commifyOptional(I,{fix:2})+"x"})]}),jsx("div",{className:"oui-w-full lg:oui-flex-1",children:jsx(Wn,{type:r.order_type,side:t,canTrade:e.canTrade,onChange:T=>{o("order_type",T);}})})]}),jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:b("common.available")}),jsx(Text.numeral,{unit:i.quote,size:"2xs",className:"oui-text-base-contrast-80",unitClassName:"oui-ml-1 oui-text-base-contrast-54",dp:2,padding:false,children:e.canTrade?a:0})]}),r.order_type===OrderType.SCALED?jsx(Hn,{type:e.type,symbolInfo:i,values:{quantity:r.order_quantity,total:r.total,side:r.side,max_price:r.max_price,min_price:r.min_price,total_orders:r.total_orders,distribution_type:r.distribution_type,skew:r.skew},onChange:(T,h)=>{e.setOrderValue(T,h);},onValuesChange:e.setOrderValues,onBlur:e.onBlur,onFocus:e.onFocus,parseErrorMsg:Be}):jsx(Un,{type:e.type,symbolInfo:i,values:{quantity:r.order_quantity,price:r.order_price,trigger_price:r.trigger_price,total:r.total,level:r.level,side:r.side,order_type_ext:r.order_type_ext},onChange:(T,h)=>{e.setOrderValue(T,h);},onValuesChange:e.setOrderValues,refs:e.refs,onBlur:e.onBlur,onFocus:e.onFocus,bbo:{bboStatus:m,bboType:d,onBBOChange:g,toggleBBO:C},priceInputContainerWidth:e.priceInputContainerWidth,parseErrorMsg:Be}),jsx(Qn,{canTrade:e.canTrade,maxQty:n,currentQtyPercentage:e.currentQtyPercentage,value:r.order_quantity?Number(r.order_quantity):0,tick:i.base_tick,dp:i.base_dp,setMaxQty:e.setMaxQty,onValueChange:T=>{o("order_quantity",T);},side:e.side}),jsx(ThrottledButton,{fullWidth:true,id:"order-entry-submit-button","data-type":OrderSide.BUY,className:cn(t===OrderSide.BUY?"orderly-order-entry-submit-button-buy oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"orderly-order-entry-submit-button-sell oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80"),onClick:()=>{Ze();},loading:e.isMutating,disabled:!e.canTrade,children:je}),jsx(Gn,{canTrade:e.canTrade,quote:i.quote,estLiqPrice:e.estLiqPrice,estLeverage:e.estLeverage,currentLeverage:e.currentLeverage,slippage:me,dp:i.quote_dp,setSlippage:Xe,estSlippage:e.estSlippage,orderType:r.order_type}),jsx(Divider,{className:"oui-w-full"}),jsx(fr,{quote_dp:e.symbolInfo.quote_dp,switchState:e.tpslSwitch,onSwitchChanged:e.setTpslSwitch,orderType:r.order_type,errors:W?N:null,isReduceOnly:r.reduce_only,values:{tp:{trigger_price:r.tp_trigger_price??"",PnL:r.tp_pnl??"",Offset:r.tp_offset??"","Offset%":r.tp_offset_percentage??"",ROI:r.tp_ROI??""},sl:{trigger_price:r.sl_trigger_price??"",PnL:r.sl_pnl??"",Offset:r.sl_offset??"","Offset%":r.sl_offset_percentage??"",ROI:r.sl_ROI??""}},onChange:(T,h)=>{e.setOrderValue(T,h);}}),jsxs(Flex,{justify:"between",itemAlign:"center",className:"!oui-mt-0 xl:!oui-mt-3",children:[jsxs(Flex,{itemAlign:"center",gapX:1,children:[jsx(Switch,{"data-testid":"oui-testid-orderEntry-reduceOnly-switch",className:"oui-h-[14px]",id:"reduceOnly",checked:e.formattedOrder.reduce_only,onCheckedChange:T=>{e.setOrderValue("reduce_only",T);}}),jsx("label",{htmlFor:"reduceOnly",className:"oui-text-xs",children:b("orderEntry.reduceOnly")})]}),!Y&&jsx(Yn,{pinned:Y,setPinned:y,needConfirm:$,setNeedConfirm:V,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===OrderType.LIMIT&&!e.tpslSwitch,hidden:X,setHidden:we})]}),Y&&jsxs(Box,{p:2,r:"md",intensity:700,position:"relative",children:[jsx(Me,{pinned:Y,setPinned:y,needConfirm:$,setNeedConfirm:V,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===OrderType.LIMIT&&!e.tpslSwitch,hidden:X,setHidden:we}),jsx(qn,{onClick:()=>{y(false);},className:"oui-group oui-absolute oui-right-2 oui-top-2","data-testid":"oui-testid-orderEntry-pinned-button"})]})]})})},br="M10.007 1.302a.74.74 0 0 0-.486.214c-1.033.989-1.349 1.815-.972 2.948-.88.675-1.437.84-2.536.84-1.503 0-2.484.182-3.152.85v.02a1.583 1.583 0 0 0 0 2.248l1.867 1.882-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.194 1.87 1.861a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.523.854-3.144 0-1.03.212-1.758.852-2.523 1.233.361 1.95.015 2.961-.995a.68.68 0 0 0 .188-.48c0-.234-.06-.593-.209-1.04a5.34 5.34 0 0 0-1.312-2.103 5.35 5.35 0 0 0-2.104-1.312c-.448-.15-.808-.208-1.042-.208",qn=e=>{let[t,r]=useState(br);return jsx("button",{...e,children:jsx("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",onMouseEnter:()=>{r('M10.008 1.302a.74.74 0 0 0-.486.214c-1.033.989-1.349 1.815-.972 2.948-.88.675-1.437.84-2.536.84-1.503 0-2.484.182-3.152.85v.02a1.583 1.583 0 0 0 0 2.248l1.867 1.882-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.194 1.87 1.861a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.523.854-3.144 0-1.03.212-1.758.853-2.523 1.232.361 1.95.015 2.96-.995a.68.68 0 0 0 .188-.48c0-.234-.06-.593-.209-1.04a5.34 5.34 0 0 0-1.312-2.103A5.35 5.35 0 0 0 11.05 1.51c-.448-.15-.808-.208-1.042-.208m.258 1.37c.708.131 1.421.6 1.93 1.107.507.508.94 1.13 1.119 1.945-.636.61-1.026.658-1.662.323a.67.67 0 0 0-.779.117c-1.214 1.213-1.533 2.314-1.533 3.8 0 1.292-.076 1.773-.48 2.206-.113.123-.27.104-.374 0L3.799 7.486a.24.24 0 0 1-.017-.34c.239-.29.769-.515 2.226-.514 1.742.001 2.668-.448 3.812-1.52a.67.67 0 0 0 .125-.77c-.343-.686-.29-1.047.321-1.67"');},onMouseLeave:()=>{r(br);},className:"oui-text-primary-darken ",children:jsx("path",{d:t})})})},Un=e=>{let{type:t,symbolInfo:r,values:o,onFocus:i,onBlur:n,bbo:a,parseErrorMsg:f}=e,{t:s}=useTranslation(),c=a.bboStatus==="on",m=t===OrderType.LIMIT?jsxs(Flex,{direction:"column",itemAlign:"end",className:"oui-text-2xs",children:[r.quote,jsx(Flex,{height:20,px:3,justify:"center",itemAlign:"center",r:"base",className:cn("oui-mt-[2px] oui-cursor-pointer oui-select-none oui-border",a.bboStatus==="on"?"oui-border-primary":"oui-border-line-12",a.bboStatus==="disabled"&&"oui-cursor-not-allowed"),onClick:()=>{a.bboStatus==="disabled"?modal.dialog({title:s("common.tips"),size:"xs",content:jsx(Text,{intensity:54,children:s("orderEntry.bbo.disabled.tips")})}):a.toggleBBO();},children:jsx(Text,{className:cn(a.bboStatus==="on"&&"oui-text-primary",a.bboStatus==="off"&&"oui-text-base-contrast-54",a.bboStatus==="disabled"&&"oui-text-base-contrast-20"),children:s("orderEntry.bbo")})})]}):r.quote;return jsxs("div",{className:"oui-space-y-1",children:[t===OrderType.STOP_LIMIT||t===OrderType.STOP_MARKET?jsx("div",{className:"oui-group",children:jsx(ee,{label:s("common.trigger"),suffix:r.quote,error:f("trigger_price"),id:"trigger",ref:e.refs.triggerPriceInputRef,value:o.trigger_price,onChange:d=>{e.onChange("trigger_price",d);},formatters:[inputFormatter.dpFormatter(r.quote_dp)],onFocus:i(1),onBlur:n(1)})}):null,t===OrderType.LIMIT||t===OrderType.STOP_LIMIT?jsxs("div",{ref:e.refs.priceInputContainerRef,className:"oui-group oui-relative oui-w-full",children:[jsx(ee,{label:s("common.price"),suffix:m,id:"price",value:o.price,error:f("order_price"),ref:e.refs.priceInputRef,onChange:d=>{e.onChange("order_price",d);},formatters:[inputFormatter.dpFormatter(r.quote_dp)],onFocus:i(0),onBlur:n(0),readonly:c,classNames:{root:cn(c&&"focus-within:oui-outline-transparent "),input:cn(c&&"oui-cursor-auto")}}),a.bboStatus==="on"&&jsx("div",{className:cn("oui-absolute oui-bottom-1 oui-left-0"),children:jsx(Kn,{value:a.bboType,onChange:a.onBBOChange,contentStyle:{width:e.priceInputContainerWidth}})})]}):null,jsxs(Grid,{cols:2,className:"oui-group oui-space-x-1",children:[jsx(ee,{label:s("common.qty"),suffix:r.base,id:"order_quantity_input",name:"order_quantity_input",className:"!oui-rounded-r",value:o.quantity,error:f("order_quantity"),onChange:d=>{e.onChange("order_quantity",d);},formatters:[inputFormatter.dpFormatter(r.base_dp)],onFocus:i(2),onBlur:n(2)}),jsx(ee,{label:`${s("common.total")}\u2248`,suffix:r.quote,id:"total",className:"!oui-rounded-l",value:o.total,error:f("total"),onChange:d=>{e.onChange("total",d);},onFocus:i(3),onBlur:n(3),formatters:[inputFormatter.dpFormatter(r.quote_dp)]})]})]})},ee=forwardRef((e,t)=>{let{placeholder:r="0"}=e,{errorMsgVisible:o}=useContext(Pe);return jsx(Input.tooltip,{ref:t,tooltip:o?e.error:void 0,autoComplete:"off",autoFocus:e.autoFocus,size:"lg",placeholder:e.readonly?"":r,id:e.id,name:e.name,color:e.error?"danger":void 0,prefix:jsx(zn,{id:e.id,className:e.classNames?.prefix,children:e.label}),suffix:e.suffix,value:e.readonly?"":e.value||"",onValueChange:e.onChange,onFocus:i=>{e.onFocus?.(i);},onBlur:i=>{e.onBlur?.(i);},formatters:e.overrideFormatters||[...e.formatters??[],inputFormatter.numberFormatter,inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],classNames:{root:cn("orderly-order-entry oui-relative oui-h-[54px] oui-rounded oui-border oui-border-solid oui-border-line oui-px-2 oui-py-1 group-first:oui-rounded-t-xl group-last:oui-rounded-b-xl",e.className,e.classNames?.root),input:cn("oui-mb-1 oui-mt-5 oui-h-5",e?.classNames?.input),suffix:cn("oui-absolute oui-right-0 oui-top-0 oui-justify-start oui-py-2 oui-text-2xs oui-text-base-contrast-36",e.classNames?.suffix)},readOnly:e.readonly})});ee.displayName="CustomInput";var zn=e=>jsx("label",{htmlFor:e.id,className:cn("oui-absolute oui-left-2 oui-top-[7px] oui-text-2xs oui-text-base-contrast-36",e.className),children:e.children}),Qn=e=>{let{canTrade:t}=e,{t:r}=useTranslation(),o=useMemo(()=>t?e.side===OrderSide.BUY?"buy":"sell":void 0,[e.side,t]),i=useMemo(()=>e.side===OrderSide.BUY?r("orderEntry.maxBuy"):r("orderEntry.maxSell"),[e.side,r]);return jsxs("div",{children:[jsx(Slider.single,{disabled:e.maxQty===0||!t,value:e.value,color:o,markCount:4,showTip:true,max:e.maxQty,step:e.tick,onValueChange:e.onValueChange}),jsxs(Flex,{justify:"between",className:"oui-pt-1 xl:oui-pt-2",children:[jsx(Text.numeral,{rule:"percentages",size:"2xs",color:o,dp:2,padding:false,children:t?e.currentQtyPercentage:0}),jsxs(Flex,{children:[jsx("button",{className:textVariants({size:"2xs",className:"oui-mr-1"}),onClick:()=>e.setMaxQty(),"data-testid":"oui-testid-orderEntry-maxQty-value-button",children:i}),jsx(Text.numeral,{size:"2xs",color:o,dp:e.dp,padding:false,"data-testid":"oui-testid-orderEntry-maxQty-value",children:t?e.maxQty:0})]})]})]})},Wn=e=>{let{t}=useTranslation(),r=useMemo(()=>[{label:t("orderEntry.orderType.limitOrder"),value:OrderType.LIMIT},{label:t("orderEntry.orderType.marketOrder"),value:OrderType.MARKET},{label:t("orderEntry.orderType.stopLimit"),value:OrderType.STOP_LIMIT},{label:t("orderEntry.orderType.stopMarket"),value:OrderType.STOP_MARKET},{label:t("orderEntry.orderType.scaledOrder"),value:OrderType.SCALED}],[t]),o=useMemo(()=>({[OrderType.LIMIT]:t("orderEntry.orderType.limit"),[OrderType.MARKET]:t("common.marketPrice"),[OrderType.STOP_LIMIT]:t("orderEntry.orderType.stopLimit"),[OrderType.STOP_MARKET]:t("orderEntry.orderType.stopMarket"),[OrderType.SCALED]:t("orderEntry.orderType.scaledOrder")}),[t]);return jsx(Select.options,{testid:"oui-testid-orderEntry-orderType-button",currentValue:e.type,value:e.type,options:r,onValueChange:e.onChange,contentProps:{className:"oui-bg-base-8 oui-w-full"},valueFormatter:(i,n)=>{if(!r.find(s=>s.value===i))return jsx(Text,{size:"xs",children:n.placeholder});let f=o[i];return jsx(Text,{size:"xs",color:e.canTrade?e.side===OrderSide.BUY?"buy":"sell":void 0,children:f})},size:"md"})};function Gn(e){let{canTrade:t}=e,{t:r}=useTranslation();return jsxs("div",{className:"oui-space-y-[2px] xl:oui-space-y-1",children:[jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:r("orderEntry.estLiqPrice")}),jsx(Text.numeral,{unit:e.quote,size:"2xs",dp:e.dp,className:"oui-text-base-contrast-80",unitClassName:"oui-ml-1 oui-text-base-contrast-36",children:t?e.estLiqPrice??"--":"--"})]}),jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:r("leverage.accountLeverage")}),jsxs(Flex,{gapX:1,className:textVariants({size:"2xs",intensity:80}),children:[jsx(Text.numeral,{unit:t?"x":void 0,children:t?e.currentLeverage??"--":"--"}),e.estLeverage&&jsxs(Fragment,{children:[jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M2.505 4.997c0-.23.186-.416.416-.416H6.07L4.833 3.332l.586-.585 1.964 1.95a.42.42 0 0 1 .122.3.42.42 0 0 1-.122.3l-1.964 1.95-.586-.585L6.07 5.413H2.921a.416.416 0 0 1-.416-.416",fill:"#fff",fillOpacity:".54"})}),jsx("span",{children:`${e.estLeverage}x`})]})]})]}),e.orderType===OrderType.MARKET&&jsx(rr,{slippage:e.slippage,setSlippage:e.setSlippage,estSlippage:e.estSlippage}),jsx(ct,{})]})}function Yn(e){let[t,r]=useState(false);return jsxs(PopoverRoot,{open:t,onOpenChange:r,children:[jsx(PopoverTrigger,{asChild:true,children:jsx("button",{"data-testid":"oui-testid-orderEntry-additional-button",onClick:()=>{r(true);},children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:"oui-fill-white/[.36] hover:oui-fill-white/80",children:jsx("path",{d:"M3.332 2.665a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V3.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V3.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V3.332a.667.667 0 0 0-.667-.667zm-8 4a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V7.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V7.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V7.332a.667.667 0 0 0-.667-.667zm-8 4a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667v-1.333a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667v-1.333a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667v-1.333a.667.667 0 0 0-.667-.667z"})})})}),jsx(PopoverContent,{side:"top",align:"end",className:"oui-w-[230px]",children:jsx(Me,{...e})})]})}var Kn=e=>{let{t}=useTranslation(),r=[{label:t("orderEntry.bbo.counterparty1"),value:BBOOrderType.COUNTERPARTY1},{label:t("orderEntry.bbo.counterparty5"),value:BBOOrderType.COUNTERPARTY5},{label:t("orderEntry.bbo.queue1"),value:BBOOrderType.QUEUE1},{label:t("orderEntry.bbo.queue5"),value:BBOOrderType.QUEUE5}];return jsx(Select.options,{testid:"oui-testid-orderEntry-bbo-orderType-button",currentValue:e.value,value:e.value,options:r,onValueChange:e.onChange,contentProps:{className:"oui-bg-base-8 oui-w-full",style:e.contentStyle},size:"sm",classNames:{trigger:"oui-border-none oui-bg-transparent"},valueFormatter:(o,i)=>{let n=r.find(a=>a.value===o);return jsx(Box,{children:jsx(Text,{size:"sm",children:n?.label})})}})},Hn=e=>{let{symbolInfo:t,values:r,onFocus:o,onBlur:i,parseErrorMsg:n}=e,{t:a}=useTranslation(),f=r.distribution_type===DistributionType.CUSTOM;return jsxs("div",{className:"oui-space-y-1",children:[jsx(ee,{label:a("orderEntry.upperPrice"),suffix:t.quote,id:"order_max_price_input",value:r.max_price,error:n("max_price"),onChange:s=>{e.onChange("max_price",s);},formatters:[inputFormatter.dpFormatter(t.quote_dp)],onFocus:o(5),onBlur:i(5),classNames:{root:"oui-rounded-t-xl"}}),jsx(ee,{label:a("orderEntry.lowerPrice"),suffix:t.quote,id:"order_min_price_input",value:r.min_price,error:n("min_price"),onChange:s=>{e.onChange("min_price",s);},formatters:[inputFormatter.dpFormatter(t.quote_dp)],onFocus:o(4),onBlur:i(4)}),jsxs(Grid,{cols:2,className:"oui-group oui-space-x-1",children:[jsx(ee,{label:a("common.qty"),suffix:t.base,id:"order_quantity_input",name:"order_quantity_input",className:"!oui-rounded-r",value:r.quantity,error:n("order_quantity"),onChange:s=>{e.onChange("order_quantity",s);},formatters:[inputFormatter.dpFormatter(t.base_dp)],onFocus:o(2),onBlur:i(2)}),jsx(ee,{label:a("orderEntry.totalOrders"),placeholder:"2-20",id:"order_total_orders_input",className:"!oui-rounded-l",value:r.total_orders,error:n("total_orders"),onChange:s=>{e.onChange("total_orders",s);},overrideFormatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(0)],onFocus:o(6),onBlur:i(6)})]}),jsx(Ht,{value:r.distribution_type,onValueChange:s=>{e.onChange("distribution_type",s);},className:cn(!f&&"oui-rounded-b-xl")}),f&&jsx(ee,{id:"order_skew_input",label:a("orderEntry.skew"),value:r.skew,error:n("skew"),onChange:s=>{e.onChange("skew",s);},onFocus:o(7),onBlur:i(7),overrideFormatters:[inputFormatter.rangeFormatter({min:0,max:100,dp:2}),inputFormatter.dpFormatter(2)],classNames:{root:"oui-rounded-b-xl"}})]})};var It=e=>{let[t,r]=useLocalStorage("orderly-order-entry-order-type",OrderType.LIMIT),[o,i]=useLocalStorage("orderly-order-entry-order-side",OrderSide.BUY),[n,a]=useLocalStorage("orderly_order_bbo_type",void 0),f=useRef(n),{formattedOrder:s,setValue:c,setValues:m,symbolInfo:d,...g}=useOrderEntry(e.symbol,{initialOrder:{symbol:e.symbol,order_type:t,side:o}}),[C,I]=useLocalStorage("orderly-order-entry-tp_sl-switch",false),{state:b}=useAccount(),{wrongNetwork:v,disabledConnect:N}=useAppContext(),W=useMemo(()=>!v&&!N&&(b.status===AccountStatusEnum.EnableTrading||b.status===AccountStatusEnum.EnableTradingWithoutConnected),[b.status,v,N]),{currentLeverage:G}=useMarginRatio(),A=useEventEmitter(),$=useRef(8),V=useRef(5),Y=useRef(null),y=useRef(null),X=useRef(null),[we,me]=useState(0),Xe=useMemo(()=>Number(s.order_quantity)>=Number(g.maxQty)?1:convertValueToPercentage(Number(s.order_quantity??0),0,g.maxQty)/100,[s.order_quantity,g.maxQty]),Be=()=>{if(d.base_tick<1||s.order_type===OrderType.SCALED||!s.order_quantity)return;let u=utils.formatNumber(s?.order_quantity,new Decimal(d?.base_tick||"0").toNumber());c("order_quantity",u,{shouldUpdateLastChangedField:false});},je=u=>_=>{$.current=u,[4,5].includes($.current)&&(V.current=u);},Ze=u=>_=>{setTimeout(()=>{$.current===u&&($.current=8);},300),u===2&&Be();},ke=()=>{m({tp_trigger_price:"",sl_trigger_price:""});},T=()=>{m({order_type_ext:void 0});},h=()=>{c("order_quantity",g.maxQty);},_e=(u,_,ae)=>{if(u==="order_type"&&r(_),u==="side"&&i(_),u==="reduce_only"&&_||u==="order_type"&&(_===OrderType.STOP_LIMIT||_===OrderType.STOP_MARKET)){let k={tp_trigger_price:"",sl_trigger_price:"",[u]:_};u==="order_type"&&(k.order_type_ext=""),m(k);return}if(u==="order_type"&&_!==OrderType.LIMIT){let k={level:void 0,order_type_ext:void 0,[u]:_};m(k);return}if(u==="order_type"&&_===OrderType.SCALED){m({distribution_type:DistributionType.FLAT,[u]:_});return}c(u,_,ae);},Re=u=>{I(u),u?T():ke();},Ce=useMemo(()=>C||[OrderType.POST_ONLY,OrderType.IOC,OrderType.FOK].includes(s.order_type_ext)?"disabled":n&&s.order_type===OrderType.LIMIT?"on":"off",[n,C,s.order_type,s.order_type_ext]),vr=()=>{n?(a(void 0),m({order_type_ext:void 0,level:void 0})):a(f.current||BBOOrderType.COUNTERPARTY1);},Or=u=>{a(u),f.current=u;};return useEffect(()=>{if(Ce==="disabled"){let{order_type_ext:u}=s;m({order_type_ext:ve({order_type_ext:u})?void 0:u,level:void 0});}},[Ce,s.order_type_ext]),useEffect(()=>{if(Ce==="on"){let u=Ft(n,s.side),_=wt(n);m({order_type_ext:u,level:_});}},[n,Ce,s.side]),useEffect(()=>{let u=_=>{c("order_price",_);};return A.on("update:orderPrice",u),()=>{A.off("update:orderPrice",u);}},[]),useEffect(()=>{let u=ae=>{setTimeout(()=>{ae?.focus();},0);},_=ae=>{let k=removeTrailingZeros(ae[0]),{order_type:K,order_type_ext:Sr}=s;if($.current===1&&(K===OrderType.STOP_LIMIT||K===OrderType.STOP_MARKET)){c("trigger_price",k),u(Y.current);return}if(ve({order_type:K,order_type_ext:Sr})){a(void 0),m({order_type_ext:void 0,level:void 0}),setTimeout(()=>{A.emit("update:orderPrice",k);},0),u(y.current);return}if(K===OrderType.STOP_LIMIT||K===OrderType.LIMIT){c("order_price",k),u(y.current);return}if(K===OrderType.STOP_MARKET){c("trigger_price",k),u(Y.current);return}if(K===OrderType.MARKET){a(void 0),m({order_type:OrderType.LIMIT,order_price:k}),u(y.current);return}if(K===OrderType.SCALED&&V.current){let Pr=V.current===4?"min_price":"max_price";c(Pr,k),u(y.current);return}c("order_price",k),u(y.current);};return A.on("orderbook:item:click",_),()=>{A.off("orderbook:item:click",_);}},[s,d]),useEffect(()=>{let u=X.current;if(!u)return;let _=new ResizeObserver(ae=>{for(let k of ae){let K=k.contentRect.width;K&&me(K);}});return _.observe(u),()=>{_.unobserve(u);}},[X,s.order_type_ext]),useEffect(()=>{g.reset(),g.resetMetaState();},[e.symbol]),useEffect(()=>{s.order_type===OrderType.SCALED&&!s.distribution_type&&c("distribution_type",DistributionType.FLAT);},[s.order_type,s.distribution_type]),{...g,currentQtyPercentage:Xe,side:s.side,type:s.order_type,level:s.level,setOrderValue:_e,setOrderValues:m,currentLeverage:G,formattedOrder:s,tpslSwitch:C,setTpslSwitch:Re,setMaxQty:h,symbolInfo:d,onFocus:je,onBlur:Ze,refs:{triggerPriceInputRef:Y,priceInputRef:y,priceInputContainerRef:X},canTrade:W,bboStatus:Ce,bboType:n,onBBOChange:Or,toggleBBO:vr,priceInputContainerWidth:we}};var li=e=>{let t=It(e);return jsx(St,{...t,containerRef:e.containerRef})};
|
|
13
|
+
var zr=e=>e>=0&&e<50?"oui-text-success":e>=50&&e<80?"oui-text-warning":e>=80?"oui-text-danger":"",st=e=>{let{t}=useTranslation(),{ltv_threshold:r,negative_usdc_threshold:o,isThresholdLoading:n,holdingData:i=[],currentLtv:a,onConvert:p}=e;return jsxs(Flex,{gap:1,className:"oui-w-72 oui-max-w-72",direction:"column",children:[jsxs(Flex,{width:"100%",justify:"between",itemAlign:"center",children:[jsx(Text,{intensity:36,size:"xs",children:t("common.assets")}),jsx(Text,{intensity:36,size:"xs",children:t("transfer.deposit.collateralContribution")})]}),i.map((s,c)=>jsxs(Flex,{width:"100%",justify:"between",itemAlign:"center",children:[jsx(Text,{intensity:80,size:"xs",children:s.token}),jsx(Text,{size:"xs",intensity:80,className:cn(Number(s.collateralContribution)<0&&"oui-text-warning"),children:removeTrailingZeros(s.collateralContribution)})]},`item-${c}`)),jsx(Divider,{className:"oui-w-full"}),jsxs(Flex,{width:"100%",justify:"between",itemAlign:"center",children:[jsx(Text,{intensity:36,size:"xs",children:t("transfer.LTV.currentLTV")}),jsxs(Text,{size:"xs",intensity:36,className:cn("oui-select-none",zr(a)),children:[a,"%"]})]}),jsx(Text,{className:"oui-py-2",intensity:54,size:"2xs",children:t("transfer.LTV.tooltip",{threshold:n?"-":r,usdcThreshold:n?"-":o})}),jsx(Button,{fullWidth:true,size:"md",variant:"outlined",color:"secondary",onClick:p,children:t("transfer.convert.convertAssets")})]})};var jr=()=>{let{data:e,error:t,isLoading:r}=useQuery("/v1/public/auto_convert_threshold",{errorRetryCount:3});return {ltv_threshold:new Decimal(e?.ltv_threshold??0).mul(100).toNumber(),negative_usdc_threshold:e?.negative_usdc_threshold,isLoading:r,error:t}},at=()=>{let{data:e=[],isLoading:t}=useHoldingStream(),{ltv_threshold:r,negative_usdc_threshold:o,isLoading:n}=jr(),i=useTokensInfo(),{data:a}=useIndexPricesStream(),p=e.map(u=>{let d=i?.find(({token:b})=>b===u.token),g=u.token==="USDC"?1:a?.[`PERP_${u.token}_USDC`]??0,h=d?account.collateralRatio({baseWeight:d.base_weight??0,discountFactor:d.discount_factor??0,collateralQty:u.holding,collateralCap:d?.user_max_qty??u.holding,indexPrice:g}):0,P=account.collateralContribution({collateralQty:u.holding,collateralCap:d?.user_max_qty??u.holding,collateralRatio:h,indexPrice:g});return {...u,collateralContribution:P}}),s=useComputedLTV(),c=useCallback(async()=>modal.show("ConvertDialogId"),[]);return {holdingData:p,isHoldingLoading:t,ltv_threshold:r,negative_usdc_threshold:o,isThresholdLoading:n,currentLtv:s,onConvert:c}};var Ue=()=>{let e=at();return jsx(st,{...e})};var qt=e=>{let{pinned:t,orderTypeExtra:r}=e,{t:o}=useTranslation(),n=i=>a=>{e.onValueChange&&e.onValueChange("order_type_ext",a?i:"");};return useEffect(()=>{e.onValueChange?.("visible_quantity",e.hidden?0:1);},[e.hidden]),jsxs("div",{className:"oui-text-base-contrast-54",children:[jsxs(Flex,{justify:t?"start":"between",mb:3,width:t?"unset":"100%",className:"oui-gap-x-2 md:oui-gap-x-3",wrap:"wrap",gapY:1,children:[jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-postOnly-checkBox",id:"toggle_order_post_only",className:"oui-peer",color:"white",variant:"radio",disabled:!e.showExtra,checked:r===OrderType.POST_ONLY,onCheckedChange:n(OrderType.POST_ONLY)}),jsx("label",{htmlFor:"toggle_order_post_only",className:cn("oui-text-2xs oui-ml-1 peer-data-[disabled]:oui-text-base-contrast-20","oui-break-normal oui-whitespace-nowrap"),children:o("orderEntry.orderType.postOnly")})]}),jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-ioc-checkBox",id:"toggle_order_iov",color:"white",className:"oui-peer",variant:"radio",checked:r===OrderType.IOC,onCheckedChange:n(OrderType.IOC),disabled:!e.showExtra}),jsx("label",{htmlFor:"toggle_order_iov",className:cn("oui-text-2xs oui-ml-1 peer-data-[disabled]:oui-text-base-contrast-20","oui-break-normal oui-whitespace-nowrap"),children:o("orderEntry.orderType.ioc")})]}),jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-fox-checkBox",id:"toggle_order_fok",color:"white",variant:"radio",className:"oui-peer",checked:r===OrderType.FOK,onCheckedChange:n(OrderType.FOK),disabled:!e.showExtra}),jsx("label",{htmlFor:"toggle_order_fok",className:cn("oui-text-2xs oui-ml-1 peer-data-[disabled]:oui-text-base-contrast-20","oui-break-normal oui-whitespace-nowrap"),children:o("orderEntry.orderType.fok")})]})]}),jsxs(Flex,{gapX:6,children:[jsxs(Flex,{children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-orderConfirm-checkBox",id:"toggle_order_confirm",color:"white",checked:e.needConfirm,onCheckedChange:i=>{e.setNeedConfirm(!!i);}}),jsx("label",{htmlFor:"toggle_order_confirm",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.orderConfirm")})]}),jsxs(Flex,{children:[jsx(Checkbox,{"data-testid":"oui-testid-orderEntry-hidden-checkBox",id:"toggle_order_hidden",color:"white",checked:e.hidden,onCheckedChange:i=>{e.setHidden(i);}}),jsx("label",{htmlFor:"toggle_order_hidden",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.hidden")})]})]}),!t&&jsxs(Fragment,{children:[jsx(Divider,{className:"oui-my-3"}),jsxs(Flex,{children:[jsx(Switch,{"data-testid":"oui-testid-orderEntry-additional-keepVisible-switch",id:"toggle_order_keep_visible",onCheckedChange:i=>{e.setPinned(i);}}),jsx("label",{htmlFor:"toggle_order_keep_visible",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.keepVisible")})]})]})]})};var Ut=()=>({});var ze=e=>{let t=Ut();return jsx(qt,{...t,...e})};function Pe(e){let{order_type:t,order_type_ext:r}=e,o=[OrderType.ASK,OrderType.BID].includes(r);return t?t===OrderType.LIMIT&&o:o}function zt(e,t){if([BBOOrderType.COUNTERPARTY1,BBOOrderType.COUNTERPARTY5].includes(e))return t===OrderSide.BUY?OrderType.ASK:OrderType.BID;if([BBOOrderType.QUEUE1,BBOOrderType.QUEUE5].includes(e))return t===OrderSide.BUY?OrderType.BID:OrderType.ASK}function Qt(e){if([BBOOrderType.COUNTERPARTY1,BBOOrderType.QUEUE1].includes(e))return OrderLevel.ONE;if([BBOOrderType.COUNTERPARTY5,BBOOrderType.QUEUE5].includes(e))return OrderLevel.FIVE}function Wt(e){let{type:t,side:r,level:o}=e;if(t===OrderType.ASK){if(o===OrderLevel.ONE)return r===OrderSide.BUY?BBOOrderType.COUNTERPARTY1:BBOOrderType.QUEUE1;if(o===OrderLevel.FIVE)return r===OrderSide.BUY?BBOOrderType.COUNTERPARTY5:BBOOrderType.QUEUE5}if(t===OrderType.BID){if(o===OrderLevel.ONE)return r===OrderSide.BUY?BBOOrderType.QUEUE1:BBOOrderType.COUNTERPARTY1;if(o===OrderLevel.FIVE)return r===OrderSide.BUY?BBOOrderType.QUEUE5:BBOOrderType.COUNTERPARTY5}}function Gt(e){let t=e?.data?.rows||[];if(t.length>0){let r=t.length,o=t.filter(n=>n.success).length;return o===r?i18n.t("orderEntry.scaledOrder.fullySuccessful",{total:r}):o===0?i18n.t("orderEntry.scaledOrder.allFailed"):i18n.t("orderEntry.scaledOrder.partiallySuccessful",{successCount:o,total:r})}}var mt=e=>{let{symbolInfo:t,order:r,onConfirm:o,onCancel:n}=e,{quote_dp:i,base_dp:a}=t,{side:p,order_type:s,order_type_ext:c,level:u}=r,{t:d}=useTranslation(),[g,h]=useLocalStorage("orderly_order_confirm",true),P=()=>{if(s===OrderType.MARKET||s===OrderType.STOP_MARKET)return jsx(Text,{intensity:80,children:d("common.marketPrice")});if(Pe({order_type:s,order_type_ext:c})){let b=Wt({type:c,side:p,level:u}),O={[BBOOrderType.COUNTERPARTY1]:d("orderEntry.bbo.counterparty1"),[BBOOrderType.COUNTERPARTY5]:d("orderEntry.bbo.counterparty5"),[BBOOrderType.QUEUE1]:d("orderEntry.bbo.queue1"),[BBOOrderType.QUEUE5]:d("orderEntry.bbo.queue5")}[b];return jsx(Text,{intensity:80,children:O})}return jsx(Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:i,padding:false,children:r.order_price})};return jsxs(Fragment,{children:[jsxs(Flex,{justify:"between",children:[jsx(Text.formatted,{rule:"symbol",showIcon:true,children:r.symbol}),jsxs(Flex,{justify:"end",gapX:1,children:[jsx(fo,{type:s}),p===OrderSide.BUY?jsx(Badge,{color:"buy",size:"sm",children:d("common.buy")}):jsx(Badge,{color:"sell",size:"sm",children:d("common.sell")})]})]}),jsx(Divider,{className:"oui-my-4"}),jsxs("div",{className:textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.qty")}),jsx(Text.numeral,{rule:"price",dp:a,padding:false,className:"oui-text-base-contrast",children:r.order_quantity})]}),r.trigger_price?jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.trigger")}),jsx(Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:i,padding:false,children:r.trigger_price})]}):null,jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.price")}),P()]}),jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.notional")}),jsx(Text.numeral,{unit:"USDC",rule:"price",dp:i,padding:false,className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:r.total})]})]}),r.tp_trigger_price||r.sl_trigger_price?jsxs(Fragment,{children:[jsx(Divider,{className:"oui-my-4"}),jsxs("div",{className:textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[r.tp_trigger_price&&jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("orderEntry.tpMarkPrice")}),jsx(Text.numeral,{unit:"USDC",rule:"price",coloring:true,dp:i,padding:false,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:r.tp_trigger_price})]}),r.sl_trigger_price&&jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("orderEntry.slMarkPrice")}),jsx(Text.numeral,{unit:"USDC",rule:"price",coloring:true,className:"oui-text-trade-loss",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:i,padding:false,children:r.sl_trigger_price})]})]})]}):null,jsxs(Flex,{gapX:1,pt:4,pb:5,children:[jsx(Checkbox,{id:"orderConfirm",color:"white",onCheckedChange:b=>{h(!b);}}),jsx("label",{htmlFor:"orderConfirm",className:textVariants({size:"xs",intensity:54}),children:d("orderEntry.disableOrderConfirm")})]}),r.tp_trigger_price||r.sl_trigger_price?jsx(Box,{py:3,px:3,className:"oui-text-center",children:jsx(Text,{color:"warning",size:"xs",children:d("orderEntry.tpsl.trigger.description")})}):null,jsxs(Grid,{cols:2,gapX:3,children:[jsx(Button,{color:"secondary",size:"md",onClick:()=>n(),children:d("common.cancel")}),jsx(Button,{size:"md",onClick:()=>o(),children:d("common.confirm")})]})]})};mt.displayName="OrderConfirmDialog";var fo=e=>{let{t}=useTranslation(),r=useMemo(()=>{switch(e.type){case OrderType.LIMIT:return t("orderEntry.orderType.limit");case OrderType.MARKET:return t("common.marketPrice");case OrderType.STOP_LIMIT:return t("orderEntry.orderType.stopLimit");case OrderType.STOP_MARKET:return t("orderEntry.orderType.stopMarket");default:return ""}},[e.type]);return jsx(Badge,{color:"neutral",size:"sm",children:r})},go=e=>{let{close:t,resolve:r,reject:o,...n}=e;return jsx(mt,{...n,onCancel:()=>{o(),t();},onConfirm:()=>{r(),t();}})},pt="orderConfirm";registerSimpleDialog(pt,go,{size:"sm",title:()=>i18n.t("orderEntry.orderConfirm")});var yt=e=>{let{order:t,symbolInfo:r,dataSource:o,national:n,askAndBid:i,totalQuantity:a}=e,{base:p,quote:s,base_dp:c,quote_dp:u}=r,{t:d}=useTranslation(),g=()=>{e.reject(),e.close?.();},h=()=>{e.resolve(),e.close?.();},P=useMemo(()=>[{title:d("common.symbol"),dataIndex:"symbol",width:125,render:(b,O)=>jsxs(Flex,{gap:2,children:[jsx("div",{className:cn("oui-h-[38px] oui-w-1 oui-shrink-0 oui-rounded-[1px]",O.side===OrderSide.BUY?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxs(Flex,{direction:"column",itemAlign:"start",children:[jsxs(Flex,{gapX:1,children:[jsx(TokenIcon,{symbol:b,className:"oui-size-3"}),jsx(Text.formatted,{rule:"symbol",size:"xs",formatString:"base-type",children:b})]}),jsx(Badge,{color:"neutral",size:"xs",children:d("orderEntry.orderType.limit")})]})]})},{title:d("common.quantity"),dataIndex:"order_quantity",width:100,render:(b,O)=>jsx(Text.numeral,{rule:"price",dp:c,padding:false,color:O.side===OrderSide.BUY?"buy":"sell",children:b})},{title:d("common.orderPrice"),dataIndex:"order_price",width:100,render:(b,O)=>{let E=!!(O.side===OrderSide.BUY?i?.[0]&&Number(b)>=i?.[0]:i?.[1]&&Number(b)<=i?.[1]);return jsxs(Flex,{gapX:1,children:[jsx(Text.numeral,{rule:"price",dp:u,children:b}),E&&jsx(Tooltip,{content:d("orderEntry.confirmScaledOrder.orderPrice.warning"),className:"oui-w-[240px] oui-text-2xs oui-font-semibold oui-text-base-contrast-80",children:jsx(Eo,{className:"oui-text-warning-darken"})})]})}}],[d,r,i,c,u]);return jsxs("div",{className:"oui-font-semibold",children:[jsx(DataTable,{classNames:{root:cn("oui-bg-base-7","oui-rounded-lg","oui-overflow-hidden",t.orders?.length>=6&&"oui-h-[320px]"),scroll:"!oui-min-h-[130px]"},dataSource:o,columns:P,bordered:true,onRow:()=>({className:cn("oui-h-[50px]")})}),jsxs("div",{className:"oui-mb-5 oui-mt-4 oui-text-2xs",children:[jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("orderEntry.totalOrders")}),jsx(Text,{intensity:80,children:t.orders?.length})]}),jsxs(Flex,{justify:"between",mt:2,children:[jsx(Text,{children:d("orderEntry.totalQuantity")}),jsx(Text.numeral,{rule:"price",unit:p,dp:c,padding:false,intensity:80,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:a})]}),jsxs(Flex,{justify:"between",mt:2,children:[jsx(Text,{children:d("common.notional")}),jsx(Text.numeral,{rule:"price",unit:s,dp:u,padding:false,intensity:80,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:n})]})]}),jsxs(Grid,{cols:2,gapX:3,children:[jsx(Button,{color:"secondary",size:"md",onClick:g,children:d("common.cancel")}),jsx(Button,{size:"md",onClick:h,children:d("common.confirm")})]})]})},Eo=forwardRef((e,t)=>jsx("svg",{width:"12",height:"13",viewBox:"0 0 12 13",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",ref:t,...e,children:jsx("path",{d:"M5.99951 1.50708C3.23811 1.50708 0.999512 3.74558 0.999512 6.50708C0.999512 9.26858 3.23811 11.5071 5.99951 11.5071C8.76091 11.5071 10.9995 9.26858 10.9995 6.50708C10.9995 3.74558 8.76091 1.50708 5.99951 1.50708ZM5.99951 4.00708C6.27566 4.00708 6.49951 4.23108 6.49951 4.50708C6.49951 4.78308 6.27566 5.00708 5.99951 5.00708C5.72336 5.00708 5.49951 4.78308 5.49951 4.50708C5.49951 4.23108 5.72336 4.00708 5.99951 4.00708ZM5.99951 5.50708C6.27566 5.50708 6.49951 5.73108 6.49951 6.00708V8.50708C6.49951 8.78308 6.27566 9.00708 5.99951 9.00708C5.72336 9.00708 5.49951 8.78308 5.49951 8.50708V6.00708C5.49951 5.73108 5.72336 5.50708 5.99951 5.50708Z"})}));function bt(e){let{order:t,symbolInfo:r}=e,o=t.orders,[n,i]=useState(),a=useEventEmitter(),p=useMemo(()=>o.reduce((u,d)=>u.add(new Decimal(d.order_price).mul(d.order_quantity)),zero).toNumber(),[o]),s=useMemo(()=>o.reduce((u,d)=>u.add(new Decimal(d.order_quantity)),zero).toString(),[o,r.base_dp]);return useEffect(()=>{let c=u=>{let d=u.asks?.[u.asks.length-1]?.[0],g=u.bids?.[0]?.[0];i([d,g]);};return a.on("orderbook:update",c),()=>{a.off("orderbook:update",c);}},[]),{dataSource:o,national:p,askAndBid:n,totalQuantity:s}}var er=e=>{let t=bt(e);return jsx(yt,{...e,...t})},We="scaledOrderConfirm";registerSimpleDialog(We,er,{size:"md",title:()=>i18n.t("orderEntry.confirmScaledOrder"),contentProps:{}});var xt=e=>{let{t}=useTranslation(),{takerFeeRate:r,makerFeeRate:o}=e;return jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:t("common.fees")}),jsx(AuthGuard,{fallback:()=>jsxs(Text,{size:"2xs",children:[t("portfolio.feeTier.column.taker"),": --% /"," ",t("portfolio.feeTier.column.maker"),": --%"]}),children:jsxs(Flex,{gap:1,children:[jsxs(Text,{size:"2xs",children:[t("portfolio.feeTier.column.taker"),":"]}),jsx(Text,{size:"2xs",className:"oui-text-base-contrast-80",children:r}),jsx(Text,{size:"2xs",children:"/"}),jsxs(Text,{size:"2xs",children:[t("portfolio.feeTier.column.maker"),":"]}),jsx(Text,{size:"2xs",className:"oui-text-base-contrast-80",children:o})]})})]})};var Tt=()=>{let{data:e}=useAccountInfo(),t=useMemo(()=>{let o=e?.futures_taker_fee_rate;if(!(typeof o>"u"))return `${new Decimal(o).mul(.01).toString()}%`},[e]),r=useMemo(()=>{let o=e?.futures_maker_fee_rate;if(!(typeof o>"u"))return `${new Decimal(o).mul(.01).toString()}%`},[e]);return {takerFeeRate:t,makerFeeRate:r}};var ht=()=>{let e=Tt();return jsx(xt,{...e})};var Le=createContext({}),nr=Le.Provider;var ir=e=>{let{t}=useTranslation(),{className:r,...o}=e,n=()=>{modal.dialog({title:t("common.tips"),size:"sm",content:jsx(Uo,{value:e.value})});};return jsxs(Flex,{direction:"column",itemAlign:"start",justify:"center",p:2,r:"base",width:"100%",intensity:600,className:cn("oui-t-rounded oui-text-base-contrast-36","oui-border oui-border-solid oui-border-line",r),children:[jsx(Text,{size:"2xs",className:"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12",onClick:n,children:t("orderEntry.quantityDistribution")}),jsx(zo,{...o})]})},Uo=e=>{let{t}=useTranslation(),[r,o]=useState(DistributionType.FLAT);useEffect(()=>{o([DistributionType.FLAT,DistributionType.ASCENDING,DistributionType.DESCENDING].includes(e.value)?e.value:DistributionType.FLAT);},[e.value]);let n=useMemo(()=>[{type:DistributionType.FLAT,title:t("orderEntry.distributionType.flat"),description:t("orderEntry.distributionType.flat.description"),formula:`${t("orderEntry.skew")} = 1`,quantity:jsx(Qo,{})},{type:DistributionType.ASCENDING,title:t("orderEntry.distributionType.ascending"),description:t("orderEntry.distributionType.ascending.description"),formula:`${t("orderEntry.skew")} > 1`,quantity:jsx(Wo,{})},{type:DistributionType.DESCENDING,title:t("orderEntry.distributionType.descending"),description:t("orderEntry.distributionType.descending.description"),formula:`0 < ${t("orderEntry.skew")} < 1`,quantity:jsx(Go,{})}],[]),i=useMemo(()=>n.find(a=>a.type===r),[n,r]);return jsxs("div",{className:"oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:[jsxs(Flex,{direction:"column",itemAlign:"start",gapY:1,children:[jsx(Text,{intensity:80,children:t("orderEntry.quantityDistribution.description")}),jsx(Text,{children:t("orderEntry.quantityDistribution.formula")})]}),jsxs(Flex,{intensity:600,p:1,r:"base",mt:3,itemAlign:"start",children:[jsx(Flex,{direction:"column",itemAlign:"start",children:n.map(a=>jsx(Box,{intensity:r===a.type?500:600,width:78,p:2,className:"oui-cursor-pointer oui-rounded-l",onClick:()=>{o(a.type);},children:jsx(Text,{children:a.title})},a.title))}),jsxs(Flex,{direction:"column",itemAlign:"start",gapY:1,p:2,intensity:500,width:"100%",className:cn("oui-rounded-r",r===DistributionType.FLAT&&"oui-rounded-bl",r===DistributionType.ASCENDING&&"oui-rounded-l",r===DistributionType.DESCENDING&&"oui-rounded-tl"),children:[jsx("div",{children:i?.formula}),jsx(Text,{children:i?.description}),jsx(Flex,{width:"100%",justify:"center",children:i?.quantity}),jsxs(Flex,{width:"100%",gapX:1,justify:"center",children:[jsx(Text,{className:"oui-text-base-1",children:t("common.price")}),jsx(Yo,{})]})]})]})]})},zo=e=>{let{value:t,onValueChange:r}=e,{t:o}=useTranslation(),n=a=>p=>{r(a);},i=useMemo(()=>({[DistributionType.FLAT]:o("orderEntry.distributionType.flat"),[DistributionType.ASCENDING]:o("orderEntry.distributionType.ascending.abbr"),[DistributionType.DESCENDING]:o("orderEntry.distributionType.descending.abbr"),[DistributionType.CUSTOM]:o("orderEntry.distributionType.custom")}),[o]);return jsx(Flex,{className:cn("oui-gap-x-[6px] lg:oui-gap-x-2"),wrap:"wrap",children:Object.values(DistributionType).map(a=>jsxs(Flex,{itemAlign:"center",children:[jsx(Checkbox,{id:`distribution-type-${a}`,color:"white",variant:"radio",checked:t===a,onCheckedChange:n(a)}),jsx("label",{htmlFor:`distribution-type-${a}`,className:cn("oui-text-2xs","oui-ml-1","oui-whitespace-nowrap oui-break-normal"),children:i[a]})]},a))})},Qo=()=>jsxs("svg",{width:"218",height:"40",viewBox:"0 0 218 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"18",y:"18",width:"181",height:"4",fill:"rgb(var(--oui-color-base-2))"}),jsx("circle",{cx:"15",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"62",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"109",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"156",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"203",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"})]}),Wo=()=>jsxs("svg",{width:"218",height:"40",viewBox:"0 0 218 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"18",y:"18",width:"181",height:"4",fill:"rgb(var(--oui-color-base-2))"}),jsx("circle",{cx:"15",cy:"20",r:"4.28571",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.42857"}),jsx("circle",{cx:"62",cy:"20",r:"5.14286",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.71429"}),jsx("circle",{cx:"109",cy:"20",r:"6",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"156",cy:"20",r:"6.85714",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.28571"}),jsx("circle",{cx:"203",cy:"20",r:"7.71429",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.57143"})]}),Go=()=>jsxs("svg",{width:"218",height:"40",viewBox:"0 0 218 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{width:"181",height:"4",transform:"matrix(-1 0 0 1 200 18)",fill:"rgb(var(--oui-color-base-2))"}),jsx("circle",{cx:"5",cy:"5",r:"4.28571",transform:"matrix(-1 0 0 1 208 15)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.42857"}),jsx("circle",{cx:"6",cy:"6",r:"5.14286",transform:"matrix(-1 0 0 1 162 14)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"1.71429"}),jsx("circle",{cx:"7",cy:"7",r:"6",transform:"matrix(-1 0 0 1 116 13)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2"}),jsx("circle",{cx:"8",cy:"8",r:"6.85714",transform:"matrix(-1 0 0 1 70 12)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.28571"}),jsx("circle",{cx:"9",cy:"9",r:"7.71429",transform:"matrix(-1 0 0 1 24 11)",fill:"rgb(var(--oui-color-base-2))",stroke:"rgb(var(--oui-color-base-5))",strokeWidth:"2.57143"})]}),Yo=()=>jsx("svg",{width:"176",height:"8",viewBox:"0 0 176 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M175.354 4.35355C175.549 4.15829 175.549 3.84171 175.354 3.64645L172.172 0.464466C171.976 0.269204 171.66 0.269204 171.464 0.464466C171.269 0.659728 171.269 0.976311 171.464 1.17157L174.293 4L171.464 6.82843C171.269 7.02369 171.269 7.34027 171.464 7.53553C171.66 7.7308 171.976 7.7308 172.172 7.53553L175.354 4.35355ZM0 4V4.5H175V4V3.5H0V4Z",fill:"rgb(var(--oui-color-base-1))"})});var dr=[.01,.05,.1],cr=forwardRef((e,t)=>{let{t:r}=useTranslation(),[o,n]=useState(),[i,a]=useState(""),[p,s]=useState(void 0);useImperativeHandle(t,()=>({getValue:()=>i?new Decimal(i)?.toNumber():o})),useEffect(()=>{e.initialValue&&!dr.includes(e.initialValue)?a(e.initialValue.toString()):n(e.initialValue);},[e.initialValue,open]);let c=g=>{n(g),a(""),s(void 0);},u=g=>{if(!g){a(g);return}let h=new Decimal(g);n(void 0),h.gt(3)?(a("3"),s(r("orderEntry.slippage.error.exceed"))):(a(g),s(void 0));},d=e.isMobile?jsx("button",{onClick:()=>{modal.alert({title:r("common.tips"),message:jsx(Text,{size:"2xs",children:r("orderEntry.slippage.tips")})});},children:jsx(ExclamationFillIcon,{className:"oui-text-base-contrast-54",size:16})}):jsx(Tooltip,{content:jsx(Text,{intensity:80,size:"2xs",children:r("orderEntry.slippage.tips")}),className:"oui-w-[260px] oui-bg-base-6",arrow:{className:"oui-fill-base-6"},children:jsx(TooltipTrigger,{children:jsx(ExclamationFillIcon,{className:"oui-text-base-contrast-54",size:16})})});return jsxs("div",{className:"oui-text-2xs",children:[jsxs(Flex,{mb:2,gapX:1,children:[jsx(Text,{size:"xs",children:r("orderEntry.slippage")}),d]}),jsxs(Flex,{gapX:2,children:[dr.map(g=>jsx(rn,{value:g,isActive:o===g,onClick:()=>{c(g);}},g)),jsx(Input,{suffix:"%",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(2)],value:i,onValueChange:u,classNames:{root:cn("oui-rounded-md oui-bg-base-6","oui-h-[40px] oui-w-[74px]"),input:"oui-text-base-contrast",additional:"oui-pl-1"}})]}),!!p&&jsx(Box,{mt:5,className:"-oui-mb-5",children:jsx(Text,{size:"2xs",color:"danger",children:p})})]})}),rn=({value:e,isActive:t,onClick:r})=>jsx(Flex,{intensity:600,justify:"center",itemAlign:"center",r:"md",width:74,height:40,className:cn("oui-cursor-pointer oui-select-none",t&&"oui-bg-primary-light"),onClick:r,children:jsxs(Text,{size:"sm",intensity:80,children:[e,"%"]})});var mr=e=>{let{t}=useTranslation(),[r,{setTrue:o,setFalse:n,toggle:i}]=useBoolean(false),{isMobile:a}=useScreen(),p=useRef(null),s=()=>{let c=p.current?.getValue();return e.setSlippage(c?c.toString():"1"),n(),Promise.resolve(true)};return jsxs(Fragment,{children:[jsx(SimpleDialog,{open:r,onOpenChange:i,title:t("common.settings"),contentProps:{size:a?"xs":"sm"},actions:{primary:{disabled:false,label:t("common.save"),onClick:s},secondary:{label:t("common.cancel"),onClick:()=>n()}},children:jsx(cr,{ref:p,isMobile:a,initialValue:e.slippage?Number(e.slippage):void 0})}),jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:t("orderEntry.slippage")}),jsx(AuthGuard,{fallback:()=>jsxs(Text,{size:"2xs",children:[t("orderEntry.slippage.est"),": -% / ",t("common.max"),": --%"]}),children:jsxs(Flex,{gap:1,children:[jsx(Text.numeral,{size:"2xs",rule:"percentages",prefix:`${t("orderEntry.slippage.est")}: `,suffix:` / ${t("common.max")}: `,children:e.estSlippage??0}),jsx("button",{className:"oui-text-2xs",onClick:()=>o(),children:jsxs(Flex,{className:"oui-gap-0.5",as:"span",children:[jsx(Text,{size:"2xs",className:"oui-text-primary",children:`${e.slippage||"-"}%`}),jsx(EditIcon,{className:"oui-text-primary oui-hidden md:oui-block",size:12,opacity:1})]})})]})})]})]})};var pr=e=>jsx(mr,{...e});var yr=createContext({}),$e=()=>useContext(yr),St=e=>{let{type:t,values:r}=e,[o,n]=useLocalStorage("TP/SL_Mode","Offset%"),{t:i}=useTranslation(),a=useMemo(()=>!r.PnL||!e.values.trigger_price?null:jsxs(Flex,{children:[jsx("span",{className:"oui-text-xs oui-text-base-contrast-54",children:o==="PnL"?i("orderEntry.estRoi"):i("orderEntry.estPnL")}),o==="PnL"?jsx(Text.numeral,{rule:"percentages",className:cn("oui-text-xs oui-ml-1",t==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),children:r.ROI}):jsx(Text.numeral,{rule:"price",className:cn("oui-text-xs oui-ml-1",t==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),children:r.PnL})]}),[o,e.values.PnL,e.values.trigger_price]);return jsx(yr.Provider,{value:{mode:o,setMode:n,tipsEle:a},children:e.children})};var xr=e=>{let{type:t,values:r,quote_dp:o}=e,{t:n}=useTranslation(),{mode:i,setMode:a,tipsEle:p}=$e(),[s,c]=useState(false),[u,d]=useState(false),g=useMemo(()=>{switch(i){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[i]),[h,P]=useState(r[i]);useEffect(()=>{u||P(r[i]);},[r,i,u]);let b=useMemo(()=>[{label:n("tpsl.pnl"),value:"PnL",testId:"PnL_menu_item"},{label:n("tpsl.offset"),value:"Offset",testId:"Offset_mneu_item"},{label:`${n("tpsl.offset")}%`,value:"Offset%",testId:"Offset%_menu_item"}],[n]),O=useMemo(()=>({PnL:n("tpsl.pnl"),Offset:n("tpsl.offset"),"Offset%":`${n("tpsl.offset")}%`}),[n]),E=useRef("");return {mode:i,modes:b,modeLabelMap:O,formatter:B=>{let{dp:$=2}=B;return {onRenderBefore:(y,Q)=>(y=`${y}`,t==="SL"&&i==="PnL"&&(y=y.startsWith("-")?y:"-"+y),y===""||y==="-"?"":i==="Offset%"?`${new Decimal(y.replace(new RegExp(E.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${E.current}`:(i==="Offset"&&(y=todpIfNeed(y,$)),`${y}`)),onSendBefore:y=>{if(/^\-?0{2,}$/.test(y))return "0";if(i==="Offset%"){if(y!==""){y=todpIfNeed(y,2);let Q=y.match(/\.0{0,2}$/);Q?E.current=Q[0]:E.current="",y=new Decimal(y).div(100).toString(),y=`${y}${E.current}`;}}else y=todpIfNeed(y,$);return y===""||y==="-"?"":y}}},onModeChange:B=>{a(B);},onFocus:()=>{c(true),d(true);},onBlur:()=>{c(false),d(false),e.onChange(g,h);},value:h,onValueChange:B=>{P(B),e.onChange(g,B);},quote_dp:o,tips:s?p:void 0}};var _r=e=>{let{mode:t,modes:r,modeLabelMap:o,onModeChange:n,onValueChange:i,quote:a,quote_dp:p,value:s,type:c,tips:u,onFocus:d,onBlur:g}=e,[h,P]=useState(t),[b,O]=useState(t==="Offset%"?"%":a);useEffect(()=>{P(t),O(t==="Offset%"?"%":a);},[t]),useEffect(()=>{P(s?"":t);},[s]);let E=useMemo(()=>`${c.toLowerCase()}_${t.toLowerCase()}`,[]);return jsx(Input.tooltip,{prefix:o[h]||h,size:"md",placeholder:b,id:E,align:"right",value:s,tooltip:u,tooltipProps:{content:{side:e.type==="TP"?"top":"bottom"}},"data-testid":e.testIds?.input,autoComplete:"off",onValueChange:i,formatters:[e.formatter({dp:p,mode:t,type:c}),inputFormatter.currencyFormatter],classNames:{root:c==="TP"?"oui-text-trade-profit":"oui-text-trade-loss",additional:"oui-text-base-contrast-54",input:"oui-text-inherit"},onFocus:()=>{P(""),O(""),d();},onBlur:()=>{P(s?"":t),O(t==="Offset%"?"%":a),g();},suffix:jsxs(Fragment,{children:[t==="Offset%"&&!!s&&jsx(Text,{size:"2xs",color:"inherit",className:"oui-ml-[2px]",children:"%"}),jsx(Ln,{mode:t,modes:r,onModeChange:ee=>n(ee.value),testId:e.testIds?.dropDown})]})})},Ln=e=>jsx(SimpleDropdownMenu,{currentValue:e.mode,menu:e.modes,align:"end",size:"xs",className:"oui-min-w-[80px]",onCloseAutoFocus:t=>t.preventDefault(),onSelect:t=>e.onModeChange(t),children:jsx("button",{className:"oui-p-2","data-testid":e.testId,children:jsx(CaretDownIcon,{size:12,color:"white"})})});var Cr=e=>{let{testIds:t,quote:r,...o}=e,n=xr(o);return jsx(_r,{...n,testIds:t,quote:r,type:e.type})};var Sr=e=>{let t=Er.useRef(null),{t:r}=useTranslation();return useEffect(()=>{e.orderType!==OrderType.LIMIT&&e.orderType!==OrderType.MARKET&&e.onSwitchChanged(false);},[e.orderType]),e.orderType!==OrderType.LIMIT&&e.orderType!==OrderType.MARKET||e.isReduceOnly?null:jsxs("div",{children:[jsxs(Flex,{itemAlign:"center",gapX:1,children:[jsx(Switch,{id:"order_entry_tpsl",className:"oui-h-[14px]",checked:e.switchState,disabled:e.orderType!==OrderType.LIMIT&&e.orderType!==OrderType.MARKET||e.isReduceOnly,onCheckedChange:o=>{e.onSwitchChanged(o);}}),jsx("label",{htmlFor:"order_entry_tpsl",className:"oui-text-xs",children:r("common.tpsl")}),jsx(ExclamationFillIcon,{color:"white",size:14,opacity:1,className:"oui-cursor-pointer oui-text-white/[.36] hover:oui-text-white/80",onClick:()=>{modal.dialog({title:r("common.tips"),size:"xs",content:jsx(Text,{intensity:54,children:r("orderEntry.tpsl.tips")})});}})]}),jsx("div",{className:cn("oui-max-h-0 oui-overflow-hidden oui-transition-all",e.switchState&&"oui-max-h-[100px]"),onTransitionEnd:()=>{t.current?.style.setProperty("opacity",e.switchState?"1":"0");},children:jsx(Pr,{ref:t,onChange:e.onChange,values:e.values,errors:e.errors,quote_dp:e.quote_dp})})]})},Pr=Er.forwardRef((e,t)=>{let{parseErrorMsg:r}=useOrderEntryFormErrorMsg(e.errors);return jsxs("div",{ref:t,className:"oui-space-y-1 oui-px-px oui-py-2 oui-transition-all",children:[jsx(St,{values:e.values.tp,type:"TP",children:jsx(vr,{type:"TP",error:r("tp_trigger_price"),onChange:e.onChange,values:e.values.tp,quote_dp:e.quote_dp,testIds:{first:"oui-testid-orderEntry-tpsl-tpPrice-input",second:"oui-testid-orderEntry-tpsl-tpPnl-input",dropDown:"oui-testid-orderEntry-tpsl-tp-dropDown-trigger-button"}})}),jsx(St,{values:e.values.sl,type:"SL",children:jsx(vr,{type:"SL",error:r("sl_trigger_price"),onChange:e.onChange,values:e.values.sl,quote_dp:e.quote_dp,testIds:{first:"oui-testid-orderEntry-tpsl-slPrice-input",second:"oui-testid-orderEntry-tpsl-slPnl-input",dropDown:"oui-testid-orderEntry-tpsl-sl-dropDown-trigger-button"}})})]})});Pr.displayName="TPSLInputForm";var Gn=e=>{let{t}=useTranslation(),{errorMsgVisible:r}=useContext(Le),{tipsEle:o}=$e(),[n,i]=useState(`${e.type} Price`),[a,p]=useState("USDC"),[s,c]=useState(false),[u,d]=useState(false),[g,h]=useState(e.values.trigger_price??"");useEffect(()=>{u||h(e.values.trigger_price??"");},[e.values.trigger_price,u]);let P=useMemo(()=>e.error&&r?e.error:s?o:null,[e.error,r,s,o]),b=K=>{let R=e.type==="TP"?t("tpsl.tpPrice"):t("tpsl.slPrice");return K&&(R=e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),R},O=K=>{h(K),e.onChange(K);};useEffect(()=>{i(b(e.values.trigger_price)),u||h(e.values.trigger_price??"");},[e.type,e.values.trigger_price]);let E=()=>{i(e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),p(""),c(true),d(true);},ee=()=>{i(b(e.values.trigger_price)),p("USDC"),c(false),d(false),e.onChange(g);};return jsx(Input.tooltip,{"data-testid":e.testId,prefix:n,size:"md",placeholder:a,align:"right",onFocus:E,onBlur:ee,tooltip:P,tooltipProps:{content:{side:e.type==="TP"?"top":"bottom"}},color:e.error?"danger":void 0,autoComplete:"off",value:g,classNames:{additional:"oui-text-base-contrast-54",root:"oui-pr-2 md:oui-pr-3",prefix:"oui-pr-1 md:oui-pr-2"},onValueChange:O,formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(e.quote_dp??2),inputFormatter.currencyFormatter]})},vr=e=>{let t=e.type==="SL"?"sl_trigger_price":"tp_trigger_price";return jsxs(Grid,{cols:2,gapX:1,children:[jsx(Gn,{testId:e.testIds?.first,type:e.type,error:e.error,values:e.values??"",onChange:r=>{e.onChange(t,r);},quote_dp:e.quote_dp}),jsx(Cr,{testIds:{input:e.testIds?.second,dropDown:e.testIds?.dropDown},onChange:e.onChange,quote:"USDC",quote_dp:e.quote_dp,type:e.type,values:{PnL:e.values.PnL,Offset:e.values.Offset,"Offset%":e.values["Offset%"],ROI:e.values.ROI}})]})};var Bt=e=>{let{side:t,formattedOrder:r,setOrderValue:o,symbolInfo:n,maxQty:i,freeCollateral:a,helper:p,submit:s,metaState:c,bboStatus:u,bboType:d,onBBOChange:g,toggleBBO:h,disableFeatures:P,currentLtv:b}=e,{curLeverage:O}=useLeverage(),{t:E}=useTranslation(),{isMobile:ee}=useScreen(),{errors:K,validated:R}=c,[H,B]=useState(false),[$,y]=useLocalStorage("orderly_order_confirm",true),[Q,ve]=useLocalStorage("orderly-order-additional-pinned",true),[Be,Me]=useLocalStorage("orderly-order-hidden",false),[fe,rt]=useLocalStorage("orderly-slippage","1",{parseJSON:_=>!_||_==='""'?"1":JSON.parse(_)}),{parseErrorMsg:Ae}=useOrderEntryFormErrorMsg(R?K:null),ot=useMemo(()=>t===OrderSide.BUY?E("orderEntry.buyLong"):E("orderEntry.sellShort"),[t,E]);useEffect(()=>{R&&B(true);},[R]),useEffect(()=>{e.disableFeatures?.includes("slippageSetting")||(fe?o("slippage",Number(fe)):o("slippage",void 0));},[fe,e.disableFeatures]),useEffect(()=>{let _=T=>{T.target.closest("#order-entry-submit-button")||B(De=>De&&false);};return H?document.addEventListener("click",_):document.removeEventListener("click",_),()=>{document.removeEventListener("click",_);}},[H]);let nt=()=>{let _=r.order_type===OrderType.SCALED;p.validate().then(T=>_?modal.show(We,{order:T,symbolInfo:n,size:ee?"sm":"md"}):$?modal.show(pt,{order:r,symbolInfo:n}):true,T=>(T.slippage&&toast.error(T.slippage.message),B(true),Promise.reject())).then(()=>s({resetOnSuccess:false}).then(T=>{if(!T.success&&T.message)toast.error(T.message);else if(T.success&&_){let Ee=Gt(T);Ee&&toast.success(Ee);}})).catch(T=>{T?.message&&toast.error(T.message);});},Ve=ee&&e.canTrade,it=typeof b=="number"&&!Number.isNaN(b)&&b>0;return jsx(nr,{value:{errorMsgVisible:H},children:jsxs("div",{className:"oui-space-y-2 oui-text-base-contrast-54 xl:oui-space-y-3",ref:e.containerRef,children:[jsxs(Flex,{gapX:2,className:"oui-flex-col oui-gap-y-3 lg:oui-flex-row",children:[jsxs("div",{className:cn("oui-grid oui-w-full oui-flex-1 oui-gap-x-2 lg:oui-flex lg:oui-gap-x-[6px]",Ve?"oui-grid-cols-3":"oui-grid-cols-2"),children:[jsx(Button,{onClick:()=>{e.setOrderValue("side",OrderSide.BUY);},size:"md",fullWidth:true,"data-type":OrderSide.BUY,className:cn(t===OrderSide.BUY&&e.canTrade?"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-buy-button",children:E("common.buy")}),jsx(Button,{onClick:()=>{e.setOrderValue("side",OrderSide.SELL);},"data-type":OrderSide.SELL,fullWidth:true,size:"md",className:cn(t===OrderSide.SELL&&e.canTrade?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-sell-button",children:E("common.sell")}),Ve&&jsx(Button,{size:"md",fullWidth:true,trailing:jsx(CaretRightIcon,{size:12,className:"oui-text-base-contrast-36"}),onClick:()=>{modal.show(LeverageWidgetWithSheetId,{currentLeverage:O});},className:cn("oui-bg-base-7 oui-text-primary-light hover:oui-bg-base-6 active:oui-bg-base-6"),children:commifyOptional(O,{fix:2})+"x"})]}),jsx("div",{className:"oui-w-full lg:oui-flex-1",children:jsx(bi,{type:r.order_type,side:t,canTrade:e.canTrade,onChange:_=>{o("order_type",_);}})})]}),jsxs(Flex,{itemAlign:"center",justify:"between",children:[jsx(Text,{size:"2xs",children:E("common.available")}),jsxs(Flex,{itemAlign:"center",justify:"center",gap:1,children:[it&&jsx(Tooltip,{className:"oui-bg-base-6 oui-p-2",content:jsx(Ue,{}),children:jsx(InfoCircleIcon,{className:"oui-cursor-pointer oui-text-warning oui-opacity-80"})}),jsx(Text.numeral,{unit:n.quote,size:"2xs",className:"oui-text-base-contrast-80",unitClassName:"oui-ml-1 oui-text-base-contrast-54",dp:2,padding:false,children:e.canTrade?a:0})]})]}),r.order_type===OrderType.SCALED?jsx(_i,{type:e.type,symbolInfo:n,values:{quantity:r.order_quantity,total:r.total,side:r.side,max_price:r.max_price,min_price:r.min_price,total_orders:r.total_orders,distribution_type:r.distribution_type,skew:r.skew},onChange:(_,T)=>{e.setOrderValue(_,T);},onValuesChange:e.setOrderValues,onBlur:e.onBlur,onFocus:e.onFocus,parseErrorMsg:Ae}):jsx(fi,{type:e.type,symbolInfo:n,values:{quantity:r.order_quantity,price:r.order_price,trigger_price:r.trigger_price,total:r.total,level:r.level,side:r.side,order_type_ext:r.order_type_ext},onChange:(_,T)=>{e.setOrderValue(_,T);},onValuesChange:e.setOrderValues,refs:e.refs,onBlur:e.onBlur,onFocus:e.onFocus,bbo:{bboStatus:u,bboType:d,onBBOChange:g,toggleBBO:h},priceInputContainerWidth:e.priceInputContainerWidth,parseErrorMsg:Ae}),jsx(yi,{canTrade:e.canTrade,maxQty:i,currentQtyPercentage:e.currentQtyPercentage,value:r.order_quantity?Number(r.order_quantity):0,tick:n.base_tick,dp:n.base_dp,setMaxQty:e.setMaxQty,onValueChange:_=>{o("order_quantity",_);},side:e.side}),jsx(ThrottledButton,{fullWidth:true,id:"order-entry-submit-button","data-type":OrderSide.BUY,className:cn(t===OrderSide.BUY?"orderly-order-entry-submit-button-buy oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"orderly-order-entry-submit-button-sell oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80"),onClick:()=>{nt();},loading:e.isMutating,disabled:!e.canTrade,children:ot}),jsx(xi,{canTrade:e.canTrade,quote:n.quote,estLiqPrice:e.estLiqPrice,estLeverage:e.estLeverage,currentLeverage:e.currentLeverage,slippage:fe,dp:n.quote_dp,setSlippage:rt,estSlippage:e.estSlippage,orderType:r.order_type,disableFeatures:P}),jsx(Divider,{className:"oui-w-full"}),jsx(Sr,{quote_dp:e.symbolInfo.quote_dp,switchState:e.tpslSwitch,onSwitchChanged:e.setTpslSwitch,orderType:r.order_type,errors:R?K:null,isReduceOnly:r.reduce_only,values:{tp:{trigger_price:r.tp_trigger_price??"",PnL:r.tp_pnl??"",Offset:r.tp_offset??"","Offset%":r.tp_offset_percentage??"",ROI:r.tp_ROI??""},sl:{trigger_price:r.sl_trigger_price??"",PnL:r.sl_pnl??"",Offset:r.sl_offset??"","Offset%":r.sl_offset_percentage??"",ROI:r.sl_ROI??""}},onChange:(_,T)=>{e.setOrderValue(_,T);}}),jsxs(Flex,{justify:"between",itemAlign:"center",className:"!oui-mt-0 xl:!oui-mt-3",children:[jsxs(Flex,{itemAlign:"center",gapX:1,children:[jsx(Switch,{"data-testid":"oui-testid-orderEntry-reduceOnly-switch",className:"oui-h-[14px]",id:"reduceOnly",checked:e.formattedOrder.reduce_only,onCheckedChange:_=>{e.setOrderValue("reduce_only",_);}}),jsx("label",{htmlFor:"reduceOnly",className:"oui-text-xs",children:E("orderEntry.reduceOnly")})]}),!Q&&jsx(Ti,{pinned:Q,setPinned:ve,needConfirm:$,setNeedConfirm:y,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===OrderType.LIMIT&&!e.tpslSwitch,hidden:Be,setHidden:Me})]}),Q&&jsxs(Box,{p:2,r:"md",intensity:700,position:"relative",children:[jsx(ze,{pinned:Q,setPinned:ve,needConfirm:$,setNeedConfirm:y,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===OrderType.LIMIT&&!e.tpslSwitch,hidden:Be,setHidden:Me}),jsx(pi,{onClick:()=>{ve(false);},className:"oui-group oui-absolute oui-right-2 oui-top-2","data-testid":"oui-testid-orderEntry-pinned-button"})]})]})})},Ir="M10.007 1.302a.74.74 0 0 0-.486.214c-1.033.989-1.349 1.815-.972 2.948-.88.675-1.437.84-2.536.84-1.503 0-2.484.182-3.152.85v.02a1.583 1.583 0 0 0 0 2.248l1.867 1.882-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.194 1.87 1.861a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.523.854-3.144 0-1.03.212-1.758.852-2.523 1.233.361 1.95.015 2.961-.995a.68.68 0 0 0 .188-.48c0-.234-.06-.593-.209-1.04a5.34 5.34 0 0 0-1.312-2.103 5.35 5.35 0 0 0-2.104-1.312c-.448-.15-.808-.208-1.042-.208",pi=e=>{let[t,r]=useState(Ir);return jsx("button",{...e,children:jsx("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",onMouseEnter:()=>{r('M10.008 1.302a.74.74 0 0 0-.486.214c-1.033.989-1.349 1.815-.972 2.948-.88.675-1.437.84-2.536.84-1.503 0-2.484.182-3.152.85v.02a1.583 1.583 0 0 0 0 2.248l1.867 1.882-3.181 3.18c-.26.26-.28.696-.02.956.261.26.699.26.959 0l3.193-3.194 1.87 1.861a1.585 1.585 0 0 0 2.25 0h.02c.668-.667.854-1.523.854-3.144 0-1.03.212-1.758.853-2.523 1.232.361 1.95.015 2.96-.995a.68.68 0 0 0 .188-.48c0-.234-.06-.593-.209-1.04a5.34 5.34 0 0 0-1.312-2.103A5.35 5.35 0 0 0 11.05 1.51c-.448-.15-.808-.208-1.042-.208m.258 1.37c.708.131 1.421.6 1.93 1.107.507.508.94 1.13 1.119 1.945-.636.61-1.026.658-1.662.323a.67.67 0 0 0-.779.117c-1.214 1.213-1.533 2.314-1.533 3.8 0 1.292-.076 1.773-.48 2.206-.113.123-.27.104-.374 0L3.799 7.486a.24.24 0 0 1-.017-.34c.239-.29.769-.515 2.226-.514 1.742.001 2.668-.448 3.812-1.52a.67.67 0 0 0 .125-.77c-.343-.686-.29-1.047.321-1.67"');},onMouseLeave:()=>{r(Ir);},className:"oui-text-primary-darken ",children:jsx("path",{d:t})})})},fi=e=>{let{type:t,symbolInfo:r,values:o,onFocus:n,onBlur:i,bbo:a,parseErrorMsg:p}=e,{t:s}=useTranslation(),c=a.bboStatus==="on",u=t===OrderType.LIMIT?jsxs(Flex,{direction:"column",itemAlign:"end",className:"oui-text-2xs",children:[r.quote,jsx(Flex,{height:20,px:3,justify:"center",itemAlign:"center",r:"base",className:cn("oui-mt-[2px] oui-cursor-pointer oui-select-none oui-border",a.bboStatus==="on"?"oui-border-primary":"oui-border-line-12",a.bboStatus==="disabled"&&"oui-cursor-not-allowed"),onClick:()=>{a.bboStatus==="disabled"?modal.dialog({title:s("common.tips"),size:"xs",content:jsx(Text,{intensity:54,children:s("orderEntry.bbo.disabled.tips")})}):a.toggleBBO();},children:jsx(Text,{className:cn(a.bboStatus==="on"&&"oui-text-primary",a.bboStatus==="off"&&"oui-text-base-contrast-54",a.bboStatus==="disabled"&&"oui-text-base-contrast-20"),children:s("orderEntry.bbo")})})]}):r.quote;return jsxs("div",{className:"oui-space-y-1",children:[t===OrderType.STOP_LIMIT||t===OrderType.STOP_MARKET?jsx("div",{className:"oui-group",children:jsx(J,{label:s("common.trigger"),suffix:r.quote,error:p("trigger_price"),id:"trigger",ref:e.refs.triggerPriceInputRef,value:o.trigger_price,onChange:d=>{e.onChange("trigger_price",d);},formatters:[inputFormatter.dpFormatter(r.quote_dp)],onFocus:n(1),onBlur:i(1)})}):null,t===OrderType.LIMIT||t===OrderType.STOP_LIMIT?jsxs("div",{ref:e.refs.priceInputContainerRef,className:"oui-group oui-relative oui-w-full",children:[jsx(J,{label:s("common.price"),suffix:u,id:"price",value:o.price,error:p("order_price"),ref:e.refs.priceInputRef,onChange:d=>{e.onChange("order_price",d);},formatters:[inputFormatter.dpFormatter(r.quote_dp)],onFocus:n(0),onBlur:i(0),readonly:c,classNames:{root:cn(c&&"focus-within:oui-outline-transparent "),input:cn(c&&"oui-cursor-auto")}}),a.bboStatus==="on"&&jsx("div",{className:cn("oui-absolute oui-bottom-1 oui-left-0"),children:jsx(hi,{value:a.bboType,onChange:a.onBBOChange,contentStyle:{width:e.priceInputContainerWidth}})})]}):null,jsxs(Grid,{cols:2,className:"oui-group oui-space-x-1",children:[jsx(J,{label:s("common.qty"),suffix:r.base,id:"order_quantity_input",name:"order_quantity_input",className:"!oui-rounded-r",value:o.quantity,error:p("order_quantity"),onChange:d=>{e.onChange("order_quantity",d);},formatters:[inputFormatter.dpFormatter(r.base_dp)],onFocus:n(2),onBlur:i(2)}),jsx(J,{label:`${s("common.total")}\u2248`,suffix:r.quote,id:"total",className:"!oui-rounded-l",value:o.total,error:p("total"),onChange:d=>{e.onChange("total",d);},onFocus:n(3),onBlur:i(3),formatters:[inputFormatter.dpFormatter(r.quote_dp)]})]})]})},J=forwardRef((e,t)=>{let{placeholder:r="0"}=e,{errorMsgVisible:o}=useContext(Le);return jsx(Input.tooltip,{ref:t,tooltip:o?e.error:void 0,autoComplete:"off",autoFocus:e.autoFocus,size:"lg",placeholder:e.readonly?"":r,id:e.id,name:e.name,color:e.error?"danger":void 0,prefix:jsx(gi,{id:e.id,className:e.classNames?.prefix,children:e.label}),suffix:e.suffix,value:e.readonly?"":e.value||"",onValueChange:e.onChange,onFocus:n=>{e.onFocus?.(n);},onBlur:n=>{e.onBlur?.(n);},formatters:e.overrideFormatters||[...e.formatters??[],inputFormatter.numberFormatter,inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],classNames:{root:cn("orderly-order-entry oui-relative oui-h-[54px] oui-rounded oui-border oui-border-solid oui-border-line oui-px-2 oui-py-1 group-first:oui-rounded-t-xl group-last:oui-rounded-b-xl",e.className,e.classNames?.root),input:cn("oui-mb-1 oui-mt-5 oui-h-5",e?.classNames?.input),suffix:cn("oui-absolute oui-right-0 oui-top-0 oui-justify-start oui-py-2 oui-text-2xs oui-text-base-contrast-36",e.classNames?.suffix)},readOnly:e.readonly})});J.displayName="CustomInput";var gi=e=>jsx("label",{htmlFor:e.id,className:cn("oui-absolute oui-left-2 oui-top-[7px] oui-text-2xs oui-text-base-contrast-36",e.className),children:e.children}),yi=e=>{let{canTrade:t}=e,{t:r}=useTranslation(),o=useMemo(()=>t?e.side===OrderSide.BUY?"buy":"sell":void 0,[e.side,t]),n=useMemo(()=>e.side===OrderSide.BUY?r("orderEntry.maxBuy"):r("orderEntry.maxSell"),[e.side,r]);return jsxs("div",{children:[jsx(Slider.single,{disabled:e.maxQty===0||!t,value:e.value,color:o,markCount:4,showTip:true,max:e.maxQty,step:e.tick,onValueChange:e.onValueChange}),jsxs(Flex,{justify:"between",className:"oui-pt-1 xl:oui-pt-2",children:[jsx(Text.numeral,{rule:"percentages",size:"2xs",color:o,dp:2,padding:false,children:t?e.currentQtyPercentage:0}),jsxs(Flex,{children:[jsx("button",{className:textVariants({size:"2xs",className:"oui-mr-1"}),onClick:()=>e.setMaxQty(),"data-testid":"oui-testid-orderEntry-maxQty-value-button",children:n}),jsx(Text.numeral,{size:"2xs",color:o,dp:e.dp,padding:false,"data-testid":"oui-testid-orderEntry-maxQty-value",children:t?e.maxQty:0})]})]})]})},bi=e=>{let{t}=useTranslation(),r=useMemo(()=>[{label:t("orderEntry.orderType.limitOrder"),value:OrderType.LIMIT},{label:t("orderEntry.orderType.marketOrder"),value:OrderType.MARKET},{label:t("orderEntry.orderType.stopLimit"),value:OrderType.STOP_LIMIT},{label:t("orderEntry.orderType.stopMarket"),value:OrderType.STOP_MARKET},{label:t("orderEntry.orderType.scaledOrder"),value:OrderType.SCALED}],[t]),o=useMemo(()=>({[OrderType.LIMIT]:t("orderEntry.orderType.limit"),[OrderType.MARKET]:t("common.marketPrice"),[OrderType.STOP_LIMIT]:t("orderEntry.orderType.stopLimit"),[OrderType.STOP_MARKET]:t("orderEntry.orderType.stopMarket"),[OrderType.SCALED]:t("orderEntry.orderType.scaledOrder")}),[t]);return jsx(Select.options,{testid:"oui-testid-orderEntry-orderType-button",currentValue:e.type,value:e.type,options:r,onValueChange:e.onChange,contentProps:{className:"oui-bg-base-8 oui-w-full"},valueFormatter:(n,i)=>{if(!r.find(s=>s.value===n))return jsx(Text,{size:"xs",children:i.placeholder});let p=o[n];return jsx(Text,{size:"xs",color:e.canTrade?e.side===OrderSide.BUY?"buy":"sell":void 0,children:p})},size:"md"})};function xi(e){let{canTrade:t}=e,{t:r}=useTranslation();return jsxs("div",{className:"oui-space-y-[2px] xl:oui-space-y-1",children:[jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:r("orderEntry.estLiqPrice")}),jsx(Text.numeral,{unit:e.quote,size:"2xs",dp:e.dp,className:"oui-text-base-contrast-80",unitClassName:"oui-ml-1 oui-text-base-contrast-36",children:t?e.estLiqPrice??"--":"--"})]}),jsxs(Flex,{justify:"between",children:[jsx(Text,{size:"2xs",children:r("leverage.accountLeverage")}),jsxs(Flex,{gapX:1,className:textVariants({size:"2xs",intensity:80}),children:[jsx(Text.numeral,{unit:t?"x":void 0,children:t?e.currentLeverage??"--":"--"}),e.estLeverage&&jsxs(Fragment,{children:[jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M2.505 4.997c0-.23.186-.416.416-.416H6.07L4.833 3.332l.586-.585 1.964 1.95a.42.42 0 0 1 .122.3.42.42 0 0 1-.122.3l-1.964 1.95-.586-.585L6.07 5.413H2.921a.416.416 0 0 1-.416-.416",fill:"#fff",fillOpacity:".54"})}),jsx("span",{children:`${e.estLeverage}x`})]})]})]}),e.orderType===OrderType.MARKET&&!e.disableFeatures?.includes("slippageSetting")&&jsx(pr,{slippage:e.slippage,setSlippage:e.setSlippage,estSlippage:e.estSlippage}),!e.disableFeatures?.includes("feesInfo")&&jsx(ht,{})]})}function Ti(e){let[t,r]=useState(false);return jsxs(PopoverRoot,{open:t,onOpenChange:r,children:[jsx(PopoverTrigger,{asChild:true,children:jsx("button",{"data-testid":"oui-testid-orderEntry-additional-button",onClick:()=>{r(true);},children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:"oui-fill-white/[.36] hover:oui-fill-white/80",children:jsx("path",{d:"M3.332 2.665a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V3.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V3.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V3.332a.667.667 0 0 0-.667-.667zm-8 4a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V7.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V7.332a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667V7.332a.667.667 0 0 0-.667-.667zm-8 4a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667v-1.333a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667v-1.333a.667.667 0 0 0-.667-.667zm4 0a.667.667 0 0 0-.667.667v1.333c0 .368.299.667.667.667h1.333a.667.667 0 0 0 .667-.667v-1.333a.667.667 0 0 0-.667-.667z"})})})}),jsx(PopoverContent,{side:"top",align:"end",className:"oui-w-[230px]",children:jsx(ze,{...e})})]})}var hi=e=>{let{t}=useTranslation(),r=[{label:t("orderEntry.bbo.counterparty1"),value:BBOOrderType.COUNTERPARTY1},{label:t("orderEntry.bbo.counterparty5"),value:BBOOrderType.COUNTERPARTY5},{label:t("orderEntry.bbo.queue1"),value:BBOOrderType.QUEUE1},{label:t("orderEntry.bbo.queue5"),value:BBOOrderType.QUEUE5}];return jsx(Select.options,{testid:"oui-testid-orderEntry-bbo-orderType-button",currentValue:e.value,value:e.value,options:r,onValueChange:e.onChange,contentProps:{className:"oui-bg-base-8 oui-w-full",style:e.contentStyle},size:"sm",classNames:{trigger:"oui-border-none oui-bg-transparent"},valueFormatter:(o,n)=>{let i=r.find(a=>a.value===o);return jsx(Box,{children:jsx(Text,{size:"sm",children:i?.label})})}})},_i=e=>{let{symbolInfo:t,values:r,onFocus:o,onBlur:n,parseErrorMsg:i}=e,{t:a}=useTranslation(),p=r.distribution_type===DistributionType.CUSTOM;return jsxs("div",{className:"oui-space-y-1",children:[jsx(J,{label:a("orderEntry.upperPrice"),suffix:t.quote,id:"order_max_price_input",value:r.max_price,error:i("max_price"),onChange:s=>{e.onChange("max_price",s);},formatters:[inputFormatter.dpFormatter(t.quote_dp)],onFocus:o(5),onBlur:n(5),classNames:{root:"oui-rounded-t-xl"}}),jsx(J,{label:a("orderEntry.lowerPrice"),suffix:t.quote,id:"order_min_price_input",value:r.min_price,error:i("min_price"),onChange:s=>{e.onChange("min_price",s);},formatters:[inputFormatter.dpFormatter(t.quote_dp)],onFocus:o(4),onBlur:n(4)}),jsxs(Grid,{cols:2,className:"oui-group oui-space-x-1",children:[jsx(J,{label:a("common.qty"),suffix:t.base,id:"order_quantity_input",name:"order_quantity_input",className:"!oui-rounded-r",value:r.quantity,error:i("order_quantity"),onChange:s=>{e.onChange("order_quantity",s);},formatters:[inputFormatter.dpFormatter(t.base_dp)],onFocus:o(2),onBlur:n(2)}),jsx(J,{label:a("orderEntry.totalOrders"),placeholder:"2-20",id:"order_total_orders_input",className:"!oui-rounded-l",value:r.total_orders,error:i("total_orders"),onChange:s=>{e.onChange("total_orders",s);},overrideFormatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(0)],onFocus:o(6),onBlur:n(6)})]}),jsx(ir,{value:r.distribution_type,onValueChange:s=>{e.onChange("distribution_type",s);},className:cn(!p&&"oui-rounded-b-xl")}),p&&jsx(J,{id:"order_skew_input",label:a("orderEntry.skew"),value:r.skew,error:i("skew"),onChange:s=>{e.onChange("skew",s);},onFocus:o(7),onBlur:n(7),overrideFormatters:[inputFormatter.rangeFormatter({min:0,max:100,dp:2}),inputFormatter.dpFormatter(2)],classNames:{root:"oui-rounded-b-xl"}})]})};var At=e=>{let[t,r]=useLocalStorage("orderly-order-entry-order-type",OrderType.LIMIT),[o,n]=useLocalStorage("orderly-order-entry-order-side",OrderSide.BUY),[i,a]=useLocalStorage("orderly_order_bbo_type",void 0),p=useRef(i),{formattedOrder:s,setValue:c,setValues:u,symbolInfo:d,...g}=useOrderEntry(e.symbol,{initialOrder:{symbol:e.symbol,order_type:t,side:o}}),[h,P]=useLocalStorage("orderly-order-entry-tp_sl-switch",false),{state:b}=useAccount(),{wrongNetwork:O,disabledConnect:E}=useAppContext(),ee=useMemo(()=>!O&&!E&&(b.status===AccountStatusEnum.EnableTrading||b.status===AccountStatusEnum.EnableTradingWithoutConnected),[b.status,O,E]),{currentLeverage:K}=useMarginRatio(),R=useEventEmitter(),H=useRef(8),B=useRef(5),$=useRef(null),y=useRef(null),Q=useRef(null),[ve,Be]=useState(0),Me=useMemo(()=>Number(s.order_quantity)>=Number(g.maxQty)?1:convertValueToPercentage(Number(s.order_quantity??0),0,g.maxQty)/100,[s.order_quantity,g.maxQty]),fe=()=>{if(d.base_tick<1||s.order_type===OrderType.SCALED||!s.order_quantity)return;let m=utils.formatNumber(s?.order_quantity,new Decimal(d?.base_tick||"0").toNumber());c("order_quantity",m,{shouldUpdateLastChangedField:false});},rt=m=>C=>{H.current=m,[4,5].includes(H.current)&&(B.current=m);},Ae=m=>C=>{setTimeout(()=>{H.current===m&&(H.current=8);},300),m===2&&fe();},ot=()=>{u({tp_trigger_price:"",sl_trigger_price:""});},nt=()=>{u({order_type_ext:void 0});},Ve=()=>{c("order_quantity",g.maxQty);},it=(m,C,le)=>{if(m==="order_type"&&r(C),m==="side"&&n(C),m==="reduce_only"&&C||m==="order_type"&&(C===OrderType.STOP_LIMIT||C===OrderType.STOP_MARKET)){let M={tp_trigger_price:"",sl_trigger_price:"",[m]:C};m==="order_type"&&(M.order_type_ext=""),u(M);return}if(m==="order_type"&&C!==OrderType.LIMIT){let M={level:void 0,order_type_ext:void 0,[m]:C};u(M);return}if(m==="order_type"&&C===OrderType.SCALED){u({distribution_type:DistributionType.FLAT,[m]:C});return}c(m,C,le);},_=m=>{P(m),m?nt():ot();},T=useMemo(()=>h||[OrderType.POST_ONLY,OrderType.IOC,OrderType.FOK].includes(s.order_type_ext)?"disabled":i&&s.order_type===OrderType.LIMIT?"on":"off",[i,h,s.order_type,s.order_type_ext]),Ee=()=>{i?(a(void 0),u({order_type_ext:void 0,level:void 0})):a(p.current||BBOOrderType.COUNTERPARTY1);},De=m=>{a(m),p.current=m;};useEffect(()=>{if(T==="disabled"){let{order_type_ext:m}=s;u({order_type_ext:Pe({order_type_ext:m})?void 0:m,level:void 0});}},[T,s.order_type_ext]),useEffect(()=>{if(T==="on"){let m=zt(i,s.side),C=Qt(i);u({order_type_ext:m,level:C});}},[i,T,s.side]),useEffect(()=>{let m=C=>{c("order_price",C);};return R.on("update:orderPrice",m),()=>{R.off("update:orderPrice",m);}},[]),useEffect(()=>{let m=le=>{setTimeout(()=>{le?.focus();},0);},C=le=>{let M=removeTrailingZeros(le[0]),{order_type:Y,order_type_ext:Mr}=s;if(H.current===1&&(Y===OrderType.STOP_LIMIT||Y===OrderType.STOP_MARKET)){c("trigger_price",M),m($.current);return}if(Pe({order_type:Y,order_type_ext:Mr})){a(void 0),u({order_type_ext:void 0,level:void 0}),setTimeout(()=>{R.emit("update:orderPrice",M);},0),m(y.current);return}if(Y===OrderType.STOP_LIMIT||Y===OrderType.LIMIT){c("order_price",M),m(y.current);return}if(Y===OrderType.STOP_MARKET){c("trigger_price",M),m($.current);return}if(Y===OrderType.MARKET){a(void 0),u({order_type:OrderType.LIMIT,order_price:M}),m(y.current);return}if(Y===OrderType.SCALED&&B.current){let Ar=B.current===4?"min_price":"max_price";c(Ar,M),m(y.current);return}c("order_price",M),m(y.current);};return R.on("orderbook:item:click",C),()=>{R.off("orderbook:item:click",C);}},[s,d]),useEffect(()=>{let m=Q.current;if(!m)return;let C=new ResizeObserver(le=>{for(let M of le){let Y=M.contentRect.width;Y&&Be(Y);}});return C.observe(m),()=>{C.unobserve(m);}},[Q,s.order_type_ext]),useEffect(()=>{g.reset(),g.resetMetaState();},[e.symbol]),useEffect(()=>{s.order_type===OrderType.SCALED&&!s.distribution_type&&c("distribution_type",DistributionType.FLAT);},[s.order_type,s.distribution_type]);let Br=useComputedLTV();return {...g,currentQtyPercentage:Me,side:s.side,type:s.order_type,level:s.level,setOrderValue:it,setOrderValues:u,currentLeverage:K,formattedOrder:s,tpslSwitch:h,setTpslSwitch:_,setMaxQty:Ve,symbolInfo:d,onFocus:rt,onBlur:Ae,refs:{triggerPriceInputRef:$,priceInputRef:y,priceInputContainerRef:Q},canTrade:ee,bboStatus:T,bboType:i,onBBOChange:De,toggleBBO:Ee,priceInputContainerWidth:ve,currentLtv:Br}};var Mi=e=>{let t=At(e);return jsx(Bt,{...t,containerRef:e.containerRef,disableFeatures:e.disableFeatures})};
|
|
13
14
|
|
|
14
|
-
export {
|
|
15
|
+
export { ze as AdditionalInfoWidget, Ue as LTVRiskTooltipWidget, mt as OrderConfirmDialog, Bt as OrderEntry, Mi as OrderEntryWidget, At as useOrderEntryScript };
|
|
15
16
|
//# sourceMappingURL=out.js.map
|
|
16
17
|
//# sourceMappingURL=index.mjs.map
|