@eaera-com/eaera-widgets-v2 0.1.71 → 0.1.72
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/EaeraDropdown.d.ts +20 -8
- package/dist/components/base/EaeraDropdown.mjs +1 -1
- package/dist/components/chunks/{EaeraDataCard-Mw6cuEQT.mjs → EaeraDataCard-DGc1YbK2.mjs} +1 -1
- package/dist/components/chunks/EaeraDropdown-CWfgsBwI.mjs +1 -0
- package/dist/components/chunks/{EaeraTableV2-BF5WVwr0.mjs → EaeraTableV2-BivuFAh3.mjs} +1 -1
- package/dist/components/chunks/{index-CrK9v14t.mjs → index-BoVvAQlx.mjs} +1 -1
- package/dist/components/chunks/{index-DBt7OBMQ.mjs → index-DakSfuuR.mjs} +1 -1
- package/dist/components/chunks/{index-f7_iVTcy.mjs → index-DsGpHWS8.mjs} +1 -1
- package/dist/components/chunks/{index-YzHmypKi.mjs → index-jnrqMQo1.mjs} +1 -1
- package/dist/components/composite/EaeraDataCard.mjs +1 -1
- package/dist/components/composite/EaeraTableV2.mjs +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/components/webtrade/EaeraCfdWatchlist.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/_dropdown.scss +12 -4
- package/dist/design-system/components/_popper.scss +15 -6
- package/dist/eaera-widgets-v2.es.js +1512 -1501
- package/dist/eaera-widgets-v2.umd.cjs +14 -14
- package/package.json +1 -1
- package/dist/components/chunks/EaeraDropdown-s15chyOx.mjs +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
|
-
type DropdownOption = {
|
|
2
|
+
export type DropdownOption = {
|
|
3
3
|
id: string;
|
|
4
4
|
label: string;
|
|
5
5
|
custom?: boolean;
|
|
@@ -7,12 +7,14 @@ type DropdownOption = {
|
|
|
7
7
|
clickFunc?: () => void;
|
|
8
8
|
icon?: any;
|
|
9
9
|
};
|
|
10
|
+
type Placement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end';
|
|
10
11
|
type Props = {
|
|
11
|
-
trigger?:
|
|
12
|
+
trigger?: 'hover' | 'click';
|
|
13
|
+
placement?: Placement;
|
|
12
14
|
options?: DropdownOption[];
|
|
13
15
|
data?: Record<string, any>;
|
|
14
16
|
className?: string;
|
|
15
|
-
size?: 'sm' | 'md' | 'lg';
|
|
17
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
16
18
|
selectedId?: string;
|
|
17
19
|
popperOptions?: any;
|
|
18
20
|
showArrow?: boolean;
|
|
@@ -26,23 +28,33 @@ declare function __VLS_template(): {
|
|
|
26
28
|
option: DropdownOption;
|
|
27
29
|
}): any;
|
|
28
30
|
};
|
|
29
|
-
refs: {
|
|
31
|
+
refs: {
|
|
32
|
+
dropdownRef: unknown;
|
|
33
|
+
};
|
|
30
34
|
rootEl: any;
|
|
31
35
|
};
|
|
32
36
|
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
33
|
-
declare const __VLS_component: DefineComponent<Props, {
|
|
37
|
+
declare const __VLS_component: DefineComponent<Props, {
|
|
38
|
+
openDropdown: () => void;
|
|
39
|
+
closeDropdown: () => void;
|
|
40
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
41
|
+
"visible-change": (visible: boolean) => any;
|
|
34
42
|
"click-option": (option: DropdownOption) => any;
|
|
35
43
|
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
44
|
+
"onVisible-change"?: ((visible: boolean) => any) | undefined;
|
|
36
45
|
"onClick-option"?: ((option: DropdownOption) => any) | undefined;
|
|
37
46
|
}>, {
|
|
38
|
-
size: "sm" | "md" | "lg";
|
|
47
|
+
size: "sm" | "md" | "lg" | "xl";
|
|
39
48
|
popperOptions: any;
|
|
40
49
|
showArrow: boolean;
|
|
41
50
|
data: Record<string, any>;
|
|
42
|
-
trigger:
|
|
51
|
+
trigger: "hover" | "click";
|
|
52
|
+
placement: Placement;
|
|
43
53
|
options: DropdownOption[];
|
|
44
54
|
selectedId: string;
|
|
45
|
-
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
55
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
56
|
+
dropdownRef: unknown;
|
|
57
|
+
}, any>;
|
|
46
58
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
47
59
|
export default _default;
|
|
48
60
|
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"../chunks/EaeraDropdown-
|
|
1
|
+
import{_ as e}from"../chunks/EaeraDropdown-CWfgsBwI.mjs";import"element-plus/es";import"vue";import"@lucide/vue";export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./EaeraDropdown-
|
|
1
|
+
import{_ as e}from"./EaeraDropdown-CWfgsBwI.mjs";import{defineComponent as a,ref as s,computed as t,openBlock as l,createElementBlock as o,createElementVNode as d,renderSlot as r,createBlock as c,withCtx as i,createVNode as n,unref as u,createCommentVNode as m,Fragment as _,renderList as v,toDisplayString as p,normalizeClass as w,createTextVNode as f}from"vue";import{EllipsisVertical as k,ChevronDown as y,ChevronUp as b}from"@lucide/vue";const $={class:"data-card"},g={key:0,class:"data-card__header"},C={class:"data-card__header-left"},L={class:"data-card__header-right"},I={class:"data-card__body"},S={class:"data-card__row-label"},x={key:1,class:"data-card__row-value"},z={key:0,class:"flex items-center"},D={key:1,class:"flex items-center"},E={key:2,class:"data-card__footer"},H=a({__name:"EaeraDataCard",props:{items:{default:()=>[]},menuItems:{default:void 0},collapsedCount:{default:void 0},showHeader:{type:Boolean,default:!0},showMoreLabel:{default:"Show more"},showLessLabel:{default:"Show less"}},setup(a){const H=a,M=s(!1),j=t(()=>(H.menuItems??[]).map((e,a)=>({id:String(a),label:e.label,icon:e.icon,disabled:e.disabled??!1,clickFunc:e.action}))),B=t(()=>void 0===H.collapsedCount||M.value?H.items:H.items.slice(0,H.collapsedCount));return(s,t)=>{const F=e;return l(),o("div",$,[H.showHeader?(l(),o("div",g,[d("div",C,[r(s.$slots,"header-title")]),d("div",L,[r(s.$slots,"header-right",{},()=>[H.menuItems&&H.menuItems.length?(l(),c(F,{key:0,trigger:"click",options:j.value,class:"data-card__menu"},{title:i(()=>[n(u(k),{size:24})]),_:1},8,["options"])):m("",!0)])])])):m("",!0),d("div",I,[(l(!0),o(_,null,v(B.value,(e,a)=>(l(),o("div",{key:e.key??a,class:"data-card__row"},[d("span",S,p(e.label),1),r(s.$slots,`item-${e.key}`,{item:e},()=>[e.isStatus?(l(),o("span",{key:0,class:w(["status-col",`status-${e.statusVariant??e.value}`])},p(e.value),3)):(l(),o("span",x,p(e.value),1))])]))),128))]),void 0!==H.collapsedCount&&H.items.length>H.collapsedCount?(l(),o("div",{key:1,class:"data-card__show-more",onClick:t[0]||(t[0]=e=>M.value=!M.value)},[M.value?(l(),o("span",D,[f(p(a.showLessLabel)+" ",1),r(s.$slots,"show-less-icon",{},()=>[n(u(b),{size:20})])])):(l(),o("span",z,[f(p(a.showMoreLabel)+" ",1),r(s.$slots,"show-more-icon",{},()=>[n(u(y),{size:20})])]))])):m("",!0),s.$slots.footer?(l(),o("div",E,[r(s.$slots,"footer")])):m("",!0)])}}});export{H as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ElDropdown as e,ElDropdownMenu as o,ElDropdownItem as s,ElIcon as t}from"element-plus/es";import{defineComponent as p,ref as l,computed as i,openBlock as d,createBlock as a,normalizeClass as n,withCtx as r,createElementVNode as c,renderSlot as u,createVNode as m,createElementBlock as f,Fragment as _,renderList as w,resolveDynamicComponent as g,toDisplayString as v,unref as k,createCommentVNode as b}from"vue";import{Check as x}from"@lucide/vue";const y={class:"el-dropdown-link"},I={class:"custom-popper__option-prefix"},$=p({__name:"EaeraDropdown",props:{trigger:{default:"hover"},placement:{default:"bottom"},options:{default:()=>[]},data:{default:()=>({})},className:{},size:{default:"md"},selectedId:{default:void 0},popperOptions:{default:{modifiers:[{name:"offset",options:{offset:[0,4]}}]}},showArrow:{type:Boolean,default:!1},danger:{type:Boolean}},emits:["click-option","visible-change"],setup(p,{expose:$,emit:C}){const D=p,O=C,z=l(),A=i(()=>["custom-popper custom-dropdown__popper",D.size,D.danger&&"danger"]),B=i(()=>[D.className]);return $({openDropdown:()=>{z.value?.handleOpen?.()},closeDropdown:()=>{z.value?.handleClose?.()}}),(l,i)=>{const $=t,C=s,N=o,E=e;return d(),a(E,{ref_key:"dropdownRef",ref:z,trigger:p.trigger,placement:p.placement,class:n(["custom-dropdown",B.value]),"popper-class":A.value,"popper-options":p.popperOptions,"show-arrow":p.showArrow,onVisibleChange:i[0]||(i[0]=e=>O("visible-change",e))},{dropdown:r(()=>[m(N,null,{default:r(()=>[(d(!0),f(_,null,w(p.options,e=>(d(),a(C,{key:e.id,onClick:o=>(e=>{e.clickFunc?.(),O("click-option",e)})(e),item:p.data,disabled:e.disabled,class:n({"is-selected":e.id===D.selectedId})},{default:r(()=>[c("div",null,[e.custom?u(l.$slots,`${e.id}`,{},void 0,void 0,0):e.icon||l.$slots["option-prefix"]?(d(),f(_,{key:1},[c("div",I,[u(l.$slots,"option-prefix",{option:e},()=>[(d(),a(g(e.icon)))])]),c("span",{class:n(["custom-popper__option-text",{"is-selected":e.id===D.selectedId}])},v(e.label),3)],64)):(d(),f("span",{key:2,class:n(["custom-popper__option-text",{"is-selected":e.id===D.selectedId}])},v(e.label),3))]),e.id===D.selectedId?(d(),a($,{key:0,class:"custom-popper__option-tick"},{default:r(()=>[m(k(x))]),_:1})):b("",!0)]),_:2},1032,["onClick","item","disabled","class"]))),128))]),_:3})]),default:r(()=>[c("span",y,[u(l.$slots,"title")])]),_:3},8,["trigger","placement","class","popper-class","popper-options","show-arrow"])}}});export{$ as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ElTableColumn as e,ElLoadingDirective as a}from"element-plus/es";import{defineComponent as t,useModel as l,ref as r,reactive as s,computed as o,watch as i,onMounted as n,onBeforeUnmount as d,openBlock as c,createElementBlock as u,normalizeClass as f,renderSlot as p,withDirectives as y,createBlock as m,unref as v,mergeProps as k,withCtx as g,Fragment as b,renderList as _,resolveDynamicComponent as x,createCommentVNode as w,createElementVNode as C,toDisplayString as $,createTextVNode as S,createSlots as B,createVNode as I,mergeModels as z}from"vue";import{ElTable as E}from"element-plus";import{u as F}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as T}from"vue-i18n";import{S as j}from"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as P}from"./EaeraDateTimePicker-DXW1M3R7.mjs";import{_ as D}from"./EaeraInput-CkbcAxy0.mjs";import{_ as H}from"./EaeraSelect-BxZRZofe.mjs";import{_ as R}from"./EaeraDatePicker-CAm9fHms.mjs";import{_ as L}from"./EaeraPagination-BKcbraqK.mjs";import{_ as A}from"./EaeraSelectTag-CGmqeNQJ.mjs";import{_ as M}from"./EaeraSelectStatus-3bhsZt3A.mjs";import{_ as V}from"./EaeraButton-DGfjUoa6.mjs";import{_ as K}from"./EaeraEmpty-CnGp7eaH.mjs";import{_ as O}from"./EaeraDataCard-Mw6cuEQT.mjs";import{ChevronDown as U,ChevronUp as q,ArrowUp as N,ArrowDown as Z,ArrowDownUp as W}from"@lucide/vue";const G=["createdAt","completedAt","updatedAt","hiredAt","datetimeOfIssue","dateOfBirth","expirationAt"],J={key:0},Q={key:0,class:"custom-table__header"},X=["onClick"],Y={key:0,class:"filter"},ee=["innerHTML"],ae={key:0},te=["onClick"],le=["colspan"],re={key:0,class:"table-v2__cards-empty"},se={key:2,class:"table__pagination"},oe=t({__name:"EaeraTableV2",props:z({id:{},fetchData:{type:Function,default:(e=1,a=1,t={},l={})=>{}},items:{},fields:{},perPage:{default:20},currentPage:{default:1},totalRows:{default:100},selected:{default:()=>[]},showLoading:{type:Boolean,default:!1},showFilterByDefault:{type:Boolean,default:!0},isHiddenHeader:{type:Boolean,default:!1},filterForm:{},filterBy:{},hideFooter:{type:Boolean,default:!1},initFunc:{type:Function,default:()=>{}},stripe:{type:Boolean,default:!0},draggable:{type:Boolean,default:!1},size:{default:"small"},tableRowClassName:{default:""},classTable:{default:""},classCards:{default:""},tableLayout:{default:"fixed"},sizeFormItems:{default:"xs"},layout:{default:"prev, pager, next"},pagerCount:{default:7},allowSortReset:{type:Boolean},pageSizes:{default:()=>[5,10,20,30,50]},viewMode:{default:"table"},mobileBreakpoint:{default:768}},{pageSize:{default:5},pageSizeModifiers:{}}),emits:z(["on-row-click","update:selected-row","dragStart","dragEnd","update:onFilterChanged","update:onSortChanged","update:currentPage","update:perPage"],["update:pageSize"]),setup(t,{expose:z,emit:oe}){const ie=t,ne=oe,de={select:H,"select-tag":A,"select-status":M,input:D,date:R,daterange:P},ce=l(t,"pageSize"),ue=r(0),fe=r([]),pe=r(ie.fields),ye=r(ie.showFilterByDefault),me=s({}),ve=s(ie.filterForm||{}),ke=s(ie.filterBy||{}),ge=r([]),he=r(ie.currentPage),be=r(ie.showLoading),_e=r(ie.selected),xe=r(0),we=r(null),{t:Ce}=T(),$e=r(!1),Se=F(()=>`(max-width: ${ie.mobileBreakpoint}px)`),Be=o(()=>"card"===ie.viewMode||"auto"===ie.viewMode&&($e.value&&Se.value)),Ie=e=>pe.value.filter(e=>e.key&&"selection"!==e.type&&"expand"!==e.type).map(a=>({key:String(a.key),label:Ce(a?.label||"")??"",value:De(e,a)??"",isStatus:a.isStatus??!1,statusVariant:a.statusVariant})),ze=(e="")=>de[e]||null,Ee=()=>{pe.value.forEach(e=>{e.filter&&(ve[e.key]=e.filter?.initialVal)})},Fe=(e,a,t)=>ne("on-row-click",e,a,t),Te=e=>{ge.value=e.map(e=>e.selectionID),ne("update:selected-row",e)},je=(e,a)=>{if(!a)return;if(!(me.key===a))return me.key=a,void(me.direction="asc");ie.allowSortReset?"asc"===me.direction?me.direction="desc":"desc"===me.direction?(me.key=void 0,me.direction=void 0):me.direction="asc":me.direction="asc"===me.direction?"desc":"asc"},Pe=(e,a)=>{if(!a)return e;const t=a.split(".");let l=e;for(const r of t){if(null==l||void 0===l)return;l=l[r]}return l},De=(e,a)=>{if(!a||!a.key)return"";if(!a||!a?.formatter)return Pe(e,a.key);try{const t=Pe(e,a.key);return a.formatter?.(t,a.key,e)}catch(t){return console.error(t),"error"}},He=async()=>{try{be.value=!0,await ie.fetchData(he.value,ce.value,ke,me)}catch(e){console.error(e)}finally{be.value=!1}},Re=(e,a,t)=>{if(!a)return a;if(G.includes(e)&&Array.isArray(a)){const e=a[0].split("-"),t=a[1].split("-");return[`${e[2]}-${e[1]}-${e[0]}T00:00:00.000Z`,`${t[2]}-${t[1]}-${t[0]}T23:59:59.000Z`]}return a},Le=(e,a,t)=>{const l=t.filter_key||(a.includes(".")?a.split(".").pop():a);let r=Re(a,e);if(e&&""!==r){if("-"===r)ke[l]={type:"exists",is_reverse:!0};else if(ke[l]={type:t.filterType??(s=t.type,"daterange"==s?"inrange":"date"==s||"select"==s?"equals":"contains"),value:Re(a,e)},t.is_reverse){let e="false"!==r;ke[l].is_reverse=["exists"].includes(t.filterType)?e:t.is_reverse}}else delete ke[l];var s},Ae=(e,a)=>me.key==e||me.key==a,Me=r(null),Ve=({row:e,rowIndex:a})=>((ge.value.includes(a)?"highlight":"")+" "+ie.tableRowClassName).trim();return i(()=>ie.items,()=>{fe.value=(ie.items??[]).map((e,a)=>({...e,selectionID:a}))},{deep:!0,immediate:!0}),i(()=>ie.fields,()=>{pe.value=ie.fields??[]}),i([ce,he,ke],()=>{ne("update:currentPage",he.value),ne("update:perPage",ce.value),He()},{deep:!0,immediate:!0}),i(()=>me,()=>{ne("update:onSortChanged",me),He()},{deep:!0}),i(()=>ie.filterBy,()=>{pe.value.forEach(e=>{e.filter&&(ve[e.key]=ie.filterBy?.[e.key]?.value)}),0==Object.keys(ie.filterBy||{}).length&&Object.keys(ke).forEach(e=>{delete ke[e]});for(const e in ie.filterBy)ie.filterBy?.state?""==ie.filterBy?.state?.value?delete ke[e]:ie.filterBy?.state?.value!==ke?.state?.value&&(ke.state=ie.filterBy.state):""==ie.filterBy[e]?.value?delete ke[e]:ke[e]=ie.filterBy[e]},{deep:!0,immediate:!0}),i(()=>ie.selected,()=>{_e.value=ie.selected}),i(()=>ke,()=>{ne("update:onFilterChanged",ke)},{deep:!0,immediate:!0}),i(()=>ie.showLoading,e=>{be.value=e}),n(()=>{$e.value=!0,Ee(),ie.initFunc(),(()=>{if(!ie.draggable||!ie.id)return;const e=document.querySelector(`#${ie.id} .el-table__body-wrapper tbody`);e&&(Me.value?.destroy(),Me.value=j.create(e,{animation:180,filter:".not-draggable",onEnd:e=>{ne("dragEnd",e)},onStart:e=>ne("dragStart",e)}))})()}),d(()=>{Me.value?.destroy(),Me.value=null}),z({checkedRows:_e,rowExpansion:(e,a)=>{we.value.toggleRowExpansion(e,a)},clearSelection:()=>{we.value?.clearSelection()},reloadTable:He,setScrollTop:e=>{we.value.setScrollTop(e)},pageIndex:he,loading:be,sort:me,sortTable:je,tableRef:we,isCardMode:Be}),(l,r)=>{const s=e,o=a;return c(),u("div",{class:f(["table-v2-wrapper",{"is-card-mode":Be.value}])},[p(l.$slots,"table-v2-header-actions"),Be.value?y((c(),u("div",{key:1,class:f(["table-v2__cards",t.classCards])},[0===fe.value.length?(c(),u("div",re,[p(l.$slots,"empty",{},()=>[I(K,{title:"There is no data to show"})])])):(c(!0),u(b,{key:1},_(fe.value,(e,a)=>(c(),u("div",{key:e.selectionID??a,class:"table-v2__card-item"},[p(l.$slots,"card",{item:e,index:a},()=>[I(O,{items:Ie(e),"show-header":!1},null,8,["items"])])]))),128))],2)),[[o,be.value]]):(c(),u("div",J,[y((c(),m(v(E),k({ref_key:"eaeraTable",ref:we,id:t.id,class:["custom-table",[{isHiddenHeader:t.isHiddenHeader,"is-filter-visible":ye.value},t.classTable]],size:t.size,data:fe.value,onRowClick:Fe,onSelectionChange:Te,stripe:t.stripe,key:xe.value,"row-class-name":Ve,"table-layout":t.tableLayout},l.$attrs),{empty:g(()=>[p(l.$slots,"empty",{},()=>[C("div",{colspan:(t.fields??[]).length,class:"custom-table__empty"}," There is no data to show ",8,le)])]),append:g(()=>[p(l.$slots,"append")]),"expand-icon":g(({expanded:e})=>[p(l.$slots,"expand-icon",{expanded:e})]),default:g(()=>[(c(!0),u(b,null,_(pe.value,(e,a)=>(c(),m(s,k({key:e.key??a,prop:String(e.key),label:l.$t(e?.label||""),width:e.width,"min-width":e.minWidth,formatter:e.formatter,type:e.type,selectable:e.selectable,"class-name":e.cellClass,"row-class-name":e.rowClass,"label-class-name":e.headerClass,"header-align":e.headerAlign||e.align,align:e.align,render:e.render,fixed:e.fixed||!1},{ref_for:!0},e.colProps),{header:g(({column:a,$index:s})=>{return[C("div",{class:f(["custom-table__header-cell",[e.align,e.headerClass]])},[t.isHiddenHeader?w("",!0):(c(),u("div",Q,[p(l.$slots,`header_${String(e.key)}`,{item:a},()=>{return["actions"==e.key?(c(),u("span",{key:0,onClick:r[0]||(r[0]=e=>ye.value=!ye.value)},[ye.value?(c(),m(v(q),{key:1,class:"btn-icon"})):(c(),m(v(U),{key:0,class:"btn-icon"}))])):(c(),u("div",{key:1,class:f(["custom-table__header-actions",e.customHeaderClass]),onClick:a=>je(e.key,e.sort_key)},[e.filter?(c(),u("div",Y,[e.prefixIcon?(c(),m(x(e.prefixIcon),{key:0,class:"icon-secondary"})):w("",!0),C("span",{innerHTML:(a=l.$t(e?.label||""),a??"_"),class:f(["custom-table__header-label text-14-24-600",e.headerLabelClass??""])},null,10,ee),e.suffixIcon?(c(),m(x(e.suffixIcon),{key:1,class:"icon-secondary"})):w("",!0)])):(c(),u("div",{key:1,class:f(["custom-table__header-label text-14-24-600",e.headerLabelClass??""])},[e.prefixIcon?(c(),m(x(e.prefixIcon),{key:0,class:"icon-secondary"})):w("",!0),S(" "+$(l.$t(e?.label||""))+" ",1),e.suffixIcon?(c(),m(x(e.suffixIcon),{key:1,class:"icon-secondary"})):w("",!0)],2)),e.sortable?p(l.$slots,"sort-icon",{class:f(e.headerSortIconClass??""),sortKey:e.sort_key,direction:me.direction},()=>[Ae(e.key,e.sort_key)&&"asc"==me.direction?(c(),m(v(N),{key:0,color:"var(--er-action-primary-default)"})):w("",!0),Ae(e.key,e.sort_key)&&"desc"==me.direction?(c(),m(v(Z),{key:1,color:"var(--er-action-primary-default)"})):w("",!0),e.sortable&&!Ae(e.key,e.sort_key)?(c(),m(v(W),{key:2,color:"var(--er-icon-secondary)"})):w("",!0)],void 0,2):w("",!0)],10,X))];var a}),p(l.$slots,`header_after_${e.key}`,{item:a})])),ye.value&&e.filter?(c(),u("div",{key:1,class:f(["custom-table__filter",e.filter?.align])},["actions"!=e.key?(c(),u("p",ae,["custom"===e.filter?.type?p(l.$slots,`filter_custom(${e.key})`,{item:e,key:ue.value,filterForm:ve,filterBy:ke,onChange:Le}):(c(),m(x(ze(e.filter?.type)),k({type:e.filter?.type??"",valueKey:e.filter?.valueKey,"v-model":ve[e?.key],disabled:e.filter?.disabled??!1,valueFormat:e.filter?.valueFormat,format:e.filter?.format,options:e?.filter?.options||[],placeholder:e.filter?.placeholder?l.$t(`${e.filter?.placeholder}`):"",key:ue.value,autocomplete:e.filter?.autocomplete,"filter-name":`filter-${e.filter?.type}-${e.key}`,onUpdateValueProp:a=>ve[e?.key]=a,onChange:a=>Le(a,e.key,e?.filter),size:(o=e?.filter?.size,o&&o.length>0?o:ie.sizeFormItems)},{ref_for:!0},{...e.filter}),B({_:2},[e.filter?.prefixIcon?{name:"prefix",fn:g(()=>[(c(),m(x(e.filter.prefixIcon),{class:"icon-secondary"}))]),key:"0"}:void 0,e.filter?.suffixIcon?{name:"suffix",fn:g(()=>[(c(),m(x(e.filter.suffixIcon),{class:"icon-secondary"}))]),key:"1"}:void 0]),1040,["type","valueKey","v-model","disabled","valueFormat","format","options","placeholder","autocomplete","filter-name","onUpdateValueProp","onChange","size"]))])):(c(),m(V,{key:1,onClick:r[1]||(r[1]=()=>(()=>{for(const e in ve)delete ve[e];for(const e in ke)delete ke[e];ue.value++,Ee()})()),size:"xs",plain:""},{default:g(()=>[...r[4]||(r[4]=[S(" Clear ",-1)])]),_:1}))],2)):w("",!0)],2)];var o}),default:g(({row:t,column:r,$index:s})=>["expand"===e.type?p(l.$slots,`cell(${e.key})`,k({item:t,rowIndex:s},{ref_for:!0},{row:t,column:r,$index:s}),()=>[e?.cell?.component?(c(),m(x(e?.cell?.component),k({key:0,dataClass:e?.cell?.dataClass},{ref_for:!0},{row:t,column:r,$index:s}),null,16,["dataClass"])):w("",!0)],void 0,0):"select"!=e.key?p(l.$slots,`cell(${e.key})`,k({item:t,index:a,rowIndex:s,field:e,value:Pe(t,e.key)},{ref_for:!0},{row:t,column:r,$index:s}),()=>[C("div",{onClick:a=>{e?.onClick&&e?.onClick(t,a)}},[e?.cell?.component?(c(),m(x(e?.cell?.component),k({key:0,cellData:De(t,e),dataClass:e?.cell?.dataClass},{ref_for:!0},e?.cell?.props),null,16,["cellData","dataClass"])):"select"!=e.key?(c(),u("div",{key:1,class:f(e?.cell?.dataClass)},$(De(t,e)),3)):w("",!0)],8,te)],void 0,1):w("",!0)]),_:2},1040,["prop","label","width","min-width","formatter","type","selectable","class-name","row-class-name","label-class-name","header-align","align","render","fixed"]))),128))]),_:3},16,["id","size","data","class","stripe","table-layout"])),[[o,be.value]])])),p(l.$slots,"addition_content"),t.hideFooter?w("",!0):(c(),u("div",se,[I(L,{layout:ie.layout,total:ie.totalRows,"pager-count":ie.pagerCount,"page-sizes":ie.pageSizes,disabled:be.value,"current-page":he.value,"onUpdate:currentPage":r[2]||(r[2]=e=>he.value=e),"page-size":ce.value,"onUpdate:pageSize":r[3]||(r[3]=e=>ce.value=e)},null,8,["layout","total","pager-count","page-sizes","disabled","current-page","page-size"])]))],2)}}});export{oe as _};
|
|
1
|
+
import{ElTableColumn as e,ElLoadingDirective as a}from"element-plus/es";import{defineComponent as t,useModel as l,ref as r,reactive as s,computed as o,watch as i,onMounted as n,onBeforeUnmount as d,openBlock as c,createElementBlock as u,normalizeClass as f,renderSlot as p,withDirectives as y,createBlock as m,unref as v,mergeProps as k,withCtx as g,Fragment as b,renderList as _,resolveDynamicComponent as x,createCommentVNode as w,createElementVNode as C,toDisplayString as $,createTextVNode as S,createSlots as B,createVNode as I,mergeModels as z}from"vue";import{ElTable as E}from"element-plus";import{u as F}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as T}from"vue-i18n";import{S as j}from"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as P}from"./EaeraDateTimePicker-DXW1M3R7.mjs";import{_ as D}from"./EaeraInput-CkbcAxy0.mjs";import{_ as H}from"./EaeraSelect-BxZRZofe.mjs";import{_ as R}from"./EaeraDatePicker-CAm9fHms.mjs";import{_ as L}from"./EaeraPagination-BKcbraqK.mjs";import{_ as A}from"./EaeraSelectTag-CGmqeNQJ.mjs";import{_ as M}from"./EaeraSelectStatus-3bhsZt3A.mjs";import{_ as V}from"./EaeraButton-DGfjUoa6.mjs";import{_ as K}from"./EaeraEmpty-CnGp7eaH.mjs";import{_ as O}from"./EaeraDataCard-DGc1YbK2.mjs";import{ChevronDown as U,ChevronUp as q,ArrowUp as N,ArrowDown as Z,ArrowDownUp as W}from"@lucide/vue";const G=["createdAt","completedAt","updatedAt","hiredAt","datetimeOfIssue","dateOfBirth","expirationAt"],J={key:0},Q={key:0,class:"custom-table__header"},X=["onClick"],Y={key:0,class:"filter"},ee=["innerHTML"],ae={key:0},te=["onClick"],le=["colspan"],re={key:0,class:"table-v2__cards-empty"},se={key:2,class:"table__pagination"},oe=t({__name:"EaeraTableV2",props:z({id:{},fetchData:{type:Function,default:(e=1,a=1,t={},l={})=>{}},items:{},fields:{},perPage:{default:20},currentPage:{default:1},totalRows:{default:100},selected:{default:()=>[]},showLoading:{type:Boolean,default:!1},showFilterByDefault:{type:Boolean,default:!0},isHiddenHeader:{type:Boolean,default:!1},filterForm:{},filterBy:{},hideFooter:{type:Boolean,default:!1},initFunc:{type:Function,default:()=>{}},stripe:{type:Boolean,default:!0},draggable:{type:Boolean,default:!1},size:{default:"small"},tableRowClassName:{default:""},classTable:{default:""},classCards:{default:""},tableLayout:{default:"fixed"},sizeFormItems:{default:"xs"},layout:{default:"prev, pager, next"},pagerCount:{default:7},allowSortReset:{type:Boolean},pageSizes:{default:()=>[5,10,20,30,50]},viewMode:{default:"table"},mobileBreakpoint:{default:768}},{pageSize:{default:5},pageSizeModifiers:{}}),emits:z(["on-row-click","update:selected-row","dragStart","dragEnd","update:onFilterChanged","update:onSortChanged","update:currentPage","update:perPage"],["update:pageSize"]),setup(t,{expose:z,emit:oe}){const ie=t,ne=oe,de={select:H,"select-tag":A,"select-status":M,input:D,date:R,daterange:P},ce=l(t,"pageSize"),ue=r(0),fe=r([]),pe=r(ie.fields),ye=r(ie.showFilterByDefault),me=s({}),ve=s(ie.filterForm||{}),ke=s(ie.filterBy||{}),ge=r([]),he=r(ie.currentPage),be=r(ie.showLoading),_e=r(ie.selected),xe=r(0),we=r(null),{t:Ce}=T(),$e=r(!1),Se=F(()=>`(max-width: ${ie.mobileBreakpoint}px)`),Be=o(()=>"card"===ie.viewMode||"auto"===ie.viewMode&&($e.value&&Se.value)),Ie=e=>pe.value.filter(e=>e.key&&"selection"!==e.type&&"expand"!==e.type).map(a=>({key:String(a.key),label:Ce(a?.label||"")??"",value:De(e,a)??"",isStatus:a.isStatus??!1,statusVariant:a.statusVariant})),ze=(e="")=>de[e]||null,Ee=()=>{pe.value.forEach(e=>{e.filter&&(ve[e.key]=e.filter?.initialVal)})},Fe=(e,a,t)=>ne("on-row-click",e,a,t),Te=e=>{ge.value=e.map(e=>e.selectionID),ne("update:selected-row",e)},je=(e,a)=>{if(!a)return;if(!(me.key===a))return me.key=a,void(me.direction="asc");ie.allowSortReset?"asc"===me.direction?me.direction="desc":"desc"===me.direction?(me.key=void 0,me.direction=void 0):me.direction="asc":me.direction="asc"===me.direction?"desc":"asc"},Pe=(e,a)=>{if(!a)return e;const t=a.split(".");let l=e;for(const r of t){if(null==l||void 0===l)return;l=l[r]}return l},De=(e,a)=>{if(!a||!a.key)return"";if(!a||!a?.formatter)return Pe(e,a.key);try{const t=Pe(e,a.key);return a.formatter?.(t,a.key,e)}catch(t){return console.error(t),"error"}},He=async()=>{try{be.value=!0,await ie.fetchData(he.value,ce.value,ke,me)}catch(e){console.error(e)}finally{be.value=!1}},Re=(e,a,t)=>{if(!a)return a;if(G.includes(e)&&Array.isArray(a)){const e=a[0].split("-"),t=a[1].split("-");return[`${e[2]}-${e[1]}-${e[0]}T00:00:00.000Z`,`${t[2]}-${t[1]}-${t[0]}T23:59:59.000Z`]}return a},Le=(e,a,t)=>{const l=t.filter_key||(a.includes(".")?a.split(".").pop():a);let r=Re(a,e);if(e&&""!==r){if("-"===r)ke[l]={type:"exists",is_reverse:!0};else if(ke[l]={type:t.filterType??(s=t.type,"daterange"==s?"inrange":"date"==s||"select"==s?"equals":"contains"),value:Re(a,e)},t.is_reverse){let e="false"!==r;ke[l].is_reverse=["exists"].includes(t.filterType)?e:t.is_reverse}}else delete ke[l];var s},Ae=(e,a)=>me.key==e||me.key==a,Me=r(null),Ve=({row:e,rowIndex:a})=>((ge.value.includes(a)?"highlight":"")+" "+ie.tableRowClassName).trim();return i(()=>ie.items,()=>{fe.value=(ie.items??[]).map((e,a)=>({...e,selectionID:a}))},{deep:!0,immediate:!0}),i(()=>ie.fields,()=>{pe.value=ie.fields??[]}),i([ce,he,ke],()=>{ne("update:currentPage",he.value),ne("update:perPage",ce.value),He()},{deep:!0,immediate:!0}),i(()=>me,()=>{ne("update:onSortChanged",me),He()},{deep:!0}),i(()=>ie.filterBy,()=>{pe.value.forEach(e=>{e.filter&&(ve[e.key]=ie.filterBy?.[e.key]?.value)}),0==Object.keys(ie.filterBy||{}).length&&Object.keys(ke).forEach(e=>{delete ke[e]});for(const e in ie.filterBy)ie.filterBy?.state?""==ie.filterBy?.state?.value?delete ke[e]:ie.filterBy?.state?.value!==ke?.state?.value&&(ke.state=ie.filterBy.state):""==ie.filterBy[e]?.value?delete ke[e]:ke[e]=ie.filterBy[e]},{deep:!0,immediate:!0}),i(()=>ie.selected,()=>{_e.value=ie.selected}),i(()=>ke,()=>{ne("update:onFilterChanged",ke)},{deep:!0,immediate:!0}),i(()=>ie.showLoading,e=>{be.value=e}),n(()=>{$e.value=!0,Ee(),ie.initFunc(),(()=>{if(!ie.draggable||!ie.id)return;const e=document.querySelector(`#${ie.id} .el-table__body-wrapper tbody`);e&&(Me.value?.destroy(),Me.value=j.create(e,{animation:180,filter:".not-draggable",onEnd:e=>{ne("dragEnd",e)},onStart:e=>ne("dragStart",e)}))})()}),d(()=>{Me.value?.destroy(),Me.value=null}),z({checkedRows:_e,rowExpansion:(e,a)=>{we.value.toggleRowExpansion(e,a)},clearSelection:()=>{we.value?.clearSelection()},reloadTable:He,setScrollTop:e=>{we.value.setScrollTop(e)},pageIndex:he,loading:be,sort:me,sortTable:je,tableRef:we,isCardMode:Be}),(l,r)=>{const s=e,o=a;return c(),u("div",{class:f(["table-v2-wrapper",{"is-card-mode":Be.value}])},[p(l.$slots,"table-v2-header-actions"),Be.value?y((c(),u("div",{key:1,class:f(["table-v2__cards",t.classCards])},[0===fe.value.length?(c(),u("div",re,[p(l.$slots,"empty",{},()=>[I(K,{title:"There is no data to show"})])])):(c(!0),u(b,{key:1},_(fe.value,(e,a)=>(c(),u("div",{key:e.selectionID??a,class:"table-v2__card-item"},[p(l.$slots,"card",{item:e,index:a},()=>[I(O,{items:Ie(e),"show-header":!1},null,8,["items"])])]))),128))],2)),[[o,be.value]]):(c(),u("div",J,[y((c(),m(v(E),k({ref_key:"eaeraTable",ref:we,id:t.id,class:["custom-table",[{isHiddenHeader:t.isHiddenHeader,"is-filter-visible":ye.value},t.classTable]],size:t.size,data:fe.value,onRowClick:Fe,onSelectionChange:Te,stripe:t.stripe,key:xe.value,"row-class-name":Ve,"table-layout":t.tableLayout},l.$attrs),{empty:g(()=>[p(l.$slots,"empty",{},()=>[C("div",{colspan:(t.fields??[]).length,class:"custom-table__empty"}," There is no data to show ",8,le)])]),append:g(()=>[p(l.$slots,"append")]),"expand-icon":g(({expanded:e})=>[p(l.$slots,"expand-icon",{expanded:e})]),default:g(()=>[(c(!0),u(b,null,_(pe.value,(e,a)=>(c(),m(s,k({key:e.key??a,prop:String(e.key),label:l.$t(e?.label||""),width:e.width,"min-width":e.minWidth,formatter:e.formatter,type:e.type,selectable:e.selectable,"class-name":e.cellClass,"row-class-name":e.rowClass,"label-class-name":e.headerClass,"header-align":e.headerAlign||e.align,align:e.align,render:e.render,fixed:e.fixed||!1},{ref_for:!0},e.colProps),{header:g(({column:a,$index:s})=>{return[C("div",{class:f(["custom-table__header-cell",[e.align,e.headerClass]])},[t.isHiddenHeader?w("",!0):(c(),u("div",Q,[p(l.$slots,`header_${String(e.key)}`,{item:a},()=>{return["actions"==e.key?(c(),u("span",{key:0,onClick:r[0]||(r[0]=e=>ye.value=!ye.value)},[ye.value?(c(),m(v(q),{key:1,class:"btn-icon"})):(c(),m(v(U),{key:0,class:"btn-icon"}))])):(c(),u("div",{key:1,class:f(["custom-table__header-actions",e.customHeaderClass]),onClick:a=>je(e.key,e.sort_key)},[e.filter?(c(),u("div",Y,[e.prefixIcon?(c(),m(x(e.prefixIcon),{key:0,class:"icon-secondary"})):w("",!0),C("span",{innerHTML:(a=l.$t(e?.label||""),a??"_"),class:f(["custom-table__header-label text-14-24-600",e.headerLabelClass??""])},null,10,ee),e.suffixIcon?(c(),m(x(e.suffixIcon),{key:1,class:"icon-secondary"})):w("",!0)])):(c(),u("div",{key:1,class:f(["custom-table__header-label text-14-24-600",e.headerLabelClass??""])},[e.prefixIcon?(c(),m(x(e.prefixIcon),{key:0,class:"icon-secondary"})):w("",!0),S(" "+$(l.$t(e?.label||""))+" ",1),e.suffixIcon?(c(),m(x(e.suffixIcon),{key:1,class:"icon-secondary"})):w("",!0)],2)),e.sortable?p(l.$slots,"sort-icon",{class:f(e.headerSortIconClass??""),sortKey:e.sort_key,direction:me.direction},()=>[Ae(e.key,e.sort_key)&&"asc"==me.direction?(c(),m(v(N),{key:0,color:"var(--er-action-primary-default)"})):w("",!0),Ae(e.key,e.sort_key)&&"desc"==me.direction?(c(),m(v(Z),{key:1,color:"var(--er-action-primary-default)"})):w("",!0),e.sortable&&!Ae(e.key,e.sort_key)?(c(),m(v(W),{key:2,color:"var(--er-icon-secondary)"})):w("",!0)],void 0,2):w("",!0)],10,X))];var a}),p(l.$slots,`header_after_${e.key}`,{item:a})])),ye.value&&e.filter?(c(),u("div",{key:1,class:f(["custom-table__filter",e.filter?.align])},["actions"!=e.key?(c(),u("p",ae,["custom"===e.filter?.type?p(l.$slots,`filter_custom(${e.key})`,{item:e,key:ue.value,filterForm:ve,filterBy:ke,onChange:Le}):(c(),m(x(ze(e.filter?.type)),k({type:e.filter?.type??"",valueKey:e.filter?.valueKey,"v-model":ve[e?.key],disabled:e.filter?.disabled??!1,valueFormat:e.filter?.valueFormat,format:e.filter?.format,options:e?.filter?.options||[],placeholder:e.filter?.placeholder?l.$t(`${e.filter?.placeholder}`):"",key:ue.value,autocomplete:e.filter?.autocomplete,"filter-name":`filter-${e.filter?.type}-${e.key}`,onUpdateValueProp:a=>ve[e?.key]=a,onChange:a=>Le(a,e.key,e?.filter),size:(o=e?.filter?.size,o&&o.length>0?o:ie.sizeFormItems)},{ref_for:!0},{...e.filter}),B({_:2},[e.filter?.prefixIcon?{name:"prefix",fn:g(()=>[(c(),m(x(e.filter.prefixIcon),{class:"icon-secondary"}))]),key:"0"}:void 0,e.filter?.suffixIcon?{name:"suffix",fn:g(()=>[(c(),m(x(e.filter.suffixIcon),{class:"icon-secondary"}))]),key:"1"}:void 0]),1040,["type","valueKey","v-model","disabled","valueFormat","format","options","placeholder","autocomplete","filter-name","onUpdateValueProp","onChange","size"]))])):(c(),m(V,{key:1,onClick:r[1]||(r[1]=()=>(()=>{for(const e in ve)delete ve[e];for(const e in ke)delete ke[e];ue.value++,Ee()})()),size:"xs",plain:""},{default:g(()=>[...r[4]||(r[4]=[S(" Clear ",-1)])]),_:1}))],2)):w("",!0)],2)];var o}),default:g(({row:t,column:r,$index:s})=>["expand"===e.type?p(l.$slots,`cell(${e.key})`,k({item:t,rowIndex:s},{ref_for:!0},{row:t,column:r,$index:s}),()=>[e?.cell?.component?(c(),m(x(e?.cell?.component),k({key:0,dataClass:e?.cell?.dataClass},{ref_for:!0},{row:t,column:r,$index:s}),null,16,["dataClass"])):w("",!0)],void 0,0):"select"!=e.key?p(l.$slots,`cell(${e.key})`,k({item:t,index:a,rowIndex:s,field:e,value:Pe(t,e.key)},{ref_for:!0},{row:t,column:r,$index:s}),()=>[C("div",{onClick:a=>{e?.onClick&&e?.onClick(t,a)}},[e?.cell?.component?(c(),m(x(e?.cell?.component),k({key:0,cellData:De(t,e),dataClass:e?.cell?.dataClass},{ref_for:!0},e?.cell?.props),null,16,["cellData","dataClass"])):"select"!=e.key?(c(),u("div",{key:1,class:f(e?.cell?.dataClass)},$(De(t,e)),3)):w("",!0)],8,te)],void 0,1):w("",!0)]),_:2},1040,["prop","label","width","min-width","formatter","type","selectable","class-name","row-class-name","label-class-name","header-align","align","render","fixed"]))),128))]),_:3},16,["id","size","data","class","stripe","table-layout"])),[[o,be.value]])])),p(l.$slots,"addition_content"),t.hideFooter?w("",!0):(c(),u("div",se,[I(L,{layout:ie.layout,total:ie.totalRows,"pager-count":ie.pagerCount,"page-sizes":ie.pageSizes,disabled:be.value,"current-page":he.value,"onUpdate:currentPage":r[2]||(r[2]=e=>he.value=e),"page-size":ce.value,"onUpdate:pageSize":r[3]||(r[3]=e=>ce.value=e)},null,8,["layout","total","pager-count","page-sizes","disabled","current-page","page-size"])]))],2)}}});export{oe as _};
|
|
@@ -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,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-BF5WVwr0.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};
|
|
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-BivuFAh3.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};
|
|
@@ -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-Degftfa1.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-C-1fEG2R.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as H}from"./EaeraTableV2-
|
|
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-Degftfa1.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-C-1fEG2R.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as H}from"./EaeraTableV2-BivuFAh3.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{_ as e}from"./EaeraTableV2-BF5WVwr0.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
|
+
import{_ as e}from"./EaeraTableV2-BivuFAh3.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};
|