@eaera-com/eaera-widgets-v2 0.1.85 → 0.1.86

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.
Files changed (43) hide show
  1. package/dist/components/base/EaeraPagination.mjs +1 -1
  2. package/dist/components/base/EaeraSelect.d.ts +8 -0
  3. package/dist/components/base/EaeraSelect.mjs +1 -1
  4. package/dist/components/base/EaeraSelectStatus.mjs +1 -1
  5. package/dist/components/base/EaeraSelectTag.mjs +1 -1
  6. package/dist/components/chunks/{EaeraDynamicFieldRow-C-VUPCvg.mjs → EaeraDynamicFieldRow-8-utCowK.mjs} +1 -1
  7. package/dist/components/chunks/{EaeraForm-DRMCdjw4.mjs → EaeraForm-DxThA46e.mjs} +1 -1
  8. package/dist/components/chunks/{EaeraPagination-BKcbraqK.mjs → EaeraPagination-7pSl3EwP.mjs} +1 -1
  9. package/dist/components/chunks/EaeraSelect-C-sln89V.mjs +1 -0
  10. package/dist/components/chunks/{EaeraSelectStatus-DF8-Svsr.mjs → EaeraSelectStatus-BMiT4W5a.mjs} +1 -1
  11. package/dist/components/chunks/{EaeraSelectTag-fwPFHO14.mjs → EaeraSelectTag-4WtAOO7m.mjs} +1 -1
  12. package/dist/components/chunks/{EaeraTableV2-UqRwaevh.mjs → EaeraTableV2-CIeL4xlB.mjs} +1 -1
  13. package/dist/components/chunks/{EaeraWidgetGrowthBalanceProfitChart-nW-rAuUt.mjs → EaeraWidgetGrowthBalanceProfitChart-BK2uhXA1.mjs} +1 -1
  14. package/dist/components/chunks/{EaeraWidgetMarginCalculator-BoV_EWi6.mjs → EaeraWidgetMarginCalculator-Co6Vnjv1.mjs} +1 -1
  15. package/dist/components/chunks/{EaeraWidgetPositionCalculator-DVbflfoJ.mjs → EaeraWidgetPositionCalculator-_DmVt9Os.mjs} +1 -1
  16. package/dist/components/chunks/{index-D4AGYLPy.mjs → index-2xA6k2YN.mjs} +1 -1
  17. package/dist/components/chunks/{index-TVgABsKc.mjs → index-9V1MulD6.mjs} +1 -1
  18. package/dist/components/chunks/{index-BznHBQ5H.mjs → index-B97jyUEn.mjs} +1 -1
  19. package/dist/components/chunks/{index-4sT0yI4F.mjs → index-Bi7fGqMj.mjs} +1 -1
  20. package/dist/components/chunks/{index-DD9Bx0uF.mjs → index-ClzOcTL5.mjs} +1 -1
  21. package/dist/components/chunks/{index-B4lBGypC.mjs → index-u4AYhvi2.mjs} +1 -1
  22. package/dist/components/composite/EaeraDynamicFieldRow.mjs +1 -1
  23. package/dist/components/composite/EaeraForm.mjs +1 -1
  24. package/dist/components/composite/EaeraTableV2.mjs +1 -1
  25. package/dist/components/custom/EaeraWidgetBasicTradingStatistics.mjs +1 -1
  26. package/dist/components/custom/EaeraWidgetEconomicInsight.mjs +1 -1
  27. package/dist/components/custom/EaeraWidgetGrowthBalanceProfitChart.mjs +1 -1
  28. package/dist/components/custom/EaeraWidgetHeader.mjs +1 -1
  29. package/dist/components/custom/EaeraWidgetIframe.mjs +1 -1
  30. package/dist/components/custom/EaeraWidgetMarginCalculator.mjs +1 -1
  31. package/dist/components/custom/EaeraWidgetPositionCalculator.mjs +1 -1
  32. package/dist/components/custom/EaeraWidgetTechnicalViews.mjs +1 -1
  33. package/dist/components/index.mjs +1 -1
  34. package/dist/components/webtrade/EaeraCfdOrderPlacement.mjs +1 -1
  35. package/dist/components/webtrade/EaeraCfdWatchlist.mjs +1 -1
  36. package/dist/components/webtrade/EaeraOrderPlacement.mjs +1 -1
  37. package/dist/components/webtrade/EaeraTimeNSales.mjs +1 -1
  38. package/dist/components/webtrade/EaeraTradingTable.mjs +1 -1
  39. package/dist/components/webtrade/EaeraWatchlist.mjs +1 -1
  40. package/dist/eaera-widgets-v2.es.js +3 -1
  41. package/dist/eaera-widgets-v2.umd.cjs +1 -1
  42. package/package.json +1 -1
  43. package/dist/components/chunks/EaeraSelect-BxZRZofe.mjs +0 -1
