@orderly.network/ui-order-entry 2.1.3 → 2.2.0-alpha.0
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 +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +12 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -7
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +10 -9
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as _orderly_network_hooks from '@orderly.network/hooks';
|
|
3
1
|
import * as react from 'react';
|
|
4
|
-
import { FocusEvent } from 'react';
|
|
2
|
+
import react__default, { FocusEvent } from 'react';
|
|
3
|
+
import * as _orderly_network_hooks from '@orderly.network/hooks';
|
|
5
4
|
import * as _orderly_network_types from '@orderly.network/types';
|
|
6
5
|
import { OrderSide, OrderType, OrderLevel, BBOOrderType, OrderlyOrder } from '@orderly.network/types';
|
|
6
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
declare enum InputType {
|
|
9
9
|
PRICE = 0,// price input focus
|
|
@@ -82,7 +82,7 @@ declare const useOrderEntryScript: (inputs: OrderEntryScriptInputs) => {
|
|
|
82
82
|
type OrderEntryProps = OrderEntryScriptReturn & {
|
|
83
83
|
containerRef: any;
|
|
84
84
|
};
|
|
85
|
-
declare const OrderEntry:
|
|
85
|
+
declare const OrderEntry: react__default.FC<OrderEntryProps>;
|
|
86
86
|
|
|
87
87
|
declare const OrderEntryWidget: (props: OrderEntryScriptInputs & {
|
|
88
88
|
containerRef?: any;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as _orderly_network_hooks from '@orderly.network/hooks';
|
|
3
1
|
import * as react from 'react';
|
|
4
|
-
import { FocusEvent } from 'react';
|
|
2
|
+
import react__default, { FocusEvent } from 'react';
|
|
3
|
+
import * as _orderly_network_hooks from '@orderly.network/hooks';
|
|
5
4
|
import * as _orderly_network_types from '@orderly.network/types';
|
|
6
5
|
import { OrderSide, OrderType, OrderLevel, BBOOrderType, OrderlyOrder } from '@orderly.network/types';
|
|
6
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
declare enum InputType {
|
|
9
9
|
PRICE = 0,// price input focus
|
|
@@ -82,7 +82,7 @@ declare const useOrderEntryScript: (inputs: OrderEntryScriptInputs) => {
|
|
|
82
82
|
type OrderEntryProps = OrderEntryScriptReturn & {
|
|
83
83
|
containerRef: any;
|
|
84
84
|
};
|
|
85
|
-
declare const OrderEntry:
|
|
85
|
+
declare const OrderEntry: react__default.FC<OrderEntryProps>;
|
|
86
86
|
|
|
87
87
|
declare const OrderEntryWidget: (props: OrderEntryScriptInputs & {
|
|
88
88
|
containerRef?: any;
|
package/dist/index.js
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var types = require('@orderly.network/types');
|
|
3
|
+
var ct = require('react');
|
|
4
|
+
var hooks = require('@orderly.network/hooks');
|
|
6
5
|
var i18n = require('@orderly.network/i18n');
|
|
7
6
|
var reactApp = require('@orderly.network/react-app');
|
|
7
|
+
var types = require('@orderly.network/types');
|
|
8
|
+
var ui = require('@orderly.network/ui');
|
|
9
|
+
var uiLeverage = require('@orderly.network/ui-leverage');
|
|
8
10
|
var utils = require('@orderly.network/utils');
|
|
9
|
-
var hooks = require('@orderly.network/hooks');
|
|
10
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
12
|
|
|
12
13
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
|
|
14
|
-
var
|
|
15
|
+
var ct__default = /*#__PURE__*/_interopDefault(ct);
|
|
15
16
|
|
|
16
|
-
var se=Ze.createContext({}),De=se.Provider;var Ye=Ze.createContext({}),fe=()=>Ze.useContext(Ye),Pe=e=>{let{type:t,values:r}=e,[o,l]=hooks.useLocalStorage("TP/SL_Mode","Offset%"),{t:n}=i18n.useTranslation(),c=Ze.useMemo(()=>!r.PnL||!e.values.trigger_price?null:jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx("span",{className:"oui-text-xs oui-text-base-contrast-54",children:o==="PnL"?n("orderEntry.estRoi"):n("orderEntry.estPnL")}),o==="PnL"?jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",className:ui.cn("oui-text-xs oui-ml-1",t==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),children:r.ROI}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",className:ui.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 jsxRuntime.jsx(Ye.Provider,{value:{mode:o,setMode:l,tipsEle:c},children:e.children})};var Ge=e=>{let{type:t,values:r,quote_dp:o}=e,{t:l}=i18n.useTranslation(),{mode:n,setMode:c,tipsEle:m}=fe(),[a,f]=Ze.useState(false),[s,_]=Ze.useState(false),g=Ze.useMemo(()=>{switch(n){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[n]),[h,O]=Ze.useState(r[n]);Ze.useEffect(()=>{s||O(r[n]);},[r,n,s]);let x=Ze.useMemo(()=>[{label:l("tpsl.pnl"),value:"PnL",testId:"PnL_menu_item"},{label:l("tpsl.offset"),value:"Offset",testId:"Offset_mneu_item"},{label:`${l("tpsl.offset")}%`,value:"Offset%",testId:"Offset%_menu_item"}],[l]),S=Ze.useMemo(()=>({PnL:l("tpsl.pnl"),Offset:l("tpsl.offset"),"Offset%":`${l("tpsl.offset")}%`}),[l]),E=Ze.useRef("");return {mode:n,modes:x,modeLabelMap:S,formatter:C=>{let{dp:k=2}=C;return {onRenderBefore:(u,H)=>(u=`${u}`,t==="SL"&&n==="PnL"&&(u=u.startsWith("-")?u:"-"+u),u===""||u==="-"?"":n==="Offset%"?`${new utils.Decimal(u.replace(new RegExp(E.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${E.current}`:(n==="Offset"&&(u=utils.todpIfNeed(u,k)),`${u}`)),onSendBefore:u=>{if(/^\-?0{2,}$/.test(u))return "0";if(n==="Offset%"){if(u!==""){u=utils.todpIfNeed(u,2);let H=u.match(/\.0{0,2}$/);H?E.current=H[0]:E.current="",u=new utils.Decimal(u).div(100).toString(),u=`${u}${E.current}`;}}else u=utils.todpIfNeed(u,k);return u===""||u==="-"?"":u}}},onModeChange:C=>{c(C);},onFocus:()=>{f(true),_(true);},onBlur:()=>{f(false),_(false),e.onChange(g,h);},value:h,onValueChange:C=>{O(C),e.onChange(g,C);},quote_dp:o,tips:a?m:void 0}};var $e=e=>{let{mode:t,modes:r,modeLabelMap:o,onModeChange:l,onValueChange:n,quote:c,quote_dp:m,value:a,type:f,tips:s,onFocus:_,onBlur:g}=e,[h,O]=Ze.useState(t),[x,S]=Ze.useState(t==="Offset%"?"%":c);Ze.useEffect(()=>{O(t),S(t==="Offset%"?"%":c);},[t]),Ze.useEffect(()=>{O(a?"":t);},[a]);let E=Ze.useMemo(()=>`${f.toLowerCase()}_${t.toLowerCase()}`,[]);return jsxRuntime.jsx(ui.Input.tooltip,{prefix:o[h]||h,size:"md",placeholder:x,id:E,align:"right",value:a,tooltip:s,tooltipProps:{content:{side:e.type==="TP"?"top":"bottom"}},"data-testid":e.testIds?.input,autoComplete:"off",onValueChange:n,formatters:[e.formatter({dp:m,mode:t,type:f}),ui.inputFormatter.currencyFormatter],classNames:{root:f==="TP"?"oui-text-trade-profit":"oui-text-trade-loss",additional:"oui-text-base-contrast-54",input:"oui-text-inherit"},onFocus:()=>{O(""),S(""),_();},onBlur:()=>{O(a?"":t),S(t==="Offset%"?"%":c),g();},suffix:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[t==="Offset%"&&!!a&&jsxRuntime.jsx(ui.Text,{size:"2xs",color:"inherit",className:"oui-ml-[2px]",children:"%"}),jsxRuntime.jsx(Kt,{mode:t,modes:r,onModeChange:D=>l(D.value),testId:e.testIds?.dropDown})]})})},Kt=e=>jsxRuntime.jsx(ui.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:jsxRuntime.jsx("button",{className:"oui-p-2","data-testid":e.testId,children:jsxRuntime.jsx(ui.CaretDownIcon,{size:12,color:"white"})})});var je=e=>{let{testIds:t,quote:r,...o}=e,l=Ge(o);return jsxRuntime.jsx($e,{...l,testIds:t,quote:r,type:e.type})};var et=e=>{let t=Ze__default.default.useRef(null),{t:r}=i18n.useTranslation();return Ze.useEffect(()=>{e.orderType!==types.OrderType.LIMIT&&e.orderType!==types.OrderType.MARKET&&e.onSwitchChanged(false);},[e.orderType]),e.orderType!==types.OrderType.LIMIT&&e.orderType!==types.OrderType.MARKET||e.isReduceOnly?null:jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gapX:1,children:[jsxRuntime.jsx(ui.Switch,{id:"order_entry_tpsl",className:"oui-h-[14px]",checked:e.switchState,disabled:e.orderType!==types.OrderType.LIMIT&&e.orderType!==types.OrderType.MARKET||e.isReduceOnly,onCheckedChange:o=>{e.onSwitchChanged(o);}}),jsxRuntime.jsx("label",{htmlFor:"order_entry_tpsl",className:"oui-text-xs",children:r("common.tpsl")}),jsxRuntime.jsx(ui.ExclamationFillIcon,{color:"white",size:14,opacity:1,className:"oui-cursor-pointer oui-text-white/[.36] hover:oui-text-white/80",onClick:()=>{ui.modal.dialog({title:r("common.tips"),size:"xs",content:jsxRuntime.jsx(ui.Text,{intensity:54,children:r("orderEntry.tpsl.tips")})});}})]}),jsxRuntime.jsx("div",{className:ui.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:jsxRuntime.jsx(tt,{ref:t,onChange:e.onChange,values:e.values,errors:e.errors,quote_dp:e.quote_dp})})]})},tt=Ze__default.default.forwardRef((e,t)=>{let{parseErrorMsg:r}=reactApp.useOrderEntryFormErrorMsg(e.errors);return jsxRuntime.jsxs("div",{ref:t,className:"oui-space-y-1 oui-px-px oui-py-2 oui-transition-all",children:[jsxRuntime.jsx(Pe,{values:e.values.tp,type:"TP",children:jsxRuntime.jsx(Xe,{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"}})}),jsxRuntime.jsx(Pe,{values:e.values.sl,type:"SL",children:jsxRuntime.jsx(Xe,{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"}})})]})});tt.displayName="TPSLInputForm";var ar=e=>{let{t}=i18n.useTranslation(),{errorMsgVisible:r}=Ze.useContext(se),{tipsEle:o}=fe(),[l,n]=Ze.useState(`${e.type} Price`),[c,m]=Ze.useState("USDC"),[a,f]=Ze.useState(false),[s,_]=Ze.useState(false),[g,h]=Ze.useState(e.values.trigger_price??"");Ze.useEffect(()=>{s||h(e.values.trigger_price??"");},[e.values.trigger_price,s]);let O=Ze.useMemo(()=>e.error&&r?e.error:a?o:null,[e.error,r,a,o]),x=q=>{let B=e.type==="TP"?t("tpsl.tpPrice"):t("tpsl.slPrice");return q&&(B=e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),B},S=q=>{h(q),e.onChange(q);};Ze.useEffect(()=>{n(x(e.values.trigger_price)),s||h(e.values.trigger_price??"");},[e.type,e.values.trigger_price]);let E=()=>{n(e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),m(""),f(true),_(true);},D=()=>{n(x(e.values.trigger_price)),m("USDC"),f(false),_(false),e.onChange(g);};return jsxRuntime.jsx(ui.Input.tooltip,{"data-testid":e.testId,prefix:l,size:"md",placeholder:c,align:"right",onFocus:E,onBlur:D,tooltip:O,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:S,formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(e.quote_dp??2),ui.inputFormatter.currencyFormatter]})},Xe=e=>{let t=e.type==="SL"?"sl_trigger_price":"tp_trigger_price";return jsxRuntime.jsxs(ui.Grid,{cols:2,gapX:1,children:[jsxRuntime.jsx(ar,{testId:e.testIds?.first,type:e.type,error:e.error,values:e.values??"",onChange:r=>{e.onChange(t,r);},quote_dp:e.quote_dp}),jsxRuntime.jsx(je,{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}})]})};function le(e){let{order_type:t,order_type_ext:r}=e,o=[types.OrderType.ASK,types.OrderType.BID].includes(r);return t?t===types.OrderType.LIMIT&&o:o}function rt(e,t){if([types.BBOOrderType.COUNTERPARTY1,types.BBOOrderType.COUNTERPARTY5].includes(e))return t===types.OrderSide.BUY?types.OrderType.ASK:types.OrderType.BID;if([types.BBOOrderType.QUEUE1,types.BBOOrderType.QUEUE5].includes(e))return t===types.OrderSide.BUY?types.OrderType.BID:types.OrderType.ASK}function ot(e){if([types.BBOOrderType.COUNTERPARTY1,types.BBOOrderType.QUEUE1].includes(e))return types.OrderLevel.ONE;if([types.BBOOrderType.COUNTERPARTY5,types.BBOOrderType.QUEUE5].includes(e))return types.OrderLevel.FIVE}function nt(e){let{type:t,side:r,level:o}=e;if(t===types.OrderType.ASK){if(o===types.OrderLevel.ONE)return r===types.OrderSide.BUY?types.BBOOrderType.COUNTERPARTY1:types.BBOOrderType.QUEUE1;if(o===types.OrderLevel.FIVE)return r===types.OrderSide.BUY?types.BBOOrderType.COUNTERPARTY5:types.BBOOrderType.QUEUE5}if(t===types.OrderType.BID){if(o===types.OrderLevel.ONE)return r===types.OrderSide.BUY?types.BBOOrderType.QUEUE1:types.BBOOrderType.COUNTERPARTY1;if(o===types.OrderLevel.FIVE)return r===types.OrderSide.BUY?types.BBOOrderType.QUEUE5:types.BBOOrderType.COUNTERPARTY5}}var Fe=e=>{let{baseDP:t,quoteDP:r,order:o,onConfirm:l,onCancel:n}=e,{side:c,order_type:m,order_type_ext:a,level:f}=o,{t:s}=i18n.useTranslation(),[_,g]=hooks.useLocalStorage("orderly_order_confirm",true),h=()=>{if(m===types.OrderType.MARKET||m===types.OrderType.STOP_MARKET)return jsxRuntime.jsx(ui.Text,{intensity:80,children:s("common.marketPrice")});if(le({order_type:m,order_type_ext:a})){let O=nt({type:a,side:c,level:f}),x={[types.BBOOrderType.COUNTERPARTY1]:s("orderEntry.bbo.counterparty1"),[types.BBOOrderType.COUNTERPARTY5]:s("orderEntry.bbo.counterparty5"),[types.BBOOrderType.QUEUE1]:s("orderEntry.bbo.queue1"),[types.BBOOrderType.QUEUE5]:s("orderEntry.bbo.queue5")}[O];return jsxRuntime.jsx(ui.Text,{intensity:80,children:x})}return jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:r,padding:false,children:o.order_price})};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",showIcon:true,children:o.symbol}),jsxRuntime.jsxs(ui.Flex,{justify:"end",gapX:1,children:[jsxRuntime.jsx(fr,{type:m}),c===types.OrderSide.BUY?jsxRuntime.jsx(ui.Badge,{color:"buy",size:"sm",children:s("common.buy")}):jsxRuntime.jsx(ui.Badge,{color:"sell",size:"sm",children:s("common.sell")})]})]}),jsxRuntime.jsx(ui.Divider,{className:"oui-my-4"}),jsxRuntime.jsxs("div",{className:ui.textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:s("common.qty")}),jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:t,padding:false,className:"oui-text-base-contrast",children:o.order_quantity})]}),o.trigger_price?jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:s("common.trigger")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:r,padding:false,children:o.trigger_price})]}):null,jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:s("common.price")}),h()]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:s("common.notional")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",dp:r,padding:false,className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:o.total})]})]}),o.tp_trigger_price||o.sl_trigger_price?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Divider,{className:"oui-my-4"}),jsxRuntime.jsxs("div",{className:ui.textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[o.tp_trigger_price&&jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:s("orderEntry.tpMarkPrice")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",coloring:true,dp:r,padding:false,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:o.tp_trigger_price})]}),o.sl_trigger_price&&jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:s("orderEntry.slMarkPrice")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",coloring:true,className:"oui-text-trade-loss",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:r,padding:false,children:o.sl_trigger_price})]})]})]}):null,jsxRuntime.jsxs(ui.Flex,{gapX:1,pt:4,pb:5,children:[jsxRuntime.jsx(ui.Checkbox,{id:"orderConfirm",color:"white",onCheckedChange:O=>{g(!O);}}),jsxRuntime.jsx("label",{htmlFor:"orderConfirm",className:ui.textVariants({size:"xs",intensity:54}),children:s("orderEntry.disableOrderConfirm")})]}),o.tp_trigger_price||o.sl_trigger_price?jsxRuntime.jsx(ui.Box,{py:3,px:3,className:"oui-text-center",children:jsxRuntime.jsx(ui.Text,{color:"warning",size:"xs",children:s("orderEntry.tpsl.trigger.description")})}):null,jsxRuntime.jsxs(ui.Grid,{cols:2,gapX:3,children:[jsxRuntime.jsx(ui.Button,{color:"secondary",size:"md",onClick:()=>n(),children:s("common.cancel")}),jsxRuntime.jsx(ui.Button,{size:"md",onClick:()=>l(),children:s("common.confirm")})]})]})};Fe.displayName="OrderConfirmDialog";var fr=e=>{let{t}=i18n.useTranslation(),r=Ze.useMemo(()=>{switch(e.type){case types.OrderType.LIMIT:return t("orderEntry.orderType.limit");case types.OrderType.MARKET:return t("common.marketPrice");case types.OrderType.STOP_LIMIT:return t("orderEntry.orderType.stopLimit");case types.OrderType.STOP_MARKET:return t("orderEntry.orderType.stopMarket");default:return ""}},[e.type]);return jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"sm",children:r})},gr=e=>{let{close:t,resolve:r,reject:o,...l}=e;return jsxRuntime.jsx(Fe,{...l,onCancel:t,onConfirm:()=>{r(),t();}})},we="orderConfirm";ui.registerSimpleDialog(we,gr,{size:"sm",title:()=>i18n.i18n.t("orderEntry.orderConfirm")});var lt=e=>{let{pinned:t,orderTypeExtra:r}=e,{t:o}=i18n.useTranslation(),l=n=>c=>{e.onValueChange&&e.onValueChange("order_type_ext",c?n:"");};return Ze.useEffect(()=>{e.onValueChange?.("visible_quantity",e.hidden?0:1);},[e.hidden]),jsxRuntime.jsxs("div",{className:"oui-text-base-contrast-54",children:[jsxRuntime.jsxs(ui.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:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx(ui.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===types.OrderType.POST_ONLY,onCheckedChange:l(types.OrderType.POST_ONLY)}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_post_only",className:ui.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")})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-ioc-checkBox",id:"toggle_order_iov",color:"white",className:"oui-peer",variant:"radio",checked:r===types.OrderType.IOC,onCheckedChange:l(types.OrderType.IOC),disabled:!e.showExtra}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_iov",className:ui.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")})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-fox-checkBox",id:"toggle_order_fok",color:"white",variant:"radio",className:"oui-peer",checked:r===types.OrderType.FOK,onCheckedChange:l(types.OrderType.FOK),disabled:!e.showExtra}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_fok",className:ui.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")})]})]}),jsxRuntime.jsxs(ui.Flex,{gapX:6,children:[jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-orderConfirm-checkBox",id:"toggle_order_confirm",color:"white",checked:e.needConfirm,onCheckedChange:n=>{e.setNeedConfirm(!!n);}}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_confirm",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.orderConfirm")})]}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-hidden-checkBox",id:"toggle_order_hidden",color:"white",checked:e.hidden,onCheckedChange:n=>{e.setHidden(n);}}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_hidden",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.hidden")})]})]}),!t&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Divider,{className:"oui-my-3"}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Switch,{"data-testid":"oui-testid-orderEntry-additional-keepVisible-switch",id:"toggle_order_keep_visible",onCheckedChange:n=>{e.setPinned(n);}}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_keep_visible",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.keepVisible")})]})]})]})};var ut=()=>({});var xe=e=>{let t=ut();return jsxRuntime.jsx(lt,{...t,...e})};var Ve=e=>{let{side:t,formattedOrder:r,setOrderValue:o,setOrderValues:l,symbolInfo:n,maxQty:c,freeCollateral:m,helper:a,submit:f,metaState:s,bboStatus:_,bboType:g,onBBOChange:h,toggleBBO:O}=e,{t:x}=i18n.useTranslation(),{errors:S,validated:E}=s,[D,q]=Ze.useState(false),[B,G]=hooks.useLocalStorage("orderly_order_confirm",true),[C,k]=hooks.useLocalStorage("orderly-order-additional-pinned",true),[u,H]=hooks.useLocalStorage("orderly-order-hidden",false),Oe=Ze.useMemo(()=>t===types.OrderSide.BUY?x("orderEntry.buyLong"):x("orderEntry.sellShort"),[t,x]);Ze.useEffect(()=>{E&&q(true);},[E]),Ze.useEffect(()=>{let p=$=>{$.target.closest("#order-entry-submit-button")||q(pe=>pe&&false);};return D?document.addEventListener("click",p):document.removeEventListener("click",p),()=>{document.removeEventListener("click",p);}},[D]);let Ee=()=>{a.validate().then(p=>B?ui.modal.show(we,{order:r,quote:n.quote,base:n.base,quoteDP:n.quote_dp,baseDP:n.base_dp}):true,p=>{if(q(true),typeof p=="object"&&(p.total!=null||p.order_quantity!=null||p.order_price!=null||p.trigger_price!=null))return Promise.reject()}).then(()=>f({resetOnSuccess:false}).then(p=>{p.success||ui.toast.error(p.message);})).catch(p=>{p!=="cancel"&&typeof p=="object"&&p.message&&ui.toast.error(p.message);});};return jsxRuntime.jsx(De,{value:{errorMsgVisible:D},children:jsxRuntime.jsxs("div",{className:"oui-space-y-2 xl:oui-space-y-3 oui-text-base-contrast-54",ref:e.containerRef,children:[jsxRuntime.jsxs(ui.Flex,{gapX:2,className:"oui-flex-col lg:oui-flex-row oui-gap-y-3",children:[jsxRuntime.jsxs("div",{className:"oui-grid oui-grid-cols-2 oui-w-full oui-flex-1 oui-gap-x-2 lg:oui-flex lg:oui-gap-x-[6px]",children:[jsxRuntime.jsx(ui.Button,{onClick:()=>{e.setOrderValue("side",types.OrderSide.BUY);},size:"md",fullWidth:true,"data-type":types.OrderSide.BUY,className:ui.cn(t===types.OrderSide.BUY&&e.canTrade?"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"oui-bg-base-7 hover:oui-bg-base-6 active:oui-bg-base-6 oui-text-base-contrast-36"),"data-testid":"oui-testid-orderEntry-side-buy-button",children:x("common.buy")}),jsxRuntime.jsx(ui.Button,{onClick:()=>{e.setOrderValue("side",types.OrderSide.SELL);},"data-type":types.OrderSide.SELL,fullWidth:true,size:"md",className:ui.cn(t===types.OrderSide.SELL&&e.canTrade?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-base-7 hover:oui-bg-base-6 active:oui-bg-base-6 oui-text-base-contrast-36"),"data-testid":"oui-testid-orderEntry-side-sell-button",children:x("common.sell")})]}),jsxRuntime.jsx("div",{className:"oui-w-full lg:oui-flex-1",children:jsxRuntime.jsx(Dr,{type:r.order_type,side:t,canTrade:e.canTrade,onChange:p=>{o("order_type",p);}})})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:x("common.available")}),jsxRuntime.jsx(ui.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?m:0})]}),jsxRuntime.jsx(Ar,{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},errors:E?S:null,onChange:(p,$)=>{e.setOrderValue(p,$);},onValuesChange:e.setOrderValues,refs:e.refs,onBlur:e.onBlur,onFocus:e.onFocus,bbo:{bboStatus:_,bboType:g,onBBOChange:h,toggleBBO:O},priceInputContainerWidth:e.priceInputContainerWidth}),jsxRuntime.jsx(Ur,{canTrade:e.canTrade,maxQty:c,currentQtyPercentage:e.currentQtyPercentage,value:r.order_quantity?Number(r.order_quantity):0,tick:n.base_tick,dp:n.base_dp,setMaxQty:e.setMaxQty,onValueChange:p=>{o("order_quantity",p);},side:e.side}),jsxRuntime.jsx(ui.ThrottledButton,{fullWidth:true,id:"order-entry-submit-button","data-type":types.OrderSide.BUY,className:ui.cn(t===types.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:()=>{Ee();},loading:e.isMutating,disabled:!e.canTrade,children:Oe}),jsxRuntime.jsx(zr,{canTrade:e.canTrade,quote:n.quote,estLiqPrice:e.estLiqPrice,estLeverage:e.estLeverage,currentLeverage:e.currentLeverage}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx(et,{quote_dp:e.symbolInfo.quote_dp,switchState:e.tpslSwitch,onSwitchChanged:e.setTpslSwitch,orderType:r.order_type,errors:E?S: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:(p,$)=>{e.setOrderValue(p,$);}}),jsxRuntime.jsxs(ui.Flex,{justify:"between",itemAlign:"center",className:"!oui-mt-[0px] xl:!oui-mt-3",children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gapX:1,children:[jsxRuntime.jsx(ui.Switch,{"data-testid":"oui-testid-orderEntry-reduceOnly-switch",className:"oui-h-[14px]",id:"reduceOnly",checked:e.formattedOrder.reduce_only,onCheckedChange:p=>{e.setOrderValue("reduce_only",p);}}),jsxRuntime.jsx("label",{htmlFor:"reduceOnly",className:"oui-text-xs",children:x("orderEntry.reduceOnly")})]}),!C&&jsxRuntime.jsx(Qr,{pinned:C,setPinned:k,needConfirm:B,setNeedConfirm:G,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===types.OrderType.LIMIT&&!e.tpslSwitch,hidden:u,setHidden:H})]}),C&&jsxRuntime.jsxs(ui.Box,{p:2,r:"md",intensity:700,position:"relative",children:[jsxRuntime.jsx(xe,{pinned:C,setPinned:k,needConfirm:B,setNeedConfirm:G,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===types.OrderType.LIMIT&&!e.tpslSwitch,hidden:u,setHidden:H}),jsxRuntime.jsx(Vr,{onClick:()=>{k(false);},className:"oui-absolute oui-top-2 oui-right-2 oui-group","data-testid":"oui-testid-orderEntry-pinned-button"})]})]})})},yt="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",Vr=e=>{let[t,r]=Ze.useState(yt);return jsxRuntime.jsx("button",{...e,children:jsxRuntime.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(yt);},className:"oui-text-primary-darken ",children:jsxRuntime.jsx("path",{d:t})})})},Ar=e=>{let{type:t,symbolInfo:r,errors:o,values:l,onFocus:n,onBlur:c,bbo:m}=e,{t:a}=i18n.useTranslation(),{parseErrorMsg:f}=reactApp.useOrderEntryFormErrorMsg(o),s=m.bboStatus==="on",_=t===types.OrderType.LIMIT?jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"end",className:"oui-text-2xs",children:[r.quote,jsxRuntime.jsx(ui.Flex,{height:20,px:3,justify:"center",itemAlign:"center",r:"base",className:ui.cn("oui-border oui-cursor-pointer oui-mt-[2px] oui-select-none",m.bboStatus==="on"?"oui-border-primary":"oui-border-line-12",m.bboStatus==="disabled"&&"oui-cursor-not-allowed"),onClick:()=>{m.bboStatus==="disabled"?ui.modal.dialog({title:a("common.tips"),size:"xs",content:jsxRuntime.jsx(ui.Text,{intensity:54,children:a("orderEntry.bbo.disabled.tips")})}):m.toggleBBO();},children:jsxRuntime.jsx(ui.Text,{className:ui.cn(m.bboStatus==="on"&&"oui-text-primary",m.bboStatus==="off"&&"oui-text-base-contrast-54",m.bboStatus==="disabled"&&"oui-text-base-contrast-20"),children:a("orderEntry.bbo")})})]}):r.quote;return jsxRuntime.jsxs("div",{className:"oui-space-y-1",children:[t===types.OrderType.STOP_LIMIT||t===types.OrderType.STOP_MARKET?jsxRuntime.jsx("div",{className:"oui-group",children:jsxRuntime.jsx(ce,{label:a("common.trigger"),suffix:r.quote,error:f("trigger_price"),id:"trigger",ref:e.refs.triggerPriceInputRef,value:l.trigger_price,onChange:g=>{e.onChange("trigger_price",g);},formatters:[ui.inputFormatter.dpFormatter(r.quote_dp)],onFocus:n(1),onBlur:c(1)})}):null,t===types.OrderType.LIMIT||t===types.OrderType.STOP_LIMIT?jsxRuntime.jsxs("div",{ref:e.refs.priceInputContainerRef,className:"oui-relative oui-group oui-w-full",children:[jsxRuntime.jsx(ce,{label:a("common.price"),suffix:_,id:"price",value:l.price,error:f("order_price"),ref:e.refs.priceInputRef,onChange:g=>{e.onChange("order_price",g);},formatters:[ui.inputFormatter.dpFormatter(r.quote_dp)],onFocus:n(0),onBlur:c(0),readonly:s,classNames:{root:ui.cn(s&&"focus-within:oui-outline-transparent "),input:ui.cn(s&&"oui-cursor-auto")}}),m.bboStatus==="on"&&jsxRuntime.jsx("div",{className:ui.cn("oui-absolute oui-left-0 oui-bottom-1"),children:jsxRuntime.jsx(Yr,{value:m.bboType,onChange:m.onBBOChange,contentStyle:{width:e.priceInputContainerWidth}})})]}):null,jsxRuntime.jsxs(ui.Grid,{cols:2,className:"oui-space-x-1 oui-group",children:[jsxRuntime.jsx(ce,{label:a("common.qty"),suffix:r.base,id:"order_quantity_input",name:"order_quantity_input",className:"!oui-rounded-br !oui-rounded-tr",value:l.quantity,error:f("order_quantity"),onChange:g=>{e.onChange("order_quantity",g);},formatters:[ui.inputFormatter.dpFormatter(r.base_dp)],onFocus:n(2),onBlur:c(2)}),jsxRuntime.jsx(ce,{label:`${a("common.total")}\u2248`,suffix:r.quote,id:"total",className:"!oui-rounded-bl !oui-rounded-tl",value:l.total,error:f("total"),onChange:g=>{e.onChange("total",g);},onFocus:n(3),onBlur:c(3),formatters:[ui.inputFormatter.dpFormatter(r.quote_dp)]})]})]})},ce=Ze.forwardRef((e,t)=>{let{errorMsgVisible:r}=Ze.useContext(se),[o,l]=Ze.useState("0");return jsxRuntime.jsx(ui.Input.tooltip,{ref:t,tooltip:r?e.error:void 0,autoComplete:"off",autoFocus:e.autoFocus,size:"lg",placeholder:e.readonly?"":o,id:e.id,name:e.name,color:e.error?"danger":void 0,prefix:jsxRuntime.jsx(qr,{id:e.id,children:e.label}),suffix:e.suffix,value:e.readonly?"":e.value||"",onValueChange:e.onChange,onFocus:n=>{l(""),e.onFocus?.(n);},onBlur:n=>{l("0"),e.onBlur?.(n);},formatters:[...e.formatters??[],ui.inputFormatter.numberFormatter,ui.inputFormatter.currencyFormatter,ui.inputFormatter.decimalPointFormatter],classNames:{root:ui.cn("orderly-order-entry oui-relative oui-pt-8 oui-h-[54px] oui-px-2 oui-py-1 oui-pr-2 oui-border oui-border-solid oui-border-line oui-rounded group-first:oui-rounded-t-xl group-last:oui-rounded-b-xl",e.className,e.classNames?.root),input:ui.cn("oui-mt-5 oui-mb-1 oui-h-5",e?.classNames?.input),prefix:ui.cn("oui-absolute oui-left-2 oui-top-[7px] oui-text-base-contrast-36",e.classNames?.prefix),suffix:ui.cn("oui-absolute oui-right-0 oui-top-0 oui-text-base-contrast-36 oui-text-2xs oui-justify-start oui-py-2",e.classNames?.suffix)},readOnly:e.readonly})});ce.displayName="CustomInput";var qr=e=>jsxRuntime.jsx("label",{htmlFor:e.id,className:"oui-absolute oui-left-2 oui-top-[7px] oui-text-base-contrast-36 oui-text-2xs",children:e.children}),Ur=e=>{let{canTrade:t}=e,{t:r}=i18n.useTranslation(),o=Ze.useMemo(()=>t?e.side===types.OrderSide.BUY?"buy":"sell":void 0,[e.side,t]),l=Ze.useMemo(()=>e.side===types.OrderSide.BUY?r("orderEntry.maxBuy"):r("orderEntry.maxSell"),[e.side,r]);return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.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}),jsxRuntime.jsxs(ui.Flex,{justify:"between",className:"oui-pt-1 xl:oui-pt-2",children:[jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",size:"2xs",color:o,dp:2,padding:false,children:t?e.currentQtyPercentage:0}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx("button",{className:ui.textVariants({size:"2xs",className:"oui-mr-1"}),onClick:()=>e.setMaxQty(),"data-testid":"oui-testid-orderEntry-maxQty-value-button",children:l}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",color:o,dp:e.dp,padding:false,"data-testid":"oui-testid-orderEntry-maxQty-value",children:t?e.maxQty:0})]})]})]})},Dr=e=>{let{t}=i18n.useTranslation(),r=[{label:t("orderEntry.orderType.limitOrder"),value:types.OrderType.LIMIT},{label:t("orderEntry.orderType.marketOrder"),value:types.OrderType.MARKET},{label:t("orderEntry.orderType.stopLimit"),value:types.OrderType.STOP_LIMIT},{label:t("orderEntry.orderType.stopMarket"),value:types.OrderType.STOP_MARKET}];return jsxRuntime.jsx(ui.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:(o,l)=>{if(!r.find(m=>m.value===o))return jsxRuntime.jsx(ui.Text,{size:"xs",children:l.placeholder});let c={[types.OrderType.LIMIT]:t("orderEntry.orderType.limit"),[types.OrderType.MARKET]:t("common.marketPrice"),[types.OrderType.STOP_LIMIT]:t("orderEntry.orderType.stopLimit"),[types.OrderType.STOP_MARKET]:t("orderEntry.orderType.stopMarket")}[o];return jsxRuntime.jsx(ui.Text,{size:"xs",color:e.canTrade?e.side===types.OrderSide.BUY?"buy":"sell":void 0,children:c})},size:"md"})};function zr(e){let{canTrade:t}=e,{t:r}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"oui-space-y-[2px] xl:oui-space-y-1",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:r("orderEntry.estLiqPrice")}),jsxRuntime.jsx(ui.Text.numeral,{unit:e.quote,size:"2xs",className:"oui-text-base-contrast-80",unitClassName:"oui-ml-1 oui-text-base-contrast-36",children:t?e.estLiqPrice??"--":"--"})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:r("leverage.accountLeverage")}),jsxRuntime.jsxs(ui.Flex,{gapX:1,className:ui.textVariants({size:"2xs",intensity:80}),children:[jsxRuntime.jsx(ui.Text.numeral,{unit:t?"x":void 0,children:t?e.currentLeverage??"--":"--"}),e.estLeverage&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.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"})}),jsxRuntime.jsx("span",{children:`${e.estLeverage}x`})]})]})]})]})}function Qr(e){let[t,r]=Ze.useState(false);return jsxRuntime.jsxs(ui.PopoverRoot,{open:t,onOpenChange:r,children:[jsxRuntime.jsx(ui.PopoverTrigger,{asChild:true,children:jsxRuntime.jsx("button",{"data-testid":"oui-testid-orderEntry-additional-button",onClick:()=>{r(true);},children:jsxRuntime.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:jsxRuntime.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"})})})}),jsxRuntime.jsx(ui.PopoverContent,{side:"top",align:"end",className:"oui-w-[230px]",children:jsxRuntime.jsx(xe,{...e})})]})}var Yr=e=>{let{t}=i18n.useTranslation(),r=[{label:t("orderEntry.bbo.counterparty1"),value:types.BBOOrderType.COUNTERPARTY1},{label:t("orderEntry.bbo.counterparty5"),value:types.BBOOrderType.COUNTERPARTY5},{label:t("orderEntry.bbo.queue1"),value:types.BBOOrderType.QUEUE1},{label:t("orderEntry.bbo.queue5"),value:types.BBOOrderType.QUEUE5}];return jsxRuntime.jsx(ui.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,l)=>{let n=r.find(c=>c.value===o);return jsxRuntime.jsx(ui.Box,{children:jsxRuntime.jsx(ui.Text,{size:"sm",children:n?.label})})}})};var qe=e=>{let[t,r]=hooks.useLocalStorage("orderly-order-entry-order-type",types.OrderType.LIMIT),[o,l]=hooks.useLocalStorage("orderly-order-entry-order-side",types.OrderSide.BUY),[n,c]=hooks.useLocalStorage("orderly_order_bbo_type",void 0),m=Ze.useRef(n),{formattedOrder:a,setValue:f,setValues:s,symbolInfo:_,...g}=hooks.useOrderEntry(e.symbol,{initialOrder:{symbol:e.symbol,order_type:t,side:o}}),[h,O]=hooks.useLocalStorage("orderly-order-entry-tp_sl-switch",false),{state:x}=hooks.useAccount(),{wrongNetwork:S,disabledConnect:E}=reactApp.useAppContext(),D=Ze.useMemo(()=>!S&&!E&&(x.status===types.AccountStatusEnum.EnableTrading||x.status===types.AccountStatusEnum.EnableTradingWithoutConnected),[x.status,S,E]),{currentLeverage:q}=hooks.useMarginRatio(),B=hooks.useEventEmitter(),G=Ze.useRef(4),C=Ze.useRef(null),k=Ze.useRef(null),u=Ze.useRef(null),[H,Oe]=Ze.useState(0),Ee=Ze.useMemo(()=>Number(a.order_quantity)>=Number(g.maxQty)?1:ui.convertValueToPercentage(Number(a.order_quantity??0),0,g.maxQty)/100,[a.order_quantity,g.maxQty]),p=()=>{if(_.base_tick<1)return;let d=hooks.utils.formatNumber(a?.order_quantity,new utils.Decimal(_?.base_tick||"0").toNumber());f("order_quantity",d,{shouldUpdateLastChangedField:false});},$=d=>b=>{G.current=d;},Ue=d=>b=>{setTimeout(()=>{G.current===d&&(G.current=4);},300),d===2&&p();},pe=()=>{s({tp_trigger_price:"",sl_trigger_price:""});},_t=()=>{s({order_type_ext:void 0});},ht=()=>{f("order_quantity",g.maxQty);},Ot=(d,b,j)=>{if(d==="order_type"&&r(b),d==="side"&&l(b),d==="reduce_only"&&b||d==="order_type"&&(b===types.OrderType.STOP_LIMIT||b===types.OrderType.STOP_MARKET)){let F={tp_trigger_price:"",sl_trigger_price:"",[d]:b};d==="order_type"&&(F.order_type_ext=""),s(F);return}if(d==="order_type"&&b!==types.OrderType.LIMIT){let F={level:void 0,order_type_ext:void 0,[d]:b};s(F);return}f(d,b,j);},Et=d=>{O(d),d?_t():pe();},ae=Ze.useMemo(()=>h||[types.OrderType.POST_ONLY,types.OrderType.IOC,types.OrderType.FOK].includes(a.order_type_ext)?"disabled":n&&a.order_type===types.OrderType.LIMIT?"on":"off",[n,h,a.order_type,a.order_type_ext]),Pt=()=>{n?(c(void 0),s({order_type_ext:void 0,level:void 0})):c(m.current||types.BBOOrderType.COUNTERPARTY1);},vt=d=>{c(d),m.current=d;};return Ze.useEffect(()=>{if(ae==="disabled"){let{order_type_ext:d}=a;s({order_type_ext:le({order_type_ext:d})?void 0:d,level:void 0});}},[ae,a.order_type_ext]),Ze.useEffect(()=>{if(ae==="on"){let d=rt(n,a.side),b=ot(n);s({order_type_ext:d,level:b});}},[n,ae,a.side]),Ze.useEffect(()=>{let d=b=>{f("order_price",b);};return B.on("update:orderPrice",d),()=>{B.off("update:orderPrice",d);}},[]),Ze.useEffect(()=>{let d=j=>{setTimeout(()=>{j?.focus();},0);},b=j=>{let F=utils.removeTrailingZeros(j[0]),{order_type:z,order_type_ext:Ct}=a;if(G.current===1&&(z===types.OrderType.STOP_LIMIT||z===types.OrderType.STOP_MARKET)){f("trigger_price",F),d(C.current);return}if(le({order_type:z,order_type_ext:Ct})){c(void 0),s({order_type_ext:void 0,level:void 0}),setTimeout(()=>{B.emit("update:orderPrice",F);},0),d(k.current);return}if(z===types.OrderType.STOP_LIMIT||z===types.OrderType.LIMIT){f("order_price",F),d(k.current);return}if(z===types.OrderType.STOP_MARKET){f("trigger_price",F),d(C.current);return}if(z===types.OrderType.MARKET){c(void 0),s({order_type:types.OrderType.LIMIT,order_price:F}),d(k.current);return}f("order_price",F),d(k.current);};return B.on("orderbook:item:click",b),()=>{B.off("orderbook:item:click",b);}},[a,_]),Ze.useEffect(()=>{let d=u.current;if(!d)return;let b=new ResizeObserver(j=>{for(let F of j){let z=F.contentRect.width;z&&Oe(z);}});return b.observe(d),()=>{b.unobserve(d);}},[u,a.order_type_ext]),Ze.useEffect(()=>{g.reset(),g.resetMetaState();},[e.symbol]),{...g,currentQtyPercentage:Ee,side:a.side,type:a.order_type,level:a.level,setOrderValue:Ot,setOrderValues:s,currentLeverage:q,formattedOrder:a,tpslSwitch:h,setTpslSwitch:Et,setMaxQty:ht,symbolInfo:_,onFocus:$,onBlur:Ue,refs:{triggerPriceInputRef:C,priceInputRef:k,priceInputContainerRef:u},canTrade:D,bboStatus:ae,bboType:n,onBBOChange:vt,toggleBBO:Pt,priceInputContainerWidth:H}};var no=e=>{let t=qe(e);return jsxRuntime.jsx(Ve,{...t,containerRef:e.containerRef})};
|
|
17
|
+
var Ke=e=>{let{pinned:t,orderTypeExtra:r}=e,{t:o}=i18n.useTranslation(),a=i=>c=>{e.onValueChange&&e.onValueChange("order_type_ext",c?i:"");};return ct.useEffect(()=>{e.onValueChange?.("visible_quantity",e.hidden?0:1);},[e.hidden]),jsxRuntime.jsxs("div",{className:"oui-text-base-contrast-54",children:[jsxRuntime.jsxs(ui.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:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx(ui.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===types.OrderType.POST_ONLY,onCheckedChange:a(types.OrderType.POST_ONLY)}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_post_only",className:ui.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")})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-ioc-checkBox",id:"toggle_order_iov",color:"white",className:"oui-peer",variant:"radio",checked:r===types.OrderType.IOC,onCheckedChange:a(types.OrderType.IOC),disabled:!e.showExtra}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_iov",className:ui.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")})]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-fox-checkBox",id:"toggle_order_fok",color:"white",variant:"radio",className:"oui-peer",checked:r===types.OrderType.FOK,onCheckedChange:a(types.OrderType.FOK),disabled:!e.showExtra}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_fok",className:ui.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")})]})]}),jsxRuntime.jsxs(ui.Flex,{gapX:6,children:[jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-orderConfirm-checkBox",id:"toggle_order_confirm",color:"white",checked:e.needConfirm,onCheckedChange:i=>{e.setNeedConfirm(!!i);}}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_confirm",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.orderConfirm")})]}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Checkbox,{"data-testid":"oui-testid-orderEntry-hidden-checkBox",id:"toggle_order_hidden",color:"white",checked:e.hidden,onCheckedChange:i=>{e.setHidden(i);}}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_hidden",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.hidden")})]})]}),!t&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Divider,{className:"oui-my-3"}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Switch,{"data-testid":"oui-testid-orderEntry-additional-keepVisible-switch",id:"toggle_order_keep_visible",onCheckedChange:i=>{e.setPinned(i);}}),jsxRuntime.jsx("label",{htmlFor:"toggle_order_keep_visible",className:"oui-text-2xs oui-ml-1",children:o("orderEntry.keepVisible")})]})]})]})};var Ge=()=>({});var ge=e=>{let t=Ge();return jsxRuntime.jsx(Ke,{...t,...e})};function de(e){let{order_type:t,order_type_ext:r}=e,o=[types.OrderType.ASK,types.OrderType.BID].includes(r);return t?t===types.OrderType.LIMIT&&o:o}function He(e,t){if([types.BBOOrderType.COUNTERPARTY1,types.BBOOrderType.COUNTERPARTY5].includes(e))return t===types.OrderSide.BUY?types.OrderType.ASK:types.OrderType.BID;if([types.BBOOrderType.QUEUE1,types.BBOOrderType.QUEUE5].includes(e))return t===types.OrderSide.BUY?types.OrderType.BID:types.OrderType.ASK}function We(e){if([types.BBOOrderType.COUNTERPARTY1,types.BBOOrderType.QUEUE1].includes(e))return types.OrderLevel.ONE;if([types.BBOOrderType.COUNTERPARTY5,types.BBOOrderType.QUEUE5].includes(e))return types.OrderLevel.FIVE}function $e(e){let{type:t,side:r,level:o}=e;if(t===types.OrderType.ASK){if(o===types.OrderLevel.ONE)return r===types.OrderSide.BUY?types.BBOOrderType.COUNTERPARTY1:types.BBOOrderType.QUEUE1;if(o===types.OrderLevel.FIVE)return r===types.OrderSide.BUY?types.BBOOrderType.COUNTERPARTY5:types.BBOOrderType.QUEUE5}if(t===types.OrderType.BID){if(o===types.OrderLevel.ONE)return r===types.OrderSide.BUY?types.BBOOrderType.QUEUE1:types.BBOOrderType.COUNTERPARTY1;if(o===types.OrderLevel.FIVE)return r===types.OrderSide.BUY?types.BBOOrderType.QUEUE5:types.BBOOrderType.COUNTERPARTY5}}var Ne=e=>{let{baseDP:t,quoteDP:r,order:o,onConfirm:a,onCancel:i}=e,{side:c,order_type:m,order_type_ext:s,level:f}=o,{t:d}=i18n.useTranslation(),[h,g]=hooks.useLocalStorage("orderly_order_confirm",true),O=()=>{if(m===types.OrderType.MARKET||m===types.OrderType.STOP_MARKET)return jsxRuntime.jsx(ui.Text,{intensity:80,children:d("common.marketPrice")});if(de({order_type:m,order_type_ext:s})){let _=$e({type:s,side:c,level:f}),x={[types.BBOOrderType.COUNTERPARTY1]:d("orderEntry.bbo.counterparty1"),[types.BBOOrderType.COUNTERPARTY5]:d("orderEntry.bbo.counterparty5"),[types.BBOOrderType.QUEUE1]:d("orderEntry.bbo.queue1"),[types.BBOOrderType.QUEUE5]:d("orderEntry.bbo.queue5")}[_];return jsxRuntime.jsx(ui.Text,{intensity:80,children:x})}return jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:r,padding:false,children:o.order_price})};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",showIcon:true,children:o.symbol}),jsxRuntime.jsxs(ui.Flex,{justify:"end",gapX:1,children:[jsxRuntime.jsx(Dt,{type:m}),c===types.OrderSide.BUY?jsxRuntime.jsx(ui.Badge,{color:"buy",size:"sm",children:d("common.buy")}):jsxRuntime.jsx(ui.Badge,{color:"sell",size:"sm",children:d("common.sell")})]})]}),jsxRuntime.jsx(ui.Divider,{className:"oui-my-4"}),jsxRuntime.jsxs("div",{className:ui.textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:d("common.qty")}),jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:t,padding:false,className:"oui-text-base-contrast",children:o.order_quantity})]}),o.trigger_price?jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:d("common.trigger")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:r,padding:false,children:o.trigger_price})]}):null,jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:d("common.price")}),O()]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:d("common.notional")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",dp:r,padding:false,className:"oui-text-base-contrast",unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:o.total})]})]}),o.tp_trigger_price||o.sl_trigger_price?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Divider,{className:"oui-my-4"}),jsxRuntime.jsxs("div",{className:ui.textVariants({size:"sm",intensity:54,className:"oui-space-y-1"}),children:[o.tp_trigger_price&&jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:d("orderEntry.tpMarkPrice")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",coloring:true,dp:r,padding:false,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:o.tp_trigger_price})]}),o.sl_trigger_price&&jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{children:d("orderEntry.slMarkPrice")}),jsxRuntime.jsx(ui.Text.numeral,{unit:"USDC",rule:"price",coloring:true,className:"oui-text-trade-loss",unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:r,padding:false,children:o.sl_trigger_price})]})]})]}):null,jsxRuntime.jsxs(ui.Flex,{gapX:1,pt:4,pb:5,children:[jsxRuntime.jsx(ui.Checkbox,{id:"orderConfirm",color:"white",onCheckedChange:_=>{g(!_);}}),jsxRuntime.jsx("label",{htmlFor:"orderConfirm",className:ui.textVariants({size:"xs",intensity:54}),children:d("orderEntry.disableOrderConfirm")})]}),o.tp_trigger_price||o.sl_trigger_price?jsxRuntime.jsx(ui.Box,{py:3,px:3,className:"oui-text-center",children:jsxRuntime.jsx(ui.Text,{color:"warning",size:"xs",children:d("orderEntry.tpsl.trigger.description")})}):null,jsxRuntime.jsxs(ui.Grid,{cols:2,gapX:3,children:[jsxRuntime.jsx(ui.Button,{color:"secondary",size:"md",onClick:()=>i(),children:d("common.cancel")}),jsxRuntime.jsx(ui.Button,{size:"md",onClick:()=>a(),children:d("common.confirm")})]})]})};Ne.displayName="OrderConfirmDialog";var Dt=e=>{let{t}=i18n.useTranslation(),r=ct.useMemo(()=>{switch(e.type){case types.OrderType.LIMIT:return t("orderEntry.orderType.limit");case types.OrderType.MARKET:return t("common.marketPrice");case types.OrderType.STOP_LIMIT:return t("orderEntry.orderType.stopLimit");case types.OrderType.STOP_MARKET:return t("orderEntry.orderType.stopMarket");default:return ""}},[e.type]);return jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"sm",children:r})},zt=e=>{let{close:t,resolve:r,reject:o,...a}=e;return jsxRuntime.jsx(Ne,{...a,onCancel:t,onConfirm:()=>{r(),t();}})},Se="orderConfirm";ui.registerSimpleDialog(Se,zt,{size:"sm",title:()=>i18n.i18n.t("orderEntry.orderConfirm")});var le=ct.createContext({}),et=le.Provider;var ot=ct.createContext({}),Te=()=>ct.useContext(ot),Be=e=>{let{type:t,values:r}=e,[o,a]=hooks.useLocalStorage("TP/SL_Mode","Offset%"),{t:i}=i18n.useTranslation(),c=ct.useMemo(()=>!r.PnL||!e.values.trigger_price?null:jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx("span",{className:"oui-text-xs oui-text-base-contrast-54",children:o==="PnL"?i("orderEntry.estRoi"):i("orderEntry.estPnL")}),o==="PnL"?jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",className:ui.cn("oui-text-xs oui-ml-1",t==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),children:r.ROI}):jsxRuntime.jsx(ui.Text.numeral,{rule:"price",className:ui.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 jsxRuntime.jsx(ot.Provider,{value:{mode:o,setMode:a,tipsEle:c},children:e.children})};var it=e=>{let{type:t,values:r,quote_dp:o}=e,{t:a}=i18n.useTranslation(),{mode:i,setMode:c,tipsEle:m}=Te(),[s,f]=ct.useState(false),[d,h]=ct.useState(false),g=ct.useMemo(()=>{switch(i){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[i]),[O,_]=ct.useState(r[i]);ct.useEffect(()=>{d||_(r[i]);},[r,i,d]);let x=ct.useMemo(()=>[{label:a("tpsl.pnl"),value:"PnL",testId:"PnL_menu_item"},{label:a("tpsl.offset"),value:"Offset",testId:"Offset_mneu_item"},{label:`${a("tpsl.offset")}%`,value:"Offset%",testId:"Offset%_menu_item"}],[a]),A=ct.useMemo(()=>({PnL:a("tpsl.pnl"),Offset:a("tpsl.offset"),"Offset%":`${a("tpsl.offset")}%`}),[a]),v=ct.useRef("");return {mode:i,modes:x,modeLabelMap:A,formatter:B=>{let{dp:w=2}=B;return {onRenderBefore:(u,H)=>(u=`${u}`,t==="SL"&&i==="PnL"&&(u=u.startsWith("-")?u:"-"+u),u===""||u==="-"?"":i==="Offset%"?`${new utils.Decimal(u.replace(new RegExp(v.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${v.current}`:(i==="Offset"&&(u=utils.todpIfNeed(u,w)),`${u}`)),onSendBefore:u=>{if(/^\-?0{2,}$/.test(u))return "0";if(i==="Offset%"){if(u!==""){u=utils.todpIfNeed(u,2);let H=u.match(/\.0{0,2}$/);H?v.current=H[0]:v.current="",u=new utils.Decimal(u).div(100).toString(),u=`${u}${v.current}`;}}else u=utils.todpIfNeed(u,w);return u===""||u==="-"?"":u}}},onModeChange:B=>{c(B);},onFocus:()=>{f(true),h(true);},onBlur:()=>{f(false),h(false),e.onChange(g,O);},value:O,onValueChange:B=>{_(B),e.onChange(g,B);},quote_dp:o,tips:s?m:void 0}};var dt=e=>{let{mode:t,modes:r,modeLabelMap:o,onModeChange:a,onValueChange:i,quote:c,quote_dp:m,value:s,type:f,tips:d,onFocus:h,onBlur:g}=e,[O,_]=ct.useState(t),[x,A]=ct.useState(t==="Offset%"?"%":c);ct.useEffect(()=>{_(t),A(t==="Offset%"?"%":c);},[t]),ct.useEffect(()=>{_(s?"":t);},[s]);let v=ct.useMemo(()=>`${f.toLowerCase()}_${t.toLowerCase()}`,[]);return jsxRuntime.jsx(ui.Input.tooltip,{prefix:o[O]||O,size:"md",placeholder:x,id:v,align:"right",value:s,tooltip:d,tooltipProps:{content:{side:e.type==="TP"?"top":"bottom"}},"data-testid":e.testIds?.input,autoComplete:"off",onValueChange:i,formatters:[e.formatter({dp:m,mode:t,type:f}),ui.inputFormatter.currencyFormatter],classNames:{root:f==="TP"?"oui-text-trade-profit":"oui-text-trade-loss",additional:"oui-text-base-contrast-54",input:"oui-text-inherit"},onFocus:()=>{_(""),A(""),h();},onBlur:()=>{_(s?"":t),A(t==="Offset%"?"%":c),g();},suffix:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[t==="Offset%"&&!!s&&jsxRuntime.jsx(ui.Text,{size:"2xs",color:"inherit",className:"oui-ml-[2px]",children:"%"}),jsxRuntime.jsx(sr,{mode:t,modes:r,onModeChange:q=>a(q.value),testId:e.testIds?.dropDown})]})})},sr=e=>jsxRuntime.jsx(ui.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:jsxRuntime.jsx("button",{className:"oui-p-2","data-testid":e.testId,children:jsxRuntime.jsx(ui.CaretDownIcon,{size:12,color:"white"})})});var lt=e=>{let{testIds:t,quote:r,...o}=e,a=it(o);return jsxRuntime.jsx(dt,{...a,testIds:t,quote:r,type:e.type})};var pt=e=>{let t=ct__default.default.useRef(null),{t:r}=i18n.useTranslation();return ct.useEffect(()=>{e.orderType!==types.OrderType.LIMIT&&e.orderType!==types.OrderType.MARKET&&e.onSwitchChanged(false);},[e.orderType]),e.orderType!==types.OrderType.LIMIT&&e.orderType!==types.OrderType.MARKET||e.isReduceOnly?null:jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gapX:1,children:[jsxRuntime.jsx(ui.Switch,{id:"order_entry_tpsl",className:"oui-h-[14px]",checked:e.switchState,disabled:e.orderType!==types.OrderType.LIMIT&&e.orderType!==types.OrderType.MARKET||e.isReduceOnly,onCheckedChange:o=>{e.onSwitchChanged(o);}}),jsxRuntime.jsx("label",{htmlFor:"order_entry_tpsl",className:"oui-text-xs",children:r("common.tpsl")}),jsxRuntime.jsx(ui.ExclamationFillIcon,{color:"white",size:14,opacity:1,className:"oui-cursor-pointer oui-text-white/[.36] hover:oui-text-white/80",onClick:()=>{ui.modal.dialog({title:r("common.tips"),size:"xs",content:jsxRuntime.jsx(ui.Text,{intensity:54,children:r("orderEntry.tpsl.tips")})});}})]}),jsxRuntime.jsx("div",{className:ui.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:jsxRuntime.jsx(yt,{ref:t,onChange:e.onChange,values:e.values,errors:e.errors,quote_dp:e.quote_dp})})]})},yt=ct__default.default.forwardRef((e,t)=>{let{parseErrorMsg:r}=reactApp.useOrderEntryFormErrorMsg(e.errors);return jsxRuntime.jsxs("div",{ref:t,className:"oui-space-y-1 oui-px-px oui-py-2 oui-transition-all",children:[jsxRuntime.jsx(Be,{values:e.values.tp,type:"TP",children:jsxRuntime.jsx(ut,{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"}})}),jsxRuntime.jsx(Be,{values:e.values.sl,type:"SL",children:jsxRuntime.jsx(ut,{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"}})})]})});yt.displayName="TPSLInputForm";var Or=e=>{let{t}=i18n.useTranslation(),{errorMsgVisible:r}=ct.useContext(le),{tipsEle:o}=Te(),[a,i]=ct.useState(`${e.type} Price`),[c,m]=ct.useState("USDC"),[s,f]=ct.useState(false),[d,h]=ct.useState(false),[g,O]=ct.useState(e.values.trigger_price??"");ct.useEffect(()=>{d||O(e.values.trigger_price??"");},[e.values.trigger_price,d]);let _=ct.useMemo(()=>e.error&&r?e.error:s?o:null,[e.error,r,s,o]),x=U=>{let S=e.type==="TP"?t("tpsl.tpPrice"):t("tpsl.slPrice");return U&&(S=e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),S},A=U=>{O(U),e.onChange(U);};ct.useEffect(()=>{i(x(e.values.trigger_price)),d||O(e.values.trigger_price??"");},[e.type,e.values.trigger_price]);let v=()=>{i(e.type==="TP"?t("tpsl.tp"):t("tpsl.sl")),m(""),f(true),h(true);},q=()=>{i(x(e.values.trigger_price)),m("USDC"),f(false),h(false),e.onChange(g);};return jsxRuntime.jsx(ui.Input.tooltip,{"data-testid":e.testId,prefix:a,size:"md",placeholder:c,align:"right",onFocus:v,onBlur:q,tooltip:_,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:A,formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(e.quote_dp??2),ui.inputFormatter.currencyFormatter]})},ut=e=>{let t=e.type==="SL"?"sl_trigger_price":"tp_trigger_price";return jsxRuntime.jsxs(ui.Grid,{cols:2,gapX:1,children:[jsxRuntime.jsx(Or,{testId:e.testIds?.first,type:e.type,error:e.error,values:e.values??"",onChange:r=>{e.onChange(t,r);},quote_dp:e.quote_dp}),jsxRuntime.jsx(lt,{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 De=e=>{let{side:t,formattedOrder:r,setOrderValue:o,symbolInfo:a,maxQty:i,freeCollateral:c,helper:m,submit:s,metaState:f,bboStatus:d,bboType:h,onBBOChange:g,toggleBBO:O}=e,{curLeverage:_}=hooks.useLeverage(),{t:x}=i18n.useTranslation(),{isMobile:A}=ui.useScreen(),{errors:v,validated:q}=f,[U,S]=ct.useState(false),[Y,B]=hooks.useLocalStorage("orderly_order_confirm",true),[w,u]=hooks.useLocalStorage("orderly-order-additional-pinned",true),[H,pe]=hooks.useLocalStorage("orderly-order-hidden",false),Pe=ct.useMemo(()=>t===types.OrderSide.BUY?x("orderEntry.buyLong"):x("orderEntry.sellShort"),[t,x]);ct.useEffect(()=>{q&&S(true);},[q]),ct.useEffect(()=>{let p=$=>{$.target.closest("#order-entry-submit-button")||S(fe=>fe&&false);};return U?document.addEventListener("click",p):document.removeEventListener("click",p),()=>{document.removeEventListener("click",p);}},[U]);let ve=()=>{m.validate().then(()=>Y?ui.modal.show(Se,{order:r,quote:a.quote,base:a.base,quoteDP:a.quote_dp,baseDP:a.base_dp}):true,p=>{if(S(true),typeof p=="object"&&(p.total!=null||p.order_quantity!=null||p.order_price!=null||p.trigger_price!=null))return Promise.reject()}).then(()=>s({resetOnSuccess:false}).then(p=>{p.success||ui.toast.error(p.message);})).catch(p=>{p!=="cancel"&&typeof p=="object"&&p.message&&ui.toast.error(p.message);});},ye=A&&e.canTrade;return jsxRuntime.jsx(et,{value:{errorMsgVisible:U},children:jsxRuntime.jsxs("div",{className:"oui-space-y-2 oui-text-base-contrast-54 xl:oui-space-y-3",ref:e.containerRef,children:[jsxRuntime.jsxs(ui.Flex,{gapX:2,className:"oui-flex-col oui-gap-y-3 lg:oui-flex-row",children:[jsxRuntime.jsxs("div",{className:ui.cn("oui-grid oui-w-full oui-flex-1 oui-gap-x-2 lg:oui-flex lg:oui-gap-x-[6px]",ye?"oui-grid-cols-3":"oui-grid-cols-2"),children:[jsxRuntime.jsx(ui.Button,{onClick:()=>{e.setOrderValue("side",types.OrderSide.BUY);},size:"md",fullWidth:true,"data-type":types.OrderSide.BUY,className:ui.cn(t===types.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:x("common.buy")}),jsxRuntime.jsx(ui.Button,{onClick:()=>{e.setOrderValue("side",types.OrderSide.SELL);},"data-type":types.OrderSide.SELL,fullWidth:true,size:"md",className:ui.cn(t===types.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:x("common.sell")}),ye&&jsxRuntime.jsx(ui.Button,{size:"md",fullWidth:true,trailing:jsxRuntime.jsx(ui.CaretRightIcon,{size:12,className:"oui-text-base-contrast-36"}),onClick:()=>{ui.modal.show(uiLeverage.LeverageWidgetWithSheetId,{currentLeverage:_});},className:ui.cn("oui-bg-base-7 oui-text-primary-light hover:oui-bg-base-6 active:oui-bg-base-6"),children:utils.commifyOptional(_,{fix:2})+"x"})]}),jsxRuntime.jsx("div",{className:"oui-w-full lg:oui-flex-1",children:jsxRuntime.jsx(Gr,{type:r.order_type,side:t,canTrade:e.canTrade,onChange:p=>{o("order_type",p);}})})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:x("common.available")}),jsxRuntime.jsx(ui.Text.numeral,{unit:a.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?c:0})]}),jsxRuntime.jsx(Qr,{type:e.type,symbolInfo:a,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},errors:q?v:null,onChange:(p,$)=>{e.setOrderValue(p,$);},onValuesChange:e.setOrderValues,refs:e.refs,onBlur:e.onBlur,onFocus:e.onFocus,bbo:{bboStatus:d,bboType:h,onBBOChange:g,toggleBBO:O},priceInputContainerWidth:e.priceInputContainerWidth}),jsxRuntime.jsx(Kr,{canTrade:e.canTrade,maxQty:i,currentQtyPercentage:e.currentQtyPercentage,value:r.order_quantity?Number(r.order_quantity):0,tick:a.base_tick,dp:a.base_dp,setMaxQty:e.setMaxQty,onValueChange:p=>{o("order_quantity",p);},side:e.side}),jsxRuntime.jsx(ui.ThrottledButton,{fullWidth:true,id:"order-entry-submit-button","data-type":types.OrderSide.BUY,className:ui.cn(t===types.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:()=>{ve();},loading:e.isMutating,disabled:!e.canTrade,children:Pe}),jsxRuntime.jsx(Hr,{canTrade:e.canTrade,quote:a.quote,estLiqPrice:e.estLiqPrice,estLeverage:e.estLeverage,currentLeverage:e.currentLeverage}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx(pt,{quote_dp:e.symbolInfo.quote_dp,switchState:e.tpslSwitch,onSwitchChanged:e.setTpslSwitch,orderType:r.order_type,errors:q?v: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:(p,$)=>{e.setOrderValue(p,$);}}),jsxRuntime.jsxs(ui.Flex,{justify:"between",itemAlign:"center",className:"!oui-mt-0 xl:!oui-mt-3",children:[jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",gapX:1,children:[jsxRuntime.jsx(ui.Switch,{"data-testid":"oui-testid-orderEntry-reduceOnly-switch",className:"oui-h-[14px]",id:"reduceOnly",checked:e.formattedOrder.reduce_only,onCheckedChange:p=>{e.setOrderValue("reduce_only",p);}}),jsxRuntime.jsx("label",{htmlFor:"reduceOnly",className:"oui-text-xs",children:x("orderEntry.reduceOnly")})]}),!w&&jsxRuntime.jsx(Wr,{pinned:w,setPinned:u,needConfirm:Y,setNeedConfirm:B,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===types.OrderType.LIMIT&&!e.tpslSwitch,hidden:H,setHidden:pe})]}),w&&jsxRuntime.jsxs(ui.Box,{p:2,r:"md",intensity:700,position:"relative",children:[jsxRuntime.jsx(ge,{pinned:w,setPinned:u,needConfirm:Y,setNeedConfirm:B,onValueChange:o,orderTypeExtra:r.order_type_ext,showExtra:r.order_type===types.OrderType.LIMIT&&!e.tpslSwitch,hidden:H,setHidden:pe}),jsxRuntime.jsx(zr,{onClick:()=>{u(false);},className:"oui-group oui-absolute oui-right-2 oui-top-2","data-testid":"oui-testid-orderEntry-pinned-button"})]})]})})},bt="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",zr=e=>{let[t,r]=ct.useState(bt);return jsxRuntime.jsx("button",{...e,children:jsxRuntime.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(bt);},className:"oui-text-primary-darken ",children:jsxRuntime.jsx("path",{d:t})})})},Qr=e=>{let{type:t,symbolInfo:r,errors:o,values:a,onFocus:i,onBlur:c,bbo:m}=e,{t:s}=i18n.useTranslation(),{parseErrorMsg:f}=reactApp.useOrderEntryFormErrorMsg(o),d=m.bboStatus==="on",h=t===types.OrderType.LIMIT?jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"end",className:"oui-text-2xs",children:[r.quote,jsxRuntime.jsx(ui.Flex,{height:20,px:3,justify:"center",itemAlign:"center",r:"base",className:ui.cn("oui-mt-[2px] oui-cursor-pointer oui-select-none oui-border",m.bboStatus==="on"?"oui-border-primary":"oui-border-line-12",m.bboStatus==="disabled"&&"oui-cursor-not-allowed"),onClick:()=>{m.bboStatus==="disabled"?ui.modal.dialog({title:s("common.tips"),size:"xs",content:jsxRuntime.jsx(ui.Text,{intensity:54,children:s("orderEntry.bbo.disabled.tips")})}):m.toggleBBO();},children:jsxRuntime.jsx(ui.Text,{className:ui.cn(m.bboStatus==="on"&&"oui-text-primary",m.bboStatus==="off"&&"oui-text-base-contrast-54",m.bboStatus==="disabled"&&"oui-text-base-contrast-20"),children:s("orderEntry.bbo")})})]}):r.quote;return jsxRuntime.jsxs("div",{className:"oui-space-y-1",children:[t===types.OrderType.STOP_LIMIT||t===types.OrderType.STOP_MARKET?jsxRuntime.jsx("div",{className:"oui-group",children:jsxRuntime.jsx(ce,{label:s("common.trigger"),suffix:r.quote,error:f("trigger_price"),id:"trigger",ref:e.refs.triggerPriceInputRef,value:a.trigger_price,onChange:g=>{e.onChange("trigger_price",g);},formatters:[ui.inputFormatter.dpFormatter(r.quote_dp)],onFocus:i(1),onBlur:c(1)})}):null,t===types.OrderType.LIMIT||t===types.OrderType.STOP_LIMIT?jsxRuntime.jsxs("div",{ref:e.refs.priceInputContainerRef,className:"oui-group oui-relative oui-w-full",children:[jsxRuntime.jsx(ce,{label:s("common.price"),suffix:h,id:"price",value:a.price,error:f("order_price"),ref:e.refs.priceInputRef,onChange:g=>{e.onChange("order_price",g);},formatters:[ui.inputFormatter.dpFormatter(r.quote_dp)],onFocus:i(0),onBlur:c(0),readonly:d,classNames:{root:ui.cn(d&&"focus-within:oui-outline-transparent "),input:ui.cn(d&&"oui-cursor-auto")}}),m.bboStatus==="on"&&jsxRuntime.jsx("div",{className:ui.cn("oui-absolute oui-bottom-1 oui-left-0"),children:jsxRuntime.jsx($r,{value:m.bboType,onChange:m.onBBOChange,contentStyle:{width:e.priceInputContainerWidth}})})]}):null,jsxRuntime.jsxs(ui.Grid,{cols:2,className:"oui-group oui-space-x-1",children:[jsxRuntime.jsx(ce,{label:s("common.qty"),suffix:r.base,id:"order_quantity_input",name:"order_quantity_input",className:"!oui-rounded-r",value:a.quantity,error:f("order_quantity"),onChange:g=>{e.onChange("order_quantity",g);},formatters:[ui.inputFormatter.dpFormatter(r.base_dp)],onFocus:i(2),onBlur:c(2)}),jsxRuntime.jsx(ce,{label:`${s("common.total")}\u2248`,suffix:r.quote,id:"total",className:"!oui-rounded-l",value:a.total,error:f("total"),onChange:g=>{e.onChange("total",g);},onFocus:i(3),onBlur:c(3),formatters:[ui.inputFormatter.dpFormatter(r.quote_dp)]})]})]})},ce=ct.forwardRef((e,t)=>{let{errorMsgVisible:r}=ct.useContext(le),[o,a]=ct.useState("0");return jsxRuntime.jsx(ui.Input.tooltip,{ref:t,tooltip:r?e.error:void 0,autoComplete:"off",autoFocus:e.autoFocus,size:"lg",placeholder:e.readonly?"":o,id:e.id,name:e.name,color:e.error?"danger":void 0,prefix:jsxRuntime.jsx(Yr,{id:e.id,children:e.label}),suffix:e.suffix,value:e.readonly?"":e.value||"",onValueChange:e.onChange,onFocus:i=>{a(""),e.onFocus?.(i);},onBlur:i=>{a("0"),e.onBlur?.(i);},formatters:[...e.formatters??[],ui.inputFormatter.numberFormatter,ui.inputFormatter.currencyFormatter,ui.inputFormatter.decimalPointFormatter],classNames:{root:ui.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:ui.cn("oui-mb-1 oui-mt-5 oui-h-5",e?.classNames?.input),prefix:ui.cn("oui-absolute oui-left-2 oui-top-[7px] oui-text-base-contrast-36",e.classNames?.prefix),suffix:ui.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})});ce.displayName="CustomInput";var Yr=e=>jsxRuntime.jsx("label",{htmlFor:e.id,className:"oui-absolute oui-left-2 oui-top-[7px] oui-text-2xs oui-text-base-contrast-36",children:e.children}),Kr=e=>{let{canTrade:t}=e,{t:r}=i18n.useTranslation(),o=ct.useMemo(()=>t?e.side===types.OrderSide.BUY?"buy":"sell":void 0,[e.side,t]),a=ct.useMemo(()=>e.side===types.OrderSide.BUY?r("orderEntry.maxBuy"):r("orderEntry.maxSell"),[e.side,r]);return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.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}),jsxRuntime.jsxs(ui.Flex,{justify:"between",className:"oui-pt-1 xl:oui-pt-2",children:[jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",size:"2xs",color:o,dp:2,padding:false,children:t?e.currentQtyPercentage:0}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx("button",{className:ui.textVariants({size:"2xs",className:"oui-mr-1"}),onClick:()=>e.setMaxQty(),"data-testid":"oui-testid-orderEntry-maxQty-value-button",children:a}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",color:o,dp:e.dp,padding:false,"data-testid":"oui-testid-orderEntry-maxQty-value",children:t?e.maxQty:0})]})]})]})},Gr=e=>{let{t}=i18n.useTranslation(),r=[{label:t("orderEntry.orderType.limitOrder"),value:types.OrderType.LIMIT},{label:t("orderEntry.orderType.marketOrder"),value:types.OrderType.MARKET},{label:t("orderEntry.orderType.stopLimit"),value:types.OrderType.STOP_LIMIT},{label:t("orderEntry.orderType.stopMarket"),value:types.OrderType.STOP_MARKET}];return jsxRuntime.jsx(ui.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:(o,a)=>{if(!r.find(m=>m.value===o))return jsxRuntime.jsx(ui.Text,{size:"xs",children:a.placeholder});let c={[types.OrderType.LIMIT]:t("orderEntry.orderType.limit"),[types.OrderType.MARKET]:t("common.marketPrice"),[types.OrderType.STOP_LIMIT]:t("orderEntry.orderType.stopLimit"),[types.OrderType.STOP_MARKET]:t("orderEntry.orderType.stopMarket")}[o];return jsxRuntime.jsx(ui.Text,{size:"xs",color:e.canTrade?e.side===types.OrderSide.BUY?"buy":"sell":void 0,children:c})},size:"md"})};function Hr(e){let{canTrade:t}=e,{t:r}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"oui-space-y-[2px] xl:oui-space-y-1",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:r("orderEntry.estLiqPrice")}),jsxRuntime.jsx(ui.Text.numeral,{unit:e.quote,size:"2xs",className:"oui-text-base-contrast-80",unitClassName:"oui-ml-1 oui-text-base-contrast-36",children:t?e.estLiqPrice??"--":"--"})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",children:r("leverage.accountLeverage")}),jsxRuntime.jsxs(ui.Flex,{gapX:1,className:ui.textVariants({size:"2xs",intensity:80}),children:[jsxRuntime.jsx(ui.Text.numeral,{unit:t?"x":void 0,children:t?e.currentLeverage??"--":"--"}),e.estLeverage&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.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"})}),jsxRuntime.jsx("span",{children:`${e.estLeverage}x`})]})]})]})]})}function Wr(e){let[t,r]=ct.useState(false);return jsxRuntime.jsxs(ui.PopoverRoot,{open:t,onOpenChange:r,children:[jsxRuntime.jsx(ui.PopoverTrigger,{asChild:true,children:jsxRuntime.jsx("button",{"data-testid":"oui-testid-orderEntry-additional-button",onClick:()=>{r(true);},children:jsxRuntime.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:jsxRuntime.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"})})})}),jsxRuntime.jsx(ui.PopoverContent,{side:"top",align:"end",className:"oui-w-[230px]",children:jsxRuntime.jsx(ge,{...e})})]})}var $r=e=>{let{t}=i18n.useTranslation(),r=[{label:t("orderEntry.bbo.counterparty1"),value:types.BBOOrderType.COUNTERPARTY1},{label:t("orderEntry.bbo.counterparty5"),value:types.BBOOrderType.COUNTERPARTY5},{label:t("orderEntry.bbo.queue1"),value:types.BBOOrderType.QUEUE1},{label:t("orderEntry.bbo.queue5"),value:types.BBOOrderType.QUEUE5}];return jsxRuntime.jsx(ui.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,a)=>{let i=r.find(c=>c.value===o);return jsxRuntime.jsx(ui.Box,{children:jsxRuntime.jsx(ui.Text,{size:"sm",children:i?.label})})}})};var Qe=e=>{let[t,r]=hooks.useLocalStorage("orderly-order-entry-order-type",types.OrderType.LIMIT),[o,a]=hooks.useLocalStorage("orderly-order-entry-order-side",types.OrderSide.BUY),[i,c]=hooks.useLocalStorage("orderly_order_bbo_type",void 0),m=ct.useRef(i),{formattedOrder:s,setValue:f,setValues:d,symbolInfo:h,...g}=hooks.useOrderEntry(e.symbol,{initialOrder:{symbol:e.symbol,order_type:t,side:o}}),[O,_]=hooks.useLocalStorage("orderly-order-entry-tp_sl-switch",false),{state:x}=hooks.useAccount(),{wrongNetwork:A,disabledConnect:v}=reactApp.useAppContext(),q=ct.useMemo(()=>!A&&!v&&(x.status===types.AccountStatusEnum.EnableTrading||x.status===types.AccountStatusEnum.EnableTradingWithoutConnected),[x.status,A,v]),{currentLeverage:U}=hooks.useMarginRatio(),S=hooks.useEventEmitter(),Y=ct.useRef(4),B=ct.useRef(null),w=ct.useRef(null),u=ct.useRef(null),[H,pe]=ct.useState(0),Pe=ct.useMemo(()=>Number(s.order_quantity)>=Number(g.maxQty)?1:ui.convertValueToPercentage(Number(s.order_quantity??0),0,g.maxQty)/100,[s.order_quantity,g.maxQty]),ve=()=>{if(h.base_tick<1)return;let l=hooks.utils.formatNumber(s?.order_quantity,new utils.Decimal(h?.base_tick||"0").toNumber());f("order_quantity",l,{shouldUpdateLastChangedField:false});},ye=l=>b=>{Y.current=l;},p=l=>b=>{setTimeout(()=>{Y.current===l&&(Y.current=4);},300),l===2&&ve();},$=()=>{d({tp_trigger_price:"",sl_trigger_price:""});},Ye=()=>{d({order_type_ext:void 0});},fe=()=>{f("order_quantity",g.maxQty);},Ot=(l,b,j)=>{if(l==="order_type"&&r(b),l==="side"&&a(b),l==="reduce_only"&&b||l==="order_type"&&(b===types.OrderType.STOP_LIMIT||b===types.OrderType.STOP_MARKET)){let F={tp_trigger_price:"",sl_trigger_price:"",[l]:b};l==="order_type"&&(F.order_type_ext=""),d(F);return}if(l==="order_type"&&b!==types.OrderType.LIMIT){let F={level:void 0,order_type_ext:void 0,[l]:b};d(F);return}f(l,b,j);},Et=l=>{_(l),l?Ye():$();},ae=ct.useMemo(()=>O||[types.OrderType.POST_ONLY,types.OrderType.IOC,types.OrderType.FOK].includes(s.order_type_ext)?"disabled":i&&s.order_type===types.OrderType.LIMIT?"on":"off",[i,O,s.order_type,s.order_type_ext]),Pt=()=>{i?(c(void 0),d({order_type_ext:void 0,level:void 0})):c(m.current||types.BBOOrderType.COUNTERPARTY1);},vt=l=>{c(l),m.current=l;};return ct.useEffect(()=>{if(ae==="disabled"){let{order_type_ext:l}=s;d({order_type_ext:de({order_type_ext:l})?void 0:l,level:void 0});}},[ae,s.order_type_ext]),ct.useEffect(()=>{if(ae==="on"){let l=He(i,s.side),b=We(i);d({order_type_ext:l,level:b});}},[i,ae,s.side]),ct.useEffect(()=>{let l=b=>{f("order_price",b);};return S.on("update:orderPrice",l),()=>{S.off("update:orderPrice",l);}},[]),ct.useEffect(()=>{let l=j=>{setTimeout(()=>{j?.focus();},0);},b=j=>{let F=utils.removeTrailingZeros(j[0]),{order_type:z,order_type_ext:Ct}=s;if(Y.current===1&&(z===types.OrderType.STOP_LIMIT||z===types.OrderType.STOP_MARKET)){f("trigger_price",F),l(B.current);return}if(de({order_type:z,order_type_ext:Ct})){c(void 0),d({order_type_ext:void 0,level:void 0}),setTimeout(()=>{S.emit("update:orderPrice",F);},0),l(w.current);return}if(z===types.OrderType.STOP_LIMIT||z===types.OrderType.LIMIT){f("order_price",F),l(w.current);return}if(z===types.OrderType.STOP_MARKET){f("trigger_price",F),l(B.current);return}if(z===types.OrderType.MARKET){c(void 0),d({order_type:types.OrderType.LIMIT,order_price:F}),l(w.current);return}f("order_price",F),l(w.current);};return S.on("orderbook:item:click",b),()=>{S.off("orderbook:item:click",b);}},[s,h]),ct.useEffect(()=>{let l=u.current;if(!l)return;let b=new ResizeObserver(j=>{for(let F of j){let z=F.contentRect.width;z&&pe(z);}});return b.observe(l),()=>{b.unobserve(l);}},[u,s.order_type_ext]),ct.useEffect(()=>{g.reset(),g.resetMetaState();},[e.symbol]),{...g,currentQtyPercentage:Pe,side:s.side,type:s.order_type,level:s.level,setOrderValue:Ot,setOrderValues:d,currentLeverage:U,formattedOrder:s,tpslSwitch:O,setTpslSwitch:Et,setMaxQty:fe,symbolInfo:h,onFocus:ye,onBlur:p,refs:{triggerPriceInputRef:B,priceInputRef:w,priceInputContainerRef:u},canTrade:q,bboStatus:ae,bboType:i,onBBOChange:vt,toggleBBO:Pt,priceInputContainerWidth:H}};var uo=e=>{let t=Qe(e);return jsxRuntime.jsx(De,{...t,containerRef:e.containerRef})};
|
|
17
18
|
|
|
18
|
-
exports.AdditionalInfoWidget =
|
|
19
|
-
exports.OrderConfirmDialog =
|
|
20
|
-
exports.OrderEntry =
|
|
21
|
-
exports.OrderEntryWidget =
|
|
22
|
-
exports.useOrderEntryScript =
|
|
19
|
+
exports.AdditionalInfoWidget = ge;
|
|
20
|
+
exports.OrderConfirmDialog = Ne;
|
|
21
|
+
exports.OrderEntry = De;
|
|
22
|
+
exports.OrderEntryWidget = uo;
|
|
23
|
+
exports.useOrderEntryScript = Qe;
|
|
23
24
|
//# sourceMappingURL=out.js.map
|
|
24
25
|
//# sourceMappingURL=index.js.map
|