@eaera-com/eaera-widgets-v2 0.1.74 → 0.1.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/base/EaeraButton.d.ts +3 -1
- package/dist/components/base/EaeraButton.mjs +1 -1
- package/dist/components/base/EaeraCarousel.mjs +1 -1
- package/dist/components/base/EaeraDatePicker.mjs +1 -1
- package/dist/components/base/EaeraDateTimePicker.mjs +1 -1
- package/dist/components/base/EaeraDrawer.mjs +1 -1
- package/dist/components/base/EaeraPopconfirm.mjs +1 -1
- package/dist/components/base/EaeraUploadDefault.mjs +1 -1
- package/dist/components/chunks/EaeraButton-BPVKRBOn.mjs +1 -0
- package/dist/components/chunks/{EaeraButtonGroup-B5wTBG3Y.mjs → EaeraButtonGroup-BROLavKb.mjs} +1 -1
- package/dist/components/chunks/{EaeraCalendar-BFZSCkQq.mjs → EaeraCalendar-QOYXhJey.mjs} +1 -1
- package/dist/components/chunks/{EaeraCarousel-BV02zb3u.mjs → EaeraCarousel-nVdAknBO.mjs} +1 -1
- package/dist/components/chunks/{EaeraDatePicker-CAm9fHms.mjs → EaeraDatePicker-Bwt5r5gk.mjs} +1 -1
- package/dist/components/chunks/{EaeraDateTimePicker-DXW1M3R7.mjs → EaeraDateTimePicker-Hv_ma8qU.mjs} +1 -1
- package/dist/components/chunks/{EaeraDrawer-C3Pj4wvV.mjs → EaeraDrawer-D7drsvOk.mjs} +1 -1
- package/dist/components/chunks/{EaeraDynamicFieldRow-Cv4oclH6.mjs → EaeraDynamicFieldRow-mZ5_nqkn.mjs} +1 -1
- package/dist/components/chunks/{EaeraForm-DKeyWXY3.mjs → EaeraForm-DEoXRjat.mjs} +1 -1
- package/dist/components/chunks/{EaeraPopconfirm-DxtJgCN5.mjs → EaeraPopconfirm-K_C8Pf9V.mjs} +1 -1
- package/dist/components/chunks/{EaeraTableV2-ZUpzVKhm.mjs → EaeraTableV2-CBaM5zp9.mjs} +1 -1
- package/dist/components/chunks/{EaeraUploadDefault-Cs4SEmWT.mjs → EaeraUploadDefault-r9WuE9Ri.mjs} +1 -1
- package/dist/components/chunks/EaeraWidgetGrowthBalanceProfitChart-DFmBk9dM.mjs +1 -0
- package/dist/components/chunks/{EaeraWidgetMarginCalculator-CAZcI1eg.mjs → EaeraWidgetMarginCalculator-BokNy1a7.mjs} +1 -1
- package/dist/components/chunks/EaeraWidgetMonthlyGainChart-Cef4Ckp0.mjs +1 -0
- package/dist/components/chunks/{EaeraWidgetPositionCalculator-BF6O7ATq.mjs → EaeraWidgetPositionCalculator-D36MGO-E.mjs} +1 -1
- package/dist/components/chunks/EaeraWidgetTradeVolumeStatistics-sjd61z36.mjs +1 -0
- package/dist/components/chunks/{index-B_ESts1X.mjs → index-9zJYqMyX.mjs} +1 -1
- package/dist/components/chunks/{index-CqpcR_2l.mjs → index-CgcRJ8oq.mjs} +1 -1
- package/dist/components/chunks/{index-CS3c4zka.mjs → index-ChWzksXo.mjs} +1 -1
- package/dist/components/chunks/{index-iEvfkNT8.mjs → index-Cm-cRnqS.mjs} +1 -1
- package/dist/components/chunks/index-Cu4uZ9Nd.mjs +1 -0
- package/dist/components/chunks/{index-CP8Qcgp3.mjs → index-DD9Bx0uF.mjs} +1 -1
- package/dist/components/chunks/index-DhwN0sRS.mjs +1 -0
- package/dist/components/chunks/index-wGZD3Xyh.mjs +1 -0
- package/dist/components/composite/EaeraCalendar.mjs +1 -1
- package/dist/components/composite/EaeraDynamicFieldRow.mjs +1 -1
- package/dist/components/composite/EaeraForm.mjs +1 -1
- package/dist/components/composite/EaeraTableV2.mjs +1 -1
- package/dist/components/custom/EaeraButtonGroup.mjs +1 -1
- package/dist/components/custom/EaeraWidgetGrowthBalanceProfitChart.mjs +1 -1
- package/dist/components/custom/EaeraWidgetMarginCalculator.mjs +1 -1
- package/dist/components/custom/EaeraWidgetMonthlyGainChart.mjs +1 -1
- package/dist/components/custom/EaeraWidgetPositionCalculator.mjs +1 -1
- package/dist/components/custom/EaeraWidgetTradeVolumeStatistics.mjs +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/components/webtrade/EaeraCfdOrderPlacement.mjs +1 -1
- package/dist/components/webtrade/EaeraCfdWatchlist.mjs +1 -1
- package/dist/components/webtrade/EaeraLightweightChart.mjs +1 -1
- package/dist/components/webtrade/EaeraOrderPlacement.mjs +1 -1
- package/dist/components/webtrade/EaeraOrderlineOverlay.mjs +1 -1
- package/dist/components/webtrade/EaeraTimeNSales.mjs +1 -1
- package/dist/components/webtrade/EaeraTradingTable.mjs +1 -1
- package/dist/components/webtrade/EaeraWatchlist.mjs +1 -1
- package/dist/design-system/components/_button.scss +48 -46
- package/dist/eaera-widgets-v2.es.js +23 -11
- package/dist/eaera-widgets-v2.umd.cjs +3 -3
- package/package.json +1 -1
- package/dist/components/chunks/EaeraButton-DGfjUoa6.mjs +0 -1
- package/dist/components/chunks/EaeraWidgetGrowthBalanceProfitChart-Czy9mp1p.mjs +0 -1
- package/dist/components/chunks/EaeraWidgetMonthlyGainChart-DR2cG9Ku.mjs +0 -1
- package/dist/components/chunks/EaeraWidgetTradeVolumeStatistics-DaXxwNPF.mjs +0 -1
- package/dist/components/chunks/index-0bXWe0Hv.mjs +0 -1
- package/dist/components/chunks/index-uox7lRH5.mjs +0 -1
- package/dist/components/chunks/index-xImZAwVl.mjs +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{defineComponent as o,computed as e,openBlock as l,createBlock as a,unref as t,normalizeClass as s,withCtx as n,createElementBlock as i,renderSlot as d,createCommentVNode as u}from"vue";import{ElButton as p}from"element-plus";const f={key:0,class:"button-prefix"},r={key:1,class:"button-suffix"},c=o({__name:"EaeraButton",props:{className:{},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},box:{type:Boolean,default:!1},color:{default:"primary"},size:{default:"md"},background:{type:Boolean,default:!0},plain:{type:Boolean,default:!1},link:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1},unsetWidth:{type:Boolean},isIconOnly:{type:Boolean,default:!1}},setup(o){const c=o,y=e(()=>[c.className,c.size,c.color,c.box&&"is-box",!c.background&&"no-background",c.ghost&&"is-ghost",c.unsetWidth&&"unset-width",c.isIconOnly&&"is-icon-only"]);return(e,c)=>(l(),a(t(p),{class:s(["custom-button",y.value]),loading:o.loading,disabled:o.disabled,plain:o.plain,link:o.link},{default:n(()=>[e.$slots.prefix?(l(),i("span",f,[d(e.$slots,"prefix")])):u("",!0),d(e.$slots,"default"),e.$slots.suffix?(l(),i("span",r,[d(e.$slots,"suffix")])):u("",!0)]),_:3},8,["class","loading","disabled","plain","link"]))}});export{c as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ElLoadingDirective as e}from"element-plus/es";import{_ as t}from"./EaeraSelect-BxZRZofe.mjs";import{_ as a}from"./EaeraSegmented-BED7en5R.mjs";import{defineComponent as l,ref as r,computed as o,resolveComponent as i,openBlock as n,createElementBlock as s,createElementVNode as d,toDisplayString as p,unref as c,createVNode as m,withCtx as g,createCommentVNode as u,withDirectives as b,renderSlot as y,createBlock as w}from"vue";import{useI18n as f}from"vue-i18n";import{Clock as v,TrendingUp as x}from"@lucide/vue";const S={class:"gbp-widget"},_={key:0,class:"gbp-widget__header"},z={class:"gbp-widget__title"},A={class:"gbp-widget__controls"},N={class:"gbp-widget__body"},L={key:0,class:"gbp-widget__empty"},D={class:"gbp-widget__empty-text"},T=l({__name:"EaeraWidgetGrowthBalanceProfitChart",props:{onClosedTradeData:{default:()=>[]},dailyData:{default:()=>[]},isLoading:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},currency:{default:"USD"}},setup(l){const T=l,{t:V}=f(),k=r("growth"),I=r("on_closed_trade"),C=o(()=>[{label:V("widget.growth-balance-profit.growth"),value:"growth"},{label:V("widget.growth-balance-profit.balance"),value:"balance"},{label:V("widget.growth-balance-profit.profit"),value:"profit"}]),U=o(()=>[{label:V("widget.growth-balance-profit.on-closed-trade"),value:"on_closed_trade"},{label:V("widget.growth-balance-profit.daily"),value:"daily"}]),q=o(()=>"daily"===I.value?T.dailyData:T.onClosedTradeData),B=o(()=>q.value.map(e=>{const t=(a=e.timestamp,new Date(a));var a;return isNaN(t.getTime())?String(e.timestamp):new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(t)})),E=o(()=>{const e=[];let t=0;for(const a of q.value)t+=Number(a.profit??0),e.push(t);return e}),j=e=>({color:e>=0?"var(--er-text-success)":"var(--er-text-danger)",borderRadius:e>=0?[4,4,0,0]:[0,0,4,4]}),G=e=>({type:"value",splitNumber:4,axisLabel:{color:"var(--er-text-muted)",fontSize:11,formatter:e},axisLine:{show:!0,lineStyle:{color:"transparent"}},axisTick:{show:!1},splitLine:{lineStyle:{color:"var(--er-border-subtle)",type:"dashed"}}}),H={type:"value",show:!1},F={left:48,right:12,top:24,bottom:56,containLabel:!0},P={type:"category",data:B.value,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"var(--er-text-muted)",fontSize:11}},R=o(()=>{const e=q.value;return"growth"===k.value?{tooltip:{trigger:"axis"},legend:{bottom:0,textStyle:{color:"var(--er-text-muted)",fontSize:12},data:[V("widget.growth-balance-profit.balance-growth"),V("widget.growth-balance-profit.balance-change")]},grid:F,xAxis:P,yAxis:[G("{value}%"),H],series:[{name:V("widget.growth-balance-profit.balance-growth"),type:"line",yAxisIndex:0,data:e.map(e=>Number(e.balanceGrowth??0)),itemStyle:{color:"var(--er-action-primary-default)"},lineStyle:{color:"var(--er-action-primary-default)"},symbol:"circle",symbolSize:4,emphasis:{disabled:!0}},{name:V("widget.growth-balance-profit.balance-change"),type:"bar",yAxisIndex:1,emphasis:{disabled:!0},data:e.map(e=>{const t=Number(e.balanceChange??0),a=j(t);return{value:t,itemStyle:a,emphasis:{itemStyle:a}}})}]}:"balance"===k.value?{tooltip:{trigger:"axis"},legend:{bottom:0,textStyle:{color:"var(--er-text-muted)",fontSize:12},data:[V("widget.growth-balance-profit.balance"),V("widget.growth-balance-profit.equity")]},grid:F,xAxis:P,yAxis:[G("{value}")],series:[{name:V("widget.growth-balance-profit.balance"),type:"line",data:e.map(e=>Number(e.balance??0)),itemStyle:{color:"var(--er-action-primary-default)"},lineStyle:{color:"var(--er-action-primary-default)"},symbol:"circle",symbolSize:4,emphasis:{disabled:!0}},{name:V("widget.growth-balance-profit.equity"),type:"line",data:e.map(e=>Number(e.equity??0)),itemStyle:{color:"var(--er-text-muted)"},lineStyle:{color:"var(--er-text-muted)"},symbol:"circle",symbolSize:4,emphasis:{disabled:!0}}]}:{tooltip:{trigger:"axis"},legend:{bottom:0,textStyle:{color:"var(--er-text-muted)",fontSize:12},data:["daily"===I.value?V("widget.growth-balance-profit.profit-daily"):V("widget.growth-balance-profit.profit-trade"),V("widget.growth-balance-profit.profit")]},grid:F,xAxis:P,yAxis:[G("{value}"),H],series:[{name:"daily"===I.value?V("widget.growth-balance-profit.profit-daily"):V("widget.growth-balance-profit.profit-trade"),type:"bar",yAxisIndex:0,emphasis:{disabled:!0},data:e.map(e=>{const t=Number(e.profit??0),a=j(t);return{value:t,itemStyle:a,emphasis:{itemStyle:a}}})},{name:V("widget.growth-balance-profit.profit"),type:"line",yAxisIndex:1,data:E.value,itemStyle:{color:"var(--er-action-primary-default)"},lineStyle:{color:"var(--er-action-primary-default)"},symbol:"circle",symbolSize:4,emphasis:{disabled:!0}}]}});return(r,o)=>{const f=a,T=t,B=i("v-chart"),E=e;return n(),s("div",S,[l.showHeader?(n(),s("header",_,[d("span",z,p(c(V)("widget.growth-balance-profit.title")),1),d("div",A,[m(f,{modelValue:k.value,"onUpdate:modelValue":o[0]||(o[0]=e=>k.value=e),options:C.value,size:"lg",variant:"box"},null,8,["modelValue","options"]),m(T,{modelValue:I.value,"onUpdate:modelValue":o[1]||(o[1]=e=>I.value=e),size:"lg",options:U.value},{prefix:g(()=>[m(c(v),{class:"gbp-widget__select-icon"})]),_:1},8,["modelValue","options"])])])):u("",!0),b((n(),s("div",N,[0===q.value.length?(n(),s("div",L,[y(r.$slots,"empty",{},()=>[m(c(x),{class:"gbp-widget__empty-icon"}),d("span",D,p(c(V)("widget.growth-balance-profit.no-data")),1)])])):(n(),w(B,{key:1,option:R.value,autoresize:"",class:"gbp-widget__chart"},null,8,["option"]))])),[[E,l.isLoading]])])}}});export{T as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ElLoadingDirective as t}from"element-plus/es";import{defineComponent as e,ref as a,computed as n,resolveComponent as o,openBlock as i,createElementBlock as l,createElementVNode as r,toDisplayString as s,unref as g,renderSlot as m,normalizeClass as c,createVNode as u,createCommentVNode as d,withDirectives as y,createBlock as p}from"vue";import{useI18n as v}from"vue-i18n";import{Percent as b,DollarSign as w,BarChart3 as _}from"@lucide/vue";const x={class:"monthly-gain-widget"},f={key:0,class:"monthly-gain-widget__header"},S={class:"monthly-gain-widget__title"},N={class:"monthly-gain-widget__toggle"},$=["aria-label"],D=["aria-label"],L={class:"monthly-gain-widget__body"},k={key:0,class:"monthly-gain-widget__empty"},M={class:"monthly-gain-widget__empty-text"},T=e({__name:"EaeraWidgetMonthlyGainChart",props:{monthlyGainData:{default:()=>[]},isLoading:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},currency:{default:"USD"}},setup(e){const T=e,{t:G}=v(),z=a("percent"),C=t=>{z.value=t},F=n(()=>[...T.monthlyGainData].map(t=>{const e=(a=t.month,new Date(a));var a;const n=isNaN(e.getTime())?String(t.month):new Intl.DateTimeFormat("en-US",{month:"short"}).format(e),o="percent"===z.value?t.percentage:t.value;return{date:e,label:n,value:Number(o??0)}}).sort((t,e)=>{const a=t.date.getTime(),n=e.date.getTime();return(isNaN(a)?1/0:a)-(isNaN(n)?1/0:n)})),U=n(()=>{const t=F.value.map(t=>Math.abs(t.value)),e=t.length>0?Math.max(...t):0;return Math.max(10*Math.ceil(e/10),10)}),A=t=>{const e=Math.abs(t),a=new Intl.NumberFormat("en-US",{maximumFractionDigits:2}).format(e),n=t>=0?"+":"-";if("percent"===z.value)return`${n}${a}%`;return`${n}${"USD"===T.currency?"$":""}${a}`},B=n(()=>{const t="percent"===z.value;return{tooltip:{trigger:"axis",axisPointer:{show:!1},valueFormatter:t=>A(t)},grid:{left:48,right:12,top:24,bottom:28,containLabel:!0},xAxis:{type:"category",data:F.value.map(t=>t.label),axisLabel:{color:"var(--er-text-muted)",fontSize:11},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",min:-U.value,max:U.value,splitNumber:4,axisLabel:{color:"var(--er-text-muted)",fontSize:11,formatter:e=>t?`${e}%`:String(e)},axisLine:{show:!0,lineStyle:{color:"transparent"}},axisTick:{show:!1},splitLine:{lineStyle:{color:"var(--er-border-subtle)",type:"dashed"}}},series:[{type:"bar",barCategoryGap:"60%",label:{show:!0,position:"top",fontSize:10,fontWeight:"bold",formatter:t=>A(t.value)},data:F.value.map(t=>{const e=t.value>=0?"var(--er-text-success)":"var(--er-text-danger)",a=t.value>=0?[4,4,0,0]:[0,0,4,4];return{value:t.value,itemStyle:{color:e,borderRadius:a},emphasis:{itemStyle:{color:e,borderRadius:a}},label:{color:e}}})}]}});return(a,n)=>{const v=o("v-chart"),T=t;return i(),l("div",x,[e.showHeader?(i(),l("header",f,[r("span",S,s(g(G)("widget.monthly-gain.title")),1),r("div",N,[m(a.$slots,"toggle",{activeView:z.value,setView:C},()=>[r("button",{type:"button",class:c(["monthly-gain-widget__toggle-btn",{"monthly-gain-widget__toggle-btn--active":"percent"===z.value}]),"aria-label":g(G)("widget.monthly-gain.percent"),onClick:n[0]||(n[0]=t=>C("percent"))},[u(g(b),{class:"monthly-gain-widget__toggle-icon"})],10,$),r("button",{type:"button",class:c(["monthly-gain-widget__toggle-btn",{"monthly-gain-widget__toggle-btn--active":"currency"===z.value}]),"aria-label":g(G)("widget.monthly-gain.currency"),onClick:n[1]||(n[1]=t=>C("currency"))},[u(g(w),{class:"monthly-gain-widget__toggle-icon"})],10,D)])])])):d("",!0),y((i(),l("div",L,[0===e.monthlyGainData.length?(i(),l("div",k,[m(a.$slots,"empty",{},()=>[u(g(_),{class:"monthly-gain-widget__empty-icon"}),r("span",M,s(g(G)("widget.monthly-gain.no-data")),1)])])):(i(),p(v,{key:1,option:B.value,autoresize:"",class:"monthly-gain-widget__chart"},null,8,["option"]))])),[[T,e.isLoading]])])}}});export{T as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ElLoadingDirective as e}from"element-plus/es";import{defineComponent as t,ref as a,computed as l,resolveComponent as o,openBlock as i,createElementBlock as r,createElementVNode as d,toDisplayString as u,unref as s,renderSlot as m,normalizeClass as n,createVNode as g,createCommentVNode as v,withDirectives as c,createBlock as w}from"vue";import{useI18n as y}from"vue-i18n";import{BarChart3 as _,CalendarDays as p,CalendarRange as b}from"@lucide/vue";const f={class:"trade-volume-widget"},D={key:0,class:"trade-volume-widget__header"},k={class:"trade-volume-widget__title"},x={class:"trade-volume-widget__toggle"},T=["aria-label"],S=["aria-label"],V=["aria-label"],F={class:"trade-volume-widget__body"},L={key:0,class:"trade-volume-widget__empty"},$={class:"trade-volume-widget__empty-text"},C=t({__name:"EaeraWidgetTradeVolumeStatistics",props:{tradeVolumeData:{default:()=>[]},isLoading:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},currency:{default:"USD"}},setup(t){const C=t,{t:M}=y(),A=a("daily"),N=e=>{A.value=e},U={daily:30,weekly:30,monthly:12},Y=e=>{const t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=t.getDay(),l=0===a?-6:1-a;return t.setDate(t.getDate()+l),t},z=e=>new Date(e.getFullYear(),e.getMonth(),1),B=e=>new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e),H=e=>new Intl.DateTimeFormat("en-US",{month:"short",year:"2-digit"}).format(e),I=l(()=>{const e=C.tradeVolumeData.map(e=>{return{date:(t=e.date,new Date(t)),volume:Number(e.volume??0)};var t}).filter(e=>!isNaN(e.date.getTime())).sort((e,t)=>e.date.getTime()-t.date.getTime()),t=U[A.value];if("daily"===A.value)return e.slice(-t).map(({date:e,volume:t})=>({label:B(e),value:t}));const a="weekly"===A.value,l=a?Y:z,o=a?B:H,i=new Map;for(const r of e){const e=l(r.date),t=`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`,a=i.get(t);a?a.volume+=r.volume:i.set(t,{date:e,volume:r.volume})}return Array.from(i.values()).sort((e,t)=>e.date.getTime()-t.date.getTime()).slice(-t).map(({date:e,volume:t})=>({label:o(e),value:t}))}),E=l(()=>({tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},xAxis:{type:"category",data:I.value.map(e=>e.label),axisLabel:{color:"var(--er-text-muted)",fontSize:11},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",show:!1},series:[{type:"bar",data:I.value.map(e=>e.value),barCategoryGap:"60%",itemStyle:{color:"var(--er-action-primary-default)",borderRadius:[4,4,0,0]}}],grid:{left:0,right:12,top:16,bottom:28,containLabel:!1}}));return(a,l)=>{const y=o("v-chart"),C=e;return i(),r("div",f,[t.showHeader?(i(),r("header",D,[d("span",k,u(s(M)("widget.trade-volume.title")),1),d("div",x,[m(a.$slots,"toggle",{activeView:A.value,setView:N},()=>[d("button",{type:"button",class:n(["trade-volume-widget__toggle-btn",{"trade-volume-widget__toggle-btn--active":"daily"===A.value}]),"aria-label":s(M)("widget.trade-volume.daily"),onClick:l[0]||(l[0]=e=>N("daily"))},[g(s(_),{class:"trade-volume-widget__toggle-icon"})],10,T),d("button",{type:"button",class:n(["trade-volume-widget__toggle-btn",{"trade-volume-widget__toggle-btn--active":"weekly"===A.value}]),"aria-label":s(M)("widget.trade-volume.weekly"),onClick:l[1]||(l[1]=e=>N("weekly"))},[g(s(p),{class:"trade-volume-widget__toggle-icon"})],10,S),d("button",{type:"button",class:n(["trade-volume-widget__toggle-btn",{"trade-volume-widget__toggle-btn--active":"monthly"===A.value}]),"aria-label":s(M)("widget.trade-volume.monthly"),onClick:l[2]||(l[2]=e=>N("monthly"))},[g(s(b),{class:"trade-volume-widget__toggle-icon"})],10,V)])])])):v("",!0),c((i(),r("div",F,[0===t.tradeVolumeData.length?(i(),r("div",L,[m(a.$slots,"empty",{},()=>[g(s(_),{class:"trade-volume-widget__empty-icon"}),d("span",$,u(s(M)("widget.trade-volume.no-data")),1)])])):(i(),w(y,{key:1,option:E.value,autoresize:"",class:"trade-volume-widget__chart"},null,8,["option"]))])),[[C,t.isLoading]])])}}});export{C as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e}from"./EaeraTableV2-ZUpzVKhm.mjs";import{_ as l}from"./EaeraTag-BgmzVuUW.mjs";import{_ as t}from"./EaeraSelect-BxZRZofe.mjs";import{_ as s}from"./EaeraButton-DGfjUoa6.mjs";import{_ as a}from"./EaeraInput-CkbcAxy0.mjs";import{defineComponent as o,openBlock as i,createBlock as r,withCtx as n,createElementVNode as c,createVNode as d,createTextVNode as m,createElementBlock as u,normalizeClass as v,toDisplayString as b,createCommentVNode as y,ref as p,shallowRef as g,computed as x,unref as f,withModifiers as C,resolveDynamicComponent as w}from"vue";import{X as L,Plus as S,ArrowUp as k,ArrowDown as _,ArrowDownUp as A,Star as N,ListPlus as $}from"@lucide/vue";import{_ as j}from"./EaeraDialog-uLsXC20k.mjs";import{a as D}from"./vendor-vueuse-core-B96HGhR7.mjs";import{b as z}from"./iconSvg-BrZD7vO3.mjs";const T={class:"flex flex-col gap-xs"},R={class:"m-0 text-title-md text-[var(--er-text-primary)]"},O={class:"flex w-full flex-col gap-md py-sm"},V={class:"flex justify-end gap-sm"},I=o({__name:"AddSymbolToListDialog",props:{dialogVisible:{type:Boolean},symbol:{},selectedListId:{},customListOptions:{},message:{},canAdd:{type:Boolean}},emits:["close","add","update:selectedListId"],setup(e,{emit:l}){const a=l;return(l,o)=>{const p=t,g=s,x=j;return i(),r(x,{"dialog-visible":e.dialogVisible,width:"400px","append-body":"","destroy-on-close":"","close-on-click-modal":!1,onClose:o[3]||(o[3]=e=>a("close"))},{header:n(()=>[c("div",T,[c("p",R," Add "+b(e.symbol?.symbol)+" to list ",1),o[4]||(o[4]=c("p",{class:"m-0 text-body-xs text-[var(--er-text-secondary)]"}," Existing memberships are kept unique. ",-1))])]),default:n(()=>[c("div",O,[d(p,{value:e.selectedListId,options:e.customListOptions,placeholder:"Select custom list","translate-label":!1,size:"md",class:"w-full",onChange:o[0]||(o[0]=e=>a("update:selectedListId",e))},null,8,["value","options"]),e.message?(i(),u("p",{key:0,class:v(["m-0 text-body-xs",e.message.includes("already")?"text-[var(--er-text-warning)]":"text-[var(--er-text-success)]"])},b(e.message),3)):y("",!0)])]),footer:n(()=>[c("div",V,[d(g,{color:"secondary",onClick:o[1]||(o[1]=e=>a("close"))},{default:n(()=>[...o[5]||(o[5]=[m("Close",-1)])]),_:1}),d(g,{color:"primary",disabled:!e.canAdd,onClick:o[2]||(o[2]=e=>a("add"))},{default:n(()=>[...o[6]||(o[6]=[m(" Add ",-1)])]),_:1},8,["disabled"])])]),_:1},8,["dialog-visible"])}}}),M={class:"flex flex-col gap-md py-sm"},F={class:"flex flex-col gap-xs"},E={class:"flex flex-col gap-xs"},U={key:0,class:"m-0 text-body-xs text-[var(--er-text-danger)]"},P={class:"flex justify-end gap-sm"},H=o({__name:"CreateCustomListDialog",props:{dialogVisible:{type:Boolean},listName:{},selectedSymbols:{},symbolOptions:{},error:{}},emits:["close","create","update:listName","update:selectedSymbols"],setup(e,{emit:l}){const o=l,v=e=>{o("update:selectedSymbols",e)};return(l,p)=>{const g=a,x=t,f=s,C=j;return i(),r(C,{"dialog-visible":e.dialogVisible,width:"420px","append-body":"","destroy-on-close":"","close-on-click-modal":!1,onClose:p[3]||(p[3]=e=>o("close"))},{header:n(()=>[...p[4]||(p[4]=[c("div",{class:"flex flex-col gap-xs"},[c("p",{class:"m-0 text-title-md text-[var(--er-text-primary)]"},"Create custom list"),c("p",{class:"m-0 text-body-xs text-[var(--er-text-secondary)]"}," Save a reusable set of symbols for Market Watch. ")],-1)])]),default:n(()=>[c("div",M,[c("div",F,[p[5]||(p[5]=c("span",{class:"text-label-md text-[var(--er-text-primary)]"},"List name",-1)),d(g,{value:e.listName,placeholder:"London Open",size:"md",onHandleChange:p[0]||(p[0]=e=>o("update:listName",e))},null,8,["value"])]),c("div",E,[p[6]||(p[6]=c("span",{class:"text-label-md text-[var(--er-text-primary)]"},"Symbols",-1)),d(x,{value:e.selectedSymbols,options:e.symbolOptions,multiple:"",filterable:"",clearable:"",size:"md",class:"w-full",onChange:v},null,8,["value","options"])]),e.error?(i(),u("p",U,b(e.error),1)):y("",!0)])]),footer:n(()=>[c("div",P,[d(f,{color:"secondary",onClick:p[1]||(p[1]=e=>o("close"))},{default:n(()=>[...p[7]||(p[7]=[m("Cancel",-1)])]),_:1}),d(f,{color:"primary",onClick:p[2]||(p[2]=e=>o("create"))},{default:n(()=>[...p[8]||(p[8]=[m("Create",-1)])]),_:1})])]),_:1},8,["dialog-visible"])}}}),B="archived-commodities",q="custom:",K=["symbol","lastPrice","volume"],W=[{label:"All Symbols",value:"all"},{label:"Favorites",value:"favorites"},{label:"Forex Majors",value:"forex-majors"},{label:"Metals",value:"metals"},{label:"Crypto",value:"crypto"},{label:"Archived Commodities",value:B,available:!1}],G={xauusd:["coin","usd"],xagusd:["coin","usd"]},J=[{key:"symbol",label:"Symbol",sortable:!0,sort_key:"symbol",minWidth:164,customHeaderClass:"flex justify-start items-center",headerLabelClass:"text-label-md text-[var(--er-text-secondary)]",cellClass:"watchlist-symbol-column",align:"left"},{key:"lastPrice",label:"Last Price",sortable:!0,sort_key:"lastPrice",width:104,align:"right",customHeaderClass:"flex justify-end items-center",headerLabelClass:"text-label-md text-[var(--er-text-secondary)]",cellClass:"watchlist-price-column"},{key:"volume",label:"Volume",sortable:!0,sort_key:"volume",width:88,align:"right",customHeaderClass:"flex justify-end items-center",headerLabelClass:"text-label-md text-[var(--er-text-secondary)]",cellClass:"watchlist-price-column"}],Q=e=>`${q}${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")}-${Date.now()}`,X=e=>!!e&&K.includes(e);function Y(e,l){const t=p("all"),s=p(0),a=p(""),o=p({}),i=p(""),r=p(!1),n=p(""),c=p([]),d=p(""),m=p(!1),u=p(null),v=p(void 0),b=p(""),y=p({}),f=p([{id:`${q}metals-watch`,name:"Metals Watch",symbols:[]}]),C=g(null),w=g(null),{height:L}=D(C),{height:S}=D(w),k=x(()=>{const l=new Map;return e().forEach(e=>{l.has(e.symbol)||l.set(e.symbol,e)}),l}),_=x(()=>Array.from(k.value.values()).map(e=>({label:e.symbol,value:e.symbol}))),A=x(()=>f.value.map(e=>({label:e.name,value:e.id}))),N=x(()=>A.value),$=x(()=>[...W,...f.value.map(e=>({label:e.name,value:e.id,available:!0}))]),j=x(()=>Z(t.value)),z=x(()=>{if("favorites"===t.value)return e().filter(e=>P(e));if("all"===t.value)return e();const l=Z(t.value);return l?l.symbols.map(e=>k.value.get(e)).filter(e=>!!e):e().filter(e=>e.category===t.value)}),T=x(()=>{const e=a.value.trim().toLowerCase(),l=z.value.map(H);return e?l.filter(l=>l.symbol.toLowerCase().includes(e)||l.name.toLowerCase().includes(e)):l}),R=x(()=>{if(!L.value)return;const e=S.value+16,l=Math.floor(L.value-e);return Math.max(160,l)}),O=x(()=>{const e=o.value.key,l=o.value.direction;return X(e)&&l?[...T.value].sort((t,s)=>{const a=M(t,e),o=M(s,e),i=F(a,o);return"asc"===l?i:-i}):T.value}),V=x(()=>{const e=a.value.trim();if(e&&0===O.value.length)return`No symbols match “${e}” in the current view. Clear search to restore the list.`;const l=j.value;return l&&0===l.symbols.length?`${l.name} has no symbols. Add symbols to this list or choose another view.`:"No symbols match the current view."}),I=x(()=>f.value.length>0),M=(e,l)=>"lastPrice"===l||"volume"===l?E(e[l]):e.symbol,F=(e,l)=>"number"==typeof e&&"number"==typeof l?e-l:String(e).localeCompare(String(l)),E=e=>{const l=e.trim().toUpperCase(),t=l.endsWith("K")?1e3:l.endsWith("M")?1e6:1;return Number(l.replace(/,/g,"").replace(/[^\d.-]/g,""))*t||0},U=e=>{const l=e.symbol.toLowerCase(),t=G[l];return t||[l.slice(0,3),l.slice(3,6)||"usd"]},P=e=>y.value[e.symbol]??!!e.isFavorite,H=e=>({...e,isFavorite:P(e)}),K=()=>{r.value=!1,d.value=""},Y=()=>{m.value=!1,u.value=null,b.value=""},Z=e=>f.value.find(l=>l.id===e),ee=x(()=>{const e=j.value;return e?e.name:$.value.find(e=>e.value===t.value)?.label??"All Symbols"});return{selectedView:t,viewSelectRenderKey:s,searchText:a,sorting:o,viewNotice:i,createListDialogVisible:r,newListName:n,newListSymbols:c,createListError:d,addToListDialogVisible:m,symbolPendingListAdd:u,selectedCustomListId:v,addToListMessage:b,canAddToCustomList:I,panelBodyRef:C,filterControlsRef:w,viewOptions:$,tableFields:J,symbolOptions:_,customListOptions:A,customListSelectOptions:N,hasSelectedCustomList:()=>!!v.value,tableHeight:R,tableRows:O,emptyStateMessage:V,handleSymbolChange:(e,l)=>{l(e)},handleSearchChange:e=>{a.value=e},clearSearch:()=>{a.value=""},handleViewChange:e=>{const l=$.value.find(l=>l.value===e);if(!1===l?.available||e===B)return i.value=`${l?.label??e} is unavailable for this account. Current view remains ${ee.value}.`,void(s.value+=1);t.value=e,i.value=""},handleRowClick:(e,l)=>{l(e.symbol)},handleSortChanged:e=>{if(!e.key&&!e.direction)return o.value={},void(i.value="");X(String(e.key))?(o.value={key:e.key,direction:e.direction},i.value=""):i.value="Unsupported sort column ignored. Keeping the prior ordering."},getRowClass:({row:e})=>e.symbol===l()?"watchlist-row is-active":"watchlist-row",sortDirection:e=>{if(X(e)&&o.value.key===e)return o.value.direction},baseIcon:e=>U(e)[0],quoteIcon:e=>U(e)[1],toggleFavorite:e=>{y.value={...y.value,[e.symbol]:!P(e)}},openCreateListDialog:()=>{r.value=!0,n.value="",c.value=[],d.value=""},closeCreateListDialog:K,handleNewListNameChange:e=>{n.value=e,d.value=""},handleNewListSymbolsChange:e=>{c.value=Array.isArray(e)?e:e?[e]:[],d.value=""},createCustomList:()=>{const e=(e=>e.trim().replace(/\s+/g," "))(n.value);if(!e)return void(d.value="List name is required.");if(f.value.some(l=>l.name.trim().toLowerCase()===e.toLowerCase()))return void(d.value="List names must be unique.");const l=Array.from(new Set(c.value)),s={id:Q(e),name:e,symbols:l};f.value=[...f.value,s],t.value=s.id,i.value=`${e} created with ${l.length} symbol${1===l.length?"":"s"}.`,K()},openAddToListDialog:e=>{u.value=e,v.value=void 0,b.value="",m.value=!0},closeAddToListDialog:Y,handleSelectedCustomListChange:e=>{v.value=e||void 0,b.value=""},addSymbolToSelectedList:()=>{const e=u.value?.symbol,l=v.value,s=l?Z(l):void 0;e&&s?s.symbols.includes(e)?b.value=`${e} is already in ${s.name}.`:(f.value=f.value.map(l=>l.id===s.id?{...l,symbols:[...l.symbols,e]}:l),t.value=s.id,Y(),i.value=`${e} added to ${s.name}.`):b.value="Select a custom list first."},resetCategory:()=>{t.value="all",i.value=""},resetSort:()=>{o.value={}}}}const Z={class:"grid grid-cols-2 gap-lg"},ee={class:"flex items-center justify-center gap-xs"},le={key:0,class:"rounded-xs bg-[var(--er-surface-warning)] px-sm py-xs text-body-xs text-[var(--er-text-warning)]"},te={class:"watchlist-symbol-cell flex items-center gap-sm"},se={class:"watchlist-symbol-badge","aria-hidden":"true"},ae={class:"watchlist-symbol-meta flex-1"},oe={class:"flex items-center gap-xs"},ie={class:"whitespace-nowrap text-body-sm text-[var(--er-text-primary)]"},re=["aria-label","onClick"],ne=["disabled","aria-label","onClick"],ce={class:"watchlist-symbol-name text-body-xs text-[var(--er-text-secondary)]"},de={class:"watchlist-price-cell text-body-xs text-[var(--er-text-primary)]"},me={class:"watchlist-price-cell text-body-xs text-[var(--er-text-primary)]"},ue={class:"flex h-[120px] items-center justify-center px-md text-center text-body-sm text-[var(--er-text-secondary)]"},ve=o({__name:"index",props:{symbols:{},selectedSymbol:{}},emits:["selectSymbol"],setup(o,{expose:p,emit:g}){const x=o,j=g,{selectedView:D,viewSelectRenderKey:T,searchText:R,viewNotice:O,createListDialogVisible:V,newListName:M,newListSymbols:F,createListError:E,addToListDialogVisible:U,symbolPendingListAdd:P,selectedCustomListId:B,addToListMessage:q,canAddToCustomList:K,panelBodyRef:W,filterControlsRef:G,viewOptions:J,tableFields:Q,symbolOptions:X,customListOptions:ve,customListSelectOptions:be,hasSelectedCustomList:ye,tableHeight:pe,tableRows:ge,emptyStateMessage:he,handleSearchChange:xe,clearSearch:fe,handleViewChange:Ce,handleRowClick:we,handleSortChanged:Le,getRowClass:Se,sortDirection:ke,baseIcon:_e,quoteIcon:Ae,toggleFavorite:Ne,openCreateListDialog:$e,closeCreateListDialog:je,handleNewListNameChange:De,handleNewListSymbolsChange:ze,createCustomList:Te,openAddToListDialog:Re,closeAddToListDialog:Oe,handleSelectedCustomListChange:Ve,addSymbolToSelectedList:Ie,resetCategory:Me,resetSort:Fe}=Y(()=>x.symbols,()=>x.selectedSymbol),Ee=e=>{we(e,e=>j("selectSymbol",e))};return p({resetCategory:Me,resetSort:Fe}),(o,p)=>{const g=a,x=s,j=t,Y=l,ve=e;return i(),u("div",{ref_key:"panelBodyRef",ref:W,class:"h-full min-h-0 flex flex-col gap-lg bg-[var(--er-surface-container)] px-sm py-md"},[c("div",{ref_key:"filterControlsRef",ref:G,class:"flex flex-col gap-sm"},[c("div",Z,[d(g,{value:f(R),placeholder:"Search symbol",size:"md",class:"watchlist-input-control w-full",onHandleChange:f(xe)},{suffix:n(()=>[f(R)?(i(),u("button",{key:0,type:"button",class:"watchlist-clear-button","aria-label":"Clear symbol search",onClick:p[0]||(p[0]=C((...e)=>f(fe)&&f(fe)(...e),["stop"]))},[d(f(L),{size:14})])):y("",!0)]),_:1},8,["value","onHandleChange"]),(i(),r(j,{key:f(T),value:f(D),options:f(J),size:"md",class:"watchlist-control w-full",onChange:f(Ce)},{footer:n(()=>[d(x,{size:"sm",color:"secondary",background:!1,class:"w-full",onClick:f($e)},{default:n(()=>[c("div",ee,[d(f(S),{size:14}),p[1]||(p[1]=c("span",null,"Create custom list",-1))])]),_:1},8,["onClick"])]),_:1},8,["value","options","onChange"]))]),f(O)?(i(),u("div",le,b(f(O)),1)):y("",!0)],512),d(ve,{class:"watchlist-custom-table min-h-0 flex-1","allow-sort-reset":"","hide-footer":"",height:f(pe),"max-height":f(pe),"table-layout":"fixed",size:"small",items:f(ge),fields:f(Q),"total-rows":f(ge).length,stripe:!1,"show-filter-by-default":!1,"row-class-name":f(Se),onOnRowClick:Ee,"onUpdate:onSortChanged":f(Le)},{"cell(symbol)":n(({item:e})=>[c("div",te,[c("div",se,[(i(),r(w(f(z)(f(_e)(e))),{size:18,class:"watchlist-symbol-badge-icon watchlist-symbol-badge-icon--base"})),(i(),r(w(f(z)(f(Ae)(e))),{size:18,class:"watchlist-symbol-badge-icon watchlist-symbol-badge-icon--quote"}))]),c("div",ae,[c("div",oe,[c("span",ie,b(e.symbol),1),c("button",{type:"button",class:"watchlist-row-action","aria-label":e.isFavorite?`Remove ${e.symbol} from favorites`:`Add ${e.symbol} to favorites`,onClick:C(l=>f(Ne)(e),["stop"])},[d(f(N),{size:16,"stroke-width":1.8,fill:e.isFavorite?"var(--er-text-warning)":"none",class:v(e.isFavorite?"text-[var(--er-text-warning)]":"text-[var(--er-icon-secondary)]")},null,8,["fill","class"])],8,re),c("button",{type:"button",class:"watchlist-row-action",disabled:!f(K),"aria-label":`Add ${e.symbol} to a custom list`,onClick:C(l=>f(Re)(e),["stop"])},[d(f($),{size:15})],8,ne),"closed"===e.marketStatus?(i(),r(Y,{key:0,color:"warning",size:"sm"},{default:n(()=>[...p[2]||(p[2]=[m(" Closed ",-1)])]),_:1})):y("",!0)]),c("p",ce,b(e.name),1)])])]),"cell(lastPrice)":n(({item:e})=>[c("span",de,b(e.lastPrice),1)]),"cell(volume)":n(({item:e})=>[c("span",me,b(e.volume),1)]),"sort-icon":n(({sortKey:e})=>["asc"===f(ke)(e)?(i(),r(f(k),{key:0})):"desc"===f(ke)(e)?(i(),r(f(_),{key:1,size:16})):(i(),r(f(A),{key:2,size:16}))]),empty:n(()=>[c("div",ue,b(f(he)),1)]),_:1},8,["height","max-height","items","fields","total-rows","row-class-name","onUpdate:onSortChanged"]),d(H,{"dialog-visible":f(V),"list-name":f(M),"selected-symbols":f(F),"symbol-options":f(X),error:f(E),onClose:f(je),onCreate:f(Te),"onUpdate:listName":f(De),"onUpdate:selectedSymbols":f(ze)},null,8,["dialog-visible","list-name","selected-symbols","symbol-options","error","onClose","onCreate","onUpdate:listName","onUpdate:selectedSymbols"]),d(I,{"dialog-visible":f(U),symbol:f(P),"selected-list-id":f(B),"custom-list-options":f(be),message:f(q),"can-add":f(ye)(),onClose:f(Oe),onAdd:f(Ie),"onUpdate:selectedListId":f(Ve)},null,8,["dialog-visible","symbol","selected-list-id","custom-list-options","message","can-add","onClose","onAdd","onUpdate:selectedListId"])],512)}}});export{ve as _,Y as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ref as e,watch as o,computed as s,provide as r,inject as t,defineComponent as a,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-Degftfa1.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-C-1fEG2R.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as O}from"./EaeraInput-CkbcAxy0.mjs";import{_ as E}from"./EaeraButton-DGfjUoa6.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=(t,a)=>{const l=e(t.orderType),i=e(t.orderDuration),d=e({...t.orderPrices});o(()=>t.orderType,e=>{l.value=e}),o(()=>t.orderDuration,e=>{i.value=e}),o(()=>t.orderPrices,e=>{d.value={...e}},{deep:!0});const n=s(()=>({disabledState:t.disabledState,viewingSymbol:t.viewingSymbol,position:t.position,orderType:l.value,orderDuration:i.value,orderPrices:{...d.value},invalidPrice:t.invalidPrice,loading:t.loading}));o(n,e=>{a("stateChange",e)},{immediate:!0});const c={disabledState:s(()=>t.disabledState),viewingSymbol:s(()=>t.viewingSymbol),position:s(()=>t.position),orderType:s({get:()=>l.value,set:e=>{l.value=e,a("update:orderType",e)}}),orderDuration:s({get:()=>i.value,set:e=>{i.value=e,a("update:orderDuration",e)}}),orderPrices:s(()=>d.value),invalidPrice:s(()=>t.invalidPrice),loading:s(()=>t.loading),state:n,setOrderPrice:(e,o)=>{d.value={...d.value,[e]:o},a("update:orderPrice",e,o)},submitSideOrder:(e,o)=>a("submit-side-order",e,o),joinBid:e=>a("join-bid",e),joinAsk:e=>a("join-ask",e),reverse:()=>a("reverse"),closeAllPositions:()=>a("close-all-positions"),flattenAll:()=>a("flatten-all"),cancelOrders:()=>a("cancel-orders"),onSymbolInfo:()=>a("symbol-info"),onResize:(e,o)=>a("resize",e,o)};return r(z,c),c},V=()=>{const e=t(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=a({__name:"EaeraOrderPlacementAdvanced",props:{invalidOrderPriceLabel:{}},setup(e){const o=e,{t:r}=S(),{viewingSymbol:t,orderType:a,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("."),t=r.join("");return t.length?`${s}.${t}`:s})(e))},X=(e,o)=>{if(f.value.disabled)return;const s=Number(t.value?.tickSize)||0;if(!s)return;const r=(String(s).split(".")[1]??"").length,a=Number(b.value[e]||0),l=Number((a+o*s).toFixed(r));g(e,l)};return(e,o)=>l(a)?(i(),d("div",I,[n("div",N,[l($).Stop!==l(a)?(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(a)?(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=a({__name:"EaeraOrderPlacementActions",setup(o){const{t:r}=S(),{viewingSymbol:t,position:a,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,t.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(t)?(i(),d("div",H,[l(a)?(i(),d("span",Q,[n("span",null,"+"+c(l(a).quantity),1),o[4]||(o[4]=n("span",null,"@",-1)),n("span",null,c(l(a).entryPrice),1),n("span",{class:m(G(l(a).unrealizedPnl))},[o[3]||(o[3]=b(" UP&L ",-1)),n("span",null,c(J(l(a).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:"error",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))}}),te={class:"custom-order-info"},ae={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=a({__name:"EaeraOrderPlacementInfo",setup(e){const{locale:o,t:r}=S(),{disabledState:t,orderType:a,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=()=>{t.value.disabled||(a.value="")},g=()=>{p.value&&v()},k=s(()=>t.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",te,[n("div",ae,[n("div",{class:m(["custom-order-info__select-item","custom-order-info__select-item--market",{"is-active":!l(a),"is-disabled":l(t).disabled}]),onClick:f},c(e.$t("orders.types.MARKET")),3),u(l(w),{modelValue:l(a),"onUpdate:modelValue":o[0]||(o[0]=e=>y(a)?a.value=e:null),class:m(["custom-order-info__select-item borderless-select","custom-order-info__select-item--select",{"is-active":!!l(a)}]),options:b.value,placeholder:e.$t("orders.types.PENDING_ORDER"),clearable:"",disabled:l(t).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=a({__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 t=v(null),{width:a,height:d}=k(t),c=e,m=D(c,r);return s({state:m.state}),o([a,d],()=>{t.value&&m.onResize(a.value,d.value)}),(e,o)=>{const s=f("client-only");return i(),g(s,null,{default:p(()=>[n("div",{ref_key:"orderRef",ref:t,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 +0,0 @@
|
|
|
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,createElementBlock as g,Fragment as y,renderList as v,normalizeClass as b,createCommentVNode as _,onMounted 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-CAm9fHms.mjs";import R from"../composite/EaeraDropdownV2.mjs";import{d as O}from"./vendor-dayjs-D8w0D2To.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-DGfjUoa6.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-Degftfa1.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-C-1fEG2R.mjs";import{_ as j}from"./EaeraTableV2-ZUpzVKhm.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:"secondary",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,f=l,{t:k}=S(),{tabs:x,activeTab:D,setActiveTab:C,isHistoryTab:T,selectedTimeRange:P,timeRangeOptions:E,isExporting:N,openColumnDialog:$,setSelectedTimeRange:M,setCustomDateRange:V,triggerExportHistory:z}=m.context,A=p(null),{height:U}=H(A),j=e(null),q=e(null),K=e(["",""]),Y=a(()=>{const e=E.value.find(e=>e.value===P.value);return e?.label??P.value}),B=e=>{K.value=["",""],M(e),j.value?.closeDropdown?.(),e===W.Custom&&q.value?.handleOpen?.()},G=(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},X=e=>O(e).isAfter(O(),"day");return t(U,e=>{f("heightChange",e)},{immediate:!0}),t(K,e=>{if(!e||2!==e.length)return;const t=G(e[0],!1),a=G(e[1],!0);t&&a&&V({from:t,to:a})}),(e,t)=>{const a=R,l=w;return i(),g("div",{ref_key:"headerRef",ref:A,class:"custom-trading-table__header"},[u("div",pe,[(i(!0),g(y,null,v(r(x),e=>(i(),g("button",{key:e.value,type:"button",class:b(["custom-trading-table__tab-button",{"custom-trading-table__tab-button--active":r(D)===e.value}]),onClick:t=>r(C)(e.value)},[u("span",ye,d(e.label),1)],10,ge))),128))]),u("div",ve,[r(T)?(i(),o(a,{key:0,ref_key:"timeRangeDropdownRef",ref:j,trigger:"click","popper-class":"custom-trading-table__time-range-popper"},{dropdown:n(()=>[u("div",he,[(i(!0),g(y,null,v(r(E),e=>(i(),g("button",{key:e.value,type:"button",class:b(["custom-trading-table__time-range-item text-label-md",{"custom-trading-table__time-range-item--active":r(P)===e.value},{"custom-trading-table__time-range-item--custom-divider":e.value===r(W).Custom}]),onClick:t=>B(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(Y.value),1)])]),_:1},512)):_("",!0),u("button",{type:"button",class:"custom-trading-table__action-button",onClick:t[0]||(t[0]=(...e)=>r($)&&r($)(...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(T)?(i(),g("button",{key:1,type:"button",class:b(["custom-trading-table__action-button",{"custom-trading-table__action-button--disabled":r(N)}]),disabled:r(N),onClick:t[1]||(t[1]=(...e)=>r(z)&&r(z)(...e))},[c(r(I),{size:14,class:"custom-trading-table__action-icon"}),u("span",xe,d(r(k)("trading-table.export.title")),1)],10,ke)):_("",!0),c(l,{ref_key:"customDateRef",ref:q,modelValue:K.value,"onUpdate:modelValue":t[2]||(t[2]=e=>K.value=e),type:"daterange",style:{display:"none"},"unlink-panels":"","disabled-date":X},null,8,["modelValue"]),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(),g("div",{ref_key:"historyTabsRef",ref:c,class:"custom-trading-table__history-tabs"},[(i(!0),g(y,null,v(r(o),e=>(i(),g("button",{key:e.value,type:"button",class:b(["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;f(()=>{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 f(()=>{document.addEventListener("keyup",xe)}),x(()=>{document.removeEventListener("keyup",xe)}),(e,t)=>{const a=U,s=A,l=z,f=V;return i(),g("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(),g("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:b(["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(),g("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:b(["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(),g("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(),g("div",Ie,[c(f,{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),g(y,null,v(de.value.left,(e,t)=>(i(),g("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),g(y,null,v(de.value.right,e=>(i(),g("div",{key:e.key,class:b(e.class),style:C(e.style)},d(e.value),7))),128))])])],8,["to"])):_("",!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:y,pendingFields:v,layout:_,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(()=>_.value.tableHeight),q=a(()=>T(v.value)),K=a(()=>Pe(y.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,y=V;return i(),g("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(),g("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:b(["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(),g("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(),g("div",Ye,[c(y,{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:_,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 f(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(),g("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:b(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(_)}`},[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:b(["text-label-md",z.value.left.class])},d(r(Re)(z.value.left.value,2,"0.00")),3)]),u("div",at,[(i(!0),g(y,null,v(z.value.right,e=>(i(),g("div",{key:e.key,class:b(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:b,historyOrderRows:x,historyOrderFields:D,historyOrdersSummary:H,resolveTableFields:w,changeHistoryOrdersSort:R,loadMoreHistoryOrders:O}=l.context,E=e(),F=e(null),L=a(()=>b.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}),f(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(),g("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),g(y,null,v(M.value,(e,t)=>(i(),g(y,{key:t},[e?(i(),g("span",rt,[u("span",nt,d(r(m)(`trading-table.history.summary.orders.${t}`))+": ",1),u("span",ut,d(e),1)])):_("",!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:_,historyPositionRows:x,historyPositionFields:D,positionsSummary:H,resolveTableFields:w,changeHistoryPositionsSort:R,loadMoreHistoryPositions:O}=l.context,F=e(),L=e(null),I=a(()=>_.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}),f(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(),g("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:b(["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:b(["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:b(["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:b(["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:b(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),g(y,null,v(V.value,e=>(i(),g("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:y,setWrapperHeight:v,setHeaderHeight:b,setHistoryTabsHeight:f,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||f(0)},{immediate:!0}),a({openColumnDialog:l.openColumnDialog,closeColumnDialog:l.closeColumnDialog}),(e,t)=>(i(),g("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(f)},null,8,["context","onHeightChange"])):_("",!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(y),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};
|