@@ -1 +1 @@
1
- import{ref as e,watch as t,computed as a,defineComponent as s,resolveComponent as l,openBlock as i,createBlock as o,unref as r,withCtx as n,createElementVNode as u,toDisplayString as d,createVNode as c,createTextVNode as m,shallowRef as p,onMounted as g,createElementBlock as y,Fragment as v,renderList as b,normalizeClass as _,createCommentVNode as f,onBeforeUnmount as k,onUnmounted as x,withModifiers as D,normalizeStyle as C,Teleport as T,nextTick as P}from"vue";import{a as H}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as S}from"vue-i18n";import{_ as w}from"./EaeraDatePicker-Bwt5r5gk.mjs";import R from"../composite/EaeraDropdownV2.mjs";import{d as O}from"./vendor-dayjs-BwyIiGHg.mjs";import{X as E,CalendarDays as F,Columns2 as L,Download as I,Inbox as N,SquarePen as $}from"@lucide/vue";import{_ as M}from"./EaeraDialog-uLsXC20k.mjs";import{_ as V}from"./EaeraButton-BPVKRBOn.mjs";import{_ as z}from"./EaeraDivider-Dggvc36a.mjs";import{_ as A}from"./EaeraTooltip-BIlULHv4.mjs";import{_ as U}from"./EaeraInput-CkbcAxy0.mjs";import"element-plus";import"element-plus/es";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import{_ as j}from"./EaeraTableV2-UqRwaevh.mjs";const q={Positions:"positions",Pending:"pending",History:"history"},K={Positions:"positions",Funding:"funding",Orders:"orders",Deals:"deals"},W={All:"all",Today:"today",LastWeek:"last-week",LastMonth:"last-month",Last3Months:"last-3-months",Last6Months:"last-6-months",LastYear:"last-year",Custom:"custom"},Y=12,B=8,G={stopLoss:"",takeProfit:""},X={stopLoss:{value:!1,message:""},takeProfit:{value:!1,message:""}},Z=e=>!Number.isFinite(e)||e<0?0:e,J=e=>[...e].sort((e,t)=>(e.order??0)-(t.order??0)),Q=(e,t)=>e.length===t.length&&e.every((e,a)=>e===t[a]),ee=e=>""===e.key||!!e.alwayShow||!!e.alwaysVisible,te=(e,t,a,s)=>{const l=e.key;if(!l)return Number.MAX_SAFE_INTEGER-1e3+t;const i=a.get(l);return void 0!==i?i:ee(e)?s+t:Number.MAX_SAFE_INTEGER},ae=(s,l)=>{const{t:i}=S(),o=e(s.activeTab??q.Positions),r=e(s.activeHistoryTab??K.Positions),n=e(s.selectedTimeRange??W.LastWeek),u=e(s.customDateRange??null),d=e(s.selectedColumnKeys??[]),c=e(!1),m=e(0),p=e(0),g=e(0),y=e(0),v=e([]),b=e([]);t(()=>s.activeTab,e=>{e&&(o.value=e)}),t(()=>s.activeHistoryTab,e=>{e&&(r.value=e)}),t(()=>s.selectedTimeRange,e=>{e&&(n.value=e)}),t(()=>s.customDateRange,e=>{void 0!==e&&(u.value=e)}),t(()=>s.selectedColumnKeys,e=>{e&&(d.value=[...e])},{immediate:!0});const _=a(()=>[{value:q.Positions,label:i("trading-table.tabs.positions")},{value:q.Pending,label:i("trading-table.tabs.pending")},{value:q.History,label:i("trading-table.tabs.history")}]),f=a(()=>[{value:K.Positions,label:i("trading-table.history.tabs.positions")},{value:K.Funding,label:i("trading-table.history.tabs.funding")},{value:K.Orders,label:i("trading-table.history.tabs.orders")},{value:K.Deals,label:i("trading-table.history.tabs.deals")}]),k=a(()=>Object.values(W).map(e=>({value:e,label:i(`trading-table.history.time-ranges.${e}`)}))),x=a(()=>s.tabs??_.value),D=a(()=>s.historyTabs??f.value),C=a(()=>s.timeRangeOptions??k.value),T=a(()=>J(s.columnOptions??[])),P=a(()=>s.hiddenSummaryTabs??[q.Pending]),H=a(()=>o.value===q.History),w=a(()=>!P.value.includes(o.value)),R=a(()=>s.summaryTargetId??"trading-table-summary"),O=a(()=>{const e=Z(m.value),t=Z(p.value),a=H.value?Z(g.value):0,s=w.value?Z(y.value):0,l=e-t-s-a-Y-B-(a>0?B:0);return{wrapperHeight:e,headerHeight:t,historyTabsHeight:a,footerHeight:s,tableHeight:Math.max(0,l)}}),E=()=>{const e=J(T.value);v.value=e,b.value=((e,t)=>{if(!t.length)return e.map(e=>e.id);const a=new Set(t);return e.map(e=>e.id).filter(e=>a.has(e))})(e,s.selectedColumnKeys??[])},F=()=>{c.value=!1},L={activeTab:a(()=>o.value),activeHistoryTab:a(()=>r.value),selectedTimeRange:a(()=>n.value),customDateRange:a(()=>u.value),tabs:x,historyTabs:D,timeRangeOptions:C,columnOptions:T,selectedColumnKeys:a(()=>d.value),positionsCount:a(()=>s.positionsCount??0),pendingCount:a(()=>s.pendingCount??0),isExporting:a(()=>s.isExporting??!1),summaryTargetId:R,isHistoryTab:H,isSummaryVisible:w,isColumnDialogOpen:a(()=>c.value),draftColumnOptions:a(()=>v.value),draftCheckedColumnKeys:a(()=>b.value),layout:O,positionRows:a(()=>s.positionRows??[]),pendingRows:a(()=>s.pendingRows??[]),historyPositionRows:a(()=>s.historyPositionRows??[]),historyOrderRows:a(()=>s.historyOrderRows??[]),historyDealRows:a(()=>s.historyDealRows??[]),positionFields:a(()=>s.positionFields??[]),pendingFields:a(()=>s.pendingFields??[]),historyPositionFields:a(()=>s.historyPositionFields??[]),historyOrderFields:a(()=>s.historyOrderFields??[]),historyDealFields:a(()=>s.historyDealFields??[]),selectedSymbol:a(()=>s.selectedSymbol??null),editingPositionId:a(()=>s.editingPositionId??null),focusedPositionId:a(()=>s.focusedPositionId??null),editingOrderId:a(()=>s.editingOrderId??null),positionDraft:a(()=>s.positionDraft??G),positionDraftInvalid:a(()=>s.positionDraftInvalid??X),orderDraft:a(()=>s.orderDraft??{price:""}),orderDraftInvalid:a(()=>s.orderDraftInvalid??{price:{value:!1,message:""}}),isSavingPositionDraft:a(()=>s.isSavingPositionDraft??!1),positionsSummary:a(()=>s.positionsSummary??{}),historyPositionsSummary:a(()=>s.historyPositionsSummary??{}),historyOrdersSummary:a(()=>s.historyOrdersSummary??{}),historyDealsSummary:a(()=>s.historyDealsSummary??{}),setActiveTab:e=>{o.value=e,l("changeTab",e)},setActiveHistoryTab:e=>{r.value=e,l("changeHistoryTab",e)},setSelectedTimeRange:e=>{n.value=e,e!==W.Custom&&null!==u.value&&(u.value=null,l("changeCustomDateRange",null)),l("changeTimeRange",e)},setCustomDateRange:e=>{u.value=e,l("changeCustomDateRange",e)},setWrapperHeight:e=>{m.value=Z(e)},setHeaderHeight:e=>{p.value=Z(e)},setHistoryTabsHeight:e=>{g.value=Z(e)},setFooterHeight:e=>{y.value=Z(e)},openColumnDialog:()=>{E(),c.value=!0},closeColumnDialog:F,updateDraftCheckedColumnKeys:e=>{const t=v.value.map(e=>e.id).filter(t=>e.includes(t));Q(b.value,t)||(b.value=t)},reorderDraftColumnOptions:e=>{const t=[...e],a=t.map(e=>e.id).filter(e=>b.value.includes(e));v.value.length===t.length&&!v.value.some((e,a)=>e.id!==t[a]?.id)&&Q(b.value,a)||(v.value=t,b.value=a)},saveColumns:()=>{const e=(()=>{const e=v.value.map(e=>e.id).filter(e=>b.value.includes(e)),t=e.reduce((e,t,a)=>(e[t]=a,e),{});return{orderedKeys:e,columnsRecord:t}})();d.value=e.orderedKeys,l("changeColumns",e),F()},triggerExportHistory:()=>{l("exportHistory")},resolveTableFields:e=>{const t=[...e],a=s.selectedColumnKeys??[];if(!a.length)return t;const l=new Map(a.map((e,t)=>[e,t]));return t.map((e,t)=>({field:e,originalIndex:t})).filter(({field:e})=>!e.key||(!!ee(e)||l.has(e.key))).sort((e,t)=>te(e.field,e.originalIndex,l,a.length)-te(t.field,t.originalIndex,l,a.length)).map(e=>e.field)},selectSymbol:e=>{l("selectSymbol",e)},focusPosition:e=>{l("focusPosition",e)},startEditPosition:e=>{l("startEditPosition",e)},changePositionDraft:e=>{l("changePositionDraft",e)},savePositionDraft:e=>{l("savePositionDraft",e)},closePosition:e=>{l("closePosition",e)},cancelPendingOrder:e=>{l("cancelPendingOrder",e)},startEditOrder:e=>{l("startEditOrder",e)},changeOrderDraft:e=>{l("changeOrderDraft",e)},saveOrderDraft:e=>{l("saveOrderDraft",e)},changeHistoryPositionsSort:e=>{l("changeHistoryPositionsSort",e)},changeHistoryOrdersSort:e=>{l("changeHistoryOrdersSort",e)},changeHistoryDealsSort:e=>{l("changeHistoryDealsSort",e)},loadMoreHistoryPositions:()=>{l("loadMoreHistoryPositions")},loadMoreHistoryOrders:()=>{l("loadMoreHistoryOrders")},loadMoreHistoryDeals:()=>{l("loadMoreHistoryDeals")}},I=a(()=>({activeTab:L.activeTab.value,activeHistoryTab:L.activeHistoryTab.value,selectedTimeRange:L.selectedTimeRange.value,customDateRange:L.customDateRange.value,selectedColumnKeys:L.selectedColumnKeys.value,isColumnDialogOpen:L.isColumnDialogOpen.value,layout:L.layout.value}));return t(I,e=>{l("stateChange",e)},{immediate:!0}),t(L.layout,e=>{l("layoutChange",e)},{immediate:!0}),{...L,state:I}},se=e=>e,le={class:"custom-trading-table__column-dialog-content"},ie={class:"custom-trading-table__column-dialog-top"},oe={class:"custom-trading-table__column-dialog-title-group"},re={class:"custom-trading-table__column-dialog-title text-title-md"},ne={class:"custom-trading-table__column-dialog-subtitle text-body-sm"},ue={class:"custom-trading-table__column-dialog-option-label label-lg"},de={class:"custom-trading-table__column-dialog-actions"},ce={class:"text-label-md"},me=s({__name:"EaeraTradingTableColumnFilterDialog",props:{context:{}},setup(s){const p=s,{t:g}=S(),{isColumnDialogOpen:y,draftColumnOptions:v,draftCheckedColumnKeys:b,closeColumnDialog:_,updateDraftCheckedColumnKeys:f,reorderDraftColumnOptions:k,saveColumns:x}=p.context,D=a({get:()=>y.value,set:e=>{e||_()}}),C=a(()=>v.value.map(e=>({id:e.id,value:e.id,label:e.label,disabled:e.alwaysVisible,order:e.order}))),T=e([]);t(b,e=>{T.value=[...e]},{immediate:!0});const P=e=>{f(e)},H=a(()=>{const e=C.value.length>20?3:2;return{col:e,row:Math.max(1,Math.round(C.value.length/e)),autoFlow:"column"}}),w=e=>{const t=new Map(v.value.map(e=>[e.id,e])),a=e.map((e,a)=>{const s=t.get(e.id);return s?{...s,order:a}:null}).filter(e=>!!e);k(a)};return(e,t)=>{const a=l("eaera-checkbox-list"),s=z,p=V,y=M;return i(),o(y,{modelValue:D.value,"onUpdate:modelValue":t[1]||(t[1]=e=>D.value=e),class:"custom-trading-table__column-dialog","header-class":"hidden","footer-class":"hidden","destroy-on-close":"","show-close":!1,"close-on-click-modal":"","before-close":r(_),"append-body":""},{default:n(()=>[u("div",le,[u("div",ie,[u("div",oe,[u("div",re,d(r(g)("trading-table.columns.title")),1),u("div",ne,d(r(g)("trading-table.columns.desc")),1)]),u("button",{type:"button",class:"custom-trading-table__column-dialog-close",onClick:t[0]||(t[0]=(...e)=>r(_)&&r(_)(...e))},[c(r(E),{size:16})])]),c(a,{"model-value":T.value,options:C.value,draggable:"","allow-dragging-disabled":"",grid:H.value,"is-check-value-by-id":"",onUpdateValueProp:P,onReorderOptions:w},{default:n(({data:e})=>[u("span",ue,d(e.label),1)]),_:1},8,["model-value","options","grid"]),c(s,{class:"custom-trading-table__column-dialog-divider"}),u("div",de,[c(p,{class:"custom-trading-table__column-dialog-action-button",color:"contrast",onClick:r(_)},{default:n(()=>[m(d(r(g)("trading-table.columns.actions.cancel")),1)]),_:1},8,["onClick"]),c(p,{class:"custom-trading-table__column-dialog-action-button",color:"primary",onClick:r(x)},{default:n(()=>[u("span",ce,d(r(g)("trading-table.columns.actions.save")),1)]),_:1},8,["onClick"])])])]),_:1},8,["modelValue","before-close"])}}}),pe={class:"items-stretch flex min-h-10 p-1 rounded-md gap-1 bg-[--er-surface-muted]",role:"tablist","aria-label":"Trading table tabs"},ge=["onClick"],ye={class:"custom-trading-table__tab-label text-label-lg"},ve={class:"custom-trading-table__actions"},be={type:"button",class:"custom-trading-table__action-button"},_e={class:"text-label-md"},he={class:"custom-trading-table__time-range-dropdown"},fe=["onClick"],ke=["disabled"],xe={class:"text-label-md"},De=s({__name:"EaeraTradingTableHeader",props:{context:{}},emits:["heightChange"],setup(s,{emit:l}){const m=s,k=l,{t:x}=S(),{tabs:D,activeTab:C,setActiveTab:T,isHistoryTab:P,selectedTimeRange:E,timeRangeOptions:N,isExporting:$,openColumnDialog:M,setSelectedTimeRange:V,setCustomDateRange:z,triggerExportHistory:A}=m.context,U=p(null),{height:j}=H(U),q=e(!1);g(()=>{q.value=!0});const K=e(null),Y=e(null),B=e(["",""]),G=a(()=>{const e=N.value.find(e=>e.value===E.value);return e?.label??E.value}),X=e=>{B.value=["",""],V(e),K.value?.closeDropdown?.(),e===W.Custom&&Y.value?.handleOpen?.()},Z=(e,t)=>{const a=O(e),s=a.isValid()?a:O(e,"DD-MM-YYYY");return s.isValid()?`${s.format("YYYY-MM-DD")}T${t?"23:59:59.999":"00:00:00.000"}Z`:null},J=e=>O(e).isAfter(O(),"day");return t(j,e=>{k("heightChange",e)},{immediate:!0}),t(B,e=>{if(!e||2!==e.length)return;const t=Z(e[0],!1),a=Z(e[1],!0);t&&a&&z({from:t,to:a})}),(e,t)=>{const a=R,l=w;return i(),y("div",{ref_key:"headerRef",ref:U,class:"custom-trading-table__header"},[u("div",pe,[(i(!0),y(v,null,b(r(D),e=>(i(),y("button",{key:e.value,type:"button",class:_(["custom-trading-table__tab-button",{"custom-trading-table__tab-button--active":r(C)===e.value}]),onClick:t=>r(T)(e.value)},[u("span",ye,d(e.label),1)],10,ge))),128))]),u("div",ve,[r(P)?(i(),o(a,{key:0,ref_key:"timeRangeDropdownRef",ref:K,trigger:"click","popper-class":"custom-trading-table__time-range-popper"},{dropdown:n(()=>[u("div",he,[(i(!0),y(v,null,b(r(N),e=>(i(),y("button",{key:e.value,type:"button",class:_(["custom-trading-table__time-range-item text-label-md",{"custom-trading-table__time-range-item--active":r(E)===e.value},{"custom-trading-table__time-range-item--custom-divider":e.value===r(W).Custom}]),onClick:t=>X(e.value)},d(e.label),11,fe))),128))])]),default:n(()=>[u("button",be,[c(r(F),{size:14,class:"custom-trading-table__action-icon"}),u("span",_e,d(G.value),1)])]),_:1},512)):f("",!0),u("button",{type:"button",class:"custom-trading-table__action-button",onClick:t[0]||(t[0]=(...e)=>r(M)&&r(M)(...e))},[c(r(L),{size:14,class:"custom-trading-table__action-icon"}),t[3]||(t[3]=u("span",{class:"text-label-md"},"Columns",-1))]),r(P)?(i(),y("button",{key:1,type:"button",class:_(["custom-trading-table__action-button",{"custom-trading-table__action-button--disabled":r($)}]),disabled:r($),onClick:t[1]||(t[1]=(...e)=>r(A)&&r(A)(...e))},[c(r(I),{size:14,class:"custom-trading-table__action-icon"}),u("span",xe,d(r(x)("trading-table.export.title")),1)],10,ke)):f("",!0),q.value?(i(),o(l,{key:2,ref_key:"customDateRef",ref:Y,modelValue:B.value,"onUpdate:modelValue":t[2]||(t[2]=e=>B.value=e),type:"daterange",style:{display:"none"},"unlink-panels":"","disabled-date":J},null,8,["modelValue"])):f("",!0),c(me,{context:s.context},null,8,["context"])])],512)}}}),Ce=["onClick"],Te=s({__name:"EaeraTradingTableHistoryTabs",props:{context:{}},emits:["heightChange"],setup(e,{emit:a}){const s=e,l=a,{historyTabs:o,activeHistoryTab:n,setActiveHistoryTab:u}=s.context,c=p(null),{height:m}=H(c);return t(m,e=>{l("heightChange",e)},{immediate:!0}),(e,t)=>(i(),y("div",{ref_key:"historyTabsRef",ref:c,class:"custom-trading-table__history-tabs"},[(i(!0),y(v,null,b(r(o),e=>(i(),y("button",{key:e.value,type:"button",class:_(["custom-trading-table__history-tab-button text-label-md",{"custom-trading-table__history-tab-button--active":r(n)===e.value}]),onClick:t=>r(u)(e.value)},d(e.label),11,Ce))),128))],512))}}),Pe=(e,t,a={})=>{if(!t)return e;const{key:s,direction:l}=t,i=a[s]??s;return[...e].sort((e,t)=>{const a=e[i],s=t[i];if(null==a&&null==s)return 0;if(null==a)return"asc"===l?-1:1;if(null==s)return"asc"===l?1:-1;const o=Number(a),r=Number(s);if(!Number.isNaN(o)&&!Number.isNaN(r))return"asc"===l?o-r:r-o;const n=Date.parse(String(a)),u=Date.parse(String(s));if(!Number.isNaN(n)&&!Number.isNaN(u))return"asc"===l?n-u:u-n;const d=String(a).localeCompare(String(s));return"asc"===l?d:-d})},He=e=>{try{const t=e.value?.tableRef,a=t?.$el??null;return a instanceof HTMLElement?a:null}catch{return null}},Se=(e,t)=>{const a=He(e);if(!a)return[];const s=a.querySelector(".el-table__header-wrapper"),l=s?.querySelector("tr");if(!l)return[];return Array.from(l.querySelectorAll("th")).map((e,a)=>{const s=e.getBoundingClientRect().width;return{key:t.at(a)?.key??null,width:s}})},we=(e,t={isPositive:!0,returnNumber:!1})=>{const a=t.isPositive??!0,s=t.returnNumber??!1;let l=a?e.replace(/[^\d.]/g,""):e.replace(/[^\d.-]/g,"");if(!a){const e=l.startsWith("-");l=l.replace(/-/g,""),e&&(l=`-${l}`)}const i=l.startsWith("-")?"-":"",o=i?l.slice(1):l,r=o.indexOf(".");let n=o;-1!==r&&(n=o.slice(0,r+1)+o.slice(r+1).replace(/\./g,"")),l=i+n,l.startsWith(".")&&(l=`0${l}`),l.startsWith("-.")&&(l=l.replace("-.","-0."));const u=l.startsWith("-");let d=u?l.slice(1):l;if(d.startsWith("0")&&!d.startsWith("0.")&&(d=d.replace(/^0+/,"")||"0"),l=u?`-${d}`:d,!s){if(!l)return"";if("-"===l||"0."===l||"-0."===l||/^\d+\.$/.test(l)||/^-\d+\.$/.test(l))return l;const e=Number(l);return Number.isFinite(e)?a&&e<=0?"":l:""}if(!l||"-"===l||"."===l||"-."===l||l.endsWith(".")){const e=Number(l.replace(/\.$/,"")),t=Number.isFinite(e)?e:0;return a&&t<=0?0:t}const c=Number(l);let m=Number.isFinite(c)?c:0;return a&&m<=0&&(m=0),m},Re=(e,t=2,a="--")=>{const s=Number(e);return Number.isFinite(s)?s.toLocaleString("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}):a},Oe={class:"trading-table__wrapper"},Ee={key:0},Fe={key:0},Le={key:0,class:"custom-trading-table__positions-actions"},Ie={key:1},Ne={class:"trading-table__empty-state"},$e={class:"trading-table__empty-text text-body-sm"},Me={class:"custom-trading-table__positions-summary"},Ve={class:"custom-trading-table__positions-summary-left"},ze={class:"custom-trading-table__summary-label text-body-sm"},Ae={class:"text-label-md"},Ue={class:"custom-trading-table__positions-summary-right"},je=s({__name:"EaeraTradingTablePositionsTable",props:{context:{}},setup(s){const l=s,{t:p}=S(),{summaryTargetId:H,layout:w,positionRows:R,positionFields:O,positionsSummary:F,selectedSymbol:L,editingPositionId:I,focusedPositionId:M,positionDraft:q,positionDraftInvalid:K,isSavingPositionDraft:W,resolveTableFields:Y,selectSymbol:B,focusPosition:G,startEditPosition:X,changePositionDraft:Z,savePositionDraft:J,closePosition:Q}=l.context,ee=e(),te=e(null),ae=e(null),se=e([]),le=e(!1),ie=e(null),oe={position_id:"id"},re=a(()=>w.value.tableHeight),ne=a(()=>Y(O.value)),ue=a(()=>Pe(R.value,ie.value,oe)),de=a(()=>{const e=Number(F.value.unrealizedPnl??0),t=F.value.unrealizedPnlDigits??2;return{left:{balance:F.value.balance,equity:F.value.equity,"used-margin":F.value.usedMargin,"free-margin":F.value.freeMargin},right:[{key:"unrealized_pnl",value:Re(e,t,"0.00"),class:`custom-trading-table__positions-summary-value text-label-md ${ye(e)}`},{key:"",value:`(${F.value.currency??"USD"})`,class:"custom-trading-table__positions-summary-currency text-label-md"}].map(e=>({...e,style:{width:`${se.value.find(t=>t.key===e.key)?.width??0}px`}}))}}),ce=a({get:()=>q.value.stopLoss,set:e=>{Z({field:"stopLoss",value:String(e??"")})}}),me=a({get:()=>q.value.takeProfit,set:e=>{Z({field:"takeProfit",value:String(e??"")})}});a(()=>ee.value?.sort??null);const pe=e=>{if(!e)return"--";const t=`trading-table.positions.${e}`,a=p(t);return a===t?e:a},ge=e=>{const t=String(e??"").toUpperCase();return"BUY"===t?"var(--er-text-success)":"SELL"===t?"var(--er-text-error)":"var(--text-primary)"},ye=e=>e>0?"custom-trading-table__positions-summary-value--positive":e<0?"custom-trading-table__positions-summary-value--negative":"custom-trading-table__positions-summary-value--neutral",ve=({key:e,direction:t})=>{ie.value=e&&t?{key:e,direction:t}:null},be=(e,t)=>{const a=we(e,{isPositive:!1});Z({field:t,value:a})},_e=e=>{const t=e.symbol,a=e.id;t&&(null!=a&&G(a),B(t))},he=e=>{const t=I.value===e.row.id,a=e.row.symbol===L.value;return[t?"editing-row":"",a?"selected":"",M.value===e.row.id&&!a?"focused":""].filter(Boolean).join(" ")},fe=async()=>{await P(),await new Promise(requestAnimationFrame),se.value=Se(ee,ne.value)};t(()=>K.value,({stopLoss:e,takeProfit:t})=>{e.value?te.value?.onOpen?.():te.value?.onClose?.(),t.value?ae.value?.onOpen?.():ae.value?.onClose?.()},{deep:!0});let ke=null;g(()=>{le.value=!0,fe();const e=He(ee);e&&(ke=new ResizeObserver(()=>fe()),ke.observe(e))}),k(()=>{ke?.disconnect()});const xe=e=>{"Enter"===e.key&&null!==I.value&&J(I.value)};return g(()=>{document.addEventListener("keyup",xe)}),x(()=>{document.removeEventListener("keyup",xe)}),(e,t)=>{const a=U,s=A,l=z,g=V;return i(),y("div",Oe,[c(r(j),{ref_key:"positionTableRef",ref:ee,class:"trading-table",items:ue.value,fields:ne.value,stripe:!1,"max-height":re.value,"hide-footer":"","allow-sort-reset":"","row-class-name":he,"onUpdate:onSortChanged":ve,onRowClick:_e},{"cell(side)":n(({item:e})=>[u("span",{style:C({color:ge(e.side)})},d(pe(e.side)),5)]),"cell(stop_loss)":n(({item:e})=>[e.id!==r(I)?(i(),y("span",Ee,d(e.stop_loss??"--"),1)):(i(),o(s,{key:1,ref_key:"stopLossTooltipRef",ref:te,"popper-class":[r(K).stopLoss.value&&"error"],content:r(K).stopLoss.message,placement:"top",trigger:"contextmenu"},{default:n(()=>[c(a,{modelValue:ce.value,"onUpdate:modelValue":t[0]||(t[0]=e=>ce.value=e),class:_(["input-position",r(K).stopLoss.value&&"error"]),onInput:t[1]||(t[1]=e=>be(e,"stopLoss"))},null,8,["modelValue","class"])]),_:1},8,["popper-class","content"]))]),"cell(take_profit)":n(({item:e})=>[e.id!==r(I)?(i(),y("span",Fe,d(e.take_profit??"--"),1)):(i(),o(s,{key:1,ref_key:"takeProfitTooltipRef",ref:ae,"popper-class":[r(K).takeProfit.value&&"error"],content:r(K).takeProfit.message,placement:"top",trigger:"contextmenu"},{default:n(()=>[c(a,{modelValue:me.value,"onUpdate:modelValue":t[2]||(t[2]=e=>me.value=e),class:_(["input-position",r(K).takeProfit.value&&"error"]),onInput:t[3]||(t[3]=e=>be(e,"takeProfit"))},null,8,["modelValue","class"])]),_:1},8,["popper-class","content"]))]),"cell(unrealized_pnl)":n(({item:e})=>{return[u("span",{style:C({color:`var(--text-${t=Number(e.unrealized_pnl??0),t>0?"success":t<0?"error":"primary"})`})},d(r(Re)(e.unrealized_pnl,2,"0.00")),5)];var t}),"cell()":n(({item:e})=>[e.id!==r(I)?(i(),y("div",Le,[c(r($),{size:18,class:"custom-trading-table__positions-edit-icon",onClick:D(t=>r(X)(e.id),["stop"])},null,8,["onClick"]),c(l,{direction:"vertical",class:"custom-trading-table__positions-divider"}),c(r(E),{size:18,class:"custom-trading-table__positions-close-icon",onClick:D(t=>r(Q)(e.id),["stop"])},null,8,["onClick"])])):(i(),y("div",Ie,[c(g,{color:"primary",class:"custom-trading-table__positions-save-button text-label-md",loading:r(W),onClick:t=>r(J)(e.id)},{default:n(()=>[m(d(r(p)("trading-table.positions.actions.save")),1)]),_:1},8,["loading","onClick"])]))]),empty:n(()=>[u("div",Ne,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",$e,d(r(p)("trading-table.empty.positions")),1)])]),_:1},8,["items","fields","max-height"]),le.value?(i(),o(T,{key:0,to:`#${r(H)}`},[u("div",Me,[u("div",Ve,[(i(!0),y(v,null,b(de.value.left,(e,t)=>(i(),y("span",{key:t,class:"custom-trading-table__positions-summary-item"},[u("span",ze,d(r(p)(`trading-table.positions.summary.${t}`))+": ",1),u("span",Ae,d(r(Re)(e,2,"0.00")),1)]))),128))]),u("div",Ue,[(i(!0),y(v,null,b(de.value.right,e=>(i(),y("div",{key:e.key,class:_(e.class),style:C(e.style)},d(e.value),7))),128))])])],8,["to"])):f("",!0)])}}}),qe={class:"trading-table__wrapper"},Ke={key:0},We={key:0,class:"custom-trading-table__positions-actions"},Ye={key:1},Be={class:"trading-table__empty-state"},Ge={class:"trading-table__empty-text text-body-sm"},Xe=s({__name:"EaeraTradingTablePendingTable",props:{context:{}},setup(s){const l=s,{t:p}=S(),{pendingRows:g,pendingFields:v,layout:b,editingOrderId:f,orderDraft:k,orderDraftInvalid:x,resolveTableFields:T,selectSymbol:P,cancelPendingOrder:H,startEditOrder:w,changeOrderDraft:R,saveOrderDraft:O}=l.context,F=e(),L=e(null),I={order_id:"id"},M=a(()=>b.value.tableHeight),q=a(()=>T(v.value)),K=a(()=>Pe(g.value,L.value,I));a(()=>F.value?.sort??null);const W=e=>{if(!e)return"--";const t=`trading-table.pending.${e}`,a=p(t);return a===t?e:a},Y=e=>{const t=String(e??"").toUpperCase();return"BUY"===t?"var(--er-text-success)":"SELL"===t?"var(--er-text-error)":"var(--text-primary)"},B=({key:e,direction:t})=>{L.value=e&&t?{key:e,direction:t}:null},G=e=>{const t=e.symbol;t&&P(t)},X=a({get:()=>k.value.price,set:e=>{R({field:"price",value:String(e??"")})}}),Z=e(null);return t(()=>x.value.price,e=>{e.value?Z.value?.onOpen?.():Z.value?.onClose?.()},{deep:!0}),(e,t)=>{const a=U,s=A,l=z,g=V;return i(),y("div",qe,[c(r(j),{ref_key:"pendingTableRef",ref:F,class:"trading-table",items:K.value,fields:q.value,stripe:!1,"max-height":M.value,"hide-footer":"","allow-sort-reset":"","onUpdate:onSortChanged":B,onRowClick:G},{"cell(side)":n(({item:e})=>[u("span",{style:C({color:Y(e.side)})},d(W(e.side)),5)]),"cell(price)":n(({item:e})=>[e.id!==r(f)?(i(),y("span",Ke,d(e.price??"--"),1)):(i(),o(s,{key:1,ref_key:"priceTooltipRef",ref:Z,"popper-class":[r(x).price.value&&"error"],content:r(x).price.message,placement:"top",trigger:"contextmenu"},{default:n(()=>[c(a,{modelValue:X.value,"onUpdate:modelValue":t[0]||(t[0]=e=>X.value=e),class:_(["input-position",r(x).price.value&&"error"]),onInput:t[1]||(t[1]=e=>((e,t)=>{const a=we(e,{isPositive:!1});R({field:t,value:a})})(e,"price"))},null,8,["modelValue","class"])]),_:1},8,["popper-class","content"]))]),"cell()":n(({item:e})=>[e.id!==r(f)?(i(),y("div",We,[c(r($),{size:18,class:"custom-trading-table__positions-edit-icon",onClick:D(t=>r(w)(e.id),["stop"])},null,8,["onClick"]),c(l,{direction:"vertical",class:"custom-trading-table__positions-divider"}),c(r(E),{size:18,color:"var(--icon-error)",class:"custom-trading-table__pending-cancel-icon",onClick:D(t=>r(H)(e.id),["stop"])},null,8,["onClick"])])):(i(),y("div",Ye,[c(g,{color:"primary",class:"custom-trading-table__positions-save-button text-label-md",onClick:t=>r(O)(e.id)},{default:n(()=>[...t[2]||(t[2]=[m(" Save ",-1)])]),_:1},8,["onClick"])]))]),empty:n(()=>[u("div",Be,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",Ge,d(r(p)("trading-table.empty.pending")),1)])]),_:1},8,["items","fields","max-height"])])}}}),Ze={class:"trading-table__empty-state"},Je={class:"trading-table__empty-text text-body-sm"},Qe={class:"custom-trading-table__history-deals-summary"},et={class:"custom-trading-table__history-summary-left"},tt={class:"custom-trading-table__summary-label text-body-sm"},at={class:"custom-trading-table__history-summary-right"},st=s({__name:"EaeraTradingTableHistoryDealsTable",props:{context:{}},setup(s){const l=s,{t:p}=S(),{summaryTargetId:f,layout:x,historyDealRows:D,historyDealFields:H,historyDealsSummary:w,resolveTableFields:R,changeHistoryDealsSort:O,loadMoreHistoryDeals:E}=l.context,F=e(),L=e(null),I=e([]),$=a(()=>x.value.tableHeight),M=a(()=>D.value),V=a(()=>R(H.value)),z=a(()=>{const e=Number(w.value.tradeProfit??0),t=Number(w.value.totalFee??0),a=Number(w.value.totalProfit??0);return{left:{key:"total-profit",value:e,class:q(e)},right:[{key:"fee",value:Re(t,2,"0.00"),class:`custom-trading-table__history-summary-cell text-label-md ${q(t)}`},{key:"profit",value:Re(a,2,"0.00"),class:`custom-trading-table__history-summary-cell text-label-md ${q(a)}`},{key:"",value:`(${w.value.currency??"USD"})`,class:"custom-trading-table__history-summary-currency text-label-md"}].map(e=>({...e,style:{width:`${I.value.find(t=>t.key===e.key)?.width??0}px`}}))}}),A=a(()=>F.value?.sort??null),U=e=>{if(!e)return"--";const t=`trading-table.history.deals.type.${e}`,a=p(t);return a===t?e:a},q=e=>e>0?"custom-trading-table__history-summary-value--positive":e<0?"custom-trading-table__history-summary-value--negative":"custom-trading-table__history-summary-value--neutral",K=()=>{const e=L.value;e&&((e,t=50)=>{const{scrollTop:a,clientHeight:s,scrollHeight:l}=e;return a+s>=l-t})(e)&&E()},W=()=>{K()};let Y=null;const B=()=>{null==Y&&(Y=requestAnimationFrame(()=>{Y=null,K()}))},G=async()=>{await P(),await new Promise(requestAnimationFrame),I.value=Se(F,V.value)};t(A,e=>{e&&O(e.key?{sort_by:e.key,sort_direction:e.direction}:{})},{deep:!0});let X=null;return g(async()=>{G();const e=He(F);e&&(X=new ResizeObserver(()=>G()),X.observe(e)),await P(),(()=>{const e=He(F);if(!e)return;const t=e.querySelector(".el-scrollbar__wrap");t&&(L.value=t,t.addEventListener("scroll",W,{passive:!0}),t.addEventListener("wheel",B,{passive:!0}))})()}),k(()=>{X?.disconnect(),(()=>{const e=L.value;e&&(e.removeEventListener("scroll",W),e.removeEventListener("wheel",B),L.value=null)})()}),(e,t)=>(i(),y("div",{style:C({height:`${$.value}px`})},[c(r(j),{ref_key:"dealHistoryRef",ref:F,class:"trading-table custom-trading-table__history-table",items:M.value,fields:V.value,stripe:!1,"max-height":$.value,"hide-footer":"","allow-sort-reset":""},{"cell(deal_type)":n(({item:e})=>{return[u("span",{style:C({color:(t=e.deal_type,"SELL"===String(t??"").toUpperCase()?"var(--er-text-error)":"var(--er-text-success)")})},d(U(e.deal_type)),5)];var t}),"cell(profit)":n(({item:e})=>[u("span",{class:_(q(Number(e.profit??0)))},d(r(Re)(e.profit,2,"0.00")),3)]),"cell(c)":n(({item:e})=>[m(d(e.currency),1)]),empty:n(()=>[u("div",Ze,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",Je,d(r(p)("trading-table.empty.history-deals")),1)])]),_:1},8,["items","fields","max-height"]),(i(),o(T,{to:`#${r(f)}`},[u("div",Qe,[u("div",et,[u("span",tt,d(r(p)(`trading-table.history.summary.deals.${z.value.left.key}`))+": ",1),u("span",{class:_(["text-label-md",z.value.left.class])},d(r(Re)(z.value.left.value,2,"0.00")),3)]),u("div",at,[(i(!0),y(v,null,b(z.value.right,e=>(i(),y("div",{key:e.key,class:_(e.class),style:C(e.style)},d(e.value),7))),128))])])],8,["to"]))],4))}}),lt={class:"trading-table__empty-state"},it={class:"trading-table__empty-text text-body-sm"},ot={class:"custom-trading-table__history-orders-summary"},rt={key:0,class:"custom-trading-table__history-orders-summary-item"},nt={class:"custom-trading-table__summary-label text-body-sm"},ut={class:"text-label-md"},dt=s({__name:"EaeraTradingTableHistoryOrdersTable",props:{context:{}},setup(s){const l=s,{t:m}=S(),{summaryTargetId:p,layout:_,historyOrderRows:x,historyOrderFields:D,historyOrdersSummary:H,resolveTableFields:w,changeHistoryOrdersSort:R,loadMoreHistoryOrders:O}=l.context,E=e(),F=e(null),L=a(()=>_.value.tableHeight),I=a(()=>x.value),$=a(()=>w(D.value)),M=a(()=>H.value),V=a(()=>E.value?.sort??null),z=e=>{if(!e)return"--";const t=`trading-table.history.orders.side.${e}`,a=m(t);return a===t?e:a},A=()=>{const e=F.value;e&&((e,t=50)=>{const{scrollTop:a,clientHeight:s,scrollHeight:l}=e;return a+s>=l-t})(e)&&O()},U=()=>{A()};let q=null;const K=()=>{null==q&&(q=requestAnimationFrame(()=>{q=null,A()}))};return t(V,e=>{e&&R(e.key?{sort_by:e.key,sort_direction:e.direction}:{})},{deep:!0}),g(async()=>{await P(),(()=>{const e=He(E);if(!e)return;const t=e.querySelector(".el-scrollbar__wrap");t&&(F.value=t,t.addEventListener("scroll",U,{passive:!0}),t.addEventListener("wheel",K,{passive:!0}))})()}),k(()=>{(()=>{const e=F.value;e&&(e.removeEventListener("scroll",U),e.removeEventListener("wheel",K),F.value=null)})()}),(e,t)=>(i(),y("div",{style:C({height:`${L.value}px`})},[c(r(j),{ref_key:"orderHistoryRef",ref:E,class:"trading-table custom-trading-table__history-table",items:I.value,fields:$.value,stripe:!1,"max-height":L.value,"hide-footer":"","allow-sort-reset":""},{"cell(side)":n(({item:e})=>[u("span",{style:C({color:`var(--icon-${"SELL"===String(e.side).toUpperCase()?"error":"success"})`})},d(z(e.side)),5)]),empty:n(()=>[u("div",lt,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",it,d(r(m)("trading-table.empty.history-orders")),1)])]),_:1},8,["items","fields","max-height"]),(i(),o(T,{to:`#${r(p)}`},[u("div",ot,[(i(!0),y(v,null,b(M.value,(e,t)=>(i(),y(v,{key:t},[e?(i(),y("span",rt,[u("span",nt,d(r(m)(`trading-table.history.summary.orders.${t}`))+": ",1),u("span",ut,d(e),1)])):f("",!0)],64))),128))])],8,["to"]))],4))}}),ct={class:"custom-trading-table__type-cell"},mt={class:"custom-trading-table__text-error"},pt={class:"trading-table__empty-state"},gt={class:"trading-table__empty-text text-body-sm"},yt={class:"custom-trading-table__positions-summary"},vt={class:"custom-trading-table__positions-summary-left"},bt={class:"custom-trading-table__summary-label text-body-sm"},_t={class:"text-label-md"},ht={class:"custom-trading-table__positions-summary-currency text-label-md"},ft=s({__name:"EaeraTradingTableHistoryPositionsTable",props:{context:{}},setup(s){const l=s,{t:m}=S(),{summaryTargetId:p,layout:f,historyPositionRows:x,historyPositionFields:D,positionsSummary:H,resolveTableFields:w,changeHistoryPositionsSort:R,loadMoreHistoryPositions:O}=l.context,F=e(),L=e(null),I=a(()=>f.value.tableHeight),$=a(()=>x.value),M=a(()=>w(D.value)),V=a(()=>[{key:"balance",label:m("trading-table.positions.summary.balance"),value:Re(H.value.balance,2,"0.00")},{key:"equity",label:m("trading-table.positions.summary.equity"),value:Re(H.value.equity,2,"0.00")},{key:"used-margin",label:m("trading-table.positions.summary.used-margin"),value:Re(H.value.usedMargin,2,"0.00")},{key:"free-margin",label:m("trading-table.positions.summary.free-margin"),value:Re(H.value.freeMargin,2,"0.00")},{key:"margin-level",label:m("trading-table.positions.summary.margin-level"),value:"--"}]),z=a(()=>F.value?.sort??null),A=e=>{if(!e)return"--";const t=String(e).toUpperCase();return"BUY"===t?"Buy":"SELL"===t?"Sell":e},U=e=>{const t=String(e??"").trim(),a=Number(t.replaceAll(",",""));return Number.isFinite(a)?a>0?"custom-trading-table__text-success":a<0?"custom-trading-table__text-error":"":t.startsWith("+")?"custom-trading-table__text-success":t.startsWith("-")?"custom-trading-table__text-error":""},q=()=>{const e=L.value;e&&((e,t=50)=>{const{scrollTop:a,clientHeight:s,scrollHeight:l}=e;return a+s>=l-t})(e)&&O()},K=()=>{q()};let W=null;const Y=()=>{null==W&&(W=requestAnimationFrame(()=>{W=null,q()}))};return t(z,e=>{e&&R(e.key?{sort_by:e.key,sort_direction:e.direction}:{})},{deep:!0}),g(async()=>{await P(),(()=>{const e=He(F);if(!e)return;const t=e.querySelector(".el-scrollbar__wrap");t&&(L.value=t,t.addEventListener("scroll",K,{passive:!0}),t.addEventListener("wheel",Y,{passive:!0}))})()}),k(()=>{(()=>{const e=L.value;e&&(e.removeEventListener("scroll",K),e.removeEventListener("wheel",Y),L.value=null)})()}),(e,t)=>(i(),y("div",{style:C({height:`${I.value}px`})},[c(r(j),{ref_key:"positionHistoryRef",ref:F,class:"trading-table custom-trading-table__history-table",items:$.value,fields:M.value,stripe:!1,"max-height":I.value,"hide-footer":"","allow-sort-reset":""},{"cell(type)":n(({item:e})=>[u("div",ct,[u("span",{class:_(["custom-trading-table__type-dot","SELL"===e.type?"custom-trading-table__type-dot--sell":"custom-trading-table__type-dot--buy"])},null,2),u("span",{class:_(["SELL"===e.type?"custom-trading-table__text-error":"custom-trading-table__text-success"])},d(A(e.type)),3)])]),"cell(stop_loss)":n(({item:e})=>[u("span",{class:_(["custom-trading-table__price-chip",e.isSlAlert?"custom-trading-table__price-chip--danger":""])},d(e.stop_loss),3)]),"cell(take_profit)":n(({item:e})=>[u("span",{class:_(["custom-trading-table__price-chip",e.isTpHit?"custom-trading-table__price-chip--success":""])},d(e.take_profit),3)]),"cell(commission)":n(({item:e})=>[u("span",mt,d(e.commission),1)]),"cell(profit_loss)":n(({item:e})=>[u("span",{class:_(U(e.profit_loss))},d(e.profit_loss),3)]),"cell()":n(()=>[c(r(E),{size:12,class:"custom-trading-table__pending-cancel-icon"})]),empty:n(()=>[u("div",pt,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",gt,d(r(m)("trading-table.empty.history-positions")),1)])]),_:1},8,["items","fields","max-height"]),(i(),o(T,{to:`#${r(p)}`},[u("div",yt,[u("div",vt,[(i(!0),y(v,null,b(V.value,e=>(i(),y("span",{key:e.key,class:"custom-trading-table__positions-summary-item"},[u("span",bt,d(e.label)+":",1),u("span",_t,d(e.value),1)]))),128)),u("span",ht," ("+d(r(H).currency??"USD")+") ",1)])])],8,["to"]))],4))}}),kt=s({__name:"EaeraTradingTableHistoryContent",props:{context:{}},setup(e){const t=e,{activeHistoryTab:a}=t.context;return(t,s)=>r(a)===r(K).Positions?(i(),o(ft,{key:0,context:e.context},null,8,["context"])):r(a)===r(K).Funding||r(a)===r(K).Orders?(i(),o(dt,{key:1,context:e.context},null,8,["context"])):(i(),o(st,{key:2,context:e.context},null,8,["context"]))}}),xt={class:"custom-trading-table__main"},Dt={class:"custom-trading-table__content"},Ct={class:"custom-trading-table__table-content"},Tt={class:"custom-trading-table__table-area"},Pt=["id"],Ht=s({__name:"index",props:{activeTab:{default:q.Positions},activeHistoryTab:{default:K.Positions},selectedTimeRange:{default:"last-week"},customDateRange:{default:null},tabs:{},historyTabs:{},timeRangeOptions:{},columnOptions:{},selectedColumnKeys:{default:()=>[]},positionsCount:{default:0},pendingCount:{default:0},isExporting:{type:Boolean,default:!1},hiddenSummaryTabs:{default:()=>[q.Pending]},summaryTargetId:{default:"trading-table-summary"},positionRows:{default:()=>[]},pendingRows:{default:()=>[]},historyPositionRows:{default:()=>[]},historyOrderRows:{default:()=>[]},historyDealRows:{default:()=>[]},positionFields:{default:()=>[]},pendingFields:{default:()=>[]},historyPositionFields:{default:()=>[]},historyOrderFields:{default:()=>[]},historyDealFields:{default:()=>[]},selectedSymbol:{default:null},editingPositionId:{default:null},focusedPositionId:{},editingOrderId:{},positionDraft:{default:()=>({stopLoss:"",takeProfit:""})},positionDraftInvalid:{default:()=>({stopLoss:{value:!1,message:""},takeProfit:{value:!1,message:""}})},orderDraft:{},orderDraftInvalid:{},isSavingPositionDraft:{type:Boolean,default:!1},positionsSummary:{default:()=>({})},historyPositionsSummary:{default:()=>({})},historyOrdersSummary:{default:()=>({})},historyDealsSummary:{default:()=>({})}},emits:["changeTab","changeHistoryTab","changeTimeRange","changeCustomDateRange","changeColumns","exportHistory","selectSymbol","focusPosition","startEditPosition","changePositionDraft","savePositionDraft","closePosition","cancelPendingOrder","startEditOrder","changeOrderDraft","saveOrderDraft","changeHistoryPositionsSort","changeHistoryOrdersSort","changeHistoryDealsSort","loadMoreHistoryPositions","loadMoreHistoryOrders","loadMoreHistoryDeals","stateChange","layoutChange"],setup(e,{expose:a,emit:s}){const l=ae(e,s),{activeTab:n,isHistoryTab:d,isSummaryVisible:m,summaryTargetId:g,setWrapperHeight:v,setHeaderHeight:b,setHistoryTabsHeight:_,setFooterHeight:k}=l,x=p(null),D=p(null),{height:T}=H(x),{height:P}=H(D);return t(T,e=>{v(e)},{immediate:!0}),t([P,m],([e,t])=>{k(t?e:0)},{immediate:!0}),t(d,e=>{e||_(0)},{immediate:!0}),a({openColumnDialog:l.openColumnDialog,closeColumnDialog:l.closeColumnDialog}),(e,t)=>(i(),y("div",{ref_key:"tradingTableRef",ref:x,class:"custom-trading-table"},[u("div",xt,[c(r(De),{context:r(l),onHeightChange:r(b)},null,8,["context","onHeightChange"]),u("div",Dt,[r(d)?(i(),o(r(Te),{key:0,context:r(l),onHeightChange:r(_)},null,8,["context","onHeightChange"])):f("",!0),u("div",Ct,[u("div",Tt,[r(n)===r(q).Positions?(i(),o(r(je),{key:0,context:r(l)},null,8,["context"])):r(n)===r(q).Pending?(i(),o(r(Xe),{key:1,context:r(l)},null,8,["context"])):(i(),o(r(kt),{key:2,context:r(l)},null,8,["context"]))]),u("div",{ref_key:"summaryRef",ref:D,class:"custom-trading-table__summary body-sm",style:C(r(m)?{}:{display:"none"})},[u("div",{id:r(g),class:"custom-trading-table__summary-target"},null,8,Pt)],4)])])])],512))}});export{K as E,Ht as _,q as a,W as b,ae as p,se as u};
1
+ import{ref as e,watch as t,computed as a,defineComponent as s,resolveComponent as l,openBlock as i,createBlock as o,unref as r,withCtx as n,createElementVNode as u,toDisplayString as d,createVNode as c,createTextVNode as m,shallowRef as p,onMounted as g,createElementBlock as y,Fragment as v,renderList as b,normalizeClass as _,createCommentVNode as f,onBeforeUnmount as k,onUnmounted as x,withModifiers as D,normalizeStyle as C,Teleport as T,nextTick as P}from"vue";import{a as H}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as S}from"vue-i18n";import{_ as w}from"./EaeraDatePicker-Bwt5r5gk.mjs";import R from"../composite/EaeraDropdownV2.mjs";import{d as O}from"./vendor-dayjs-BwyIiGHg.mjs";import{X as E,CalendarDays as F,Columns2 as L,Download as I,Inbox as N,SquarePen as $}from"@lucide/vue";import{_ as M}from"./EaeraDialog-uLsXC20k.mjs";import{_ as V}from"./EaeraButton-BPVKRBOn.mjs";import{_ as z}from"./EaeraDivider-Dggvc36a.mjs";import{_ as A}from"./EaeraTooltip-BIlULHv4.mjs";import{_ as U}from"./EaeraInput-CkbcAxy0.mjs";import"element-plus";import"element-plus/es";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import{_ as j}from"./EaeraTableV2-CIeL4xlB.mjs";const q={Positions:"positions",Pending:"pending",History:"history"},K={Positions:"positions",Funding:"funding",Orders:"orders",Deals:"deals"},W={All:"all",Today:"today",LastWeek:"last-week",LastMonth:"last-month",Last3Months:"last-3-months",Last6Months:"last-6-months",LastYear:"last-year",Custom:"custom"},Y=12,B=8,G={stopLoss:"",takeProfit:""},X={stopLoss:{value:!1,message:""},takeProfit:{value:!1,message:""}},Z=e=>!Number.isFinite(e)||e<0?0:e,J=e=>[...e].sort((e,t)=>(e.order??0)-(t.order??0)),Q=(e,t)=>e.length===t.length&&e.every((e,a)=>e===t[a]),ee=e=>""===e.key||!!e.alwayShow||!!e.alwaysVisible,te=(e,t,a,s)=>{const l=e.key;if(!l)return Number.MAX_SAFE_INTEGER-1e3+t;const i=a.get(l);return void 0!==i?i:ee(e)?s+t:Number.MAX_SAFE_INTEGER},ae=(s,l)=>{const{t:i}=S(),o=e(s.activeTab??q.Positions),r=e(s.activeHistoryTab??K.Positions),n=e(s.selectedTimeRange??W.LastWeek),u=e(s.customDateRange??null),d=e(s.selectedColumnKeys??[]),c=e(!1),m=e(0),p=e(0),g=e(0),y=e(0),v=e([]),b=e([]);t(()=>s.activeTab,e=>{e&&(o.value=e)}),t(()=>s.activeHistoryTab,e=>{e&&(r.value=e)}),t(()=>s.selectedTimeRange,e=>{e&&(n.value=e)}),t(()=>s.customDateRange,e=>{void 0!==e&&(u.value=e)}),t(()=>s.selectedColumnKeys,e=>{e&&(d.value=[...e])},{immediate:!0});const _=a(()=>[{value:q.Positions,label:i("trading-table.tabs.positions")},{value:q.Pending,label:i("trading-table.tabs.pending")},{value:q.History,label:i("trading-table.tabs.history")}]),f=a(()=>[{value:K.Positions,label:i("trading-table.history.tabs.positions")},{value:K.Funding,label:i("trading-table.history.tabs.funding")},{value:K.Orders,label:i("trading-table.history.tabs.orders")},{value:K.Deals,label:i("trading-table.history.tabs.deals")}]),k=a(()=>Object.values(W).map(e=>({value:e,label:i(`trading-table.history.time-ranges.${e}`)}))),x=a(()=>s.tabs??_.value),D=a(()=>s.historyTabs??f.value),C=a(()=>s.timeRangeOptions??k.value),T=a(()=>J(s.columnOptions??[])),P=a(()=>s.hiddenSummaryTabs??[q.Pending]),H=a(()=>o.value===q.History),w=a(()=>!P.value.includes(o.value)),R=a(()=>s.summaryTargetId??"trading-table-summary"),O=a(()=>{const e=Z(m.value),t=Z(p.value),a=H.value?Z(g.value):0,s=w.value?Z(y.value):0,l=e-t-s-a-Y-B-(a>0?B:0);return{wrapperHeight:e,headerHeight:t,historyTabsHeight:a,footerHeight:s,tableHeight:Math.max(0,l)}}),E=()=>{const e=J(T.value);v.value=e,b.value=((e,t)=>{if(!t.length)return e.map(e=>e.id);const a=new Set(t);return e.map(e=>e.id).filter(e=>a.has(e))})(e,s.selectedColumnKeys??[])},F=()=>{c.value=!1},L={activeTab:a(()=>o.value),activeHistoryTab:a(()=>r.value),selectedTimeRange:a(()=>n.value),customDateRange:a(()=>u.value),tabs:x,historyTabs:D,timeRangeOptions:C,columnOptions:T,selectedColumnKeys:a(()=>d.value),positionsCount:a(()=>s.positionsCount??0),pendingCount:a(()=>s.pendingCount??0),isExporting:a(()=>s.isExporting??!1),summaryTargetId:R,isHistoryTab:H,isSummaryVisible:w,isColumnDialogOpen:a(()=>c.value),draftColumnOptions:a(()=>v.value),draftCheckedColumnKeys:a(()=>b.value),layout:O,positionRows:a(()=>s.positionRows??[]),pendingRows:a(()=>s.pendingRows??[]),historyPositionRows:a(()=>s.historyPositionRows??[]),historyOrderRows:a(()=>s.historyOrderRows??[]),historyDealRows:a(()=>s.historyDealRows??[]),positionFields:a(()=>s.positionFields??[]),pendingFields:a(()=>s.pendingFields??[]),historyPositionFields:a(()=>s.historyPositionFields??[]),historyOrderFields:a(()=>s.historyOrderFields??[]),historyDealFields:a(()=>s.historyDealFields??[]),selectedSymbol:a(()=>s.selectedSymbol??null),editingPositionId:a(()=>s.editingPositionId??null),focusedPositionId:a(()=>s.focusedPositionId??null),editingOrderId:a(()=>s.editingOrderId??null),positionDraft:a(()=>s.positionDraft??G),positionDraftInvalid:a(()=>s.positionDraftInvalid??X),orderDraft:a(()=>s.orderDraft??{price:""}),orderDraftInvalid:a(()=>s.orderDraftInvalid??{price:{value:!1,message:""}}),isSavingPositionDraft:a(()=>s.isSavingPositionDraft??!1),positionsSummary:a(()=>s.positionsSummary??{}),historyPositionsSummary:a(()=>s.historyPositionsSummary??{}),historyOrdersSummary:a(()=>s.historyOrdersSummary??{}),historyDealsSummary:a(()=>s.historyDealsSummary??{}),setActiveTab:e=>{o.value=e,l("changeTab",e)},setActiveHistoryTab:e=>{r.value=e,l("changeHistoryTab",e)},setSelectedTimeRange:e=>{n.value=e,e!==W.Custom&&null!==u.value&&(u.value=null,l("changeCustomDateRange",null)),l("changeTimeRange",e)},setCustomDateRange:e=>{u.value=e,l("changeCustomDateRange",e)},setWrapperHeight:e=>{m.value=Z(e)},setHeaderHeight:e=>{p.value=Z(e)},setHistoryTabsHeight:e=>{g.value=Z(e)},setFooterHeight:e=>{y.value=Z(e)},openColumnDialog:()=>{E(),c.value=!0},closeColumnDialog:F,updateDraftCheckedColumnKeys:e=>{const t=v.value.map(e=>e.id).filter(t=>e.includes(t));Q(b.value,t)||(b.value=t)},reorderDraftColumnOptions:e=>{const t=[...e],a=t.map(e=>e.id).filter(e=>b.value.includes(e));v.value.length===t.length&&!v.value.some((e,a)=>e.id!==t[a]?.id)&&Q(b.value,a)||(v.value=t,b.value=a)},saveColumns:()=>{const e=(()=>{const e=v.value.map(e=>e.id).filter(e=>b.value.includes(e)),t=e.reduce((e,t,a)=>(e[t]=a,e),{});return{orderedKeys:e,columnsRecord:t}})();d.value=e.orderedKeys,l("changeColumns",e),F()},triggerExportHistory:()=>{l("exportHistory")},resolveTableFields:e=>{const t=[...e],a=s.selectedColumnKeys??[];if(!a.length)return t;const l=new Map(a.map((e,t)=>[e,t]));return t.map((e,t)=>({field:e,originalIndex:t})).filter(({field:e})=>!e.key||(!!ee(e)||l.has(e.key))).sort((e,t)=>te(e.field,e.originalIndex,l,a.length)-te(t.field,t.originalIndex,l,a.length)).map(e=>e.field)},selectSymbol:e=>{l("selectSymbol",e)},focusPosition:e=>{l("focusPosition",e)},startEditPosition:e=>{l("startEditPosition",e)},changePositionDraft:e=>{l("changePositionDraft",e)},savePositionDraft:e=>{l("savePositionDraft",e)},closePosition:e=>{l("closePosition",e)},cancelPendingOrder:e=>{l("cancelPendingOrder",e)},startEditOrder:e=>{l("startEditOrder",e)},changeOrderDraft:e=>{l("changeOrderDraft",e)},saveOrderDraft:e=>{l("saveOrderDraft",e)},changeHistoryPositionsSort:e=>{l("changeHistoryPositionsSort",e)},changeHistoryOrdersSort:e=>{l("changeHistoryOrdersSort",e)},changeHistoryDealsSort:e=>{l("changeHistoryDealsSort",e)},loadMoreHistoryPositions:()=>{l("loadMoreHistoryPositions")},loadMoreHistoryOrders:()=>{l("loadMoreHistoryOrders")},loadMoreHistoryDeals:()=>{l("loadMoreHistoryDeals")}},I=a(()=>({activeTab:L.activeTab.value,activeHistoryTab:L.activeHistoryTab.value,selectedTimeRange:L.selectedTimeRange.value,customDateRange:L.customDateRange.value,selectedColumnKeys:L.selectedColumnKeys.value,isColumnDialogOpen:L.isColumnDialogOpen.value,layout:L.layout.value}));return t(I,e=>{l("stateChange",e)},{immediate:!0}),t(L.layout,e=>{l("layoutChange",e)},{immediate:!0}),{...L,state:I}},se=e=>e,le={class:"custom-trading-table__column-dialog-content"},ie={class:"custom-trading-table__column-dialog-top"},oe={class:"custom-trading-table__column-dialog-title-group"},re={class:"custom-trading-table__column-dialog-title text-title-md"},ne={class:"custom-trading-table__column-dialog-subtitle text-body-sm"},ue={class:"custom-trading-table__column-dialog-option-label label-lg"},de={class:"custom-trading-table__column-dialog-actions"},ce={class:"text-label-md"},me=s({__name:"EaeraTradingTableColumnFilterDialog",props:{context:{}},setup(s){const p=s,{t:g}=S(),{isColumnDialogOpen:y,draftColumnOptions:v,draftCheckedColumnKeys:b,closeColumnDialog:_,updateDraftCheckedColumnKeys:f,reorderDraftColumnOptions:k,saveColumns:x}=p.context,D=a({get:()=>y.value,set:e=>{e||_()}}),C=a(()=>v.value.map(e=>({id:e.id,value:e.id,label:e.label,disabled:e.alwaysVisible,order:e.order}))),T=e([]);t(b,e=>{T.value=[...e]},{immediate:!0});const P=e=>{f(e)},H=a(()=>{const e=C.value.length>20?3:2;return{col:e,row:Math.max(1,Math.round(C.value.length/e)),autoFlow:"column"}}),w=e=>{const t=new Map(v.value.map(e=>[e.id,e])),a=e.map((e,a)=>{const s=t.get(e.id);return s?{...s,order:a}:null}).filter(e=>!!e);k(a)};return(e,t)=>{const a=l("eaera-checkbox-list"),s=z,p=V,y=M;return i(),o(y,{modelValue:D.value,"onUpdate:modelValue":t[1]||(t[1]=e=>D.value=e),class:"custom-trading-table__column-dialog","header-class":"hidden","footer-class":"hidden","destroy-on-close":"","show-close":!1,"close-on-click-modal":"","before-close":r(_),"append-body":""},{default:n(()=>[u("div",le,[u("div",ie,[u("div",oe,[u("div",re,d(r(g)("trading-table.columns.title")),1),u("div",ne,d(r(g)("trading-table.columns.desc")),1)]),u("button",{type:"button",class:"custom-trading-table__column-dialog-close",onClick:t[0]||(t[0]=(...e)=>r(_)&&r(_)(...e))},[c(r(E),{size:16})])]),c(a,{"model-value":T.value,options:C.value,draggable:"","allow-dragging-disabled":"",grid:H.value,"is-check-value-by-id":"",onUpdateValueProp:P,onReorderOptions:w},{default:n(({data:e})=>[u("span",ue,d(e.label),1)]),_:1},8,["model-value","options","grid"]),c(s,{class:"custom-trading-table__column-dialog-divider"}),u("div",de,[c(p,{class:"custom-trading-table__column-dialog-action-button",color:"contrast",onClick:r(_)},{default:n(()=>[m(d(r(g)("trading-table.columns.actions.cancel")),1)]),_:1},8,["onClick"]),c(p,{class:"custom-trading-table__column-dialog-action-button",color:"primary",onClick:r(x)},{default:n(()=>[u("span",ce,d(r(g)("trading-table.columns.actions.save")),1)]),_:1},8,["onClick"])])])]),_:1},8,["modelValue","before-close"])}}}),pe={class:"items-stretch flex min-h-10 p-1 rounded-md gap-1 bg-[--er-surface-muted]",role:"tablist","aria-label":"Trading table tabs"},ge=["onClick"],ye={class:"custom-trading-table__tab-label text-label-lg"},ve={class:"custom-trading-table__actions"},be={type:"button",class:"custom-trading-table__action-button"},_e={class:"text-label-md"},he={class:"custom-trading-table__time-range-dropdown"},fe=["onClick"],ke=["disabled"],xe={class:"text-label-md"},De=s({__name:"EaeraTradingTableHeader",props:{context:{}},emits:["heightChange"],setup(s,{emit:l}){const m=s,k=l,{t:x}=S(),{tabs:D,activeTab:C,setActiveTab:T,isHistoryTab:P,selectedTimeRange:E,timeRangeOptions:N,isExporting:$,openColumnDialog:M,setSelectedTimeRange:V,setCustomDateRange:z,triggerExportHistory:A}=m.context,U=p(null),{height:j}=H(U),q=e(!1);g(()=>{q.value=!0});const K=e(null),Y=e(null),B=e(["",""]),G=a(()=>{const e=N.value.find(e=>e.value===E.value);return e?.label??E.value}),X=e=>{B.value=["",""],V(e),K.value?.closeDropdown?.(),e===W.Custom&&Y.value?.handleOpen?.()},Z=(e,t)=>{const a=O(e),s=a.isValid()?a:O(e,"DD-MM-YYYY");return s.isValid()?`${s.format("YYYY-MM-DD")}T${t?"23:59:59.999":"00:00:00.000"}Z`:null},J=e=>O(e).isAfter(O(),"day");return t(j,e=>{k("heightChange",e)},{immediate:!0}),t(B,e=>{if(!e||2!==e.length)return;const t=Z(e[0],!1),a=Z(e[1],!0);t&&a&&z({from:t,to:a})}),(e,t)=>{const a=R,l=w;return i(),y("div",{ref_key:"headerRef",ref:U,class:"custom-trading-table__header"},[u("div",pe,[(i(!0),y(v,null,b(r(D),e=>(i(),y("button",{key:e.value,type:"button",class:_(["custom-trading-table__tab-button",{"custom-trading-table__tab-button--active":r(C)===e.value}]),onClick:t=>r(T)(e.value)},[u("span",ye,d(e.label),1)],10,ge))),128))]),u("div",ve,[r(P)?(i(),o(a,{key:0,ref_key:"timeRangeDropdownRef",ref:K,trigger:"click","popper-class":"custom-trading-table__time-range-popper"},{dropdown:n(()=>[u("div",he,[(i(!0),y(v,null,b(r(N),e=>(i(),y("button",{key:e.value,type:"button",class:_(["custom-trading-table__time-range-item text-label-md",{"custom-trading-table__time-range-item--active":r(E)===e.value},{"custom-trading-table__time-range-item--custom-divider":e.value===r(W).Custom}]),onClick:t=>X(e.value)},d(e.label),11,fe))),128))])]),default:n(()=>[u("button",be,[c(r(F),{size:14,class:"custom-trading-table__action-icon"}),u("span",_e,d(G.value),1)])]),_:1},512)):f("",!0),u("button",{type:"button",class:"custom-trading-table__action-button",onClick:t[0]||(t[0]=(...e)=>r(M)&&r(M)(...e))},[c(r(L),{size:14,class:"custom-trading-table__action-icon"}),t[3]||(t[3]=u("span",{class:"text-label-md"},"Columns",-1))]),r(P)?(i(),y("button",{key:1,type:"button",class:_(["custom-trading-table__action-button",{"custom-trading-table__action-button--disabled":r($)}]),disabled:r($),onClick:t[1]||(t[1]=(...e)=>r(A)&&r(A)(...e))},[c(r(I),{size:14,class:"custom-trading-table__action-icon"}),u("span",xe,d(r(x)("trading-table.export.title")),1)],10,ke)):f("",!0),q.value?(i(),o(l,{key:2,ref_key:"customDateRef",ref:Y,modelValue:B.value,"onUpdate:modelValue":t[2]||(t[2]=e=>B.value=e),type:"daterange",style:{display:"none"},"unlink-panels":"","disabled-date":J},null,8,["modelValue"])):f("",!0),c(me,{context:s.context},null,8,["context"])])],512)}}}),Ce=["onClick"],Te=s({__name:"EaeraTradingTableHistoryTabs",props:{context:{}},emits:["heightChange"],setup(e,{emit:a}){const s=e,l=a,{historyTabs:o,activeHistoryTab:n,setActiveHistoryTab:u}=s.context,c=p(null),{height:m}=H(c);return t(m,e=>{l("heightChange",e)},{immediate:!0}),(e,t)=>(i(),y("div",{ref_key:"historyTabsRef",ref:c,class:"custom-trading-table__history-tabs"},[(i(!0),y(v,null,b(r(o),e=>(i(),y("button",{key:e.value,type:"button",class:_(["custom-trading-table__history-tab-button text-label-md",{"custom-trading-table__history-tab-button--active":r(n)===e.value}]),onClick:t=>r(u)(e.value)},d(e.label),11,Ce))),128))],512))}}),Pe=(e,t,a={})=>{if(!t)return e;const{key:s,direction:l}=t,i=a[s]??s;return[...e].sort((e,t)=>{const a=e[i],s=t[i];if(null==a&&null==s)return 0;if(null==a)return"asc"===l?-1:1;if(null==s)return"asc"===l?1:-1;const o=Number(a),r=Number(s);if(!Number.isNaN(o)&&!Number.isNaN(r))return"asc"===l?o-r:r-o;const n=Date.parse(String(a)),u=Date.parse(String(s));if(!Number.isNaN(n)&&!Number.isNaN(u))return"asc"===l?n-u:u-n;const d=String(a).localeCompare(String(s));return"asc"===l?d:-d})},He=e=>{try{const t=e.value?.tableRef,a=t?.$el??null;return a instanceof HTMLElement?a:null}catch{return null}},Se=(e,t)=>{const a=He(e);if(!a)return[];const s=a.querySelector(".el-table__header-wrapper"),l=s?.querySelector("tr");if(!l)return[];return Array.from(l.querySelectorAll("th")).map((e,a)=>{const s=e.getBoundingClientRect().width;return{key:t.at(a)?.key??null,width:s}})},we=(e,t={isPositive:!0,returnNumber:!1})=>{const a=t.isPositive??!0,s=t.returnNumber??!1;let l=a?e.replace(/[^\d.]/g,""):e.replace(/[^\d.-]/g,"");if(!a){const e=l.startsWith("-");l=l.replace(/-/g,""),e&&(l=`-${l}`)}const i=l.startsWith("-")?"-":"",o=i?l.slice(1):l,r=o.indexOf(".");let n=o;-1!==r&&(n=o.slice(0,r+1)+o.slice(r+1).replace(/\./g,"")),l=i+n,l.startsWith(".")&&(l=`0${l}`),l.startsWith("-.")&&(l=l.replace("-.","-0."));const u=l.startsWith("-");let d=u?l.slice(1):l;if(d.startsWith("0")&&!d.startsWith("0.")&&(d=d.replace(/^0+/,"")||"0"),l=u?`-${d}`:d,!s){if(!l)return"";if("-"===l||"0."===l||"-0."===l||/^\d+\.$/.test(l)||/^-\d+\.$/.test(l))return l;const e=Number(l);return Number.isFinite(e)?a&&e<=0?"":l:""}if(!l||"-"===l||"."===l||"-."===l||l.endsWith(".")){const e=Number(l.replace(/\.$/,"")),t=Number.isFinite(e)?e:0;return a&&t<=0?0:t}const c=Number(l);let m=Number.isFinite(c)?c:0;return a&&m<=0&&(m=0),m},Re=(e,t=2,a="--")=>{const s=Number(e);return Number.isFinite(s)?s.toLocaleString("en-US",{minimumFractionDigits:t,maximumFractionDigits:t}):a},Oe={class:"trading-table__wrapper"},Ee={key:0},Fe={key:0},Le={key:0,class:"custom-trading-table__positions-actions"},Ie={key:1},Ne={class:"trading-table__empty-state"},$e={class:"trading-table__empty-text text-body-sm"},Me={class:"custom-trading-table__positions-summary"},Ve={class:"custom-trading-table__positions-summary-left"},ze={class:"custom-trading-table__summary-label text-body-sm"},Ae={class:"text-label-md"},Ue={class:"custom-trading-table__positions-summary-right"},je=s({__name:"EaeraTradingTablePositionsTable",props:{context:{}},setup(s){const l=s,{t:p}=S(),{summaryTargetId:H,layout:w,positionRows:R,positionFields:O,positionsSummary:F,selectedSymbol:L,editingPositionId:I,focusedPositionId:M,positionDraft:q,positionDraftInvalid:K,isSavingPositionDraft:W,resolveTableFields:Y,selectSymbol:B,focusPosition:G,startEditPosition:X,changePositionDraft:Z,savePositionDraft:J,closePosition:Q}=l.context,ee=e(),te=e(null),ae=e(null),se=e([]),le=e(!1),ie=e(null),oe={position_id:"id"},re=a(()=>w.value.tableHeight),ne=a(()=>Y(O.value)),ue=a(()=>Pe(R.value,ie.value,oe)),de=a(()=>{const e=Number(F.value.unrealizedPnl??0),t=F.value.unrealizedPnlDigits??2;return{left:{balance:F.value.balance,equity:F.value.equity,"used-margin":F.value.usedMargin,"free-margin":F.value.freeMargin},right:[{key:"unrealized_pnl",value:Re(e,t,"0.00"),class:`custom-trading-table__positions-summary-value text-label-md ${ye(e)}`},{key:"",value:`(${F.value.currency??"USD"})`,class:"custom-trading-table__positions-summary-currency text-label-md"}].map(e=>({...e,style:{width:`${se.value.find(t=>t.key===e.key)?.width??0}px`}}))}}),ce=a({get:()=>q.value.stopLoss,set:e=>{Z({field:"stopLoss",value:String(e??"")})}}),me=a({get:()=>q.value.takeProfit,set:e=>{Z({field:"takeProfit",value:String(e??"")})}});a(()=>ee.value?.sort??null);const pe=e=>{if(!e)return"--";const t=`trading-table.positions.${e}`,a=p(t);return a===t?e:a},ge=e=>{const t=String(e??"").toUpperCase();return"BUY"===t?"var(--er-text-success)":"SELL"===t?"var(--er-text-error)":"var(--text-primary)"},ye=e=>e>0?"custom-trading-table__positions-summary-value--positive":e<0?"custom-trading-table__positions-summary-value--negative":"custom-trading-table__positions-summary-value--neutral",ve=({key:e,direction:t})=>{ie.value=e&&t?{key:e,direction:t}:null},be=(e,t)=>{const a=we(e,{isPositive:!1});Z({field:t,value:a})},_e=e=>{const t=e.symbol,a=e.id;t&&(null!=a&&G(a),B(t))},he=e=>{const t=I.value===e.row.id,a=e.row.symbol===L.value;return[t?"editing-row":"",a?"selected":"",M.value===e.row.id&&!a?"focused":""].filter(Boolean).join(" ")},fe=async()=>{await P(),await new Promise(requestAnimationFrame),se.value=Se(ee,ne.value)};t(()=>K.value,({stopLoss:e,takeProfit:t})=>{e.value?te.value?.onOpen?.():te.value?.onClose?.(),t.value?ae.value?.onOpen?.():ae.value?.onClose?.()},{deep:!0});let ke=null;g(()=>{le.value=!0,fe();const e=He(ee);e&&(ke=new ResizeObserver(()=>fe()),ke.observe(e))}),k(()=>{ke?.disconnect()});const xe=e=>{"Enter"===e.key&&null!==I.value&&J(I.value)};return g(()=>{document.addEventListener("keyup",xe)}),x(()=>{document.removeEventListener("keyup",xe)}),(e,t)=>{const a=U,s=A,l=z,g=V;return i(),y("div",Oe,[c(r(j),{ref_key:"positionTableRef",ref:ee,class:"trading-table",items:ue.value,fields:ne.value,stripe:!1,"max-height":re.value,"hide-footer":"","allow-sort-reset":"","row-class-name":he,"onUpdate:onSortChanged":ve,onRowClick:_e},{"cell(side)":n(({item:e})=>[u("span",{style:C({color:ge(e.side)})},d(pe(e.side)),5)]),"cell(stop_loss)":n(({item:e})=>[e.id!==r(I)?(i(),y("span",Ee,d(e.stop_loss??"--"),1)):(i(),o(s,{key:1,ref_key:"stopLossTooltipRef",ref:te,"popper-class":[r(K).stopLoss.value&&"error"],content:r(K).stopLoss.message,placement:"top",trigger:"contextmenu"},{default:n(()=>[c(a,{modelValue:ce.value,"onUpdate:modelValue":t[0]||(t[0]=e=>ce.value=e),class:_(["input-position",r(K).stopLoss.value&&"error"]),onInput:t[1]||(t[1]=e=>be(e,"stopLoss"))},null,8,["modelValue","class"])]),_:1},8,["popper-class","content"]))]),"cell(take_profit)":n(({item:e})=>[e.id!==r(I)?(i(),y("span",Fe,d(e.take_profit??"--"),1)):(i(),o(s,{key:1,ref_key:"takeProfitTooltipRef",ref:ae,"popper-class":[r(K).takeProfit.value&&"error"],content:r(K).takeProfit.message,placement:"top",trigger:"contextmenu"},{default:n(()=>[c(a,{modelValue:me.value,"onUpdate:modelValue":t[2]||(t[2]=e=>me.value=e),class:_(["input-position",r(K).takeProfit.value&&"error"]),onInput:t[3]||(t[3]=e=>be(e,"takeProfit"))},null,8,["modelValue","class"])]),_:1},8,["popper-class","content"]))]),"cell(unrealized_pnl)":n(({item:e})=>{return[u("span",{style:C({color:`var(--text-${t=Number(e.unrealized_pnl??0),t>0?"success":t<0?"error":"primary"})`})},d(r(Re)(e.unrealized_pnl,2,"0.00")),5)];var t}),"cell()":n(({item:e})=>[e.id!==r(I)?(i(),y("div",Le,[c(r($),{size:18,class:"custom-trading-table__positions-edit-icon",onClick:D(t=>r(X)(e.id),["stop"])},null,8,["onClick"]),c(l,{direction:"vertical",class:"custom-trading-table__positions-divider"}),c(r(E),{size:18,class:"custom-trading-table__positions-close-icon",onClick:D(t=>r(Q)(e.id),["stop"])},null,8,["onClick"])])):(i(),y("div",Ie,[c(g,{color:"primary",class:"custom-trading-table__positions-save-button text-label-md",loading:r(W),onClick:t=>r(J)(e.id)},{default:n(()=>[m(d(r(p)("trading-table.positions.actions.save")),1)]),_:1},8,["loading","onClick"])]))]),empty:n(()=>[u("div",Ne,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",$e,d(r(p)("trading-table.empty.positions")),1)])]),_:1},8,["items","fields","max-height"]),le.value?(i(),o(T,{key:0,to:`#${r(H)}`},[u("div",Me,[u("div",Ve,[(i(!0),y(v,null,b(de.value.left,(e,t)=>(i(),y("span",{key:t,class:"custom-trading-table__positions-summary-item"},[u("span",ze,d(r(p)(`trading-table.positions.summary.${t}`))+": ",1),u("span",Ae,d(r(Re)(e,2,"0.00")),1)]))),128))]),u("div",Ue,[(i(!0),y(v,null,b(de.value.right,e=>(i(),y("div",{key:e.key,class:_(e.class),style:C(e.style)},d(e.value),7))),128))])])],8,["to"])):f("",!0)])}}}),qe={class:"trading-table__wrapper"},Ke={key:0},We={key:0,class:"custom-trading-table__positions-actions"},Ye={key:1},Be={class:"trading-table__empty-state"},Ge={class:"trading-table__empty-text text-body-sm"},Xe=s({__name:"EaeraTradingTablePendingTable",props:{context:{}},setup(s){const l=s,{t:p}=S(),{pendingRows:g,pendingFields:v,layout:b,editingOrderId:f,orderDraft:k,orderDraftInvalid:x,resolveTableFields:T,selectSymbol:P,cancelPendingOrder:H,startEditOrder:w,changeOrderDraft:R,saveOrderDraft:O}=l.context,F=e(),L=e(null),I={order_id:"id"},M=a(()=>b.value.tableHeight),q=a(()=>T(v.value)),K=a(()=>Pe(g.value,L.value,I));a(()=>F.value?.sort??null);const W=e=>{if(!e)return"--";const t=`trading-table.pending.${e}`,a=p(t);return a===t?e:a},Y=e=>{const t=String(e??"").toUpperCase();return"BUY"===t?"var(--er-text-success)":"SELL"===t?"var(--er-text-error)":"var(--text-primary)"},B=({key:e,direction:t})=>{L.value=e&&t?{key:e,direction:t}:null},G=e=>{const t=e.symbol;t&&P(t)},X=a({get:()=>k.value.price,set:e=>{R({field:"price",value:String(e??"")})}}),Z=e(null);return t(()=>x.value.price,e=>{e.value?Z.value?.onOpen?.():Z.value?.onClose?.()},{deep:!0}),(e,t)=>{const a=U,s=A,l=z,g=V;return i(),y("div",qe,[c(r(j),{ref_key:"pendingTableRef",ref:F,class:"trading-table",items:K.value,fields:q.value,stripe:!1,"max-height":M.value,"hide-footer":"","allow-sort-reset":"","onUpdate:onSortChanged":B,onRowClick:G},{"cell(side)":n(({item:e})=>[u("span",{style:C({color:Y(e.side)})},d(W(e.side)),5)]),"cell(price)":n(({item:e})=>[e.id!==r(f)?(i(),y("span",Ke,d(e.price??"--"),1)):(i(),o(s,{key:1,ref_key:"priceTooltipRef",ref:Z,"popper-class":[r(x).price.value&&"error"],content:r(x).price.message,placement:"top",trigger:"contextmenu"},{default:n(()=>[c(a,{modelValue:X.value,"onUpdate:modelValue":t[0]||(t[0]=e=>X.value=e),class:_(["input-position",r(x).price.value&&"error"]),onInput:t[1]||(t[1]=e=>((e,t)=>{const a=we(e,{isPositive:!1});R({field:t,value:a})})(e,"price"))},null,8,["modelValue","class"])]),_:1},8,["popper-class","content"]))]),"cell()":n(({item:e})=>[e.id!==r(f)?(i(),y("div",We,[c(r($),{size:18,class:"custom-trading-table__positions-edit-icon",onClick:D(t=>r(w)(e.id),["stop"])},null,8,["onClick"]),c(l,{direction:"vertical",class:"custom-trading-table__positions-divider"}),c(r(E),{size:18,color:"var(--icon-error)",class:"custom-trading-table__pending-cancel-icon",onClick:D(t=>r(H)(e.id),["stop"])},null,8,["onClick"])])):(i(),y("div",Ye,[c(g,{color:"primary",class:"custom-trading-table__positions-save-button text-label-md",onClick:t=>r(O)(e.id)},{default:n(()=>[...t[2]||(t[2]=[m(" Save ",-1)])]),_:1},8,["onClick"])]))]),empty:n(()=>[u("div",Be,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",Ge,d(r(p)("trading-table.empty.pending")),1)])]),_:1},8,["items","fields","max-height"])])}}}),Ze={class:"trading-table__empty-state"},Je={class:"trading-table__empty-text text-body-sm"},Qe={class:"custom-trading-table__history-deals-summary"},et={class:"custom-trading-table__history-summary-left"},tt={class:"custom-trading-table__summary-label text-body-sm"},at={class:"custom-trading-table__history-summary-right"},st=s({__name:"EaeraTradingTableHistoryDealsTable",props:{context:{}},setup(s){const l=s,{t:p}=S(),{summaryTargetId:f,layout:x,historyDealRows:D,historyDealFields:H,historyDealsSummary:w,resolveTableFields:R,changeHistoryDealsSort:O,loadMoreHistoryDeals:E}=l.context,F=e(),L=e(null),I=e([]),$=a(()=>x.value.tableHeight),M=a(()=>D.value),V=a(()=>R(H.value)),z=a(()=>{const e=Number(w.value.tradeProfit??0),t=Number(w.value.totalFee??0),a=Number(w.value.totalProfit??0);return{left:{key:"total-profit",value:e,class:q(e)},right:[{key:"fee",value:Re(t,2,"0.00"),class:`custom-trading-table__history-summary-cell text-label-md ${q(t)}`},{key:"profit",value:Re(a,2,"0.00"),class:`custom-trading-table__history-summary-cell text-label-md ${q(a)}`},{key:"",value:`(${w.value.currency??"USD"})`,class:"custom-trading-table__history-summary-currency text-label-md"}].map(e=>({...e,style:{width:`${I.value.find(t=>t.key===e.key)?.width??0}px`}}))}}),A=a(()=>F.value?.sort??null),U=e=>{if(!e)return"--";const t=`trading-table.history.deals.type.${e}`,a=p(t);return a===t?e:a},q=e=>e>0?"custom-trading-table__history-summary-value--positive":e<0?"custom-trading-table__history-summary-value--negative":"custom-trading-table__history-summary-value--neutral",K=()=>{const e=L.value;e&&((e,t=50)=>{const{scrollTop:a,clientHeight:s,scrollHeight:l}=e;return a+s>=l-t})(e)&&E()},W=()=>{K()};let Y=null;const B=()=>{null==Y&&(Y=requestAnimationFrame(()=>{Y=null,K()}))},G=async()=>{await P(),await new Promise(requestAnimationFrame),I.value=Se(F,V.value)};t(A,e=>{e&&O(e.key?{sort_by:e.key,sort_direction:e.direction}:{})},{deep:!0});let X=null;return g(async()=>{G();const e=He(F);e&&(X=new ResizeObserver(()=>G()),X.observe(e)),await P(),(()=>{const e=He(F);if(!e)return;const t=e.querySelector(".el-scrollbar__wrap");t&&(L.value=t,t.addEventListener("scroll",W,{passive:!0}),t.addEventListener("wheel",B,{passive:!0}))})()}),k(()=>{X?.disconnect(),(()=>{const e=L.value;e&&(e.removeEventListener("scroll",W),e.removeEventListener("wheel",B),L.value=null)})()}),(e,t)=>(i(),y("div",{style:C({height:`${$.value}px`})},[c(r(j),{ref_key:"dealHistoryRef",ref:F,class:"trading-table custom-trading-table__history-table",items:M.value,fields:V.value,stripe:!1,"max-height":$.value,"hide-footer":"","allow-sort-reset":""},{"cell(deal_type)":n(({item:e})=>{return[u("span",{style:C({color:(t=e.deal_type,"SELL"===String(t??"").toUpperCase()?"var(--er-text-error)":"var(--er-text-success)")})},d(U(e.deal_type)),5)];var t}),"cell(profit)":n(({item:e})=>[u("span",{class:_(q(Number(e.profit??0)))},d(r(Re)(e.profit,2,"0.00")),3)]),"cell(c)":n(({item:e})=>[m(d(e.currency),1)]),empty:n(()=>[u("div",Ze,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",Je,d(r(p)("trading-table.empty.history-deals")),1)])]),_:1},8,["items","fields","max-height"]),(i(),o(T,{to:`#${r(f)}`},[u("div",Qe,[u("div",et,[u("span",tt,d(r(p)(`trading-table.history.summary.deals.${z.value.left.key}`))+": ",1),u("span",{class:_(["text-label-md",z.value.left.class])},d(r(Re)(z.value.left.value,2,"0.00")),3)]),u("div",at,[(i(!0),y(v,null,b(z.value.right,e=>(i(),y("div",{key:e.key,class:_(e.class),style:C(e.style)},d(e.value),7))),128))])])],8,["to"]))],4))}}),lt={class:"trading-table__empty-state"},it={class:"trading-table__empty-text text-body-sm"},ot={class:"custom-trading-table__history-orders-summary"},rt={key:0,class:"custom-trading-table__history-orders-summary-item"},nt={class:"custom-trading-table__summary-label text-body-sm"},ut={class:"text-label-md"},dt=s({__name:"EaeraTradingTableHistoryOrdersTable",props:{context:{}},setup(s){const l=s,{t:m}=S(),{summaryTargetId:p,layout:_,historyOrderRows:x,historyOrderFields:D,historyOrdersSummary:H,resolveTableFields:w,changeHistoryOrdersSort:R,loadMoreHistoryOrders:O}=l.context,E=e(),F=e(null),L=a(()=>_.value.tableHeight),I=a(()=>x.value),$=a(()=>w(D.value)),M=a(()=>H.value),V=a(()=>E.value?.sort??null),z=e=>{if(!e)return"--";const t=`trading-table.history.orders.side.${e}`,a=m(t);return a===t?e:a},A=()=>{const e=F.value;e&&((e,t=50)=>{const{scrollTop:a,clientHeight:s,scrollHeight:l}=e;return a+s>=l-t})(e)&&O()},U=()=>{A()};let q=null;const K=()=>{null==q&&(q=requestAnimationFrame(()=>{q=null,A()}))};return t(V,e=>{e&&R(e.key?{sort_by:e.key,sort_direction:e.direction}:{})},{deep:!0}),g(async()=>{await P(),(()=>{const e=He(E);if(!e)return;const t=e.querySelector(".el-scrollbar__wrap");t&&(F.value=t,t.addEventListener("scroll",U,{passive:!0}),t.addEventListener("wheel",K,{passive:!0}))})()}),k(()=>{(()=>{const e=F.value;e&&(e.removeEventListener("scroll",U),e.removeEventListener("wheel",K),F.value=null)})()}),(e,t)=>(i(),y("div",{style:C({height:`${L.value}px`})},[c(r(j),{ref_key:"orderHistoryRef",ref:E,class:"trading-table custom-trading-table__history-table",items:I.value,fields:$.value,stripe:!1,"max-height":L.value,"hide-footer":"","allow-sort-reset":""},{"cell(side)":n(({item:e})=>[u("span",{style:C({color:`var(--icon-${"SELL"===String(e.side).toUpperCase()?"error":"success"})`})},d(z(e.side)),5)]),empty:n(()=>[u("div",lt,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",it,d(r(m)("trading-table.empty.history-orders")),1)])]),_:1},8,["items","fields","max-height"]),(i(),o(T,{to:`#${r(p)}`},[u("div",ot,[(i(!0),y(v,null,b(M.value,(e,t)=>(i(),y(v,{key:t},[e?(i(),y("span",rt,[u("span",nt,d(r(m)(`trading-table.history.summary.orders.${t}`))+": ",1),u("span",ut,d(e),1)])):f("",!0)],64))),128))])],8,["to"]))],4))}}),ct={class:"custom-trading-table__type-cell"},mt={class:"custom-trading-table__text-error"},pt={class:"trading-table__empty-state"},gt={class:"trading-table__empty-text text-body-sm"},yt={class:"custom-trading-table__positions-summary"},vt={class:"custom-trading-table__positions-summary-left"},bt={class:"custom-trading-table__summary-label text-body-sm"},_t={class:"text-label-md"},ht={class:"custom-trading-table__positions-summary-currency text-label-md"},ft=s({__name:"EaeraTradingTableHistoryPositionsTable",props:{context:{}},setup(s){const l=s,{t:m}=S(),{summaryTargetId:p,layout:f,historyPositionRows:x,historyPositionFields:D,positionsSummary:H,resolveTableFields:w,changeHistoryPositionsSort:R,loadMoreHistoryPositions:O}=l.context,F=e(),L=e(null),I=a(()=>f.value.tableHeight),$=a(()=>x.value),M=a(()=>w(D.value)),V=a(()=>[{key:"balance",label:m("trading-table.positions.summary.balance"),value:Re(H.value.balance,2,"0.00")},{key:"equity",label:m("trading-table.positions.summary.equity"),value:Re(H.value.equity,2,"0.00")},{key:"used-margin",label:m("trading-table.positions.summary.used-margin"),value:Re(H.value.usedMargin,2,"0.00")},{key:"free-margin",label:m("trading-table.positions.summary.free-margin"),value:Re(H.value.freeMargin,2,"0.00")},{key:"margin-level",label:m("trading-table.positions.summary.margin-level"),value:"--"}]),z=a(()=>F.value?.sort??null),A=e=>{if(!e)return"--";const t=String(e).toUpperCase();return"BUY"===t?"Buy":"SELL"===t?"Sell":e},U=e=>{const t=String(e??"").trim(),a=Number(t.replaceAll(",",""));return Number.isFinite(a)?a>0?"custom-trading-table__text-success":a<0?"custom-trading-table__text-error":"":t.startsWith("+")?"custom-trading-table__text-success":t.startsWith("-")?"custom-trading-table__text-error":""},q=()=>{const e=L.value;e&&((e,t=50)=>{const{scrollTop:a,clientHeight:s,scrollHeight:l}=e;return a+s>=l-t})(e)&&O()},K=()=>{q()};let W=null;const Y=()=>{null==W&&(W=requestAnimationFrame(()=>{W=null,q()}))};return t(z,e=>{e&&R(e.key?{sort_by:e.key,sort_direction:e.direction}:{})},{deep:!0}),g(async()=>{await P(),(()=>{const e=He(F);if(!e)return;const t=e.querySelector(".el-scrollbar__wrap");t&&(L.value=t,t.addEventListener("scroll",K,{passive:!0}),t.addEventListener("wheel",Y,{passive:!0}))})()}),k(()=>{(()=>{const e=L.value;e&&(e.removeEventListener("scroll",K),e.removeEventListener("wheel",Y),L.value=null)})()}),(e,t)=>(i(),y("div",{style:C({height:`${I.value}px`})},[c(r(j),{ref_key:"positionHistoryRef",ref:F,class:"trading-table custom-trading-table__history-table",items:$.value,fields:M.value,stripe:!1,"max-height":I.value,"hide-footer":"","allow-sort-reset":""},{"cell(type)":n(({item:e})=>[u("div",ct,[u("span",{class:_(["custom-trading-table__type-dot","SELL"===e.type?"custom-trading-table__type-dot--sell":"custom-trading-table__type-dot--buy"])},null,2),u("span",{class:_(["SELL"===e.type?"custom-trading-table__text-error":"custom-trading-table__text-success"])},d(A(e.type)),3)])]),"cell(stop_loss)":n(({item:e})=>[u("span",{class:_(["custom-trading-table__price-chip",e.isSlAlert?"custom-trading-table__price-chip--danger":""])},d(e.stop_loss),3)]),"cell(take_profit)":n(({item:e})=>[u("span",{class:_(["custom-trading-table__price-chip",e.isTpHit?"custom-trading-table__price-chip--success":""])},d(e.take_profit),3)]),"cell(commission)":n(({item:e})=>[u("span",mt,d(e.commission),1)]),"cell(profit_loss)":n(({item:e})=>[u("span",{class:_(U(e.profit_loss))},d(e.profit_loss),3)]),"cell()":n(()=>[c(r(E),{size:12,class:"custom-trading-table__pending-cancel-icon"})]),empty:n(()=>[u("div",pt,[c(r(N),{size:32,class:"trading-table__empty-icon"}),u("span",gt,d(r(m)("trading-table.empty.history-positions")),1)])]),_:1},8,["items","fields","max-height"]),(i(),o(T,{to:`#${r(p)}`},[u("div",yt,[u("div",vt,[(i(!0),y(v,null,b(V.value,e=>(i(),y("span",{key:e.key,class:"custom-trading-table__positions-summary-item"},[u("span",bt,d(e.label)+":",1),u("span",_t,d(e.value),1)]))),128)),u("span",ht," ("+d(r(H).currency??"USD")+") ",1)])])],8,["to"]))],4))}}),kt=s({__name:"EaeraTradingTableHistoryContent",props:{context:{}},setup(e){const t=e,{activeHistoryTab:a}=t.context;return(t,s)=>r(a)===r(K).Positions?(i(),o(ft,{key:0,context:e.context},null,8,["context"])):r(a)===r(K).Funding||r(a)===r(K).Orders?(i(),o(dt,{key:1,context:e.context},null,8,["context"])):(i(),o(st,{key:2,context:e.context},null,8,["context"]))}}),xt={class:"custom-trading-table__main"},Dt={class:"custom-trading-table__content"},Ct={class:"custom-trading-table__table-content"},Tt={class:"custom-trading-table__table-area"},Pt=["id"],Ht=s({__name:"index",props:{activeTab:{default:q.Positions},activeHistoryTab:{default:K.Positions},selectedTimeRange:{default:"last-week"},customDateRange:{default:null},tabs:{},historyTabs:{},timeRangeOptions:{},columnOptions:{},selectedColumnKeys:{default:()=>[]},positionsCount:{default:0},pendingCount:{default:0},isExporting:{type:Boolean,default:!1},hiddenSummaryTabs:{default:()=>[q.Pending]},summaryTargetId:{default:"trading-table-summary"},positionRows:{default:()=>[]},pendingRows:{default:()=>[]},historyPositionRows:{default:()=>[]},historyOrderRows:{default:()=>[]},historyDealRows:{default:()=>[]},positionFields:{default:()=>[]},pendingFields:{default:()=>[]},historyPositionFields:{default:()=>[]},historyOrderFields:{default:()=>[]},historyDealFields:{default:()=>[]},selectedSymbol:{default:null},editingPositionId:{default:null},focusedPositionId:{},editingOrderId:{},positionDraft:{default:()=>({stopLoss:"",takeProfit:""})},positionDraftInvalid:{default:()=>({stopLoss:{value:!1,message:""},takeProfit:{value:!1,message:""}})},orderDraft:{},orderDraftInvalid:{},isSavingPositionDraft:{type:Boolean,default:!1},positionsSummary:{default:()=>({})},historyPositionsSummary:{default:()=>({})},historyOrdersSummary:{default:()=>({})},historyDealsSummary:{default:()=>({})}},emits:["changeTab","changeHistoryTab","changeTimeRange","changeCustomDateRange","changeColumns","exportHistory","selectSymbol","focusPosition","startEditPosition","changePositionDraft","savePositionDraft","closePosition","cancelPendingOrder","startEditOrder","changeOrderDraft","saveOrderDraft","changeHistoryPositionsSort","changeHistoryOrdersSort","changeHistoryDealsSort","loadMoreHistoryPositions","loadMoreHistoryOrders","loadMoreHistoryDeals","stateChange","layoutChange"],setup(e,{expose:a,emit:s}){const l=ae(e,s),{activeTab:n,isHistoryTab:d,isSummaryVisible:m,summaryTargetId:g,setWrapperHeight:v,setHeaderHeight:b,setHistoryTabsHeight:_,setFooterHeight:k}=l,x=p(null),D=p(null),{height:T}=H(x),{height:P}=H(D);return t(T,e=>{v(e)},{immediate:!0}),t([P,m],([e,t])=>{k(t?e:0)},{immediate:!0}),t(d,e=>{e||_(0)},{immediate:!0}),a({openColumnDialog:l.openColumnDialog,closeColumnDialog:l.closeColumnDialog}),(e,t)=>(i(),y("div",{ref_key:"tradingTableRef",ref:x,class:"custom-trading-table"},[u("div",xt,[c(r(De),{context:r(l),onHeightChange:r(b)},null,8,["context","onHeightChange"]),u("div",Dt,[r(d)?(i(),o(r(Te),{key:0,context:r(l),onHeightChange:r(_)},null,8,["context","onHeightChange"])):f("",!0),u("div",Ct,[u("div",Tt,[r(n)===r(q).Positions?(i(),o(r(je),{key:0,context:r(l)},null,8,["context"])):r(n)===r(q).Pending?(i(),o(r(Xe),{key:1,context:r(l)},null,8,["context"])):(i(),o(r(kt),{key:2,context:r(l)},null,8,["context"]))]),u("div",{ref_key:"summaryRef",ref:D,class:"custom-trading-table__summary body-sm",style:C(r(m)?{}:{display:"none"})},[u("div",{id:r(g),class:"custom-trading-table__summary-target"},null,8,Pt)],4)])])])],512))}});export{K as E,Ht as _,q as a,W as b,ae as p,se as u};
@@ -1 +1 @@
1
- import{computed as e,provide as t,inject as l,defineComponent as o,shallowRef as s,ref as a,watch as i,resolveComponent as r,openBlock as c,createElementBlock as n,createElementVNode as m,createVNode as u,unref as d,createSlots as p,withCtx as v,toDisplayString as y,normalizeClass as b,normalizeStyle as g,Fragment as w,renderList as _,createBlock as f,withDirectives as S,withModifiers as k}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import x from"../composite/EaeraDropdownV2.mjs";import{_ as I}from"./EaeraInput-CkbcAxy0.mjs";import{useI18n as E}from"vue-i18n";import"element-plus";import{ElLoadingDirective as H}from"element-plus/es";import"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import{_ as R}from"./EaeraTableV2-UqRwaevh.mjs";import{_ as D}from"./EaeraTooltip-BIlULHv4.mjs";const G=Symbol("EAERA_WATCHLIST_CONTEXT_KEY"),T=(l,o)=>{const s={inputPlaceholder:e(()=>l.inputPlaceholder),searchData:e(()=>l.searchData),categories:e(()=>l.categories),selectedCategory:e(()=>l.selectedCategory),isFiltered:e(()=>l.isFiltered),tableHeight:e(()=>l.tableHeight),viewingSymbols:e(()=>l.viewingSymbols),viewingSymbolGroups:e(()=>l.viewingSymbolGroups),listSymbols:e(()=>l.listSymbols),groupLoadingRowIds:e(()=>l.groupLoadingRowIds),favoriteSymbolIds:e(()=>l.favoriteSymbolIds),viewingSymbolId:e(()=>l.viewingSymbolId),listSymbolsLoading:e(()=>l.listSymbolsLoading),sorting:e(()=>l.sorting),onResize:(e,t)=>o("resize",e,t),onSelectCategory:e=>o("selectCategory",e),onSearchDataUpdate:e=>o("update:searchData",e),onGroupExpandChange:e=>o("groupExpandChange",e),onGroupRowClick:e=>o("groupRowClick",e),onGroupSortChanged:e=>o("groupSortChanged",e),onItemSortChanged:e=>o("itemSortChanged",e),onSelectSymbol:e=>o("selectSymbol",e),onToggleFavorite:e=>o("toggleFavorite",e),onShowSymbolInfo:e=>o("showSymbolInfo",e)};return t(G,s),s},j=()=>{const e=l(G);if(!e)throw new Error("useEaeraWatchlist must be used inside EaeraWatchlist");return e},W={class:"custom-watchlist-filter"},F={class:"custom-watchlist-filter__row"},L={class:"custom-watchlist-filter__field"},z={class:"custom-watchlist-filter__field"},U=["onClick"],A={class:"custom-watchlist-filter__category-count"},N={class:"custom-watchlist-filter__dropdown-trigger-content"},B={key:0,class:"custom-watchlist-filter__selected"},V={key:1,class:"custom-watchlist-filter__placeholder"},P=o({__name:"EaeraWatchlistFilter",setup(e){const{inputPlaceholder:t,searchData:l,categories:o,selectedCategory:f,onSelectCategory:S,onSearchDataUpdate:k}=j(),C=s(),E=a(!1),H=a(!1),R=a(""),D=a(!1);i(l,e=>{e!==R.value&&(R.value=e)},{immediate:!0});const G=e=>{D.value||k(e)},T=()=>D.value=!0,P=e=>k(e.data),K=e=>{D.value=!1;const t=e.data??R.value;k(t)};return(e,s)=>{const a=r("eaera-icon"),i=I,k=x;return c(),n("div",W,[m("div",F,[m("div",L,[u(i,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=e=>R.value=e),class:"watchlist-input",placeholder:d(t),clearable:"",onInput:G,onCompositionstart:T,onCompositionupdate:P,onCompositionend:K},p({_:2},[d(l)?void 0:{name:"suffix",fn:v(()=>[u(a,{icon:"Search2",size:"16",class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"])]),m("div",z,[u(k,{class:"custom-watchlist-filter__dropdown","popper-class":"with-border",onVisibleChange:s[4]||(s[4]=e=>E.value=e)},{dropdown:v(()=>[m("div",{class:"custom-watchlist-filter__dropdown-menu",style:g({width:`${C.value?.clientWidth??100}px`})},[(c(!0),n(w,null,_(d(o),e=>(c(),n("div",{key:e.id,class:"custom-watchlist-filter__category"},[m("div",{class:"custom-watchlist-filter__category-content label-md",onClick:t=>d(S)(e)},[m("div",null,y(e.name),1),m("div",A,y(e.count),1)],8,U)]))),128))],4)]),default:v(()=>[m("div",{ref_key:"dropdownRef",ref:C,class:"custom-watchlist-filter__dropdown-trigger"},[m("div",N,[d(f)?.name?(c(),n("span",B,y(d(f).name),1)):(c(),n("span",V,y(e.$t("watch-list.filter.categories")),1)),m("div",{class:"custom-watchlist-filter__icon-wrapper",onMouseenter:s[1]||(s[1]=e=>H.value=!0),onMouseleave:s[2]||(s[2]=e=>H.value=!1),onClick:s[3]||(s[3]=e=>d(S)(null))},[u(a,{icon:H.value&&d(f)?"XCircle":"ChevronDown",size:"16",class:b(["icon-primary","custom-watchlist-filter__dropdown-icon",E.value&&"is-open"])},null,8,["icon","class"])],32)])],512)]),_:1})])])])}}}),K={class:"custom-watchlist-table"},M={key:0,class:"custom-watchlist-table__group"},O={key:1,class:"custom-watchlist-table__items"},$=o({__name:"EaeraWatchlistTable",setup(e){const{isFiltered:t,tableHeight:l,viewingSymbols:o,listSymbolsLoading:s}=j();return(e,a)=>(c(),n("div",K,[d(t)?(c(),n("div",O,[u(d(de),{symbols:d(o),"max-height":d(l),loading:d(s),"show-header":""},null,8,["symbols","max-height","loading"])])):(c(),n("div",M,[u(d(te))]))]))}}),X={class:"custom-watchlist-group-table__symbol-cell"},Y={class:"custom-watchlist-group-table__symbol body-md__w"},q={class:"custom-watchlist-group-table__name body-sm"},J={key:0},Q={class:"custom-watchlist-group-table__empty"},Z={class:"custom-watchlist-group-table__empty-content"},ee={class:"custom-watchlist-group-table__empty-text body-sm"},te=o({__name:"EaeraWatchlistGroupTable",setup(t){const{tableHeight:l,viewingSymbolGroups:o,listSymbols:s,groupLoadingRowIds:p,sorting:b,onGroupExpandChange:g,onGroupRowClick:w,onGroupSortChanged:_}=j(),{t:S}=E(),k=a(),C=({columnIndex:e})=>0===e?[1,1]:1===e?[1,4]:[0,0],x=e=>{g(e)},I=async e=>{await w(e),k.value?.rowExpansion(e)},H=e(()=>[{key:"expand",type:"expand",width:30},{key:"ticker_symbol",label:S("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",cellClass:"py-0",minWidth:100},{key:"last",label:S("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",minWidth:110},{key:"volume",label:S("watch-list.table.volume"),sortable:!0,sort_key:"volume",align:"right",minWidth:100}]),D=e(()=>k.value?.sort),G=e=>{_(e)},T=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2",W=({row:e})=>p.value.includes(e.id)?"loading-row":"";return i(b,e=>{e||k.value?.sortTable("",null)}),(e,t)=>{const a=r("NoData"),i=r("eaera-icon");return c(),f(d(R),{ref_key:"watchListTableRef",ref:k,class:"watchlist-table","max-height":d(l),items:d(o),fields:H.value,"span-method":C,stripe:!1,"hide-footer":"","row-class-name":W,onRowClick:I,onExpandChange:x,"onUpdate:onSortChanged":G},{"cell(ticker_symbol)":v(({item:e})=>[m("div",X,[m("div",Y,y(e.host_exchange)+":"+y(e.base_symbol),1),m("div",q,y(e.name),1)])]),"cell(expand)":v(({row:e})=>[d(p).includes(e.id)?(c(),n("div",J)):(c(),f(d(de),{key:1,symbols:d(s)[e.id]||[],"inside-group":""},null,8,["symbols"]))]),empty:v(()=>[m("div",Q,[m("div",Z,[u(a),m("span",ee,y(d(S)("watch-list.table.empty.group")),1)])])]),"sort-icon":v(({sortKey:e,direction:t})=>[u(i,{icon:T(e,t,D.value),size:"14",class:"custom-watchlist-group-table__sort-icon","active-color":"var(--primary-green)"},null,8,["icon"])]),_:1},8,["max-height","items","fields"])}}});var le=(e=>(e.Active="active",e.MarketClosed="market-closed",e.Expired="expired",e.NotTradableYet="not-tradable-yet",e))(le||{});const oe={class:"custom-watchlist-item-table__symbol-cell"},se={class:"custom-watchlist-item-table__symbol-main body-md__w"},ae=["onClick"],ie={class:"custom-watchlist-item-table__description-row body-sm"},re={style:{width:"100%"}},ce={style:{width:"100%"}},ne={key:0},me={class:"custom-watchlist-item-table__empty-content"},ue={class:"custom-watchlist-item-table__empty-text body-sm"},de=o({__name:"EaeraWatchlistItemTable",props:{insideGroup:{type:Boolean},symbols:{},maxHeight:{},showHeader:{type:Boolean},loading:{type:Boolean}},setup(t){const{favoriteSymbolIds:l,viewingSymbolId:o,sorting:s,selectedCategory:p,listSymbolsLoading:w,onItemSortChanged:_,onSelectSymbol:C,onToggleFavorite:x,onShowSymbolInfo:I}=j(),{t:G}=E(),T=t,W=a(),F=a(null),L=e(()=>[{key:"",label:"",width:30},{key:"ticker_symbol",label:G("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",align:"left",minWidth:100},{key:"last",label:G("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",customHeaderClass:"flex justify-end items-center",minWidth:110},{key:"volume",label:G("watch-list.table.volume"),sortable:!0,sort_key:"volume",customHeaderClass:"flex justify-end items-center",minWidth:100,align:"right"}]),z=e(()=>F.value?"ticker_symbol"===F.value.key?[...T.symbols].sort((e,t)=>{const l=e.ticker_symbol.toUpperCase(),o=t.ticker_symbol.toUpperCase();return l<o?"desc"===F.value?.direction?-1:1:l>o?"desc"===F.value?.direction?1:-1:0}):"volume"===F.value.key?[...T.symbols].sort((e,t)=>e.volume<t.volume?"asc"===F.value?.direction?-1:1:e.volume>t.volume?"asc"===F.value?.direction?1:-1:0):"last"===F.value.key?[...T.symbols].sort((e,t)=>{const l=Number(e.last),o=Number(t.last);return l<o?"asc"===F.value?.direction?-1:1:l>o?"asc"===F.value?.direction?1:-1:0}):T.symbols:T.symbols),U=e(()=>e=>l.value.includes(e.id)?{icon:"Star3",color:"#FFD700"}:{icon:"StarOutline",color:"var(--primary-green)"}),A=e(()=>W.value?.sort),N=e(()=>T.insideGroup?T.loading:w.value),B=e=>e!==le.Active,V=({key:e,direction:t})=>{e&&t?(F.value={key:e,direction:t,selfSort:!0},_({key:e,direction:t})):(F.value?.selfSort&&_(null),F.value=null)},P=e=>{C(e)},K=({row:e})=>e.id===o.value?"active-row":"",M=(e,t)=>{if(t&&t!==le.Active)return"var(--text-disabled)";const l=Number(e);return l>0?"var(--text-green)":l<0?"var(--text-red)":"var(--text-primary)"},O=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2";return i(W,e=>{e&&(T.insideGroup||s.value&&(e.sortTable("",s.value.sort_by),F.value={key:s.value.sort_by,direction:s.value.order,selfSort:!1}))}),i(()=>p.value?.id,()=>F.value=null),(e,t)=>{const l=r("eaera-icon"),o=D,s=r("client-only"),a=H;return c(),f(s,null,{default:v(()=>[S((c(),n("div",null,[u(d(R),{ref_key:"watchListTableRef",ref:W,class:b(["expanding-rows-table watchlist-table expanded",[!z.value?.length&&!T.insideGroup&&"empty",T.insideGroup&&"inside-group"]]),"allow-sort-reset":"","hide-footer":"","max-height":T.maxHeight,height:T.maxHeight,"show-header":T.showHeader,items:z.value,fields:L.value,stripe:!1,"row-class-name":K,loading:N.value,"onUpdate:onSortChanged":V,onOnRowClick:P},{"cell()":v(({item:e})=>[m("div",null,[u(l,{icon:"Info",size:"16",class:b(["custom-watchlist-item-table__info-icon",B(e.state)&&"is-disabled"]),onClick:k(t=>(async e=>{const t=T.symbols.find(t=>t.id===e);t&&await I(t)})(e.id),["stop"])},null,8,["class","onClick"])])]),"cell(ticker_symbol)":v(({item:e})=>[m("div",oe,[m("div",se,[m("span",{class:b(["custom-watchlist-item-table__symbol-text",B(e.state)&&"is-inactive"])},y(e.ticker_symbol),3),m("div",{class:"custom-watchlist-item-table__favorite",onClick:k(t=>{return l=e.id,void x(l);var l},["stop"])},[u(l,{icon:U.value(e).icon,color:U.value(e).color,size:"16"},null,8,["icon","color"])],8,ae)]),m("div",ie,[u(o,{content:e.description,placement:"right"},{default:v(()=>[m("span",{class:b(["custom-watchlist-item-table__description-text",B(e.state)&&"is-inactive"])},y(e.description),3)]),_:2},1032,["content"])])])]),"cell(last)":v(({item:e})=>[m("div",{style:g({color:M(e.last,e.state),width:"100%"})},[m("div",re,[m("div",null,y(e.last),1)])],4)]),"cell(volume)":v(({item:e})=>[m("div",{style:g({color:M(e.volume,e.state),width:"100%"})},[m("div",ce,[m("div",null,y(e.volume),1)])],4)]),empty:v(()=>[N.value?(c(),n("div",ne)):(c(),n("div",{key:1,class:"custom-watchlist-item-table__empty",style:g({height:T.maxHeight?`calc(${T.maxHeight} - 32px)`:"auto"})},[m("div",me,[m("span",ue,y(d(G)("watch-list.table.empty.symbol")),1)])],4))]),"sort-icon":v(({sortKey:e,direction:t})=>[u(l,{icon:O(e,t,A.value),size:"14",class:"custom-watchlist-item-table__sort-icon","active-color":"var(--icon-success)"},null,8,["icon"])]),_:1},8,["class","max-height","height","show-header","items","fields","loading"])])),[[a,N.value]])]),_:1})}}}),pe={class:"custom-watchlist__table"},he=o({__name:"index",props:{inputPlaceholder:{},searchData:{},categories:{},selectedCategory:{},isFiltered:{type:Boolean},tableHeight:{},viewingSymbols:{},viewingSymbolGroups:{},listSymbols:{},groupLoadingRowIds:{},favoriteSymbolIds:{},viewingSymbolId:{},listSymbolsLoading:{type:Boolean},sorting:{}},emits:["resize","selectCategory","update:searchData","groupExpandChange","groupRowClick","groupSortChanged","itemSortChanged","selectSymbol","toggleFavorite","showSymbolInfo"],setup(e,{emit:t}){const l=s(null),o=s(null),{width:a,height:r}=C(l),p=T(e,t);return i([a,r],()=>{l.value&&o.value&&p.onResize(a.value,r.value-o.value.clientHeight)}),(e,t)=>(c(),n("div",{ref_key:"watchlistRef",ref:l,class:"custom-watchlist"},[m("div",{ref_key:"watchlistFilterRef",ref:o,class:"custom-watchlist__filter"},[u(d(P))],512),m("div",pe,[u(d($))])],512))}});export{le as S,he as _,T as p,j as u};
1
+ import{computed as e,provide as t,inject as l,defineComponent as o,shallowRef as s,ref as a,watch as i,resolveComponent as r,openBlock as c,createElementBlock as n,createElementVNode as m,createVNode as u,unref as d,createSlots as p,withCtx as v,toDisplayString as y,normalizeClass as b,normalizeStyle as g,Fragment as w,renderList as _,createBlock as f,withDirectives as S,withModifiers as k}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import x from"../composite/EaeraDropdownV2.mjs";import{_ as I}from"./EaeraInput-CkbcAxy0.mjs";import{useI18n as E}from"vue-i18n";import"element-plus";import{ElLoadingDirective as H}from"element-plus/es";import"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import{_ as R}from"./EaeraTableV2-CIeL4xlB.mjs";import{_ as D}from"./EaeraTooltip-BIlULHv4.mjs";const G=Symbol("EAERA_WATCHLIST_CONTEXT_KEY"),T=(l,o)=>{const s={inputPlaceholder:e(()=>l.inputPlaceholder),searchData:e(()=>l.searchData),categories:e(()=>l.categories),selectedCategory:e(()=>l.selectedCategory),isFiltered:e(()=>l.isFiltered),tableHeight:e(()=>l.tableHeight),viewingSymbols:e(()=>l.viewingSymbols),viewingSymbolGroups:e(()=>l.viewingSymbolGroups),listSymbols:e(()=>l.listSymbols),groupLoadingRowIds:e(()=>l.groupLoadingRowIds),favoriteSymbolIds:e(()=>l.favoriteSymbolIds),viewingSymbolId:e(()=>l.viewingSymbolId),listSymbolsLoading:e(()=>l.listSymbolsLoading),sorting:e(()=>l.sorting),onResize:(e,t)=>o("resize",e,t),onSelectCategory:e=>o("selectCategory",e),onSearchDataUpdate:e=>o("update:searchData",e),onGroupExpandChange:e=>o("groupExpandChange",e),onGroupRowClick:e=>o("groupRowClick",e),onGroupSortChanged:e=>o("groupSortChanged",e),onItemSortChanged:e=>o("itemSortChanged",e),onSelectSymbol:e=>o("selectSymbol",e),onToggleFavorite:e=>o("toggleFavorite",e),onShowSymbolInfo:e=>o("showSymbolInfo",e)};return t(G,s),s},j=()=>{const e=l(G);if(!e)throw new Error("useEaeraWatchlist must be used inside EaeraWatchlist");return e},W={class:"custom-watchlist-filter"},F={class:"custom-watchlist-filter__row"},L={class:"custom-watchlist-filter__field"},z={class:"custom-watchlist-filter__field"},U=["onClick"],A={class:"custom-watchlist-filter__category-count"},N={class:"custom-watchlist-filter__dropdown-trigger-content"},B={key:0,class:"custom-watchlist-filter__selected"},V={key:1,class:"custom-watchlist-filter__placeholder"},P=o({__name:"EaeraWatchlistFilter",setup(e){const{inputPlaceholder:t,searchData:l,categories:o,selectedCategory:f,onSelectCategory:S,onSearchDataUpdate:k}=j(),C=s(),E=a(!1),H=a(!1),R=a(""),D=a(!1);i(l,e=>{e!==R.value&&(R.value=e)},{immediate:!0});const G=e=>{D.value||k(e)},T=()=>D.value=!0,P=e=>k(e.data),K=e=>{D.value=!1;const t=e.data??R.value;k(t)};return(e,s)=>{const a=r("eaera-icon"),i=I,k=x;return c(),n("div",W,[m("div",F,[m("div",L,[u(i,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=e=>R.value=e),class:"watchlist-input",placeholder:d(t),clearable:"",onInput:G,onCompositionstart:T,onCompositionupdate:P,onCompositionend:K},p({_:2},[d(l)?void 0:{name:"suffix",fn:v(()=>[u(a,{icon:"Search2",size:"16",class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"])]),m("div",z,[u(k,{class:"custom-watchlist-filter__dropdown","popper-class":"with-border",onVisibleChange:s[4]||(s[4]=e=>E.value=e)},{dropdown:v(()=>[m("div",{class:"custom-watchlist-filter__dropdown-menu",style:g({width:`${C.value?.clientWidth??100}px`})},[(c(!0),n(w,null,_(d(o),e=>(c(),n("div",{key:e.id,class:"custom-watchlist-filter__category"},[m("div",{class:"custom-watchlist-filter__category-content label-md",onClick:t=>d(S)(e)},[m("div",null,y(e.name),1),m("div",A,y(e.count),1)],8,U)]))),128))],4)]),default:v(()=>[m("div",{ref_key:"dropdownRef",ref:C,class:"custom-watchlist-filter__dropdown-trigger"},[m("div",N,[d(f)?.name?(c(),n("span",B,y(d(f).name),1)):(c(),n("span",V,y(e.$t("watch-list.filter.categories")),1)),m("div",{class:"custom-watchlist-filter__icon-wrapper",onMouseenter:s[1]||(s[1]=e=>H.value=!0),onMouseleave:s[2]||(s[2]=e=>H.value=!1),onClick:s[3]||(s[3]=e=>d(S)(null))},[u(a,{icon:H.value&&d(f)?"XCircle":"ChevronDown",size:"16",class:b(["icon-primary","custom-watchlist-filter__dropdown-icon",E.value&&"is-open"])},null,8,["icon","class"])],32)])],512)]),_:1})])])])}}}),K={class:"custom-watchlist-table"},M={key:0,class:"custom-watchlist-table__group"},O={key:1,class:"custom-watchlist-table__items"},$=o({__name:"EaeraWatchlistTable",setup(e){const{isFiltered:t,tableHeight:l,viewingSymbols:o,listSymbolsLoading:s}=j();return(e,a)=>(c(),n("div",K,[d(t)?(c(),n("div",O,[u(d(de),{symbols:d(o),"max-height":d(l),loading:d(s),"show-header":""},null,8,["symbols","max-height","loading"])])):(c(),n("div",M,[u(d(te))]))]))}}),X={class:"custom-watchlist-group-table__symbol-cell"},Y={class:"custom-watchlist-group-table__symbol body-md__w"},q={class:"custom-watchlist-group-table__name body-sm"},J={key:0},Q={class:"custom-watchlist-group-table__empty"},Z={class:"custom-watchlist-group-table__empty-content"},ee={class:"custom-watchlist-group-table__empty-text body-sm"},te=o({__name:"EaeraWatchlistGroupTable",setup(t){const{tableHeight:l,viewingSymbolGroups:o,listSymbols:s,groupLoadingRowIds:p,sorting:b,onGroupExpandChange:g,onGroupRowClick:w,onGroupSortChanged:_}=j(),{t:S}=E(),k=a(),C=({columnIndex:e})=>0===e?[1,1]:1===e?[1,4]:[0,0],x=e=>{g(e)},I=async e=>{await w(e),k.value?.rowExpansion(e)},H=e(()=>[{key:"expand",type:"expand",width:30},{key:"ticker_symbol",label:S("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",cellClass:"py-0",minWidth:100},{key:"last",label:S("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",minWidth:110},{key:"volume",label:S("watch-list.table.volume"),sortable:!0,sort_key:"volume",align:"right",minWidth:100}]),D=e(()=>k.value?.sort),G=e=>{_(e)},T=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2",W=({row:e})=>p.value.includes(e.id)?"loading-row":"";return i(b,e=>{e||k.value?.sortTable("",null)}),(e,t)=>{const a=r("NoData"),i=r("eaera-icon");return c(),f(d(R),{ref_key:"watchListTableRef",ref:k,class:"watchlist-table","max-height":d(l),items:d(o),fields:H.value,"span-method":C,stripe:!1,"hide-footer":"","row-class-name":W,onRowClick:I,onExpandChange:x,"onUpdate:onSortChanged":G},{"cell(ticker_symbol)":v(({item:e})=>[m("div",X,[m("div",Y,y(e.host_exchange)+":"+y(e.base_symbol),1),m("div",q,y(e.name),1)])]),"cell(expand)":v(({row:e})=>[d(p).includes(e.id)?(c(),n("div",J)):(c(),f(d(de),{key:1,symbols:d(s)[e.id]||[],"inside-group":""},null,8,["symbols"]))]),empty:v(()=>[m("div",Q,[m("div",Z,[u(a),m("span",ee,y(d(S)("watch-list.table.empty.group")),1)])])]),"sort-icon":v(({sortKey:e,direction:t})=>[u(i,{icon:T(e,t,D.value),size:"14",class:"custom-watchlist-group-table__sort-icon","active-color":"var(--primary-green)"},null,8,["icon"])]),_:1},8,["max-height","items","fields"])}}});var le=(e=>(e.Active="active",e.MarketClosed="market-closed",e.Expired="expired",e.NotTradableYet="not-tradable-yet",e))(le||{});const oe={class:"custom-watchlist-item-table__symbol-cell"},se={class:"custom-watchlist-item-table__symbol-main body-md__w"},ae=["onClick"],ie={class:"custom-watchlist-item-table__description-row body-sm"},re={style:{width:"100%"}},ce={style:{width:"100%"}},ne={key:0},me={class:"custom-watchlist-item-table__empty-content"},ue={class:"custom-watchlist-item-table__empty-text body-sm"},de=o({__name:"EaeraWatchlistItemTable",props:{insideGroup:{type:Boolean},symbols:{},maxHeight:{},showHeader:{type:Boolean},loading:{type:Boolean}},setup(t){const{favoriteSymbolIds:l,viewingSymbolId:o,sorting:s,selectedCategory:p,listSymbolsLoading:w,onItemSortChanged:_,onSelectSymbol:C,onToggleFavorite:x,onShowSymbolInfo:I}=j(),{t:G}=E(),T=t,W=a(),F=a(null),L=e(()=>[{key:"",label:"",width:30},{key:"ticker_symbol",label:G("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",align:"left",minWidth:100},{key:"last",label:G("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",customHeaderClass:"flex justify-end items-center",minWidth:110},{key:"volume",label:G("watch-list.table.volume"),sortable:!0,sort_key:"volume",customHeaderClass:"flex justify-end items-center",minWidth:100,align:"right"}]),z=e(()=>F.value?"ticker_symbol"===F.value.key?[...T.symbols].sort((e,t)=>{const l=e.ticker_symbol.toUpperCase(),o=t.ticker_symbol.toUpperCase();return l<o?"desc"===F.value?.direction?-1:1:l>o?"desc"===F.value?.direction?1:-1:0}):"volume"===F.value.key?[...T.symbols].sort((e,t)=>e.volume<t.volume?"asc"===F.value?.direction?-1:1:e.volume>t.volume?"asc"===F.value?.direction?1:-1:0):"last"===F.value.key?[...T.symbols].sort((e,t)=>{const l=Number(e.last),o=Number(t.last);return l<o?"asc"===F.value?.direction?-1:1:l>o?"asc"===F.value?.direction?1:-1:0}):T.symbols:T.symbols),U=e(()=>e=>l.value.includes(e.id)?{icon:"Star3",color:"#FFD700"}:{icon:"StarOutline",color:"var(--primary-green)"}),A=e(()=>W.value?.sort),N=e(()=>T.insideGroup?T.loading:w.value),B=e=>e!==le.Active,V=({key:e,direction:t})=>{e&&t?(F.value={key:e,direction:t,selfSort:!0},_({key:e,direction:t})):(F.value?.selfSort&&_(null),F.value=null)},P=e=>{C(e)},K=({row:e})=>e.id===o.value?"active-row":"",M=(e,t)=>{if(t&&t!==le.Active)return"var(--text-disabled)";const l=Number(e);return l>0?"var(--text-green)":l<0?"var(--text-red)":"var(--text-primary)"},O=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2";return i(W,e=>{e&&(T.insideGroup||s.value&&(e.sortTable("",s.value.sort_by),F.value={key:s.value.sort_by,direction:s.value.order,selfSort:!1}))}),i(()=>p.value?.id,()=>F.value=null),(e,t)=>{const l=r("eaera-icon"),o=D,s=r("client-only"),a=H;return c(),f(s,null,{default:v(()=>[S((c(),n("div",null,[u(d(R),{ref_key:"watchListTableRef",ref:W,class:b(["expanding-rows-table watchlist-table expanded",[!z.value?.length&&!T.insideGroup&&"empty",T.insideGroup&&"inside-group"]]),"allow-sort-reset":"","hide-footer":"","max-height":T.maxHeight,height:T.maxHeight,"show-header":T.showHeader,items:z.value,fields:L.value,stripe:!1,"row-class-name":K,loading:N.value,"onUpdate:onSortChanged":V,onOnRowClick:P},{"cell()":v(({item:e})=>[m("div",null,[u(l,{icon:"Info",size:"16",class:b(["custom-watchlist-item-table__info-icon",B(e.state)&&"is-disabled"]),onClick:k(t=>(async e=>{const t=T.symbols.find(t=>t.id===e);t&&await I(t)})(e.id),["stop"])},null,8,["class","onClick"])])]),"cell(ticker_symbol)":v(({item:e})=>[m("div",oe,[m("div",se,[m("span",{class:b(["custom-watchlist-item-table__symbol-text",B(e.state)&&"is-inactive"])},y(e.ticker_symbol),3),m("div",{class:"custom-watchlist-item-table__favorite",onClick:k(t=>{return l=e.id,void x(l);var l},["stop"])},[u(l,{icon:U.value(e).icon,color:U.value(e).color,size:"16"},null,8,["icon","color"])],8,ae)]),m("div",ie,[u(o,{content:e.description,placement:"right"},{default:v(()=>[m("span",{class:b(["custom-watchlist-item-table__description-text",B(e.state)&&"is-inactive"])},y(e.description),3)]),_:2},1032,["content"])])])]),"cell(last)":v(({item:e})=>[m("div",{style:g({color:M(e.last,e.state),width:"100%"})},[m("div",re,[m("div",null,y(e.last),1)])],4)]),"cell(volume)":v(({item:e})=>[m("div",{style:g({color:M(e.volume,e.state),width:"100%"})},[m("div",ce,[m("div",null,y(e.volume),1)])],4)]),empty:v(()=>[N.value?(c(),n("div",ne)):(c(),n("div",{key:1,class:"custom-watchlist-item-table__empty",style:g({height:T.maxHeight?`calc(${T.maxHeight} - 32px)`:"auto"})},[m("div",me,[m("span",ue,y(d(G)("watch-list.table.empty.symbol")),1)])],4))]),"sort-icon":v(({sortKey:e,direction:t})=>[u(l,{icon:O(e,t,A.value),size:"14",class:"custom-watchlist-item-table__sort-icon","active-color":"var(--icon-success)"},null,8,["icon"])]),_:1},8,["class","max-height","height","show-header","items","fields","loading"])])),[[a,N.value]])]),_:1})}}}),pe={class:"custom-watchlist__table"},he=o({__name:"index",props:{inputPlaceholder:{},searchData:{},categories:{},selectedCategory:{},isFiltered:{type:Boolean},tableHeight:{},viewingSymbols:{},viewingSymbolGroups:{},listSymbols:{},groupLoadingRowIds:{},favoriteSymbolIds:{},viewingSymbolId:{},listSymbolsLoading:{type:Boolean},sorting:{}},emits:["resize","selectCategory","update:searchData","groupExpandChange","groupRowClick","groupSortChanged","itemSortChanged","selectSymbol","toggleFavorite","showSymbolInfo"],setup(e,{emit:t}){const l=s(null),o=s(null),{width:a,height:r}=C(l),p=T(e,t);return i([a,r],()=>{l.value&&o.value&&p.onResize(a.value,r.value-o.value.clientHeight)}),(e,t)=>(c(),n("div",{ref_key:"watchlistRef",ref:l,class:"custom-watchlist"},[m("div",{ref_key:"watchlistFilterRef",ref:o,class:"custom-watchlist__filter"},[u(d(P))],512),m("div",pe,[u(d($))])],512))}});export{le as S,he as _,T as p,j as u};
@@ -1 +1 @@
1
- import{ref as e,watch as a,computed as l,provide as s,inject as t,defineComponent as o,shallowRef as i,openBlock as n,createElementBlock as r,createElementVNode as m,createVNode as c,unref as d,createSlots as u,withCtx as p,renderSlot as v,normalizeStyle as b,toDisplayString as _,Fragment as y,renderList as g,normalizeClass as f,createBlock as S,resolveDynamicComponent as w,onMounted as z,nextTick as k,onBeforeUnmount as T,useSlots as L,normalizeProps as N,guardReactiveProps as E}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as V}from"vue-i18n";import"element-plus";import"element-plus/es";import{ChevronUp as x,ChevronDown as O,Search as j}from"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as F}from"./EaeraInput-CkbcAxy0.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import P from"../composite/EaeraDropdownV2.mjs";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as H}from"./EaeraTableV2-UqRwaevh.mjs";const M=Symbol("EAERA_TIME_N_SALES_CONTEXT_KEY"),$=(t,o)=>{const{t:i}=V(),n=e(t.searchValue),r=e(t.minTradeSize),m=e(!1);a(()=>t.searchValue,e=>{n.value=e}),a(()=>t.minTradeSize,e=>{r.value=e});const c=(e,a)=>{const l=i(e);return"string"==typeof l&&l.trim().length>0?l:a},d=l(()=>[{key:"date",label:c("time-and-sales.table.date","Date"),minWidth:50},{key:"time",label:c("time-and-sales.table.time","Time"),minWidth:60},{key:"price",label:c("time-and-sales.table.price","Price"),minWidth:70,align:"right"},{key:"size",label:c("time-and-sales.table.size","Size"),minWidth:50,align:"right"}].map(e=>({...e,cellClass:"fs-10",cell:{dataClass:"text-primary"}}))),u=l(()=>({searchValue:n.value,minTradeSize:r.value,showingDropdown:m.value}));a(u,e=>{o("stateChange",e)},{immediate:!0});const p={searchValue:l({get:()=>n.value,set:e=>{n.value=e,o("update:searchValue",e)}}),searchPlaceholder:l(()=>t.searchPlaceholder??""),searchOptions:l(()=>t.searchOptions??[]),selectedSearchOption:l(()=>t.selectedSearchOption??""),loadingSearchOptions:l(()=>t.loadingSearchOptions??!1),minTradeSize:l({get:()=>r.value,set:e=>{r.value=e,o("update:minTradeSize",e)}}),minTradeSizePlaceholder:l(()=>t.minTradeSizePlaceholder||c("time-and-sales.table.size","Size")),rows:l(()=>t.rows??[]),fields:l(()=>t.fields&&t.fields.length>0?t.fields:d.value),tableHeight:l(()=>Number(t.tableHeight)||0),tableMaxHeight:l(()=>`${Math.max((Number(t.tableHeight)||0)-16,0)}px`),loading:l(()=>t.loading??!1),fetchingSymbolLabel:l(()=>t.fetchingSymbolLabel||c("market.search.fetching-symbol","Fetching symbol")),symbolNotFoundLabel:l(()=>t.symbolNotFoundLabel||c("market.search.symbol-not-found","Symbol not found")),emptyLabel:l(()=>t.emptyLabel||c("time-and-sales.table.empty","No data")),showingDropdown:l({get:()=>m.value,set:e=>{m.value=e}}),state:u,onResize:(e,a)=>o("resize",e,a),onSelectSearchOption:e=>o("select-search-option",e),onLoadMore:()=>o("load-more")};return s(M,p),p},D=()=>{const e=t(M);if(!e)throw new Error("useEaeraTimeNSales must be used inside EaeraTimeNSales");return e},R={class:"custom-time-n-sales-search__row"},W={class:"custom-time-n-sales-search__symbol-field"},A={class:"custom-time-n-sales-search__dropdown-anchor"},I={key:0,class:"custom-time-n-sales-search__empty body-sm text-placeholder"},B={key:0},q={key:1},U={key:1,class:"custom-time-n-sales-search__option-list"},K=["onClick"],X={class:"body-md__w"},Y={class:"body-sm"},G={class:"custom-time-n-sales-search__size-field"},J={class:"custom-time-n-sales-search__size-icons"},Q=o({__name:"EaeraTimeNSalesSearch",setup(s){const{searchValue:t,searchPlaceholder:o,searchOptions:z,selectedSearchOption:k,loadingSearchOptions:T,minTradeSize:L,minTradeSizePlaceholder:N,fetchingSymbolLabel:E,symbolNotFoundLabel:V,showingDropdown:H,onSelectSearchOption:M}=D(),$=i(null),Q=e(),{width:Z}=C($),ee=l(()=>`${Math.max(Z.value,200)}px`),ae=e(t.value),le=e(!1),se=l({get:()=>L.value,set:e=>{L.value=e}});a(t,e=>{ae.value=e});const te=e=>{le.value||(t.value=e)},oe=()=>{le.value=!0},ie=e=>{t.value=e.data},ne=e=>{le.value=!1;const a=e.data??ae.value;t.value=a},re=e=>{M(e)},me=e=>{H.value=e},ce=()=>{L.value=(e=>{const a=Number(e);return!Number.isFinite(a)||a<1?"":`${a}`})(L.value)},de=()=>{const e=Number(L.value||"1"),a=Number.isFinite(e)&&e>=1?e:1;L.value=`${a+1}`},ue=()=>{const e=Number(L.value||"1"),a=Number.isFinite(e)&&e>=1?e:1;L.value=`${Math.max(1,a-1)}`},he=l(()=>[{value:"up",icon:x,onClick:de},{value:"down",icon:O,onClick:ue}]);return a(t,e=>{e?Q.value?.openDropdown():Q.value?.closeDropdown()},{immediate:!0}),(e,a)=>(n(),r("div",{ref_key:"searchRef",ref:$,class:"custom-time-n-sales-search"},[m("div",R,[m("div",W,[c(d(F),{modelValue:ae.value,"onUpdate:modelValue":a[0]||(a[0]=e=>ae.value=e),placeholder:d(o),clearable:"",class:"watchlist-input custom-time-n-sales-search__symbol-input",onInput:te,onCompositionstart:oe,onCompositionupdate:ie,onCompositionend:ne},u({_:2},[d(t)?void 0:{name:"suffix",fn:p(()=>[c(d(j),{size:16,class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"]),m("div",A,[c(d(P),{ref_key:"dropdownRef",ref:Q,trigger:"click",placement:"bottom-start",class:"custom-time-n-sales-search__dropdown",onVisibleChange:me},{dropdown:p(()=>[v(e.$slots,"dropdown",{options:d(z),selected:d(k),minWidth:ee.value,loading:d(T),fetchingSymbolLabel:d(E),symbolNotFoundLabel:d(V),selectOption:re},()=>[m("div",{class:"custom-time-n-sales-search__dropdown-panel",style:b({minWidth:ee.value})},[d(T)||!d(z).length?(n(),r("div",I,[d(T)?(n(),r("div",B,_(d(E)),1)):(n(),r("div",q,_(d(V)),1))])):(n(),r("div",U,[(n(!0),r(y,null,g(d(z),e=>(n(),r("div",{key:e.value,class:f(["custom-time-n-sales-search__option",e.value===d(k)&&"is-selected"]),onClick:a=>re(e.value)},[m("div",X,_(e.label),1),m("div",Y,_(e.description),1)],10,K))),128))]))],4)])]),default:p(()=>[a[2]||(a[2]=m("div",{class:"custom-time-n-sales-search__dropdown-trigger"},null,-1))]),_:3},512)])]),m("div",G,[c(d(F),{modelValue:se.value,"onUpdate:modelValue":a[1]||(a[1]=e=>se.value=e),class:"watchlist-input custom-time-n-sales-search__size-input",placeholder:d(N),onChange:ce,onInput:ce},{suffix:p(()=>[m("div",J,[(n(!0),r(y,null,g(he.value,e=>(n(),S(w(e.icon),{key:e.value,size:12,class:"icon-primary custom-time-n-sales-search__size-icon",onClick:e.onClick},null,8,["onClick"]))),128))])]),_:1},8,["modelValue","placeholder"])])])],512))}}),Z={class:"custom-time-n-sales-table"},ee=o({__name:"EaeraTimeNSalesTable",setup(a){const{rows:l,fields:s,tableMaxHeight:t,loading:o,emptyLabel:u,onLoadMore:v}=D(),b=e(),y=i(null),g=()=>{const e=y.value;e&&((e,a=50)=>{const{scrollTop:l,clientHeight:s,scrollHeight:t}=e;return l+s>=t-a})(e)&&v()},f=()=>{g()};let S=null;const w=()=>{null==S&&(S=requestAnimationFrame(()=>{S=null,g()}))};return z(async()=>{await k(),(()=>{const e=b.value?.$el;if(!e)return;const a=e.querySelector(".el-scrollbar__wrap");a&&(y.value=a,a.addEventListener("scroll",f,{passive:!0}),a.addEventListener("wheel",w,{passive:!0}))})()}),T(()=>{(()=>{const e=y.value;e&&(e.removeEventListener("scroll",f),e.removeEventListener("wheel",w),y.value=null)})(),null!=S&&(cancelAnimationFrame(S),S=null)}),(e,a)=>(n(),r("div",Z,[c(d(H),{ref_key:"tableRef",ref:b,class:"watchlist-table custom-time-n-sales-table__table",items:d(l),fields:d(s),"max-height":d(t),stripe:!1,"hide-footer":"",loading:d(o)},{empty:p(()=>[m("div",null,_(d(u)),1)]),_:1},8,["items","fields","max-height","loading"])]))}}),ae={class:"custom-time-n-sales"},le={class:"custom-time-n-sales__table"},se=o({__name:"index",props:{searchValue:{},searchPlaceholder:{},searchOptions:{},selectedSearchOption:{},loadingSearchOptions:{type:Boolean},minTradeSize:{},minTradeSizePlaceholder:{},rows:{},fields:{},tableHeight:{},loading:{type:Boolean},fetchingSymbolLabel:{},symbolNotFoundLabel:{},emptyLabel:{}},emits:["resize","update:searchValue","select-search-option","update:minTradeSize","load-more","stateChange"],setup(e,{expose:l,emit:s}){const t=L(),o=i(null),{width:b,height:_}=C(o),y=$(e,s);return l({state:y.state}),a([b,_],()=>{o.value&&y.onResize(b.value,_.value)}),(e,a)=>(n(),r("div",ae,[m("div",{ref_key:"searchRef",ref:o,class:"custom-time-n-sales__search"},[c(d(Q),null,u({_:2},[d(t)["search-dropdown"]?{name:"dropdown",fn:p(a=>[v(e.$slots,"search-dropdown",N(E(a)))]),key:"0"}:void 0]),1024)],512),m("div",le,[c(d(ee))])]))}});export{se as _,$ as p,D as u};
1
+ import{ref as e,watch as a,computed as l,provide as s,inject as t,defineComponent as o,shallowRef as i,openBlock as n,createElementBlock as r,createElementVNode as m,createVNode as c,unref as d,createSlots as u,withCtx as p,renderSlot as v,normalizeStyle as b,toDisplayString as _,Fragment as y,renderList as g,normalizeClass as f,createBlock as S,resolveDynamicComponent as w,onMounted as z,nextTick as k,onBeforeUnmount as T,useSlots as L,normalizeProps as N,guardReactiveProps as E}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as V}from"vue-i18n";import"element-plus";import"element-plus/es";import{ChevronUp as x,ChevronDown as O,Search as j}from"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as F}from"./EaeraInput-CkbcAxy0.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import P from"../composite/EaeraDropdownV2.mjs";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as H}from"./EaeraTableV2-CIeL4xlB.mjs";const M=Symbol("EAERA_TIME_N_SALES_CONTEXT_KEY"),$=(t,o)=>{const{t:i}=V(),n=e(t.searchValue),r=e(t.minTradeSize),m=e(!1);a(()=>t.searchValue,e=>{n.value=e}),a(()=>t.minTradeSize,e=>{r.value=e});const c=(e,a)=>{const l=i(e);return"string"==typeof l&&l.trim().length>0?l:a},d=l(()=>[{key:"date",label:c("time-and-sales.table.date","Date"),minWidth:50},{key:"time",label:c("time-and-sales.table.time","Time"),minWidth:60},{key:"price",label:c("time-and-sales.table.price","Price"),minWidth:70,align:"right"},{key:"size",label:c("time-and-sales.table.size","Size"),minWidth:50,align:"right"}].map(e=>({...e,cellClass:"fs-10",cell:{dataClass:"text-primary"}}))),u=l(()=>({searchValue:n.value,minTradeSize:r.value,showingDropdown:m.value}));a(u,e=>{o("stateChange",e)},{immediate:!0});const p={searchValue:l({get:()=>n.value,set:e=>{n.value=e,o("update:searchValue",e)}}),searchPlaceholder:l(()=>t.searchPlaceholder??""),searchOptions:l(()=>t.searchOptions??[]),selectedSearchOption:l(()=>t.selectedSearchOption??""),loadingSearchOptions:l(()=>t.loadingSearchOptions??!1),minTradeSize:l({get:()=>r.value,set:e=>{r.value=e,o("update:minTradeSize",e)}}),minTradeSizePlaceholder:l(()=>t.minTradeSizePlaceholder||c("time-and-sales.table.size","Size")),rows:l(()=>t.rows??[]),fields:l(()=>t.fields&&t.fields.length>0?t.fields:d.value),tableHeight:l(()=>Number(t.tableHeight)||0),tableMaxHeight:l(()=>`${Math.max((Number(t.tableHeight)||0)-16,0)}px`),loading:l(()=>t.loading??!1),fetchingSymbolLabel:l(()=>t.fetchingSymbolLabel||c("market.search.fetching-symbol","Fetching symbol")),symbolNotFoundLabel:l(()=>t.symbolNotFoundLabel||c("market.search.symbol-not-found","Symbol not found")),emptyLabel:l(()=>t.emptyLabel||c("time-and-sales.table.empty","No data")),showingDropdown:l({get:()=>m.value,set:e=>{m.value=e}}),state:u,onResize:(e,a)=>o("resize",e,a),onSelectSearchOption:e=>o("select-search-option",e),onLoadMore:()=>o("load-more")};return s(M,p),p},D=()=>{const e=t(M);if(!e)throw new Error("useEaeraTimeNSales must be used inside EaeraTimeNSales");return e},R={class:"custom-time-n-sales-search__row"},W={class:"custom-time-n-sales-search__symbol-field"},A={class:"custom-time-n-sales-search__dropdown-anchor"},I={key:0,class:"custom-time-n-sales-search__empty body-sm text-placeholder"},B={key:0},q={key:1},U={key:1,class:"custom-time-n-sales-search__option-list"},K=["onClick"],X={class:"body-md__w"},Y={class:"body-sm"},G={class:"custom-time-n-sales-search__size-field"},J={class:"custom-time-n-sales-search__size-icons"},Q=o({__name:"EaeraTimeNSalesSearch",setup(s){const{searchValue:t,searchPlaceholder:o,searchOptions:z,selectedSearchOption:k,loadingSearchOptions:T,minTradeSize:L,minTradeSizePlaceholder:N,fetchingSymbolLabel:E,symbolNotFoundLabel:V,showingDropdown:H,onSelectSearchOption:M}=D(),$=i(null),Q=e(),{width:Z}=C($),ee=l(()=>`${Math.max(Z.value,200)}px`),ae=e(t.value),le=e(!1),se=l({get:()=>L.value,set:e=>{L.value=e}});a(t,e=>{ae.value=e});const te=e=>{le.value||(t.value=e)},oe=()=>{le.value=!0},ie=e=>{t.value=e.data},ne=e=>{le.value=!1;const a=e.data??ae.value;t.value=a},re=e=>{M(e)},me=e=>{H.value=e},ce=()=>{L.value=(e=>{const a=Number(e);return!Number.isFinite(a)||a<1?"":`${a}`})(L.value)},de=()=>{const e=Number(L.value||"1"),a=Number.isFinite(e)&&e>=1?e:1;L.value=`${a+1}`},ue=()=>{const e=Number(L.value||"1"),a=Number.isFinite(e)&&e>=1?e:1;L.value=`${Math.max(1,a-1)}`},he=l(()=>[{value:"up",icon:x,onClick:de},{value:"down",icon:O,onClick:ue}]);return a(t,e=>{e?Q.value?.openDropdown():Q.value?.closeDropdown()},{immediate:!0}),(e,a)=>(n(),r("div",{ref_key:"searchRef",ref:$,class:"custom-time-n-sales-search"},[m("div",R,[m("div",W,[c(d(F),{modelValue:ae.value,"onUpdate:modelValue":a[0]||(a[0]=e=>ae.value=e),placeholder:d(o),clearable:"",class:"watchlist-input custom-time-n-sales-search__symbol-input",onInput:te,onCompositionstart:oe,onCompositionupdate:ie,onCompositionend:ne},u({_:2},[d(t)?void 0:{name:"suffix",fn:p(()=>[c(d(j),{size:16,class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"]),m("div",A,[c(d(P),{ref_key:"dropdownRef",ref:Q,trigger:"click",placement:"bottom-start",class:"custom-time-n-sales-search__dropdown",onVisibleChange:me},{dropdown:p(()=>[v(e.$slots,"dropdown",{options:d(z),selected:d(k),minWidth:ee.value,loading:d(T),fetchingSymbolLabel:d(E),symbolNotFoundLabel:d(V),selectOption:re},()=>[m("div",{class:"custom-time-n-sales-search__dropdown-panel",style:b({minWidth:ee.value})},[d(T)||!d(z).length?(n(),r("div",I,[d(T)?(n(),r("div",B,_(d(E)),1)):(n(),r("div",q,_(d(V)),1))])):(n(),r("div",U,[(n(!0),r(y,null,g(d(z),e=>(n(),r("div",{key:e.value,class:f(["custom-time-n-sales-search__option",e.value===d(k)&&"is-selected"]),onClick:a=>re(e.value)},[m("div",X,_(e.label),1),m("div",Y,_(e.description),1)],10,K))),128))]))],4)])]),default:p(()=>[a[2]||(a[2]=m("div",{class:"custom-time-n-sales-search__dropdown-trigger"},null,-1))]),_:3},512)])]),m("div",G,[c(d(F),{modelValue:se.value,"onUpdate:modelValue":a[1]||(a[1]=e=>se.value=e),class:"watchlist-input custom-time-n-sales-search__size-input",placeholder:d(N),onChange:ce,onInput:ce},{suffix:p(()=>[m("div",J,[(n(!0),r(y,null,g(he.value,e=>(n(),S(w(e.icon),{key:e.value,size:12,class:"icon-primary custom-time-n-sales-search__size-icon",onClick:e.onClick},null,8,["onClick"]))),128))])]),_:1},8,["modelValue","placeholder"])])])],512))}}),Z={class:"custom-time-n-sales-table"},ee=o({__name:"EaeraTimeNSalesTable",setup(a){const{rows:l,fields:s,tableMaxHeight:t,loading:o,emptyLabel:u,onLoadMore:v}=D(),b=e(),y=i(null),g=()=>{const e=y.value;e&&((e,a=50)=>{const{scrollTop:l,clientHeight:s,scrollHeight:t}=e;return l+s>=t-a})(e)&&v()},f=()=>{g()};let S=null;const w=()=>{null==S&&(S=requestAnimationFrame(()=>{S=null,g()}))};return z(async()=>{await k(),(()=>{const e=b.value?.$el;if(!e)return;const a=e.querySelector(".el-scrollbar__wrap");a&&(y.value=a,a.addEventListener("scroll",f,{passive:!0}),a.addEventListener("wheel",w,{passive:!0}))})()}),T(()=>{(()=>{const e=y.value;e&&(e.removeEventListener("scroll",f),e.removeEventListener("wheel",w),y.value=null)})(),null!=S&&(cancelAnimationFrame(S),S=null)}),(e,a)=>(n(),r("div",Z,[c(d(H),{ref_key:"tableRef",ref:b,class:"watchlist-table custom-time-n-sales-table__table",items:d(l),fields:d(s),"max-height":d(t),stripe:!1,"hide-footer":"",loading:d(o)},{empty:p(()=>[m("div",null,_(d(u)),1)]),_:1},8,["items","fields","max-height","loading"])]))}}),ae={class:"custom-time-n-sales"},le={class:"custom-time-n-sales__table"},se=o({__name:"index",props:{searchValue:{},searchPlaceholder:{},searchOptions:{},selectedSearchOption:{},loadingSearchOptions:{type:Boolean},minTradeSize:{},minTradeSizePlaceholder:{},rows:{},fields:{},tableHeight:{},loading:{type:Boolean},fetchingSymbolLabel:{},symbolNotFoundLabel:{},emptyLabel:{}},emits:["resize","update:searchValue","select-search-option","update:minTradeSize","load-more","stateChange"],setup(e,{expose:l,emit:s}){const t=L(),o=i(null),{width:b,height:_}=C(o),y=$(e,s);return l({state:y.state}),a([b,_],()=>{o.value&&y.onResize(b.value,_.value)}),(e,a)=>(n(),r("div",ae,[m("div",{ref_key:"searchRef",ref:o,class:"custom-time-n-sales__search"},[c(d(Q),null,u({_:2},[d(t)["search-dropdown"]?{name:"dropdown",fn:p(a=>[v(e.$slots,"search-dropdown",N(E(a)))]),key:"0"}:void 0]),1024)],512),m("div",le,[c(d(ee))])]))}});export{se as _,$ as p,D as u};
@@ -1 +1 @@
1
- import{ref as e,watch as o,computed as s,provide as r,inject as a,defineComponent as t,unref as l,openBlock as i,createElementBlock as d,createElementVNode as n,toDisplayString as c,createVNode as u,normalizeClass as m,withCtx as p,createCommentVNode as _,shallowRef as v,createTextVNode as b,isRef as y,resolveComponent as f,createBlock as g}from"vue";import{a as k}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as S}from"vue-i18n";import"element-plus";import"element-plus/es";import{Plus as P,Minus as C,Info as j}from"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as w}from"./EaeraSelect-BxZRZofe.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as O}from"./EaeraInput-CkbcAxy0.mjs";import{_ as E}from"./EaeraButton-BPVKRBOn.mjs";const $={Market:"MARKET",Limit:"LIMIT",Stop:"STOP",StopLimit:"STOP_LIMIT"},A={Day:"DAY",GTC:"GTC"},T={Buy:"BUY",Sell:"SELL"},L={JoinBid:"join-bid",Reverse:"reverse",JoinAsk:"join-ask",CloseAllPositions:"close-all-positions",FlattenAll:"flatten-all",CancelOrders:"cancel-orders"},z=Symbol("EAERA_ORDER_PLACEMENT_CONTEXT_KEY"),D=(a,t)=>{const l=e(a.orderType),i=e(a.orderDuration),d=e({...a.orderPrices});o(()=>a.orderType,e=>{l.value=e}),o(()=>a.orderDuration,e=>{i.value=e}),o(()=>a.orderPrices,e=>{d.value={...e}},{deep:!0});const n=s(()=>({disabledState:a.disabledState,viewingSymbol:a.viewingSymbol,position:a.position,orderType:l.value,orderDuration:i.value,orderPrices:{...d.value},invalidPrice:a.invalidPrice,loading:a.loading}));o(n,e=>{t("stateChange",e)},{immediate:!0});const c={disabledState:s(()=>a.disabledState),viewingSymbol:s(()=>a.viewingSymbol),position:s(()=>a.position),orderType:s({get:()=>l.value,set:e=>{l.value=e,t("update:orderType",e)}}),orderDuration:s({get:()=>i.value,set:e=>{i.value=e,t("update:orderDuration",e)}}),orderPrices:s(()=>d.value),invalidPrice:s(()=>a.invalidPrice),loading:s(()=>a.loading),state:n,setOrderPrice:(e,o)=>{d.value={...d.value,[e]:o},t("update:orderPrice",e,o)},submitSideOrder:(e,o)=>t("submit-side-order",e,o),joinBid:e=>t("join-bid",e),joinAsk:e=>t("join-ask",e),reverse:()=>t("reverse"),closeAllPositions:()=>t("close-all-positions"),flattenAll:()=>t("flatten-all"),cancelOrders:()=>t("cancel-orders"),onSymbolInfo:()=>t("symbol-info"),onResize:(e,o)=>t("resize",e,o)};return r(z,c),c},V=()=>{const e=a(z);if(!e)throw new Error("useEaeraOrderPlacement must be used inside EaeraOrderPlacement");return e},I={key:0,class:"custom-order-advanced"},N={class:"custom-order-advanced__price-row"},R={key:0,class:"custom-order-advanced__field"},x={class:"custom-order-advanced__label"},M={class:"custom-order-advanced__control"},B={key:0,class:"custom-order-advanced__error"},U={key:1,class:"custom-order-advanced__field"},F={class:"custom-order-advanced__label"},J={class:"custom-order-advanced__control"},G={key:0,class:"custom-order-advanced__error"},K={class:"custom-order-advanced__duration"},Y={class:"custom-order-advanced__label"},q={class:"custom-order-advanced__control"},X=t({__name:"EaeraOrderPlacementAdvanced",props:{invalidOrderPriceLabel:{}},setup(e){const o=e,{t:r}=S(),{viewingSymbol:a,orderType:t,orderDuration:v,orderPrices:b,invalidPrice:y,disabledState:f,setOrderPrice:g}=V(),k=s(()=>Object.values(A).map(e=>({label:r(`orders.durations.${e}`),value:e}))),E=s(()=>o.invalidOrderPriceLabel||r("orders.invalid-order-price")),T=s({get:()=>v.value,set:e=>{v.value=e}}),L=s({get:()=>b.value[$.Limit],set:e=>g($.Limit,e)}),z=s({get:()=>b.value[$.Stop],set:e=>g($.Stop,e)}),D=(e,o)=>{f.value.disabled||g(o,(e=>{const o=String(e??"").replace(/,/g,"").replace(/[^0-9.]/g,""),[s="",...r]=o.split("."),a=r.join("");return a.length?`${s}.${a}`:s})(e))},X=(e,o)=>{if(f.value.disabled)return;const s=Number(a.value?.tickSize)||0;if(!s)return;const r=(String(s).split(".")[1]??"").length,t=Number(b.value[e]||0),l=Number((t+o*s).toFixed(r));g(e,l)};return(e,o)=>l(t)?(i(),d("div",I,[n("div",N,[l($).Stop!==l(t)?(i(),d("div",R,[n("div",x,c(e.$t("orders.limit-price")),1),n("div",M,[u(l(O),{modelValue:L.value,"onUpdate:modelValue":o[2]||(o[2]=e=>L.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).limit}]),disabled:l(f).disabled,onInput:o[3]||(o[3]=e=>D(e,l($).Limit))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[0]||(o[0]=e=>X(l($).Limit,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[1]||(o[1]=e=>X(l($).Limit,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).limit?(i(),d("div",B,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0),l($).Limit!==l(t)?(i(),d("div",U,[n("div",F,c(e.$t("orders.stop-price")),1),n("div",J,[u(l(O),{modelValue:z.value,"onUpdate:modelValue":o[6]||(o[6]=e=>z.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).stop}]),controls:"",min:1,disabled:l(f).disabled,onInput:o[7]||(o[7]=e=>D(e,l($).Stop))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[4]||(o[4]=e=>X(l($).Stop,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[5]||(o[5]=e=>X(l($).Stop,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).stop?(i(),d("div",G,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0)]),n("div",K,[n("div",Y,c(e.$t("orders.duration")),1),n("div",q,[u(l(w),{modelValue:T.value,"onUpdate:modelValue":o[8]||(o[8]=e=>T.value=e),class:"custom-order-advanced__select",options:k.value,placeholder:"Select",disabled:l(f).disabled},null,8,["modelValue","options","disabled"])])])])):_("",!0)}}),H={key:0,class:"custom-order-actions__position-row"},Q={key:0,class:"custom-order-actions__position"},W={key:1,class:"custom-order-actions__empty"},Z={class:"custom-order-actions__actions"},ee={class:"custom-order-actions__row custom-order-actions__row--primary"},oe={class:"custom-order-actions__row custom-order-actions__row--secondary"},se={class:"custom-order-actions__row custom-order-actions__row--tertiary"},re=t({__name:"EaeraOrderPlacementActions",setup(o){const{t:r}=S(),{viewingSymbol:a,position:t,loading:y,orderType:f,disabledState:g,submitSideOrder:P,joinBid:C,joinAsk:j,reverse:w,closeAllPositions:A,flattenAll:z,cancelOrders:D}=V(),I=e(1),N=v(null),{width:R}=k(N),x=s(()=>r(`orders.types.${f.value||$.Market}`)),M=()=>Math.max(1,Number(I.value)||1),B=e=>{P(e,M())},U=()=>{C(M())},F=()=>{j(M())},J=e=>((e,o)=>{const s=Number(e??0);if(!Number.isFinite(s))return"0";if(!o)return s.toLocaleString();try{return new Intl.NumberFormat(void 0,{style:"currency",currency:o,currencyDisplay:"narrowSymbol",maximumFractionDigits:6}).format(s)}catch{return`${s.toLocaleString()} ${o}`}})(e,a.value?.currency),G=e=>{const o=Number(e);return o>0?"custom-order-actions__upl custom-order-actions__upl--positive":o<0?"custom-order-actions__upl custom-order-actions__upl--negative":"custom-order-actions__upl"};return(e,o)=>(i(),d("div",{ref_key:"orderActionsRef",ref:N,class:"custom-order-actions"},[l(a)?(i(),d("div",H,[l(t)?(i(),d("span",Q,[n("span",null,"+"+c(l(t).quantity),1),o[4]||(o[4]=n("span",null,"@",-1)),n("span",null,c(l(t).entryPrice),1),n("span",{class:m(G(l(t).unrealizedPnl))},[o[3]||(o[3]=b(" UP&L ",-1)),n("span",null,c(J(l(t).unrealizedPnl)),1)],2)])):(i(),d("span",W,c(e.$t("orders.no-active-position")),1))])):_("",!0),n("div",Z,[n("div",ee,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"success",loading:l(y)[l(T).Buy],disabled:l(g).disabled,onClick:o[0]||(o[0]=e=>B(l(T).Buy))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.buy",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"]),u(l(O),{modelValue:I.value,"onUpdate:modelValue":o[1]||(o[1]=e=>I.value=e),modelModifiers:{number:!0},type:"number",class:"custom-order-actions__volume-input order-input-number",controls:"",min:1,step:1,"step-strictly":"",precision:0,disabled:l(g).disabled},null,8,["modelValue","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"danger",loading:l(y)[l(T).Sell],disabled:l(g).disabled,onClick:o[2]||(o[2]=e=>B(l(T).Sell))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.sell",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"])]),n("div",oe,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinBid],disabled:l(g).disabled,onClick:U},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-bid")),1)]),_:1},8,["loading","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--third",loading:l(y)[l(L).Reverse],disabled:l(g).disabled,onClick:l(w)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.reverse")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinAsk],disabled:l(g).disabled,onClick:F},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-ask")),1)]),_:1},8,["loading","disabled"])]),n("div",se,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CloseAllPositions],disabled:l(g).disabled,onClick:l(A)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.close-position")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).FlattenAll],disabled:l(g).disabled,onClick:l(z)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.flatten-all")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CancelOrders],disabled:l(g).disabled,onClick:l(D)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.cancel-orders")),1)]),_:1},8,["loading","disabled","onClick"])])])],512))}}),ae={class:"custom-order-info"},te={class:"custom-order-info__select-type"},le={key:0,class:"custom-order-info__symbol"},ie={class:"custom-order-info__symbol-text"},de={key:1,class:"custom-order-info__inactive-message"},ne=t({__name:"EaeraOrderPlacementInfo",setup(e){const{locale:o,t:r}=S(),{disabledState:a,orderType:t,viewingSymbol:p,onSymbolInfo:v}=V(),b=s(()=>(o.value,Object.values($).filter(e=>e!==$.Market).map(e=>({label:r(`orders.types.${e}`),value:e})))),f=()=>{a.value.disabled||(t.value="")},g=()=>{p.value&&v()},k=s(()=>a.value.isMissingUser?r("watch-list.symbol-info.state.no-account-selected"):p.value&&"active"!==p.value.state?r(`watch-list.symbol-info.state.${p.value.state}`):"");return(e,o)=>(i(),d("div",ae,[n("div",te,[n("div",{class:m(["custom-order-info__select-item","custom-order-info__select-item--market",{"is-active":!l(t),"is-disabled":l(a).disabled}]),onClick:f},c(e.$t("orders.types.MARKET")),3),u(l(w),{modelValue:l(t),"onUpdate:modelValue":o[0]||(o[0]=e=>y(t)?t.value=e:null),class:m(["custom-order-info__select-item borderless-select","custom-order-info__select-item--select",{"is-active":!!l(t)}]),options:b.value,placeholder:e.$t("orders.types.PENDING_ORDER"),clearable:"",disabled:l(a).disabled},null,8,["modelValue","class","options","placeholder","disabled"])]),l(p)?(i(),d("div",le,[n("div",{class:"custom-order-info__symbol-link",onClick:g},[n("span",ie,c(l(p).tickerSymbol),1),u(l(j),{size:16,class:"custom-order-info__symbol-icon"})])])):_("",!0),k.value?(i(),d("div",de,[u(l(j),{size:16}),n("span",null,c(k.value),1)])):_("",!0)]))}}),ce={class:"custom-order-placement__content"},ue=t({__name:"index",props:{disabledState:{},viewingSymbol:{},position:{},orderType:{},orderDuration:{},orderPrices:{},invalidPrice:{},loading:{},invalidOrderPriceLabel:{}},emits:["resize","update:orderType","update:orderDuration","update:orderPrice","submit-side-order","join-bid","join-ask","reverse","close-all-positions","flatten-all","cancel-orders","symbol-info","stateChange"],setup(e,{expose:s,emit:r}){const a=v(null),{width:t,height:d}=k(a),c=e,m=D(c,r);return s({state:m.state}),o([t,d],()=>{a.value&&m.onResize(t.value,d.value)}),(e,o)=>{const s=f("client-only");return i(),g(s,null,{default:p(()=>[n("div",{ref_key:"orderRef",ref:a,class:"custom-order-placement__wrapper"},[n("div",ce,[u(l(ne)),u(l(X),{"invalid-order-price-label":c.invalidOrderPriceLabel},null,8,["invalid-order-price-label"]),u(l(re))])],512)]),_:1})}}});export{L as E,ue as _,A as a,T as b,$ as c,D as p,V as u};
1
+ import{ref as e,watch as o,computed as s,provide as r,inject as a,defineComponent as t,unref as l,openBlock as i,createElementBlock as d,createElementVNode as n,toDisplayString as c,createVNode as u,normalizeClass as m,withCtx as p,createCommentVNode as _,shallowRef as v,createTextVNode as b,isRef as y,resolveComponent as f,createBlock as g}from"vue";import{a as k}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as S}from"vue-i18n";import"element-plus";import"element-plus/es";import{Plus as P,Minus as C,Info as j}from"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as w}from"./EaeraSelect-C-sln89V.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as O}from"./EaeraInput-CkbcAxy0.mjs";import{_ as E}from"./EaeraButton-BPVKRBOn.mjs";const $={Market:"MARKET",Limit:"LIMIT",Stop:"STOP",StopLimit:"STOP_LIMIT"},A={Day:"DAY",GTC:"GTC"},T={Buy:"BUY",Sell:"SELL"},L={JoinBid:"join-bid",Reverse:"reverse",JoinAsk:"join-ask",CloseAllPositions:"close-all-positions",FlattenAll:"flatten-all",CancelOrders:"cancel-orders"},z=Symbol("EAERA_ORDER_PLACEMENT_CONTEXT_KEY"),D=(a,t)=>{const l=e(a.orderType),i=e(a.orderDuration),d=e({...a.orderPrices});o(()=>a.orderType,e=>{l.value=e}),o(()=>a.orderDuration,e=>{i.value=e}),o(()=>a.orderPrices,e=>{d.value={...e}},{deep:!0});const n=s(()=>({disabledState:a.disabledState,viewingSymbol:a.viewingSymbol,position:a.position,orderType:l.value,orderDuration:i.value,orderPrices:{...d.value},invalidPrice:a.invalidPrice,loading:a.loading}));o(n,e=>{t("stateChange",e)},{immediate:!0});const c={disabledState:s(()=>a.disabledState),viewingSymbol:s(()=>a.viewingSymbol),position:s(()=>a.position),orderType:s({get:()=>l.value,set:e=>{l.value=e,t("update:orderType",e)}}),orderDuration:s({get:()=>i.value,set:e=>{i.value=e,t("update:orderDuration",e)}}),orderPrices:s(()=>d.value),invalidPrice:s(()=>a.invalidPrice),loading:s(()=>a.loading),state:n,setOrderPrice:(e,o)=>{d.value={...d.value,[e]:o},t("update:orderPrice",e,o)},submitSideOrder:(e,o)=>t("submit-side-order",e,o),joinBid:e=>t("join-bid",e),joinAsk:e=>t("join-ask",e),reverse:()=>t("reverse"),closeAllPositions:()=>t("close-all-positions"),flattenAll:()=>t("flatten-all"),cancelOrders:()=>t("cancel-orders"),onSymbolInfo:()=>t("symbol-info"),onResize:(e,o)=>t("resize",e,o)};return r(z,c),c},V=()=>{const e=a(z);if(!e)throw new Error("useEaeraOrderPlacement must be used inside EaeraOrderPlacement");return e},I={key:0,class:"custom-order-advanced"},N={class:"custom-order-advanced__price-row"},R={key:0,class:"custom-order-advanced__field"},x={class:"custom-order-advanced__label"},M={class:"custom-order-advanced__control"},B={key:0,class:"custom-order-advanced__error"},U={key:1,class:"custom-order-advanced__field"},F={class:"custom-order-advanced__label"},J={class:"custom-order-advanced__control"},G={key:0,class:"custom-order-advanced__error"},K={class:"custom-order-advanced__duration"},Y={class:"custom-order-advanced__label"},q={class:"custom-order-advanced__control"},X=t({__name:"EaeraOrderPlacementAdvanced",props:{invalidOrderPriceLabel:{}},setup(e){const o=e,{t:r}=S(),{viewingSymbol:a,orderType:t,orderDuration:v,orderPrices:b,invalidPrice:y,disabledState:f,setOrderPrice:g}=V(),k=s(()=>Object.values(A).map(e=>({label:r(`orders.durations.${e}`),value:e}))),E=s(()=>o.invalidOrderPriceLabel||r("orders.invalid-order-price")),T=s({get:()=>v.value,set:e=>{v.value=e}}),L=s({get:()=>b.value[$.Limit],set:e=>g($.Limit,e)}),z=s({get:()=>b.value[$.Stop],set:e=>g($.Stop,e)}),D=(e,o)=>{f.value.disabled||g(o,(e=>{const o=String(e??"").replace(/,/g,"").replace(/[^0-9.]/g,""),[s="",...r]=o.split("."),a=r.join("");return a.length?`${s}.${a}`:s})(e))},X=(e,o)=>{if(f.value.disabled)return;const s=Number(a.value?.tickSize)||0;if(!s)return;const r=(String(s).split(".")[1]??"").length,t=Number(b.value[e]||0),l=Number((t+o*s).toFixed(r));g(e,l)};return(e,o)=>l(t)?(i(),d("div",I,[n("div",N,[l($).Stop!==l(t)?(i(),d("div",R,[n("div",x,c(e.$t("orders.limit-price")),1),n("div",M,[u(l(O),{modelValue:L.value,"onUpdate:modelValue":o[2]||(o[2]=e=>L.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).limit}]),disabled:l(f).disabled,onInput:o[3]||(o[3]=e=>D(e,l($).Limit))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[0]||(o[0]=e=>X(l($).Limit,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[1]||(o[1]=e=>X(l($).Limit,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).limit?(i(),d("div",B,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0),l($).Limit!==l(t)?(i(),d("div",U,[n("div",F,c(e.$t("orders.stop-price")),1),n("div",J,[u(l(O),{modelValue:z.value,"onUpdate:modelValue":o[6]||(o[6]=e=>z.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).stop}]),controls:"",min:1,disabled:l(f).disabled,onInput:o[7]||(o[7]=e=>D(e,l($).Stop))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[4]||(o[4]=e=>X(l($).Stop,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[5]||(o[5]=e=>X(l($).Stop,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).stop?(i(),d("div",G,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0)]),n("div",K,[n("div",Y,c(e.$t("orders.duration")),1),n("div",q,[u(l(w),{modelValue:T.value,"onUpdate:modelValue":o[8]||(o[8]=e=>T.value=e),class:"custom-order-advanced__select",options:k.value,placeholder:"Select",disabled:l(f).disabled},null,8,["modelValue","options","disabled"])])])])):_("",!0)}}),H={key:0,class:"custom-order-actions__position-row"},Q={key:0,class:"custom-order-actions__position"},W={key:1,class:"custom-order-actions__empty"},Z={class:"custom-order-actions__actions"},ee={class:"custom-order-actions__row custom-order-actions__row--primary"},oe={class:"custom-order-actions__row custom-order-actions__row--secondary"},se={class:"custom-order-actions__row custom-order-actions__row--tertiary"},re=t({__name:"EaeraOrderPlacementActions",setup(o){const{t:r}=S(),{viewingSymbol:a,position:t,loading:y,orderType:f,disabledState:g,submitSideOrder:P,joinBid:C,joinAsk:j,reverse:w,closeAllPositions:A,flattenAll:z,cancelOrders:D}=V(),I=e(1),N=v(null),{width:R}=k(N),x=s(()=>r(`orders.types.${f.value||$.Market}`)),M=()=>Math.max(1,Number(I.value)||1),B=e=>{P(e,M())},U=()=>{C(M())},F=()=>{j(M())},J=e=>((e,o)=>{const s=Number(e??0);if(!Number.isFinite(s))return"0";if(!o)return s.toLocaleString();try{return new Intl.NumberFormat(void 0,{style:"currency",currency:o,currencyDisplay:"narrowSymbol",maximumFractionDigits:6}).format(s)}catch{return`${s.toLocaleString()} ${o}`}})(e,a.value?.currency),G=e=>{const o=Number(e);return o>0?"custom-order-actions__upl custom-order-actions__upl--positive":o<0?"custom-order-actions__upl custom-order-actions__upl--negative":"custom-order-actions__upl"};return(e,o)=>(i(),d("div",{ref_key:"orderActionsRef",ref:N,class:"custom-order-actions"},[l(a)?(i(),d("div",H,[l(t)?(i(),d("span",Q,[n("span",null,"+"+c(l(t).quantity),1),o[4]||(o[4]=n("span",null,"@",-1)),n("span",null,c(l(t).entryPrice),1),n("span",{class:m(G(l(t).unrealizedPnl))},[o[3]||(o[3]=b(" UP&L ",-1)),n("span",null,c(J(l(t).unrealizedPnl)),1)],2)])):(i(),d("span",W,c(e.$t("orders.no-active-position")),1))])):_("",!0),n("div",Z,[n("div",ee,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"success",loading:l(y)[l(T).Buy],disabled:l(g).disabled,onClick:o[0]||(o[0]=e=>B(l(T).Buy))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.buy",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"]),u(l(O),{modelValue:I.value,"onUpdate:modelValue":o[1]||(o[1]=e=>I.value=e),modelModifiers:{number:!0},type:"number",class:"custom-order-actions__volume-input order-input-number",controls:"",min:1,step:1,"step-strictly":"",precision:0,disabled:l(g).disabled},null,8,["modelValue","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"danger",loading:l(y)[l(T).Sell],disabled:l(g).disabled,onClick:o[2]||(o[2]=e=>B(l(T).Sell))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.sell",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"])]),n("div",oe,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinBid],disabled:l(g).disabled,onClick:U},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-bid")),1)]),_:1},8,["loading","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--third",loading:l(y)[l(L).Reverse],disabled:l(g).disabled,onClick:l(w)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.reverse")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinAsk],disabled:l(g).disabled,onClick:F},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-ask")),1)]),_:1},8,["loading","disabled"])]),n("div",se,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CloseAllPositions],disabled:l(g).disabled,onClick:l(A)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.close-position")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).FlattenAll],disabled:l(g).disabled,onClick:l(z)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.flatten-all")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CancelOrders],disabled:l(g).disabled,onClick:l(D)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.cancel-orders")),1)]),_:1},8,["loading","disabled","onClick"])])])],512))}}),ae={class:"custom-order-info"},te={class:"custom-order-info__select-type"},le={key:0,class:"custom-order-info__symbol"},ie={class:"custom-order-info__symbol-text"},de={key:1,class:"custom-order-info__inactive-message"},ne=t({__name:"EaeraOrderPlacementInfo",setup(e){const{locale:o,t:r}=S(),{disabledState:a,orderType:t,viewingSymbol:p,onSymbolInfo:v}=V(),b=s(()=>(o.value,Object.values($).filter(e=>e!==$.Market).map(e=>({label:r(`orders.types.${e}`),value:e})))),f=()=>{a.value.disabled||(t.value="")},g=()=>{p.value&&v()},k=s(()=>a.value.isMissingUser?r("watch-list.symbol-info.state.no-account-selected"):p.value&&"active"!==p.value.state?r(`watch-list.symbol-info.state.${p.value.state}`):"");return(e,o)=>(i(),d("div",ae,[n("div",te,[n("div",{class:m(["custom-order-info__select-item","custom-order-info__select-item--market",{"is-active":!l(t),"is-disabled":l(a).disabled}]),onClick:f},c(e.$t("orders.types.MARKET")),3),u(l(w),{modelValue:l(t),"onUpdate:modelValue":o[0]||(o[0]=e=>y(t)?t.value=e:null),class:m(["custom-order-info__select-item borderless-select","custom-order-info__select-item--select",{"is-active":!!l(t)}]),options:b.value,placeholder:e.$t("orders.types.PENDING_ORDER"),clearable:"",disabled:l(a).disabled},null,8,["modelValue","class","options","placeholder","disabled"])]),l(p)?(i(),d("div",le,[n("div",{class:"custom-order-info__symbol-link",onClick:g},[n("span",ie,c(l(p).tickerSymbol),1),u(l(j),{size:16,class:"custom-order-info__symbol-icon"})])])):_("",!0),k.value?(i(),d("div",de,[u(l(j),{size:16}),n("span",null,c(k.value),1)])):_("",!0)]))}}),ce={class:"custom-order-placement__content"},ue=t({__name:"index",props:{disabledState:{},viewingSymbol:{},position:{},orderType:{},orderDuration:{},orderPrices:{},invalidPrice:{},loading:{},invalidOrderPriceLabel:{}},emits:["resize","update:orderType","update:orderDuration","update:orderPrice","submit-side-order","join-bid","join-ask","reverse","close-all-positions","flatten-all","cancel-orders","symbol-info","stateChange"],setup(e,{expose:s,emit:r}){const a=v(null),{width:t,height:d}=k(a),c=e,m=D(c,r);return s({state:m.state}),o([t,d],()=>{a.value&&m.onResize(t.value,d.value)}),(e,o)=>{const s=f("client-only");return i(),g(s,null,{default:p(()=>[n("div",{ref_key:"orderRef",ref:a,class:"custom-order-placement__wrapper"},[n("div",ce,[u(l(ne)),u(l(X),{"invalid-order-price-label":c.invalidOrderPriceLabel},null,8,["invalid-order-price-label"]),u(l(re))])],512)]),_:1})}}});export{L as E,ue as _,A as a,T as b,$ as c,D as p,V as u};
@@ -1 +1 @@
1
- import{_ as e}from"./EaeraDivider-Dggvc36a.mjs";import{_ as a}from"./EaeraButton-BPVKRBOn.mjs";import{_ as l}from"./EaeraSelect-BxZRZofe.mjs";import{defineComponent as s,computed as t,openBlock as o,createElementBlock as r,createElementVNode as d,normalizeClass as i,createVNode as n,createCommentVNode as p,toDisplayString as m,unref as u,createTextVNode as c,Fragment as x,ref as b,withCtx as v}from"vue";import{_ as f}from"./EaeraInputNumber-COC6rdNn.mjs";import{Info as y,TriangleAlert as g,Ban as k,Send as E}from"@lucide/vue";import{_ as P}from"./EaeraInput-CkbcAxy0.mjs";import{_ as w}from"./EaeraCheckbox-C_faN0pV.mjs";import{_ as L}from"./EaeraSwitch-BI3E0zPf.mjs";const _={key:0,class:"flex flex-row gap-lg w-full"},V={key:0,class:"flex flex-col gap-xs flex-1 min-w-0"},T={key:1,class:"flex flex-col gap-xs flex-1 min-w-0"},B=s({__name:"OrderPriceRow",props:{orderType:{},price:{},stopLimitPrice:{},priceError:{type:Boolean},disabled:{type:Boolean}},emits:["update:price","update:stopLimitPrice"],setup(e,{emit:a}){const l=e,s=a,m=["buy_stop_limit","sell_stop_limit"],u=["market"],c=t(()=>!u.includes(l.orderType)),x=t(()=>m.includes(l.orderType));return(a,l)=>{const t=f;return c.value||x.value?(o(),r("div",_,[c.value?(o(),r("div",V,[d("span",{class:i(["text-label-md",e.priceError?"text-[var(--er-text-danger)]":"text-[var(--er-text-primary)]"])}," Price ",2),n(t,{value:e.price,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled},class:i(["w-full",e.priceError?"ring-1 ring-[var(--er-text-danger)]":""]),onHandleChange:l[0]||(l[0]=e=>s("update:price",e??0))},null,8,["value","other-props","class"])])):p("",!0),x.value?(o(),r("div",T,[l[2]||(l[2]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Stop Limit Price",-1)),n(t,{value:e.stopLimitPrice,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled},class:"w-full",onHandleChange:l[1]||(l[1]=e=>s("update:stopLimitPrice",e??0))},null,8,["value","other-props"])])):p("",!0)])):p("",!0)}}}),z={class:"flex flex-col gap-xs w-full"},U={class:"flex items-center justify-between"},I={class:"flex items-center gap-1"},S={class:"text-body-xs text-[var(--er-text-secondary)]"},C={class:"text-body-xs text-[var(--er-text-secondary)]"},O=s({__name:"OrderVolumeRow",props:{volume:{},symbol:{},margin:{},pipValue:{},marginBlocked:{type:Boolean},pipBlocked:{type:Boolean},disabled:{type:Boolean}},emits:["update:volume"],setup(e,{emit:a}){const l=a;return(a,s)=>{const t=f;return o(),r("div",z,[d("div",U,[s[1]||(s[1]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Volume",-1)),d("div",I,[d("span",S,m(e.symbol),1),n(u(y),{size:12,class:"text-[var(--er-icon-secondary)]"})])]),n(t,{value:e.volume,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:.01,disabled:e.disabled},class:"w-full",onHandleChange:s[0]||(s[0]=e=>l("update:volume",e??0))},null,8,["value","other-props"]),d("span",C,[s[2]||(s[2]=c(" Margin ",-1)),d("span",{class:i(e.marginBlocked?"text-[var(--er-text-muted)]":"")},m(e.marginBlocked?"—":e.margin),3),s[3]||(s[3]=c(" / Pip Value ",-1)),d("span",{class:i(e.pipBlocked?"text-[var(--er-text-muted)]":"")},m(e.pipBlocked?"—":e.pipValue),3)])])}}}),j={class:"flex flex-col gap-md w-full"},H={class:"flex items-center gap-xs"},M={class:"flex flex-row gap-lg w-full"},A={class:"flex flex-col gap-xs flex-1 min-w-0"},q={class:"flex items-center gap-xs"},F={class:"flex flex-col gap-xs flex-1 min-w-0"},R={class:"flex items-center justify-end gap-xs"},W={class:"flex flex-col gap-xs w-full"},N={class:"flex items-center gap-xs"},Y={class:"text-body-xs text-[var(--er-text-secondary)] ml-auto"},D=s({__name:"OrderAdvancedPanel",props:{advanced:{type:Boolean},stopLossEnabled:{type:Boolean},stopLossValue:{},takeProfitEnabled:{type:Boolean},takeProfitValue:{},comment:{},commentMax:{},disabled:{type:Boolean}},emits:["update:advanced","update:stopLossEnabled","update:stopLossValue","update:takeProfitEnabled","update:takeProfitValue","update:comment"],setup(e,{emit:a}){const l=a;return(a,s)=>{const t=L,i=w,u=f,c=P;return o(),r("div",j,[d("div",H,[s[6]||(s[6]=d("span",{class:"text-label-md text-[var(--er-text-brand)]"},"Advanced",-1)),n(t,{"model-value":e.advanced,size:"sm",disabled:e.disabled,"onUpdate:modelValue":s[0]||(s[0]=e=>l("update:advanced",e))},null,8,["model-value","disabled"])]),e.advanced?(o(),r(x,{key:0},[d("div",M,[d("div",A,[d("div",q,[n(i,{"model-value":e.stopLossEnabled,size:"sm",color:"success",disabled:e.disabled,"onUpdate:modelValue":s[1]||(s[1]=e=>l("update:stopLossEnabled",e))},null,8,["model-value","disabled"]),s[7]||(s[7]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Stop Loss",-1))]),n(u,{value:e.stopLossValue,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled||!e.stopLossEnabled},class:"w-full",onHandleChange:s[2]||(s[2]=e=>l("update:stopLossValue",e??0))},null,8,["value","other-props"])]),d("div",F,[d("div",R,[s[8]||(s[8]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Take Profit",-1)),n(i,{"model-value":e.takeProfitEnabled,size:"sm",disabled:e.disabled,"onUpdate:modelValue":s[3]||(s[3]=e=>l("update:takeProfitEnabled",e))},null,8,["model-value","disabled"])]),n(u,{value:e.takeProfitValue,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled||!e.takeProfitEnabled},class:"w-full",onHandleChange:s[4]||(s[4]=e=>l("update:takeProfitValue",e??0))},null,8,["value","other-props"])])]),d("div",W,[d("div",N,[s[9]||(s[9]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Comment",-1)),d("span",Y,m((e.comment||"").length)+"/"+m(e.commentMax),1)]),n(c,{value:e.comment,placeholder:"Add comment",size:"sm",disabled:e.disabled,class:"w-full",onHandleChange:s[5]||(s[5]=e=>l("update:comment",e))},null,8,["value","disabled"])])],64)):p("",!0)])}}}),G=["market","buy_limit","sell_limit","buy_stop","sell_stop","buy_stop_limit","sell_stop_limit"];function J(e,a,l,s){const o=b(!1),r=b(!1),d=t(()=>"market"===e.value.orderType),i=t(()=>{const l=a.value.find(a=>a.value===e.value.orderType);return l?.label??e.value.orderType}),n=t(()=>a.value.map(e=>({label:e.label,value:e.value}))),p=t(()=>l.value.isTradable),m=t(()=>!d.value),u=t(()=>m.value&&e.value.price<=0),c=t(()=>e.value.volume<=0),x=t(()=>!s.value&&p.value&&!c.value&&!u.value),v=t(()=>r.value&&u.value),f=e=>{r.value=!0,x.value&&(r.value=!1,e())},y=t(()=>!s.value&&p.value);return{showUnsupportedWarning:o,handleOrderTypeChange:(e,a)=>{if(!(e=>G.includes(e))(e))return o.value=!0,void setTimeout(()=>{o.value=!1},3e3);o.value=!1,a(e)},isMarket:d,orderTypeLabel:i,orderTypeOptions:n,isTradable:p,isPriceRequired:m,isPriceInvalid:u,isVolumeInvalid:c,showPriceError:v,canSubmit:x,isFieldBlocked:e=>l.value.blockedFields.includes(e),canEditOrder:y,handleBuy:e=>{f(e)},handleSell:e=>{f(e)},handleSubmit:e=>{f(e)}}}const K={class:"flex flex-col gap-md w-full"},Q={key:0,class:"flex items-center gap-xs bg-[var(--er-surface-warning)] rounded-sm p-sm"},X={class:"flex items-center gap-xs text-body-sm text-[var(--er-text-warning)]"},Z={class:"flex flex-col gap-md w-full"},$={key:0,class:"flex items-center gap-xs bg-[var(--er-surface-warning)] rounded-sm p-sm"},ee={class:"flex items-center gap-xs text-body-sm text-[var(--er-text-warning)]"},ae={key:1,class:"flex items-center gap-xs text-body-xs text-[var(--er-text-danger)]"},le={key:2,class:"flex items-center gap-xs"},se={key:3,class:"flex flex-row gap-md w-full"},te={class:"flex flex-col"},oe={class:"text-body-xs opacity-80"},re={class:"flex flex-col"},de={class:"text-body-xs opacity-80"},ie={key:4,class:"flex flex-row gap-sm w-full"},ne={key:5,class:"flex items-center justify-center gap-xs bg-[var(--er-surface-danger)] rounded-sm p-sm"},pe={class:"flex items-center gap-xs text-body-sm text-[var(--er-text-danger)]"},me={key:6},ue={class:"flex items-center gap-xs"},ce=s({__name:"index",props:{symbolInfo:{},symbolState:{},form:{},orderTypes:{},readOnly:{type:Boolean}},emits:["update:orderType","update:price","update:stopLimitPrice","update:volume","update:advanced","update:stopLossEnabled","update:stopLossValue","update:takeProfitEnabled","update:takeProfitValue","update:comment","submit"],setup(s,{emit:x}){const b=s,f=x,y=t(()=>b.form),P=t(()=>b.orderTypes),w=t(()=>b.symbolState),L=t(()=>b.readOnly),_=t(()=>b.readOnly),{showUnsupportedWarning:V,handleOrderTypeChange:T,isMarket:z,orderTypeLabel:U,orderTypeOptions:I,isTradable:S,showPriceError:C,isFieldBlocked:j,canEditOrder:H,handleBuy:M,handleSell:A,handleSubmit:q}=J(y,P,w,L),F=e=>{T(e,e=>f("update:orderType",e))},R=e=>String(e).replace(",","."),W=e=>{const a=b.form,l="market"===a.orderType,s=R(l?"buy"===e?b.symbolInfo.ask:b.symbolInfo.bid:a.price);return{side:e,symbol:b.symbolInfo.symbol,orderType:a.orderType,volume:a.volume,executionPrice:s,stopLoss:a.stopLossEnabled?a.stopLossValue:void 0,takeProfit:a.takeProfitEnabled?a.takeProfitValue:void 0,comment:a.comment}},N=e=>{"buy"===e?M(()=>f("submit",W("buy"))):A(()=>f("submit",W("sell")))},Y=()=>{const e=b.form.orderType.startsWith("sell_")?"sell":"buy";q(()=>f("submit",W(e)))};return(t,x)=>{const b=l,y=a,P=e;return o(),r("div",K,[u(V)?(o(),r("div",Q,[d("div",X,[n(u(g),{size:14}),x[13]||(x[13]=d("span",null,"Unsupported order type requested. Staying on previous type.",-1))])])):p("",!0),d("div",Z,[_.value?(o(),r("div",$,[d("div",ee,[n(u(g),{size:14}),x[14]||(x[14]=d("span",null,"No active account selected — trading actions are unavailable.",-1))])])):p("",!0),n(b,{"model-value":s.form.orderType,options:u(I),size:"sm",class:"w-full",disabled:!u(H),"onUpdate:modelValue":F},null,8,["model-value","options","disabled"]),n(B,{"order-type":s.form.orderType,price:s.form.price,"stop-limit-price":s.form.stopLimitPrice,"price-error":u(C),disabled:!u(H),"onUpdate:price":x[0]||(x[0]=e=>u(H)&&f("update:price",e)),"onUpdate:stopLimitPrice":x[1]||(x[1]=e=>u(H)&&f("update:stopLimitPrice",e))},null,8,["order-type","price","stop-limit-price","price-error","disabled"]),u(C)?(o(),r("div",ae,[n(u(g),{size:14}),d("span",null,"Price is required for "+m(u(U)),1)])):p("",!0),u(z)?p("",!0):(o(),r("div",le,[x[15]||(x[15]=d("span",{class:"text-caption-sm text-[var(--er-text-primary)]"},"Bid",-1)),d("span",{class:i(["text-body-xs",u(j)("bid")?"text-[var(--er-text-muted)]":"text-[var(--er-text-secondary)]"])},m(u(j)("bid")?"—":s.symbolInfo.bid),3),x[16]||(x[16]=d("span",{class:"text-body-xs text-[var(--er-text-secondary)]"},"/",-1)),x[17]||(x[17]=d("span",{class:"text-caption-sm text-[var(--er-text-primary)]"},"Ask",-1)),d("span",{class:i(["text-body-xs",u(j)("ask")?"text-[var(--er-text-muted)]":"text-[var(--er-text-secondary)]"])},m(u(j)("ask")?"—":s.symbolInfo.ask),3)])),n(O,{volume:s.form.volume,symbol:s.symbolInfo.symbol,margin:s.symbolInfo.margin,"pip-value":s.symbolInfo.pipValue,"margin-blocked":u(j)("margin"),"pip-blocked":u(j)("pipValue"),disabled:!u(H),"onUpdate:volume":x[2]||(x[2]=e=>u(H)&&f("update:volume",e))},null,8,["volume","symbol","margin","pip-value","margin-blocked","pip-blocked","disabled"]),u(z)&&!s.form.advancedEnabled?(o(),r("div",se,[n(y,{color:"danger",size:"lg",class:"flex-1 flex-col !h-auto py-sm",disabled:!u(H),onClick:x[3]||(x[3]=e=>N("sell"))},{default:v(()=>[d("div",te,[x[18]||(x[18]=d("span",{class:"text-label-lg"},"SELL",-1)),d("span",oe,m(u(j)("bid")?"—":s.symbolInfo.bid),1)])]),_:1},8,["disabled"]),n(y,{color:"success",size:"lg",class:"flex-1 flex-col !h-auto py-sm",disabled:!u(H),onClick:x[4]||(x[4]=e=>N("buy"))},{default:v(()=>[d("div",re,[x[19]||(x[19]=d("span",{class:"text-label-lg"},"BUY",-1)),d("span",de,m(u(j)("ask")?"—":s.symbolInfo.ask),1)])]),_:1},8,["disabled"])])):p("",!0),u(z)&&s.form.advancedEnabled?(o(),r("div",ie,[n(y,{color:"danger",size:"md",class:"flex-1",disabled:!u(H),onClick:x[5]||(x[5]=e=>N("sell"))},{default:v(()=>[...x[20]||(x[20]=[c(" SELL ",-1)])]),_:1},8,["disabled"]),n(y,{color:"success",size:"md",class:"flex-1",disabled:!u(H),onClick:x[6]||(x[6]=e=>N("buy"))},{default:v(()=>[...x[21]||(x[21]=[c(" BUY ",-1)])]),_:1},8,["disabled"])])):p("",!0),n(P,{class:"m-0"}),n(D,{advanced:s.form.advancedEnabled,"stop-loss-enabled":s.form.stopLossEnabled,"stop-loss-value":s.form.stopLossValue,"take-profit-enabled":s.form.takeProfitEnabled,"take-profit-value":s.form.takeProfitValue,comment:s.form.comment,"comment-max":s.form.commentMaxLength,disabled:!u(H),"onUpdate:advanced":x[7]||(x[7]=e=>u(H)&&f("update:advanced",e)),"onUpdate:stopLossEnabled":x[8]||(x[8]=e=>u(H)&&f("update:stopLossEnabled",e)),"onUpdate:stopLossValue":x[9]||(x[9]=e=>u(H)&&f("update:stopLossValue",e)),"onUpdate:takeProfitEnabled":x[10]||(x[10]=e=>u(H)&&f("update:takeProfitEnabled",e)),"onUpdate:takeProfitValue":x[11]||(x[11]=e=>u(H)&&f("update:takeProfitValue",e)),"onUpdate:comment":x[12]||(x[12]=e=>u(H)&&f("update:comment",e))},null,8,["advanced","stop-loss-enabled","stop-loss-value","take-profit-enabled","take-profit-value","comment","comment-max","disabled"]),u(S)?p("",!0):(o(),r("div",ne,[d("div",pe,[n(u(k),{size:14}),d("span",null,m(s.symbolInfo.symbol)+" is not tradable — order submission blocked",1)])])),!u(z)||s.form.advancedEnabled?(o(),r("div",me,[n(y,{color:"success",size:"lg",disabled:!u(H),class:"w-full",onClick:Y},{default:v(()=>[d("div",ue,[n(u(E)),x[22]||(x[22]=d("span",null,"Send Order",-1))])]),_:1},8,["disabled"])])):p("",!0)])])}}});export{ce as _,J as u};
1
+ import{_ as e}from"./EaeraDivider-Dggvc36a.mjs";import{_ as a}from"./EaeraButton-BPVKRBOn.mjs";import{_ as l}from"./EaeraSelect-C-sln89V.mjs";import{defineComponent as s,computed as t,openBlock as o,createElementBlock as r,createElementVNode as d,normalizeClass as i,createVNode as n,createCommentVNode as p,toDisplayString as m,unref as u,createTextVNode as c,Fragment as x,ref as b,withCtx as v}from"vue";import{_ as f}from"./EaeraInputNumber-COC6rdNn.mjs";import{Info as y,TriangleAlert as g,Ban as k,Send as E}from"@lucide/vue";import{_ as P}from"./EaeraInput-CkbcAxy0.mjs";import{_ as w}from"./EaeraCheckbox-C_faN0pV.mjs";import{_ as L}from"./EaeraSwitch-BI3E0zPf.mjs";const _={key:0,class:"flex flex-row gap-lg w-full"},V={key:0,class:"flex flex-col gap-xs flex-1 min-w-0"},T={key:1,class:"flex flex-col gap-xs flex-1 min-w-0"},B=s({__name:"OrderPriceRow",props:{orderType:{},price:{},stopLimitPrice:{},priceError:{type:Boolean},disabled:{type:Boolean}},emits:["update:price","update:stopLimitPrice"],setup(e,{emit:a}){const l=e,s=a,m=["buy_stop_limit","sell_stop_limit"],u=["market"],c=t(()=>!u.includes(l.orderType)),x=t(()=>m.includes(l.orderType));return(a,l)=>{const t=f;return c.value||x.value?(o(),r("div",_,[c.value?(o(),r("div",V,[d("span",{class:i(["text-label-md",e.priceError?"text-[var(--er-text-danger)]":"text-[var(--er-text-primary)]"])}," Price ",2),n(t,{value:e.price,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled},class:i(["w-full",e.priceError?"ring-1 ring-[var(--er-text-danger)]":""]),onHandleChange:l[0]||(l[0]=e=>s("update:price",e??0))},null,8,["value","other-props","class"])])):p("",!0),x.value?(o(),r("div",T,[l[2]||(l[2]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Stop Limit Price",-1)),n(t,{value:e.stopLimitPrice,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled},class:"w-full",onHandleChange:l[1]||(l[1]=e=>s("update:stopLimitPrice",e??0))},null,8,["value","other-props"])])):p("",!0)])):p("",!0)}}}),z={class:"flex flex-col gap-xs w-full"},U={class:"flex items-center justify-between"},I={class:"flex items-center gap-1"},S={class:"text-body-xs text-[var(--er-text-secondary)]"},C={class:"text-body-xs text-[var(--er-text-secondary)]"},O=s({__name:"OrderVolumeRow",props:{volume:{},symbol:{},margin:{},pipValue:{},marginBlocked:{type:Boolean},pipBlocked:{type:Boolean},disabled:{type:Boolean}},emits:["update:volume"],setup(e,{emit:a}){const l=a;return(a,s)=>{const t=f;return o(),r("div",z,[d("div",U,[s[1]||(s[1]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Volume",-1)),d("div",I,[d("span",S,m(e.symbol),1),n(u(y),{size:12,class:"text-[var(--er-icon-secondary)]"})])]),n(t,{value:e.volume,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:.01,disabled:e.disabled},class:"w-full",onHandleChange:s[0]||(s[0]=e=>l("update:volume",e??0))},null,8,["value","other-props"]),d("span",C,[s[2]||(s[2]=c(" Margin ",-1)),d("span",{class:i(e.marginBlocked?"text-[var(--er-text-muted)]":"")},m(e.marginBlocked?"—":e.margin),3),s[3]||(s[3]=c(" / Pip Value ",-1)),d("span",{class:i(e.pipBlocked?"text-[var(--er-text-muted)]":"")},m(e.pipBlocked?"—":e.pipValue),3)])])}}}),j={class:"flex flex-col gap-md w-full"},H={class:"flex items-center gap-xs"},M={class:"flex flex-row gap-lg w-full"},A={class:"flex flex-col gap-xs flex-1 min-w-0"},q={class:"flex items-center gap-xs"},F={class:"flex flex-col gap-xs flex-1 min-w-0"},R={class:"flex items-center justify-end gap-xs"},W={class:"flex flex-col gap-xs w-full"},N={class:"flex items-center gap-xs"},Y={class:"text-body-xs text-[var(--er-text-secondary)] ml-auto"},D=s({__name:"OrderAdvancedPanel",props:{advanced:{type:Boolean},stopLossEnabled:{type:Boolean},stopLossValue:{},takeProfitEnabled:{type:Boolean},takeProfitValue:{},comment:{},commentMax:{},disabled:{type:Boolean}},emits:["update:advanced","update:stopLossEnabled","update:stopLossValue","update:takeProfitEnabled","update:takeProfitValue","update:comment"],setup(e,{emit:a}){const l=a;return(a,s)=>{const t=L,i=w,u=f,c=P;return o(),r("div",j,[d("div",H,[s[6]||(s[6]=d("span",{class:"text-label-md text-[var(--er-text-brand)]"},"Advanced",-1)),n(t,{"model-value":e.advanced,size:"sm",disabled:e.disabled,"onUpdate:modelValue":s[0]||(s[0]=e=>l("update:advanced",e))},null,8,["model-value","disabled"])]),e.advanced?(o(),r(x,{key:0},[d("div",M,[d("div",A,[d("div",q,[n(i,{"model-value":e.stopLossEnabled,size:"sm",color:"success",disabled:e.disabled,"onUpdate:modelValue":s[1]||(s[1]=e=>l("update:stopLossEnabled",e))},null,8,["model-value","disabled"]),s[7]||(s[7]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Stop Loss",-1))]),n(u,{value:e.stopLossValue,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled||!e.stopLossEnabled},class:"w-full",onHandleChange:s[2]||(s[2]=e=>l("update:stopLossValue",e??0))},null,8,["value","other-props"])]),d("div",F,[d("div",R,[s[8]||(s[8]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Take Profit",-1)),n(i,{"model-value":e.takeProfitEnabled,size:"sm",disabled:e.disabled,"onUpdate:modelValue":s[3]||(s[3]=e=>l("update:takeProfitEnabled",e))},null,8,["model-value","disabled"])]),n(u,{value:e.takeProfitValue,placeholder:"0",controls:!0,size:"sm","other-props":{min:0,step:1e-5,disabled:e.disabled||!e.takeProfitEnabled},class:"w-full",onHandleChange:s[4]||(s[4]=e=>l("update:takeProfitValue",e??0))},null,8,["value","other-props"])])]),d("div",W,[d("div",N,[s[9]||(s[9]=d("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Comment",-1)),d("span",Y,m((e.comment||"").length)+"/"+m(e.commentMax),1)]),n(c,{value:e.comment,placeholder:"Add comment",size:"sm",disabled:e.disabled,class:"w-full",onHandleChange:s[5]||(s[5]=e=>l("update:comment",e))},null,8,["value","disabled"])])],64)):p("",!0)])}}}),G=["market","buy_limit","sell_limit","buy_stop","sell_stop","buy_stop_limit","sell_stop_limit"];function J(e,a,l,s){const o=b(!1),r=b(!1),d=t(()=>"market"===e.value.orderType),i=t(()=>{const l=a.value.find(a=>a.value===e.value.orderType);return l?.label??e.value.orderType}),n=t(()=>a.value.map(e=>({label:e.label,value:e.value}))),p=t(()=>l.value.isTradable),m=t(()=>!d.value),u=t(()=>m.value&&e.value.price<=0),c=t(()=>e.value.volume<=0),x=t(()=>!s.value&&p.value&&!c.value&&!u.value),v=t(()=>r.value&&u.value),f=e=>{r.value=!0,x.value&&(r.value=!1,e())},y=t(()=>!s.value&&p.value);return{showUnsupportedWarning:o,handleOrderTypeChange:(e,a)=>{if(!(e=>G.includes(e))(e))return o.value=!0,void setTimeout(()=>{o.value=!1},3e3);o.value=!1,a(e)},isMarket:d,orderTypeLabel:i,orderTypeOptions:n,isTradable:p,isPriceRequired:m,isPriceInvalid:u,isVolumeInvalid:c,showPriceError:v,canSubmit:x,isFieldBlocked:e=>l.value.blockedFields.includes(e),canEditOrder:y,handleBuy:e=>{f(e)},handleSell:e=>{f(e)},handleSubmit:e=>{f(e)}}}const K={class:"flex flex-col gap-md w-full"},Q={key:0,class:"flex items-center gap-xs bg-[var(--er-surface-warning)] rounded-sm p-sm"},X={class:"flex items-center gap-xs text-body-sm text-[var(--er-text-warning)]"},Z={class:"flex flex-col gap-md w-full"},$={key:0,class:"flex items-center gap-xs bg-[var(--er-surface-warning)] rounded-sm p-sm"},ee={class:"flex items-center gap-xs text-body-sm text-[var(--er-text-warning)]"},ae={key:1,class:"flex items-center gap-xs text-body-xs text-[var(--er-text-danger)]"},le={key:2,class:"flex items-center gap-xs"},se={key:3,class:"flex flex-row gap-md w-full"},te={class:"flex flex-col"},oe={class:"text-body-xs opacity-80"},re={class:"flex flex-col"},de={class:"text-body-xs opacity-80"},ie={key:4,class:"flex flex-row gap-sm w-full"},ne={key:5,class:"flex items-center justify-center gap-xs bg-[var(--er-surface-danger)] rounded-sm p-sm"},pe={class:"flex items-center gap-xs text-body-sm text-[var(--er-text-danger)]"},me={key:6},ue={class:"flex items-center gap-xs"},ce=s({__name:"index",props:{symbolInfo:{},symbolState:{},form:{},orderTypes:{},readOnly:{type:Boolean}},emits:["update:orderType","update:price","update:stopLimitPrice","update:volume","update:advanced","update:stopLossEnabled","update:stopLossValue","update:takeProfitEnabled","update:takeProfitValue","update:comment","submit"],setup(s,{emit:x}){const b=s,f=x,y=t(()=>b.form),P=t(()=>b.orderTypes),w=t(()=>b.symbolState),L=t(()=>b.readOnly),_=t(()=>b.readOnly),{showUnsupportedWarning:V,handleOrderTypeChange:T,isMarket:z,orderTypeLabel:U,orderTypeOptions:I,isTradable:S,showPriceError:C,isFieldBlocked:j,canEditOrder:H,handleBuy:M,handleSell:A,handleSubmit:q}=J(y,P,w,L),F=e=>{T(e,e=>f("update:orderType",e))},R=e=>String(e).replace(",","."),W=e=>{const a=b.form,l="market"===a.orderType,s=R(l?"buy"===e?b.symbolInfo.ask:b.symbolInfo.bid:a.price);return{side:e,symbol:b.symbolInfo.symbol,orderType:a.orderType,volume:a.volume,executionPrice:s,stopLoss:a.stopLossEnabled?a.stopLossValue:void 0,takeProfit:a.takeProfitEnabled?a.takeProfitValue:void 0,comment:a.comment}},N=e=>{"buy"===e?M(()=>f("submit",W("buy"))):A(()=>f("submit",W("sell")))},Y=()=>{const e=b.form.orderType.startsWith("sell_")?"sell":"buy";q(()=>f("submit",W(e)))};return(t,x)=>{const b=l,y=a,P=e;return o(),r("div",K,[u(V)?(o(),r("div",Q,[d("div",X,[n(u(g),{size:14}),x[13]||(x[13]=d("span",null,"Unsupported order type requested. Staying on previous type.",-1))])])):p("",!0),d("div",Z,[_.value?(o(),r("div",$,[d("div",ee,[n(u(g),{size:14}),x[14]||(x[14]=d("span",null,"No active account selected — trading actions are unavailable.",-1))])])):p("",!0),n(b,{"model-value":s.form.orderType,options:u(I),size:"sm",class:"w-full",disabled:!u(H),"onUpdate:modelValue":F},null,8,["model-value","options","disabled"]),n(B,{"order-type":s.form.orderType,price:s.form.price,"stop-limit-price":s.form.stopLimitPrice,"price-error":u(C),disabled:!u(H),"onUpdate:price":x[0]||(x[0]=e=>u(H)&&f("update:price",e)),"onUpdate:stopLimitPrice":x[1]||(x[1]=e=>u(H)&&f("update:stopLimitPrice",e))},null,8,["order-type","price","stop-limit-price","price-error","disabled"]),u(C)?(o(),r("div",ae,[n(u(g),{size:14}),d("span",null,"Price is required for "+m(u(U)),1)])):p("",!0),u(z)?p("",!0):(o(),r("div",le,[x[15]||(x[15]=d("span",{class:"text-caption-sm text-[var(--er-text-primary)]"},"Bid",-1)),d("span",{class:i(["text-body-xs",u(j)("bid")?"text-[var(--er-text-muted)]":"text-[var(--er-text-secondary)]"])},m(u(j)("bid")?"—":s.symbolInfo.bid),3),x[16]||(x[16]=d("span",{class:"text-body-xs text-[var(--er-text-secondary)]"},"/",-1)),x[17]||(x[17]=d("span",{class:"text-caption-sm text-[var(--er-text-primary)]"},"Ask",-1)),d("span",{class:i(["text-body-xs",u(j)("ask")?"text-[var(--er-text-muted)]":"text-[var(--er-text-secondary)]"])},m(u(j)("ask")?"—":s.symbolInfo.ask),3)])),n(O,{volume:s.form.volume,symbol:s.symbolInfo.symbol,margin:s.symbolInfo.margin,"pip-value":s.symbolInfo.pipValue,"margin-blocked":u(j)("margin"),"pip-blocked":u(j)("pipValue"),disabled:!u(H),"onUpdate:volume":x[2]||(x[2]=e=>u(H)&&f("update:volume",e))},null,8,["volume","symbol","margin","pip-value","margin-blocked","pip-blocked","disabled"]),u(z)&&!s.form.advancedEnabled?(o(),r("div",se,[n(y,{color:"danger",size:"lg",class:"flex-1 flex-col !h-auto py-sm",disabled:!u(H),onClick:x[3]||(x[3]=e=>N("sell"))},{default:v(()=>[d("div",te,[x[18]||(x[18]=d("span",{class:"text-label-lg"},"SELL",-1)),d("span",oe,m(u(j)("bid")?"—":s.symbolInfo.bid),1)])]),_:1},8,["disabled"]),n(y,{color:"success",size:"lg",class:"flex-1 flex-col !h-auto py-sm",disabled:!u(H),onClick:x[4]||(x[4]=e=>N("buy"))},{default:v(()=>[d("div",re,[x[19]||(x[19]=d("span",{class:"text-label-lg"},"BUY",-1)),d("span",de,m(u(j)("ask")?"—":s.symbolInfo.ask),1)])]),_:1},8,["disabled"])])):p("",!0),u(z)&&s.form.advancedEnabled?(o(),r("div",ie,[n(y,{color:"danger",size:"md",class:"flex-1",disabled:!u(H),onClick:x[5]||(x[5]=e=>N("sell"))},{default:v(()=>[...x[20]||(x[20]=[c(" SELL ",-1)])]),_:1},8,["disabled"]),n(y,{color:"success",size:"md",class:"flex-1",disabled:!u(H),onClick:x[6]||(x[6]=e=>N("buy"))},{default:v(()=>[...x[21]||(x[21]=[c(" BUY ",-1)])]),_:1},8,["disabled"])])):p("",!0),n(P,{class:"m-0"}),n(D,{advanced:s.form.advancedEnabled,"stop-loss-enabled":s.form.stopLossEnabled,"stop-loss-value":s.form.stopLossValue,"take-profit-enabled":s.form.takeProfitEnabled,"take-profit-value":s.form.takeProfitValue,comment:s.form.comment,"comment-max":s.form.commentMaxLength,disabled:!u(H),"onUpdate:advanced":x[7]||(x[7]=e=>u(H)&&f("update:advanced",e)),"onUpdate:stopLossEnabled":x[8]||(x[8]=e=>u(H)&&f("update:stopLossEnabled",e)),"onUpdate:stopLossValue":x[9]||(x[9]=e=>u(H)&&f("update:stopLossValue",e)),"onUpdate:takeProfitEnabled":x[10]||(x[10]=e=>u(H)&&f("update:takeProfitEnabled",e)),"onUpdate:takeProfitValue":x[11]||(x[11]=e=>u(H)&&f("update:takeProfitValue",e)),"onUpdate:comment":x[12]||(x[12]=e=>u(H)&&f("update:comment",e))},null,8,["advanced","stop-loss-enabled","stop-loss-value","take-profit-enabled","take-profit-value","comment","comment-max","disabled"]),u(S)?p("",!0):(o(),r("div",ne,[d("div",pe,[n(u(k),{size:14}),d("span",null,m(s.symbolInfo.symbol)+" is not tradable — order submission blocked",1)])])),!u(z)||s.form.advancedEnabled?(o(),r("div",me,[n(y,{color:"success",size:"lg",disabled:!u(H),class:"w-full",onClick:Y},{default:v(()=>[d("div",ue,[n(u(E)),x[22]||(x[22]=d("span",null,"Send Order",-1))])]),_:1},8,["disabled"])])):p("",!0)])])}}});export{ce as _,J as u};